unit U_ContractListJG; 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, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, cxTextEdit, cxDropDownEdit; type TfrmContractListJG = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_Main: TDataSource; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; CDS_Sub: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; ToolButton1: TToolButton; v1Column1: TcxGridDBColumn; ToolButton2: TToolButton; ADOQueryPrint: TADOQuery; v1Column4: TcxGridDBColumn; PopupMenu2: TPopupMenu; N11: TMenuItem; N21: TMenuItem; N31: TMenuItem; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; BuyName: TEdit; Salesman: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; DS_Sub: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; Tqx: TToolButton; Tnoqx: TToolButton; ToolButton5: TToolButton; v1Column10: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column9: TcxGridDBColumn; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Main: TClientDataSet; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; v1XHNo: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; v1PRTPrice: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; btnTijiao: TToolButton; btnCXTijiao: TToolButton; V2Column1: TcxGridDBColumn; V2Column2: TcxGridDBColumn; v1Column13: TcxGridDBColumn; Label3: TLabel; Filler: TEdit; ToolButton3: TToolButton; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; V2Column3: TcxGridDBColumn; v1Column19: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure BuyNameChange(Sender: TObject); procedure tchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure TqxClick(Sender: TObject); procedure TnoqxClick(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure btnTijiaoClick(Sender: TObject); procedure btnCXTijiaoClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); private procedure InitGrid(); procedure InitForm(); procedure SetStatus(); procedure InitSub(); { Private declarations } public FFInt, FCloth: Integer; canshu1, FGSTT: string; { Public declarations } end; //var // frmContractListNX: TfrmContractListNX; implementation uses U_DataLink, U_ConInPutJG, U_Fun, U_ZDYHelp, U_FjList_RZ, U_SysLogHelp; {$R *.dfm} procedure TfrmContractListJG.InitSub(); begin if CDS_Main.IsEmpty then exit; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from SalesContract_sub '); sql.Add('where mainID =' + quotedstr((CDS_Main.fieldbyname('mainID').AsString))); open; end; SCreateCDS20(ADOQueryTemp, CDS_Sub); SInitCDSData20(ADOQueryTemp, CDS_Sub); end; procedure TfrmContractListJG.SetStatus(); begin TBAdd.Visible := false; tbedit.Visible := false; ToolButton2.Visible := false; tchk.Visible := false; tnochk.Visible := false; Tqx.Visible := false; TNoqx.Visible := false; TBPrint.Visible := False; btnTijiao.Visible := False; btnCXTijiao.Visible := False; if Trim(canshu1) = '录入' then begin ToolButton2.Visible := true; TBAdd.Visible := true; TBPrint.Visible := True; case cxTabControl1.TabIndex of 0: begin tbedit.Visible := true; Tqx.Visible := True; btnTijiao.Visible := True; end; 1: begin btnCXTijiao.Visible := True; end; 2: begin end; 3: begin TNoqx.Visible := true; end; end; end; if Trim(canshu1) = '审核' then begin ToolButton2.Visible := true; TBAdd.Visible := true; TBPrint.Visible := True; case cxTabControl1.TabIndex of 0: begin tbedit.Visible := true; Tqx.Visible := true; btnTijiao.Visible := True; end; 1: begin btnCXTijiao.Visible := True; tchk.Visible := True; end; 2: begin tnochk.Visible := True; end; 3: begin TNoqx.Visible := true; end; end; end; end; procedure TfrmContractListJG.FormDestroy(Sender: TObject); begin // frmContractListNX:=nil; end; procedure TfrmContractListJG.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmContractListJG.TBCloseClick(Sender: TObject); begin Close; writeCxGrid(self.Caption + tv1.Name, Tv1, '销售合同管理'); writeCxGrid(self.Caption + tv2.Name, Tv2, '销售合同管理'); end; procedure TfrmContractListJG.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.*'); sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.maiNID and X.TFType=''合同''),0)>0 then 1 else 0 end) as bit)'); sql.Add(',ZJinE=(select sum(SCSMxMoney) SCSMxMoney from SalesContract_sub B where B.MainId=A.MainId group by B.MainID)'); sql.Add(',ZJinUnit=(select TOP 1 SCSCurrency from SalesContract_sub B where B.MainId=A.MainId)'); sql.Add(',ZShuL=(select sum(SCSQty) SCSQty from SalesContract_sub B where B.MainId=A.MainId group by B.MainID)'); sql.Add(',ZShuUnit=(select TOP 1 SCSUnit from SalesContract_sub B where B.MainId=A.MainId)'); sql.Add(' from SalesContract_Main A '); SQL.Add('where A.OrdDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''''); SQL.Add('and A.OrdDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''''); sql.Add(' and A.SCMType=''加工'' '); if trim(DName)<>'ADMIN' then begin sql.Add(' and A.BuyName IN (SELECT OC.CoName FROM (SELECT X.UserName,C.CoName FROM OperatorAuthority X LEFT JOIN Company C ON C.CoID=X.DataId WHERE X.UserName ='+ quotedstr(trim(DName))+') OC)'); end; case cxTabControl1.TabIndex of 0: begin sql.Add(' and isnull(A.status,''-1'')=''-1'''); end; 1: begin sql.Add(' and isnull(A.status,''-1'')=''0'''); end; 2: begin sql.Add(' and isnull(A.status,''-1'')=''1'''); end; 3: begin sql.Add(' and isnull(A.status,''-1'')=''2'''); end; end; // showmessage(sql.text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractListJG.InitForm(); begin readCxGrid(self.Caption + tv1.Name, Tv1, '销售合同管理'); readCxGrid(self.Caption + tv2.Name, Tv2, '销售合同管理'); if FCloth = 1 then begin v1Column4.Visible := True; end else begin v1Column4.Visible := False; end; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 90; InitGrid(); end; procedure TfrmContractListJG.TBFindClick(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 TfrmContractListJG.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; try frmConInPutJG := TfrmConInPutJG.Create(Application); with frmConInPutJG do begin PState := '修改'; FMainId := Trim(Self.CDS_Main.fieldbyname('MainId').AsString); canshu1 := self.canshu1; FGSTT := self.FGSTT; if ShowModal = 1 then begin end; end; finally frmConInPutJG.Free; end; end; procedure TfrmContractListJG.TBPrintClick(Sender: TObject); var fPrintFile: string; EngMoney: string; begin if CDS_Main.IsEmpty then Exit; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\加工合同.rmf'; ExportFtErpFile('加工合同', ADOQueryPrint); with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(' from SalesContract_Main A inner join SalesContract_Sub B on A.MainId=B.MainId '); sql.Add(' where A.MainId=''' + Trim(CDS_Main.fieldbyname('MainId').AsString) + ''''); sql.Add(' order by B.XHNo '); Open; end; if FileExists(fPrintFile) then begin // RMVariables['EngMoney']:=EngMoney; //RMVariables['enddate']:=enddate.DateTime; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmContractListJG.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmContractListJG.TBAddClick(Sender: TObject); var maxno: string; begin try frmConInPutJG := TfrmConInPutJG.Create(Application); with frmConInPutJG do begin PState := '新增'; FMainId := ''; canshu1 := self.canshu1; FGSTT := self.FGSTT; if ShowModal = 1 then begin end; end; finally frmConInPutJG.Free; end; end; procedure TfrmContractListJG.FormShow(Sender: TObject); begin InitForm(); SetStatus(); end; procedure TfrmContractListJG.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if ToolButton1.Visible = False then Exit; ToolButton1.Click; end; procedure TfrmContractListJG.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractListJG.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractListJG.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmConInPutJG := TfrmConInPutJG.Create(Application); with frmConInPutJG do begin PState := '查看'; FMainId := Trim(Self.CDS_Main.fieldbyname('MainId').AsString); FGSTT := self.FGSTT; ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmConInPutJG.Free; end; end; procedure TfrmContractListJG.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmConInPutJG := TfrmConInPutJG.Create(Application); with frmConInPutJG do begin PState := '复制'; FMainId := Trim(Self.CDS_Main.fieldbyname('MainId').AsString); canshu1 := self.canshu1; if ShowModal = 1 then begin end; end; finally frmConInPutJG.Free; end; end; procedure TfrmContractListJG.BuyNameChange(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 TfrmContractListJG.tchkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''1'',Chktime=getdate(),Chker=' + quotedstr(trim(DName))); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同审核'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.TnochkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''0'',Chktime=null,Chker=null '); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同撤销审核'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('撤销审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.cxTabControl1Change(Sender: TObject); begin SetStatus(); TBRafresh.Click; end; procedure TfrmContractListJG.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(); end; procedure TfrmContractListJG.TqxClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''2'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同取消'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('合同取消成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('合同取消失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.TnoqxClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''-1'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同撤销取消'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('撤销合同取消成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销合同取消失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.ToolButton5Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmFjList_RZ := TfrmFjList_RZ.Create(Application); with frmFjList_RZ do begin fkeyNO := Trim(Self.CDS_Main.fieldbyname('MainId').AsString); fType := '合同'; if ShowModal = 1 then begin end; end; finally frmFjList_RZ.Free; end; end; procedure TfrmContractListJG.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index] = '2' then ACanvas.Brush.Color := clLime; if AViewInfo.GridRecord.Values[v1Column19.Index] <> null then begin ACanvas.Brush.Color := StrToIntDef(AViewInfo.GridRecord.Values[v1Column19.Index],$FFFFFF); end; end; procedure TfrmContractListJG.btnTijiaoClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''0'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同提交'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('提交成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('提交失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.btnCXTijiaoClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update SalesContract_Main SET status=''-1'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('加工合同撤销提交'))); sql.Add(',' + quotedstr(trim('合同号:' + trim(CDS_Main.FieldByName('conNo').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('撤销提交成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销提交失败!', '提示信息', 0); end; end; procedure TfrmContractListJG.ToolButton3Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := self.caption; showmodal; free; end; end; end.