estoy creando una factura con xe2, con adoquery, con sqlserver 2008 y tengo una tabla de encabezado y una de detalle, esta ultima con clientdatase. tengo 2 problema el primero es que quiero guardar el en clientdataset algunos datos que vienen desde el encabezado de la factura y finalmente una vez completada esta operacion debo guardar toda la informacion dentro de la tabla de encabezado y la de detalle, Bueno esto no esta sucediendo.
el otro error que de alguna forma no logro limpiar el dbgrid y el cientdataset al agregar una nueva factura siempre me trae la informacion toda la informacion que este en la tabla. le envio el godigo para que me indiquen que estoy haciendo mal.
Código Delphi
[-]
ADOQuery4.Open;
ADOQuery4.Edit;
ADOQuery4fac_ven.AsString := IntToStr(ADOQuery4.Fields[1].AsInteger+1); ADOQuery4.Post;
ADOQueryenc_fac.edit;
ADOQueryenc_facfec_emis.Value := DateTimePicker1.Datetime;
ADOQueryenc_facforma_pag.AsString := DBLookupComboBox1.Text;
ADOQueryenc_factot_bruto.asstring := label15.caption;
ADOQueryenc_factot_neto.AsString := label19.caption;
ADOQueryenc_facglob_desc.AsString := label16.caption;
ADOQueryenc_facanulada.AsString := 'False';
ADOQueryenc_faciva.AsString := label17.caption;
DataSource1.DataSet.Post;
if clientdatasetdet.State in [dsEdit, dsInsert] then
else
clientdatasetdet.Edit;
clientdatasetdetfact_num.AsString := DBEdit5.text;
ClientDataSetdettipo_doc.AsString := 'FACT';
ClientDataSetdetreng_neto.AsString := ClientDataSetdetttotal.text;
ClientDataSetdetcant_imp.AsString := ClientDataSetdettiva.text;
ClientDataSetdetanulado.AsString := 'False';
ClientDataSetdetcant_prod.AsString := ClientDataSetdettotal_art.AsString;
ClientDataSetdet.Post;
ClientDataSetdet.Next;
ClientDataSetdet.First;
ClientDataSetdet.ApplyUpdates(0);
Panel1.Enabled := false;
Panel2.Enabled := false;
PanelDatos.Enabled := false;
PanelConfirmar.Visible := false;
Showmessage('Se creo la factura: '+(edit1.text)+' correctamente ');
DataSource1.DataSet.Cancel;
DataSourcedet.DataSet.Cancel;
end;