unit U_CFAdd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, cxDropDownEdit, cxCalendar, BtnEdit; type TfrmCFAdd = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column5: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; ToolButton2: TToolButton; ToolButton3: TToolButton; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; ADOQueryTemp: TADOQuery; ADOCmd: TADOQuery; Label1: TLabel; DataSource1: TDataSource; Label2: TLabel; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CYCFBtnDnClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private canshu1:string; Fint:Integer; procedure InitSubGrid(); function SaveData():Boolean; { Private declarations } public FCYID,FCPID:String; CopyInt:Integer; { Public declarations } end; var frmCFAdd: TfrmCFAdd; implementation uses U_DataLink,U_Fun,U_iniParam,U_ZDYHelp; {$R *.dfm} procedure TfrmCFAdd.InitSubGrid(); begin try ADOCmd.DisableControls; with ADOCmd do begin Close; SQL.Clear; SQL.Add(' select * from CP_YDang_CF where mainid='''+FCPID+''' '); Open; end; SCreateCDS20(ADOCmd,Order_Sub); SInitCDSData20(ADOCmd,Order_Sub); finally ADOCmd.EnableControls; end; end; procedure TfrmCFAdd.FormShow(Sender: TObject); begin InitSubGrid(); end; procedure TfrmCFAdd.TBCloseClick(Sender: TObject); begin Close; end; function TfrmCFAdd.SaveData():Boolean; var Smaxno:String; begin try ADOQueryCmd.Connection.BeginTrans; with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('Id').AsString)='' then begin if GetLSNo(ADOQueryCmd,Smaxno,'CF','CP_YDang_CF',4,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin Smaxno:=Trim(Order_Sub.fieldbyname('Id').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from CP_YDang_CF where'); sql.Add(' ID='''+Trim(Smaxno)+''''); Open; end; with ADOQueryCmd do begin if IsEmpty then Append else Edit; FieldByName('MainId').Value:=Trim(Label1.Caption); FieldByName('Id').Value:=Trim(Smaxno); FieldByName('CYCF').Value:=Order_Sub.FieldByName('CYCF').AsString; fieldbyname('CYECF').Value:=Order_Sub.FieldByName('CYECF').AsString; fieldbyname('account').Value:=Order_Sub.FieldByName('account').AsString; Post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmCFAdd.ToolButton1Click(Sender: TObject); begin if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmCFAdd.CYCFBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text:=''; TBtnEditC(Sender).TxtCode:=''; end; procedure TfrmCFAdd.ToolButton2Click(Sender: TObject); var i:Integer; begin CopyAddRow(Tv1,Order_Sub); with Order_Sub do begin Edit; FieldByName('CYCF').Value:=''; FieldByName('CYECF').Value:=''; FieldByName('account').Value:=''; Post; end; end; procedure TfrmCFAdd.ToolButton3Click(Sender: TObject); begin if Trim(Order_Sub.fieldbyname('ID').AsString)<>'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete from CP_YDang_CF where ID='''+Trim(Order_Sub.fieldbyname('ID').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmCFAdd.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CYCF'; flagname:='成分'; V1Name.Caption:='中文名称'; V1Note.Caption:='英文名称'; fnote:=True; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('CYCF').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.Order_Sub.FieldByName('CYECF').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; end.