Ver Mensaje Individual
  #13  
Antiguo 13-03-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Reputación: 21
Paulao Va por buen camino
Cambie mi codigo para este abajo:
Código Delphi [-]
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;
    frmAssociarOcor_Ocor_Direta.qryTem_Ocor.delete;
    //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;

Pero que pasa es, que el esta en OnCellClick del grid. Yo hago click en uno y ok, pero quando yo hago click en otro, el carga en la tabla otra vez el que esta marcado y el nuevo, o sea, yo quedo con dos itenes iguales en mi tabla. Si escojo otro, entonces el graba nuevamente el nuevo y los demas que estan marcados(bookmark). Necesito contornar esto. Alguien puede me ayudar?
Responder Con Cita