Ver Mensaje Individual
  #1  
Antiguo 08-05-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Reputación: 13
gianfranco_tont Va por buen camino
Wink clientdataset no guarda los datos

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); //GUARDA CORRELATIVO
   ADOQuery4.Post;
   //begin
   //datasourcedet.DataSet.Delete;
   ADOQueryenc_fac.edit;
   //ADOQueryenc_fac.Append;
   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;
      //begin
      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.Next;
      ClientDataSetdet.Post;
      ClientDataSetdet.Next;
      //begin
      ClientDataSetdet.First;
      ClientDataSetdet.ApplyUpdates(0);
      //end;
         //begin
         {adoqueryart.Close;
         adoqueryart.SQL.Clear;
         ADOQueryart.SQL.Add('select * from art');
         ADOQueryart.SQL.Add('where co_art = '+coma+ClientDataSetdetco_art.AsString+coma);
         adoqueryart.Open;
         ClientDataSetdet.First;
         while not ADOQueryart.Eof do
         if ADOQueryart.State in [dsEdit, dsInsert] then
         else
         ADOQueryart.Edit;
         ADOQueryartstock_act.value := ADOQueryartstock_act.AsString - ClientDataSetdettotal_art.value;
         ADOQueryart.post;
         ADOQueryart.Next;}
         //end;
      Panel1.Enabled := false;
      Panel2.Enabled := false;
      PanelDatos.Enabled := false;
      PanelConfirmar.Visible := false;
      //end;
      Showmessage('Se creo la factura: '+(edit1.text)+' correctamente ');
      DataSource1.DataSet.Cancel;
      DataSourcedet.DataSet.Cancel;

  end;
Responder Con Cita