Fórum Dúvida com DbGrid - Ordenação do Bookmark #368958
11/03/2009
0
Eu tenho isto conforme ordem abaixo no grid principal:
Ou seja, ele seguiu a ordem do Grid anterior e não conforme a minha escolha. Sei que é devido ao Bookmark, pois ele segue a ordem do grid de onde ele foi acionado. Como faço para contornar isto?
Paulo
Curtir tópico
+ 0Posts
11/03/2009
Paulo
Gostei + 0
12/03/2009
Paulo
for i := 0 to Pred(grdOcorrencias.SelectedRows.Count) do if i = 11 then lista_ocorrencia.Delete(i);
Gostei + 0
12/03/2009
Paulo
Gostei + 0
12/03/2009
Paulo
Gostei + 0
12/03/2009
Paulo
Gostei + 0
13/03/2009
Delmar
Lista.Delete(Lista.IndexOf(´ELEMENTO´));
Exemplo para remover ´Bola´
Lista.Delete(Lista.IndexOf(´Bola´));
Gostei + 0
13/03/2009
Paulo
Gostei + 0
13/03/2009
Delmar
Talvez no onCellClick o codigo abaixo faria a inversão a cada click
if DBGrid1.SelectedRows.CurrentRowSelected then retira da lista //está selecionado, logo deve estar na lista, então retira da lista else coloca na lista; //não está selecionando ainda, logo não deve estar na lista, então coloca na lista
//eu acho que usando o CurrentRowSelected é o caminho, só não sei se este evento seria o correto
Gostei + 0
13/03/2009
Paulo
procedure TfrmOcorrenciaPendente.grdOcorrenciasCellClick(Column: TColumn); procedure popula_lista; var contador,j: Integer; bkm: TBookmarkList; begin frmAssociarOcor_Ocor_Direta.qryTem_Ocor.Open; bkm := grdOcorrencias.SelectedRows; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.Open; //Pegar todos os itens selecionados somente - Paulo Correa - 17/02/2009 for contador:= 0 to Pred(bkm.Count) do Begin if Contador > 11 then begin MessageDlg(´Só é permitido associar 10 ocorrências a uma ocorrência pai´,mtInformation,[mbOk],0); associa := True; Break; end; qryOcorrencias.BookMark := bkm[contador]; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.Append; qryTem_Ocor.FieldByName(´TMP_ID´).AsInteger := contador; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_ANO_OCORRENCIA´).AsString := copy(grdOcorrencias.Fields[1].AsString,1,4); frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_NUM_OCORRENCIA´).AsString := copy(grdOcorrencias.Fields[1].AsString,6,Length(grdOcorrencias.Fields[1].AsString)); frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_DEFEITO_FALHA´).AsString := grdOcorrencias.Fields[3].AsString; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_ALIM_PRIMARIO´).AsString := grdOcorrencias.Fields[4].AsString; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_SUBESTACAO´).AsString := Copy(grdOcorrencias.Fields[4].AsString,1,3); frmAssociarOcor_Ocor_Direta.qryTem_Ocor.FieldByName(´TMP_QTD_COMUNICACAO´).AsInteger := grdOcorrencias.Fields[13].AsInteger; frmAssociarOcor_Ocor_Direta.qryTem_Ocor.Post; //for j := 0 to Pred(frmAssociarOcor_Ocor_Direta.qryTem_Ocor.RecNo) do //if frmAssociarOcor_Ocor_Direta.qryTem_Ocor.Locate() end; end; begin if not Assigned(frmAssociarOcor_Ocor_Direta) then frmAssociarOcor_Ocor_Direta := TfrmAssociarOcor_Ocor_Direta.Create(Self); GravaItensSelecionado(grdOcorrencias); end;
Gostei + 0
13/03/2009
Paulo
entenda isso
Gostei + 0
16/03/2009
Paulo
Gostei + 0
19/03/2009
Paulo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)