Ver Mensaje Individual
  #16  
Antiguo 18-12-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 19
Chris Va por buen camino
Hola Jafera. Prueba el siguiente código:

Código Delphi [-]
procedure TF_Actualitza.BitBtn1Click(Sender: TObject);
var i:integer;
tmpQuery: TIBQuery;
begin
If RadioGroup1.ItemIndex=0 then
begin
  F_Confirmacio := TF_Confirmacio.Create(self);
  F_Confirmacio.Label1.Caption:= 'Aquesta acció actualitzarà el Master';
  F_Confirmacio.Label2.Caption:= 'general amb les noves dades';
  F_Confirmacio.Label3.Caption:= 'Estas segur?';

  if not (F_Confirmacio.ShowModal = mrok) then
    Abort;

end;

try
  tmpQuery := TIBQuery.Create(Selft);
  tmpQuery.SQL.Add('SELECT DNI FROM CU0001 WHERE DNI=NI_in_txt');
  F_ModulDades.MasterE.Close;
  F_ModulDades.MasterE.Open;
  F_ModulDades.Master.Close;
  F_ModulDades.Master.Open;
  F_ModulDades.MasterE.Last;
  Progressbar1.Max := F_ModulDades.MasterE.RecordCount;
  F_ModulDades.MasterE.First;

  while not F_ModulDades.MasterE.Eof do
  begin
    with tmpQuery do
    begin
    if not Active then
      Close;

    ParamByName('DNI_in_txt').AsInteger := F_ModulDades.MasterEC11.Value;

    if not Prepared then
      Prepare;

    Open;
    end;

    if tmpQuery.isEmpty then
      begin
      i:=F_ModulDades.MasterID_CORREDOR.Value+1;
      F_ModulDades.Master.Insert;
      F_ModulDades.MasterID_CORREDOR.Value:=i;
      end
    else
      begin
      F_ModulDades.Master.Edit;
      end;

    // código compartido para asignación de valores
    F_ModulDades.MasterNOM.Value:=F_ModulDades.MasterEC5.Value;
    F_ModulDades.MasterCOGNOM1.Value:=F_ModulDades.MasterEC6.Value;
    F_ModulDades.MasterCOGNOM2.Value:=F_ModulDades.MasterEC7.Value;
    F_ModulDades.MasterCODI_CAT.Value:=F_ModulDades.MasterEC8.Value;
    F_ModulDades.MasterNACIO.Value:=F_ModulDades.MasterEC9.Value;
    F_ModulDades.MasterLLICENCIA.Value:=F_ModulDades.MasterEC10.Value;
    F_ModulDades.MasterCODIUCI.Value:=F_ModulDades.MasterEC12.Value;
    F_ModulDades.MasterCLUB.Value:=F_ModulDades.MasterEC13.Value;
    F_ModulDades.MasterPUBLICITAT.Value:=F_ModulDades.MasterEC15.Value;
    F_Moduldades.Master.Post;

  Progressbar1.Position := F_ModulDades.MasterE.RecNo;
  F_ModulDades.MasterE.Next;
  end;
finally
  F_Confirmacio.Free;
  tmpQuery.Free;
  ShowMessage('Procés finalitzat');
end;
end;

No sé si valla a servirte, pues tu código es un algo complicado de entender si no tienes a mano la estructura de componentes y objetos de datos que estás utilizando. Sin embargo, creo que a pesar de todo, este código limpio y optimizado pueda ayudarte a ganar tiempo.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita