bueno resulta que hasta hoy no habia tenido necesidad de hacer sistemas de factuacion ;-), sin embargo el dia de hoy estoy iniciando uno para facturacion, gracias al ejemplo del amigo Caral ha sido algo facil jejeje, bueno pues resulta que cargo los datos en el StringGrid y hasta ahi no hay ningun problema el problema surge cuando quiero hacerle cambios a un producto que ya esta en el detalle de facturion explico los pasos que me gustanrian:
1.- haciendo doble click sobre un registro del TstringGrid me muestre otro form con los datos p/e:
cantidad=1
descuento=1.15%
2.- hacer mas modificaciones que necesito p/e.
cantidad=500
descuento=20%
3.- una vez hechas esas modificaciones, reflejarlas en el registro que se selecciono del TstringGRid.
pongo el codigo con el que agrego las filas al TstringGrid
Código Delphi
[-]procedure TFfactura.txtcodigoExit(Sender: TObject);
var wcodigobarras: string;
wprecio_totalouble;
wcantidad_venta:Integer;
begin
wcodigobarras:=Trim(Ffactura.txtcodigo.Text);
if wcodigobarras<>EmptyStr then
begin
If Cuenta > 1 then SGFact.RowCount := SGFact.RowCount + 1;
with fmodulo.Qry_Temp2 do
begin
Close;
sql.clear;
SQL.Add('select * from articulo');
SQL.Add('where codigobarras=:Pcodigobarras');
Parameters.ParamByName('pcodigobarras').Value:=Trim(wcodigobarras);
try
Open;
if not Fmodulo.Qry_Temp2.IsEmpty then
begin
while not Fmodulo.Qry_Temp2.Eof do
begin
wprecioventa:=StrToFloat(FieldByname('precioventa').AsVariant);
Ffactura.SGFact.Cells[0,cuenta] := Ffactura.txtcodigo.Text;
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);
Ffactura.SGFact.Cells[2,Cuenta]:='1';
Ffactura.SGFact.Cells[3,Cuenta]:=(FieldByname('precioventa').AsVariant);
wcantidad_venta:=StrToInt(SGFact.Cells[2,cuenta]);
wprecio_total:=wcantidad_venta*wprecioventa;
SGFact.Cells[4,Cuenta]:='0.00';
SGFact.Cells[5,Cuenta]:=FloatToStr(wprecio_total); Cuenta:=cuenta+1;
calcula_totales;
Next;
Ffactura.txtcodigo.Text:='';
end;
end
else
begin
MessageDlg('Registro'+chr(13)+'No localizado', mtError, [MBOK], 0);
Ffactura.txtcodigo.Text:='';
Ffactura.txtcodigo.SetFocus;
Exit;
end;
except
on E:EOleException do
begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
end;
end;
end;
end;
end;
espero me hay explicado, de antemano muchas gracias por el apoyo recibido