unit U_JWLInChkList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxCalendar, cxButtonEdit, cxDropDownEdit, DBClient, Menus, cxSplitter, cxTextEdit, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, RM_e_Xls, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk; type TfrmJWLInChkList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label7: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; YCLName: TEdit; YCLSpec: TEdit; GYSName: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column1: TcxGridDBColumn; v1DepotClass: TcxGridDBColumn; v1P_ChnName: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1ShortName: TcxGridDBColumn; v1Quantity: TcxGridDBColumn; v1UnitName: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; CDS_Main: TClientDataSet; v1Column3: TcxGridDBColumn; RMDB_Main: TRMDBDataSet; RM1: TRMGridReport; RMXLSExport1: TRMXLSExport; KCPlace: TEdit; Label6: TLabel; Label8: TLabel; CRType: TComboBox; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; ToolButton1: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure YCLNameChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure ToolButton1Click(Sender: TObject); private canshu1,canshu2,canshu3:String; procedure InitGrid(); procedure InitForm(); function DelYFData():Boolean; { Private declarations } public { Public declarations } end; implementation uses U_DataLink,U_RTFun,U_JWLChkIn, U_ModuleNote; {$R *.dfm} procedure TfrmJWLInChkList.FormDestroy(Sender: TObject); begin // frmJWLInChkList:=nil; end; procedure TfrmJWLInChkList.FormClose(Sender: TObject; var Action: TCloseAction); begin Application:=MainApplication; Action:=caFree; end; procedure TfrmJWLInChkList.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); canshu3:=Trim(DParameters3); end; procedure TfrmJWLInChkList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('X入库列表',Tv1,'原材料仓库'); end; procedure TfrmJWLInChkList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from CK_YCLONE_CR A'); SQL.Add(' where CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); SQL.Add(' and CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''); sql.Add(' and CKName='''+Trim(canshu1)+''''); SQL.Add(' and CRFlag=''入库'' '); {if Trim(canshu3)<>'高权限' then begin sql.Add(' and isnull(FillerCode,'''')='''+Trim(DCode)+''''); end; } Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmJWLInChkList.InitForm(); begin ReadCxGrid('X入库列表',Tv1,'原材料仓库'); EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-7; InitGrid(); end; procedure TfrmJWLInChkList.TBFindClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; procedure TfrmJWLInChkList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(canshu2)<>'高权限' then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from CK_YCLONE_CR where RKID='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin Application.MessageBox('已有出库数据不能修改!','提示',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_YCLONE_CR where MSID='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); Open; end; if ADOQueryTemp.FieldByName('Chker').AsString<>'' then begin Application.MessageBox('已审核不能修改!','提示',0); Exit; end; end; try frmJWLChkIn:=TfrmJWLChkIn.Create(Application); with frmJWLChkIn do begin frmJWLChkIn.Canshu1:=Trim(Self.canshu1); FMainId:=Trim(self.CDS_Main.fieldbyname('MSId').AsString); ToolButton2.Visible:=False; ToolButton3.Visible:=False; v1Column3.Options.Focusing:=False; if ShowModal=1 then begin Self.InitGrid(); Self.TBFind.Click; Self.CDS_Main.Locate('MSId',FMainID,[]); end; end; finally frmJWLChkIn.Free; end; end; procedure TfrmJWLInChkList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from CK_YCLONE_CR where RKID='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); sql.Add(' and JSFlag=-1 '); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已有出库数据不能删除!','提示',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_YCLONE_CR where MSID='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); Open; end; if ADOQueryTemp.FieldByName('Chker').AsString<>'' then begin Application.MessageBox('已审核不能删除数据!','提示',0); Exit; end; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete from CK_YCLONE_CR where MSID='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmJWLInChkList.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel('入库列表',cxGrid1); end; procedure TfrmJWLInChkList.TBPrintClick(Sender: TObject); var fPrintFile,FConNoM,RPTName:string; begin if CDS_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\机染入库日报表.rmf' ; if FileExists(fPrintFile) then begin RMVariables['begdate']:=BegDate.DateTime; RMVariables['enddate']:=enddate.DateTime; //RMVariables['printtime']:=Now; //RMVariables['printer']:=Trim(gUserName); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+RPTName),'提示',0); end; end; procedure TfrmJWLInChkList.TBAddClick(Sender: TObject); begin try frmJWLChkIn:=TfrmJWLChkIn.Create(Application); with frmJWLChkIn do begin FMainID:=''; frmJWLChkIn.Canshu1:=Trim(Self.canshu1); if ShowModal=1 then begin Self.InitGrid(); Self.TBFind.Click; Self.CDS_Main.Locate('MSId',FMainID,[]); end; end; finally frmJWLChkIn.Free; end; end; procedure TfrmJWLInChkList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmJWLInChkList.YCLNameChange(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; procedure TfrmJWLInChkList.FormShow(Sender: TObject); begin InitForm(); end; function TfrmJWLInChkList.DelYFData():Boolean; var CRID,OrdMainId,YFID:String; begin Result:=False; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFTypeId='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin Result:=True; Exit; end; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(CDS_Main.fieldbyname('GYSName').AsString)+''''); SQL.Add(' and ZdyStr1=''应付付'' '); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR where YFTypeId='''+Trim(CDS_Main.fieldbyname('MSID').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID='+CRID); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where CRID='+CRID); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete YF_Money_KC where CRID='+CRID); ExecSQL; end; end; end; Result:=True; end; procedure TfrmJWLInChkList.Tv1StylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var id,id10:Integer; begin {if Trim(DParameters7)='已付金额' then begin try if Tv1.GroupedItemCount=0 then begin Id:=Tv1.GetColumnByFieldName('YFMoney').Index-tv1.GroupedItemCount; if Trim(VarToStr(ARecord.Values[id]))='' then Exit; if Id<=0 then Exit; if ARecord.Values[id]>0 then AStyle:=DataLink_JWLCK.Red; end else begin end; except end; end; } end; procedure TfrmJWLInChkList.ToolButton1Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='办公用品入库'; if ShowModal=1 then begin end; end; finally frmModuleNote.Free; end; end; end.