unit U_YPCR; 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; type TfrmYPCR = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; CYSpec: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; CYName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CYNameChange(Sender: TObject); procedure Button2Click(Sender: TObject); procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); private { Private declarations } procedure InitGridHZ(); public { Public declarations } RKFlag,FCYID:String; procedure InitGrid(); function SaveData():Boolean; end; var frmYPCR: TfrmYPCR; implementation uses U_DataLink,U_Fun; {$R *.dfm} procedure TfrmYPCR.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select A.*,B.CYName,B.CYSpec,B.KCUnit from CK_YP_CR A'); sql.Add(' inner join CP_YDang B on A.CYID=B.CYID'); SQL.Add(' where A.CYID='''+Trim(FCYID)+''''); sql.Add(' and A.CRType='''+Trim(RKFlag)+''''); sql.Add('and A.CRTime>=:begdate and A.CRTime<:Enddate'); Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',begdate.DateTime)); Parameters.ParamByName('Enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYPCR.InitGridHZ(); begin end; procedure TfrmYPCR.FormDestroy(Sender: TObject); begin frmYPCR:=nil; end; procedure TfrmYPCR.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYPCR.TBCloseClick(Sender: TObject); begin WriteCxGrid('样品入库',Tv2,'样品管理'); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CK_YP_CR where isnull(CRTime,'''')='''' and CYID='''+Trim(FCYID)+''' and CRType='''+Trim(RKFlag)+''''); ExecSQL; end; Close; end; procedure TfrmYPCR.TBDelClick(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_HZ.fieldbyname('CRID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CK_YP_CR where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); SQL.Add('Update CP_YDang Set KCQty=(select isnull(Sum(CRQty*CRFlag),0) from CK_YP_CR A where A.CYID=CP_YDang.CYID )'); sql.Add(' where CYID='''+Trim(CDS_HZ.fieldbyname('CYID').AsString)+''''); ExecSQL; end; end; CDS_HZ.Delete; end; procedure TfrmYPCR.FormShow(Sender: TObject); begin ReadCxGrid('样品入库',Tv2,'样品管理'); Enddate.DateTime:=SGetServerDate(ADOQueryTemp); begdate.DateTime:=Enddate.DateTime-7; //InitGrid(); end; procedure TfrmYPCR.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYPCR.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); end; end; procedure TfrmYPCR.CYNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYPCR.Button2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_HZ.fieldbyname('SubID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete YCL_SG_HZ where SubID='''+Trim(CDS_HZ.fieldbyname('SubID').AsString)+''''); ExecSQL; end; end; CDS_HZ.Delete; end; function TfrmYPCR.SaveData():Boolean; var maxId:String; begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd,maxId,'RK','CK_YP_CR',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from CK_YP_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CYId').Value:=Trim(FCYID); FieldByName('CRId').Value:=Trim(maxId); SSetSaveDataCDSNew(ADOQueryCmd,Tv2,CDS_HZ,'CK_YP_CR',3); FieldByName('Filler').Value:=Trim(DName); FieldByName('CRType').Value:=Trim(RKFlag); if Trim(RKFlag)='入库' then begin FieldByName('CRFlag').Value:=1; end else begin FieldByName('CRFlag').Value:=-1; end; Post; end; with CDS_HZ do begin Edit; FieldByName('CRId').Value:=Trim(maxId); end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('增行失败!','提示',0); end; end; procedure TfrmYPCR.cxGridDBColumn8PropertiesEditValueChanged( Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YCL_SG_HZ '); if Trim(mvalue)<>'' then begin sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); end else begin sql.Add(' Set '+FFieldName+'=NULL'); end; SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where SubId='''+Trim(CDS_HZ.fieldbyname('SubId').AsString)+''''); ExecSQL; end; end; procedure TfrmYPCR.cxGridDBColumn5PropertiesEditValueChanged( Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CK_YP_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where CRId='''+Trim(CDS_HZ.fieldbyname('CRId').AsString)+''''); SQL.Add('Update CP_YDang Set KCQty=(select isnull(Sum(CRQty*CRFlag),0) from CK_YP_CR A where A.CYID=CP_YDang.CYID )'); sql.Add(' where CYID='''+Trim(CDS_HZ.fieldbyname('CYID').AsString)+''''); ExecSQL; end; end; procedure TfrmYPCR.cxGridDBColumn1PropertiesEditValueChanged( Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CK_YP_CR '); if Trim(mvalue)<>'' then begin sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); end else begin sql.Add(' Set '+FFieldName+'=NULL'); end; SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where CRId='''+Trim(CDS_HZ.fieldbyname('CRId').AsString)+''''); ExecSQL; end; end; end.