unit U_ZdyAttInputYCL; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDropDownEdit; type TfrmZdyAttInputYCL = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; ToolButton3: TToolButton; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v2Column6: TcxGridDBColumn; v2Column8: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; v2Column11: TcxGridDBColumn; v2Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure v2Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } procedure InitGrid(); function SaveData():Boolean; public { Public declarations } RKFlag,FCYID:String; fDEFstr5:string; end; var frmZdyAttInputYCL: TfrmZdyAttInputYCL; implementation uses U_DataLink,U_RTFun,U_ZDYHelp; {$R *.dfm} procedure TfrmZdyAttInputYCL.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select * from CP_Info where CPID='''+Trim(FCYID)+''''); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZdyAttInputYCL.FormDestroy(Sender: TObject); begin frmZdyAttInputYCL:=nil; end; procedure TfrmZdyAttInputYCL.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmZdyAttInputYCL.TBCloseClick(Sender: TObject); begin WriteCxGrid('原料信息录入',Tv2,'客户自定义'); Close; end; procedure TfrmZdyAttInputYCL.FormShow(Sender: TObject); begin ReadCxGrid('原料信息录入',Tv2,'客户自定义'); InitGrid(); if Trim(FCYID)='' then begin CDS_HZ.Append; CDS_HZ.Post; end; end; procedure TfrmZdyAttInputYCL.TBRafreshClick(Sender: TObject); begin InitGrid(); end; function TfrmZdyAttInputYCL.SaveData():Boolean; var maxId,CRID,fzdyCode:String; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FCYID)='' then begin if GetLSNo(ADOQueryCmd,maxId,'CP','CP_Info',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; end else begin maxId:=Trim(FCYID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from CP_Info where CPID='''+Trim(FCYID)+''''); Open; end; with ADOQueryCmd do begin if Trim(FCYID)='' then begin Append; FieldByName('Filler').Value:=Trim(DName); FieldByName('FillerCode').Value:=Trim(DCode); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditerCode').Value:=Trim(DName); FieldByName('Edittime').Value:=SGetServerDateTime(ADOQueryTemp); end; FieldByName('CPID').Value:=Trim(maxId); RTSetSaveDataCDS(ADOQueryCmd,Tv2,CDS_HZ,'',0); FieldByName('DataType').Value:='YCL'; FieldByName('Filler').Value:=Trim(DName); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CP_Info where isnull(SPName,'''')='''+Trim(CDS_HZ.fieldbyname('SPName').AsString)+''''); sql.Add('and isnull(SPSpec,'''')='''+Trim(CDS_HZ.fieldbyname('SPSpec').AsString)+''''); sql.Add(' and DataType=''YCL'' '); sql.Add(' and ZFFlag=0 '); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('此原料已录入!','提示',0); Exit; end; with CDS_HZ do begin Edit; FieldByName('CPID').Value:=Trim(maxId); Post; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!','提示',0); end; end; procedure TfrmZdyAttInputYCL.ToolButton3Click(Sender: TObject); begin cxGrid2.SetFocus; if Trim(CDS_HZ.FieldByName('SPName').AsString)='' then begin Application.MessageBox('原料名称不能为空!','提示',0); Exit; end; if Trim(CDS_HZ.FieldByName('QtyUnit').AsString)='' then begin Application.MessageBox('单位不能为空!','提示',0); Exit; end; if Application.MessageBox('确定要保存数据吗?','提示',32+4)<>IDYES then Exit; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmZdyAttInputYCL.v2Column8PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='QtyUnitYCL'; flagname:='单位'; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('QtyUnit').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZdyAttInputYCL.v2Column6PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='YCLName'; flagname:='原料名称'; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('SPName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZdyAttInputYCL.v2Column11PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='YCLSpec'; flagname:='原料规格'; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('SPSpec').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; end.