hola quisiera saber como puedo hacer para pasar datos de una forma modal creada dinamicamente a otra forma modal creada dinamicamente. O sea tengo una forma donde doy de altas facturas (frmLiquidarAltas), por medio de un boton 'Agregar' llamo a otra forma la cual contine los detalles que quiero agregar a la facutra (frmAgregarDetalleC).
Aca llamo al form de los detalles desde el form de facturas y trato de hacer la consulta que esta ligada al dbgrid que me muestra los detalles recien agregados de la factura.
Código Delphi
[-]
public
nro_comprobante: Integer;
end;
procedure TfrmLiquidarAltas.BitBtn5Click(Sender: TObject);
var
frm: TfrmAgregarDetalleC;
begin
frm := TfrmAgregarDetalleC.Create(Self);
try
if frm.ShowModal = mrOK then
begin
dmTablas.QDetalleC.Close;
dmTablas.QDetalleC.ParamByName('nro_comprobante').AsInteger := nro_comprobante;
dmTablas.QDetalleC.Open;
if (not dmTablas.QDetalleC.IsEmpty) then
begin
Label11.Caption := dmTablas.QDetalleC.FieldByName('subtotal').AsString;
Label12.Caption := Label11.Caption;
end;
end;
finally
frm.Free;
end;
end;
Aca en el form de los detalles grabo los datos segun el nro_comprobante, pero aca me surge la duda si puede tomar el valor del form frmLiquidarAltas ya que cuando agrego un detalle no me marca ningun error, pero cuando voy a las tablas los datos no estan grabados.
Código Delphi
[-]
procedure TfrmAgregarDetalleC.BitBtn1Click(Sender: TObject);
begin
if (Edit1.Text = '') or (JvDBLookupCombo1.KeyValue = null) or (Edit2.Text = '') then
begin
MessageDlg('Se deben completar todos los campos.', MtInformation, [MbOK], 0);
Exit;
end
else
begin
try
dmTablas.DBFacturacion.StartTransaction;
dmTablas.DetalleC.Insert;
dmTablas.DetalleC.FieldByName('nro_comprobante').AsInteger := frmLiquidarAltas.nro_comprobante;
dmTablas.DetalleC.FieldByName('nro_categoria').AsInteger := JvDBLookupCombo1.KeyValue;
dmTablas.DetalleC.FieldByName('cantidad').AsInteger := StrToInt(Edit1.Text);
dmTablas.DetalleC.FieldByName('kilo').AsFloat := StrToFloat(Edit2.Text);
dmTablas.DetalleC.FieldByName('promedio').AsFloat := StrToFloat(Label7.Caption);
dmTablas.DetalleC.FieldByName('precio').AsFloat := StrToFloat(Label8.Caption);
dmTablas.DetalleC.FieldByName('importe').AsFloat := StrToFloat(Label9.Caption);
dmTablas.DetalleC.Post;
dmTablas.DBFacturacion.Commit;
except
dmTablas.DBFacturacion.Rollback;
end;
Edit1.Text := '';
JvDBLookupCombo1.KeyValue := null;
Edit2.Text := '';
Label7.Caption := '0';
Label8.Caption := '0';
Label9.Caption := '0';
end;
end;
Desde ya muchas gracias.