Os vuelvo a dejar el codigo con los cambios descritos arriba por el compañero , sigue fallando ;(
de todas formas gracias
Código Delphi
[-]
procedure TfrmSupVision.wwDBGrid1FieldChanged(Sender: TObject;
Field: TField);
Var
Qry: TQuery;
cadenaSQL,FilaCheck,Lin_Codi,Alb_Codi,Per_Codi,accountnum,dataareaid ,
varDades , varUnitatsRestants : string;
Cantidad , UnitatsServidesBD , botoseleccionat : Integer ;
Marca : TBookMarkStr;
formulari : TfrmUnidadesPedidoVenta;
begin
try
Lin_Codi := query_supvision.FieldbyName('LIN_Codi').AsString;
...
...
except
showmessage('No se han podido cargar los datos del albarán');
query_supvision.close;
query_supvision.open;
end;
if not assigned (Qry) then begin
Qry := TQuery.Create (nil);
Qry.DatabaseName := Modulo_Datos.NOG_Comer.DatabaseName;
end;
Qry.Close;
Qry.SQL.Clear;
if ((Lin_Codi <> '') and (Dataareaid <> '') and (Alb_Codi <> '') and (Per_Codi <> '') and (Accountnum <> '')) then begin
if (cmbSupervisado.text = 'TODOS') then begin
try
Marca := query_supvision.Bookmark;
except
query_supvision.close;
query_supvision.open;
end;
end;
try
FilaCheck := wwDBGrid1.GetFieldValue(7); except
showmessage('Hubo un error cargando los datos del formulario');
query_supvision.close;
query_supvision.open;
end;
if (FilaCheck = 'S') then begin
if (Cantidad = 1) then begin
Qry.SQL.Clear;
cadenaSQL := 'update tabla .................';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'Insert into tabla ............';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
query_supvision.close;
query_supvision.Open;
end
else begin
formulari := TfrmUnidadesPedidoVenta.Create(self);
formulari.CarregaDades(Cantidad,UnitatsServidesBD);
formulari.ShowModal;
varDades := formulari.rebreDades;
varUnitatsRestants := formulari.rebreUnitatsRestants;
if assigned(formulari) then
freeandnil(formulari);
Qry.SQL.Clear;
cadenaSQL := 'update tabla .........';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'Insert into .................';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
query_supvision.Close;
query_supvision.Open;
end;
end
else if (FilaCheck = 'N') then
if (Cantidad = UnitatsServidesBD) then begin
botoseleccionat := MessageDlg('Estas seguro que quieres borrar las unidades servidas ?',mtCustom,[mbYes,mbNo], 0);
if botoseleccionat = mrYes then begin
Qry.SQL.Clear;
cadenaSQL := 'update tabla .............. ';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'update table .............. ';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
query_supvision.Close;
query_supvision.Open;
end
else begin
query_supvision.cancel;
end;
end;
end
else begin
showmessage('Este cliente no tiene más albaranes por editar');
try
query_supvision.Close;
query_supvision.open;
except
;
end;
end;
if (cmbSupervisado.text = 'TODOS') then begin
try
query_supvision.Bookmark := Marca;
except
query_supvision.close;
query_supvision.open;
end;
end;
end;
end.