Hola foro estoy trabajando con clientdataset en dbgrid: explico: el dbgrid atado al datasource, el datasource al clientdataset, el clientdatase al provider y finalmente el provider al adoquery. por alguna razon cualdo le doy al buton2 (Guardar) no me guarda la informacion que tengo el grid a la base de dato.
Código Delphi
[-]
unit Unitajuste2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, DB, Provider, DBClient, ADODB,
Buttons, pngimage, ExtCtrls;
type
TFormajuste2 = class(TForm)
PageControl1: TPageControl;
Edit1: TEdit;
Edit2: TEdit;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
DataSetProvider1: TDataSetProvider;
ADOQuery1ajue_num: TIntegerField;
ADOQuery1reng_num: TIntegerField;
ADOQuery1art_desc: TMemoField;
ADOQuery1tipo: TStringField;
ADOQuery1co_art: TStringField;
ADOQuery1total_art: TFMTBCDField;
ADOQuery1uni_compra: TStringField;
ADOQuery1stotal_art: TFMTBCDField;
ADOQuery1suni_compr: TStringField;
ADOQuery1co_alma: TStringField;
ADOQuery1cost_unit_om: TFMTBCDField;
ADOQuery1cost_unit: TFMTBCDField;
ADOQuery1feccom: TDateTimeField;
ADOQuery1numcom: TIntegerField;
ADOQuery1uni_venta: TStringField;
ADOQuery1suni_venta: TStringField;
ADOQuery1cos_pro_un: TFMTBCDField;
ADOQuery1ult_cos_om: TFMTBCDField;
ADOQuery1cos_pro_om: TFMTBCDField;
ADOQuery1rowguid: TGuidField;
ADOQuery1total_uni: TFMTBCDField;
ADOQuery1nro_lote: TStringField;
ADOQuery1fec_lote: TDateTimeField;
ADOQuery1pendiente2: TFMTBCDField;
ADOQuery1tipo_doc2: TStringField;
ADOQuery1reng_doc2: TIntegerField;
ADOQuery1num_doc2: TIntegerField;
ADOQuery1aux01: TFMTBCDField;
ADOQuery1aux02: TStringField;
ADOQuery1mo_cant: TFMTBCDField;
ADOQuery1gf_cant: TFMTBCDField;
ADOQuery1mo_cant_om: TFMTBCDField;
ADOQuery1gf_cant_om: TFMTBCDField;
ADOQuery1produccion: TBooleanField;
ClientDataSet1ajue_num: TIntegerField;
ClientDataSet1reng_num: TIntegerField;
ClientDataSet1art_desc: TMemoField;
ClientDataSet1tipo: TStringField;
ClientDataSet1co_art: TStringField;
ClientDataSet1total_art: TFMTBCDField;
ClientDataSet1uni_compra: TStringField;
ClientDataSet1stotal_art: TFMTBCDField;
ClientDataSet1suni_compr: TStringField;
ClientDataSet1co_alma: TStringField;
ClientDataSet1cost_unit_om: TFMTBCDField;
ClientDataSet1cost_unit: TFMTBCDField;
ClientDataSet1feccom: TDateTimeField;
ClientDataSet1numcom: TIntegerField;
ClientDataSet1uni_venta: TStringField;
ClientDataSet1suni_venta: TStringField;
ClientDataSet1cos_pro_un: TFMTBCDField;
ClientDataSet1ult_cos_om: TFMTBCDField;
ClientDataSet1cos_pro_om: TFMTBCDField;
ClientDataSet1rowguid: TGuidField;
ClientDataSet1total_uni: TFMTBCDField;
ClientDataSet1nro_lote: TStringField;
ClientDataSet1fec_lote: TDateTimeField;
ClientDataSet1pendiente2: TFMTBCDField;
ClientDataSet1tipo_doc2: TStringField;
ClientDataSet1reng_doc2: TIntegerField;
ClientDataSet1num_doc2: TIntegerField;
ClientDataSet1aux01: TFMTBCDField;
ClientDataSet1aux02: TStringField;
ClientDataSet1mo_cant: TFMTBCDField;
ClientDataSet1gf_cant: TFMTBCDField;
ClientDataSet1mo_cant_om: TFMTBCDField;
ClientDataSet1gf_cant_om: TFMTBCDField;
ClientDataSet1produccion: TBooleanField;
Edit6: TEdit;
Edit5: TEdit;
Image3: TImage;
Label6: TLabel;
SpeedButton3: TSpeedButton;
Image2: TImage;
Label5: TLabel;
SpeedButton2: TSpeedButton;
Image1: TImage;
Label4: TLabel;
SpeedButton1: TSpeedButton;
ADOQuerycodajuste: TADOQuery;
ADOQuerycodajusteajue_num: TIntegerField;
ADOQuerycodajustefecha: TDateTimeField;
ADOQuerycodajustemotivo: TStringField;
ADOQuerycodajustetotal: TFMTBCDField;
ADOQuerycodajusteseriales: TIntegerField;
ADOQuerycodajustefeccom: TDateTimeField;
ADOQuerycodajustenumcom: TIntegerField;
ADOQuerycodajustetasa: TFMTBCDField;
ADOQuerycodajustemoneda: TStringField;
ADOQuerycodajustedis_cen: TMemoField;
ADOQuerycodajustecampo1: TStringField;
ADOQuerycodajustecampo2: TStringField;
ADOQuerycodajustecampo3: TStringField;
ADOQuerycodajustecampo4: TStringField;
ADOQuerycodajustecampo5: TStringField;
ADOQuerycodajustecampo6: TStringField;
ADOQuerycodajustecampo7: TStringField;
ADOQuerycodajustecampo8: TStringField;
ADOQuerycodajusteco_us_in: TStringField;
ADOQuerycodajustefe_us_in: TDateTimeField;
ADOQuerycodajusteco_us_mo: TStringField;
ADOQuerycodajustefe_us_mo: TDateTimeField;
ADOQuerycodajusteco_us_el: TStringField;
ADOQuerycodajustefe_us_el: TDateTimeField;
ADOQuerycodajusterevisado: TStringField;
ADOQuerycodajustetrasnfe: TStringField;
ADOQuerycodajusteco_sucu: TStringField;
ADOQuerycodajusterowguid: TGuidField;
ADOQuerycodajusteanulada: TBooleanField;
ADOQuerycodajusteaux01: TFMTBCDField;
ADOQuerycodajusteaux02: TStringField;
ADOQuerycodajusteproduccion: TBooleanField;
ADOQuerycodajusteimp_num: TIntegerField;
ADOQuerycodajustefact_num: TIntegerField;
ADOQuerycodart: TADOQuery;
ADOQuerycodartco_art: TStringField;
ADOQuerycodartart_des: TStringField;
ADOQuerycodartfecha_reg: TDateTimeField;
ADOQuerycodartmanj_ser: TBooleanField;
ADOQuerycodartco_lin: TStringField;
ADOQuerycodartco_cat: TStringField;
ADOQuerycodartco_subl: TStringField;
ADOQuerycodartco_color: TStringField;
ADOQuerycodartitem: TStringField;
ADOQuerycodartref: TStringField;
ADOQuerycodartmodelo: TStringField;
ADOQuerycodartprocedenci: TStringField;
ADOQuerycodartcomentario: TMemoField;
ADOQuerycodartco_prov: TStringField;
ADOQuerycodartubicacion: TStringField;
ADOQuerycodartuni_venta: TStringField;
ADOQuerycodartuni_compra: TStringField;
ADOQuerycodartuni_relac: TFMTBCDField;
ADOQuerycodartrelac_aut: TIntegerField;
ADOQuerycodartstock_act: TFMTBCDField;
ADOQuerycodartstock_com: TFMTBCDField;
ADOQuerycodartsstock_com: TFMTBCDField;
ADOQuerycodartstock_lle: TFMTBCDField;
ADOQuerycodartsstock_lle: TFMTBCDField;
ADOQuerycodartstock_des: TFMTBCDField;
ADOQuerycodartsstock_des: TFMTBCDField;
ADOQuerycodartsuni_venta: TStringField;
ADOQuerycodartsuni_compr: TStringField;
ADOQuerycodartsuni_relac: TBCDField;
ADOQuerycodartsstock_act: TFMTBCDField;
ADOQuerycodartrelac_comp: TFMTBCDField;
ADOQuerycodartrelac_vent: TFMTBCDField;
ADOQuerycodartpto_pedido: TFMTBCDField;
ADOQuerycodartstock_max: TFMTBCDField;
ADOQuerycodartstock_min: TFMTBCDField;
ADOQuerycodartprec_om: TBooleanField;
ADOQuerycodartprec_vta1: TFMTBCDField;
ADOQuerycodartfec_prec_v: TDateTimeField;
ADOQuerycodartfec_prec_2: TDateTimeField;
ADOQuerycodartprec_vta2: TFMTBCDField;
ADOQuerycodartfec_prec_3: TDateTimeField;
ADOQuerycodartprec_vta3: TFMTBCDField;
ADOQuerycodartfec_prec_4: TDateTimeField;
ADOQuerycodartprec_vta4: TFMTBCDField;
ADOQuerycodartfec_prec_5: TDateTimeField;
ADOQuerycodartprec_vta5: TFMTBCDField;
ADOQuerycodartprec_agr1: TFMTBCDField;
ADOQuerycodartprec_agr2: TFMTBCDField;
ADOQuerycodartprec_agr3: TFMTBCDField;
ADOQuerycodartprec_agr4: TFMTBCDField;
ADOQuerycodartprec_agr5: TFMTBCDField;
ADOQuerycodartcan_agr: TFMTBCDField;
ADOQuerycodartfec_des_p5: TDateTimeField;
ADOQuerycodartfec_has_p5: TDateTimeField;
ADOQuerycodartco_imp: TStringField;
ADOQuerycodartmargen_max: TBCDField;
ADOQuerycodartult_cos_un: TFMTBCDField;
ADOQuerycodartfec_ult_co: TDateTimeField;
ADOQuerycodartcos_pro_un: TFMTBCDField;
ADOQuerycodartfec_cos_pr: TDateTimeField;
ADOQuerycodartcos_merc: TFMTBCDField;
ADOQuerycodartfec_cos_me: TDateTimeField;
ADOQuerycodartcos_prov: TFMTBCDField;
ADOQuerycodartfec_cos_p2: TDateTimeField;
ADOQuerycodartult_cos_do: TFMTBCDField;
ADOQuerycodartfec_cos_do: TDateTimeField;
ADOQuerycodartcos_un_an: TFMTBCDField;
ADOQuerycodartfec_cos_an: TDateTimeField;
ADOQuerycodartult_cos_om: TFMTBCDField;
ADOQuerycodartfec_ult_om: TDateTimeField;
ADOQuerycodartcos_pro_om: TFMTBCDField;
ADOQuerycodartfec_pro_om: TDateTimeField;
ADOQuerycodarttipo_cos: TStringField;
ADOQuerycodartmont_comi: TBCDField;
ADOQuerycodartporc_cos: TBCDField;
ADOQuerycodartmont_cos: TBCDField;
ADOQuerycodartporc_gas: TBCDField;
ADOQuerycodartmont_gas: TBCDField;
ADOQuerycodartf_cost: TDateTimeField;
ADOQuerycodartfisico: TBooleanField;
ADOQuerycodartpunt_cli: TBCDField;
ADOQuerycodartpunt_pro: TBCDField;
ADOQuerycodartdias_repos: TIntegerField;
ADOQuerycodarttipo: TStringField;
ADOQuerycodartalm_prin: TStringField;
ADOQuerycodartanulado: TBooleanField;
ADOQuerycodarttipo_imp: TStringField;
ADOQuerycodartdis_cen: TMemoField;
ADOQuerycodartmon_ilc: TFMTBCDField;
ADOQuerycodartcapacidad: TBCDField;
ADOQuerycodartgrado_al: TBCDField;
ADOQuerycodarttipo_licor: TStringField;
ADOQuerycodartcompuesto: TBooleanField;
ADOQuerycodartpicture: TBlobField;
ADOQuerycodartcodigo1: TStringField;
ADOQuerycodartcodigo2: TStringField;
ADOQuerycodartcodigo3: TStringField;
ADOQuerycodartcodigo4: TStringField;
ADOQuerycodartcodigo5: TStringField;
ADOQuerycodartcodigo6: TStringField;
ADOQuerycodartcodigo7: TStringField;
ADOQuerycodartcodigo8: TStringField;
ADOQuerycodartco_us_in: TStringField;
ADOQuerycodartfe_us_in: TDateTimeField;
ADOQuerycodartco_us_mo: TStringField;
ADOQuerycodartfe_us_mo: TDateTimeField;
ADOQuerycodartco_us_el: TStringField;
ADOQuerycodartfe_us_el: TDateTimeField;
ADOQuerycodartrevisado: TStringField;
ADOQuerycodarttrasnfe: TStringField;
ADOQuerycodartco_sucu: TStringField;
ADOQuerycodartrowguid: TGuidField;
ADOQuerycodarttuni_venta: TStringField;
ADOQuerycodartequi_uni1: TFMTBCDField;
ADOQuerycodartequi_uni2: TFMTBCDField;
ADOQuerycodartequi_uni3: TFMTBCDField;
ADOQuerycodartlote: TBooleanField;
ADOQuerycodartserialp: TStringField;
ADOQuerycodartvalido: TBooleanField;
ADOQuerycodartatributo1: TBooleanField;
ADOQuerycodartvatributo1: TStringField;
ADOQuerycodartatributo2: TBooleanField;
ADOQuerycodartvatributo2: TStringField;
ADOQuerycodartatributo3: TBooleanField;
ADOQuerycodartvatributo3: TStringField;
ADOQuerycodartatributo4: TBooleanField;
ADOQuerycodartvatributo4: TStringField;
ADOQuerycodartatributo5: TBooleanField;
ADOQuerycodartvatributo5: TStringField;
ADOQuerycodartatributo6: TBooleanField;
ADOQuerycodartvatributo6: TStringField;
ADOQuerycodartgarantia: TStringField;
ADOQuerycodartpeso: TFMTBCDField;
ADOQuerycodartpie: TFMTBCDField;
ADOQuerycodartmargen1: TBCDField;
ADOQuerycodartmargen2: TBCDField;
ADOQuerycodartmargen3: TBCDField;
ADOQuerycodartmargen4: TBCDField;
ADOQuerycodartmargen5: TBCDField;
ADOQuerycodartrow_id: TBytesField;
ADOQuerycodartimagen1: TStringField;
ADOQuerycodartimagen2: TStringField;
ADOQuerycodarti_art_des: TStringField;
ADOQuerycodartuni_emp: TStringField;
ADOQuerycodartrel_emp: TFMTBCDField;
ADOQuerycodartmovil: TBooleanField;
ADOQuerycodarttot_costo: TFMTBCDField;
ClientDataSet1total: TFloatField;
procedure DBGrid1EditButtonClick(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure ClientDataSet1CalcFields(DataSet: TDataSet);
procedure ClientDataSet1NewRecord(DataSet: TDataSet);
procedure SpeedButton1Click(Sender: TObject);
private
public
end;
var
Formajuste2: TFormajuste2;
Lin: Integer;
implementation
uses unit1, unitconsultatipoaju, UNITSELECTPROD, UNITLISTAJU;
{$R *.dfm}
procedure TFormajuste2.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
ClientDataSet1.FieldByName('Total').AsFloat:=
ClientDataSet1.FieldByName('cost_unit').AsFloat *
ClientDataSet1.FieldByName('total_art').AsInteger;
end;
procedure TFormajuste2.ClientDataSet1NewRecord(DataSet: TDataSet);
begin
inc(lin);
ClientDataSet1reng_num.asfloat := Lin;end;
procedure TFormajuste2.DBGrid1EditButtonClick(Sender: TObject);
begin
if dbgrid1.selectedindex = 0 then
begin
ClientDataSet1reng_num.Value := DBGrid1.DataSource.DataSet.RecordCount;
end;
if Dbgrid1.SelectedIndex = 1 then
begin
Application.CreateForm(TFormconsultatipoaju, Formconsultatipoaju);
if Formconsultatipoaju.ShowModal = mrOk then
begin
if ClientDataSet1.State in [dsEdit, dsInsert] then
else
ClientDataSet1.Edit;
ClientDataSet1tipo.AsString := Formconsultatipoaju.ADOQuery1co_tipo.AsString;
Edit6.Text := Formconsultatipoaju.ADOQuery1des_tipo.AsString;
dbgrid1.selectedIndex := 3;
end;
begin
if Dbgrid1.SelectedIndex = 3 then
begin
Application.CreateForm(TFormselectprod, Formselectprod);
if Formselectprod.ShowModal = mrOk then
begin
if ClientDataSet1.State in [dsEdit, dsInsert] then
else
ClientDataSet1.Edit;
ClientDataSet1cost_unit.AsString := FormSelectProd.ADOQuery1cos_pro_un.AsString;
ClientDataSet1co_art.AsString := Formselectprod.ADOQuery1co_art.AsString;
ClientDataSet1uni_venta.AsString := FormSelectProd.ADOQuery1uni_venta.asstring;
Edit5.Text := FormSelectProd.ADOQuery1art_des.AsString;
if ClientDataSet1tipo.AsString = 'CP' then
dbgrid1.SelectedIndex := 6
else
dbgrid1.SelectedIndex := 4;
end;
end;
end;
end;
end;
procedure TFormajuste2.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if Dbgrid1.SelectedIndex = 0 then
Dbgrid1.SelectedIndex := 1
else if Dbgrid1.SelectedIndex = 1 then
Dbgrid1.SelectedIndex := 2
else if Dbgrid1.SelectedIndex = 2 then
Dbgrid1.SelectedIndex := 3
else if Dbgrid1.SelectedIndex = 3 then
Dbgrid1.SelectedIndex := 4
else if Dbgrid1.SelectedIndex = 4 then
Dbgrid1.SelectedIndex := 6
else if Dbgrid1.SelectedIndex = 6 then
begin
Dbgrid1.SelectedIndex := 1;
ClientDataSet1.Append;
end;
end;
end;
procedure TFormajuste2.SpeedButton1Click(Sender: TObject);
begin
ClientDataSet1.ApplyUpdates( 0 );
end;
end.
Agradeceria su ayuda