unit U_ClothContractListHZSel; 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, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmClothContractListHZSel = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; Label2: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; ConNo: TEdit; Label5: TLabel; C_CodeName: TEdit; TBExport: TToolButton; Order_Main: TClientDataSet; Label4: TLabel; C_Spec: TEdit; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; CDS_PRT: TClientDataSet; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1FactoryNo1Name: TcxGridDBColumn; v1PRTSpec: TcxGridDBColumn; v1Qty1: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1PRTQty: TcxGridDBColumn; v1Column4: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column3: TcxGridDBColumn; FactoryNoName: TEdit; Label6: TLabel; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1DblClick(Sender: TObject); private FInt, PFInt: Integer; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; function YFData(): Boolean; function HYYFData(): Boolean; function WKYFData(): Boolean; { Private declarations } public FFName, FFactoryName: string; { Public declarations } end; var frmClothContractListHZSel: TfrmClothContractListHZSel; implementation uses U_DataLink, U_Fun, U_ProductOrderList, U_ZDYHelp; {$R *.dfm} procedure TfrmClothContractListHZSel.FormDestroy(Sender: TObject); begin frmClothContractListHZSel := nil; end; procedure TfrmClothContractListHZSel.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmClothContractListHZSel.TBCloseClick(Sender: TObject); begin writeCxGrid(self.Caption, Tv1, '指示单管理'); Close; end; procedure TfrmClothContractListHZSel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.*,B.*,isnull(Deposit,0) as CDeposit,OrderNO=(select Top 1 OrderNo from JYOrder_main X where X.MainID=B.fromMainID)'); SQL.Add(',DHQty=(select sum(Qty) from yf_money_cr X where X.CGSubid=A.subid)'); sql.Add('from Contract_sub A'); sql.Add('inner join Contract_Main B on B.mainID=A.mainID'); sql.Add('where FillTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add('and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + ''''); sql.Add('and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + ''''); sql.Add('and HTType=''采购合同'' '); if FFactoryName <> '' then sql.Add('and FactoryNoName=''' + ffactoryname + ''' '); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmClothContractListHZSel.InitForm(); begin ReadCxGrid(self.Caption, Tv1, '指示单管理'); BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 90; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmClothContractListHZSel.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; function TfrmClothContractListHZSel.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from ContractSX_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; end; if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmClothContractListHZSel.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('坯布合同订单列表', cxGrid1); end; procedure TfrmClothContractListHZSel.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmClothContractListHZSel.ConNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmClothContractListHZSel.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmClothContractListHZSel.cxPageControl1Change(Sender: TObject); begin InitGrid(); end; function TfrmClothContractListHZSel.YFData(): Boolean; var CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string; begin Result := False; if GetLSNo(ADOQueryCmd, YFID, 'YF', 'YF_Money_CR', 3, 1) = False then begin Application.MessageBox('取定金最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString); FieldByName('ZdyStr1').Value := '应付付'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '付款登记'; FieldByName('CRFlag').Value := '应付付'; FieldByName('QtyFlag').Value := -1; FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString); FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp); FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString); FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString); FieldByName('Qty').Value := 0; FieldByName('PS').Value := 0; FieldByName('YFType').Value := '自动生成'; FieldByName('Price').Value := 0; if Order_Main.fieldbyname('CDeposit').asstring <> '' then begin FieldByName('money').Value := Order_Main.fieldbyname('CDeposit').AsFloat; FieldByName('BBmoney').Value := Order_Main.fieldbyname('CDeposit').AsFloat; end else begin FieldByName('money').Value := 0; FieldByName('BBmoney').Value := 0; end; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := 'RMB'; FieldByName('ComTaiTou').Value := ''; FieldByName('QtyUnit').Value := ''; FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString); FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString); FieldByName('YFName').Value := '坯布采购定金'; FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('status').Value := '0'; Post; end; Result := True; end; function TfrmClothContractListHZSel.HYYFData(): Boolean; var CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string; begin Result := False; if GetLSNo(ADOQueryCmd, YFID, 'YS', 'YF_Money_CR', 3, 1) = False then begin Application.MessageBox('取佣金最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString); FieldByName('ZdyStr1').Value := '应收收'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString); FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp); FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString); FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString); FieldByName('Qty').Value := Order_Main.fieldbyname('Qty').asstring; FieldByName('PS').Value := Order_Main.fieldbyname('RollNum').asstring; FieldByName('YFType').Value := '自动生成'; if Order_Main.fieldbyname('HYPrice').asstring <> '' then begin FieldByName('Price').Value := Order_Main.fieldbyname('HYPrice').AsFloat; FieldByName('money').Value := Order_Main.fieldbyname('Qty').AsFloat * Order_Main.fieldbyname('HYPrice').AsFloat; FieldByName('BBmoney').Value := Order_Main.fieldbyname('Qty').AsFloat * Order_Main.fieldbyname('HYPrice').AsFloat; end else begin FieldByName('Price').Value := 0; FieldByName('money').Value := 0; FieldByName('BBmoney').Value := 0; end; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := Order_Main.fieldbyname('HYPriceunit').AsString; FieldByName('ComTaiTou').Value := ''; FieldByName('QtyUnit').Value := Order_Main.fieldbyname('QtyUnit').AsString; FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString); FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString); FieldByName('YFName').Value := '坯布佣金'; FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('status').Value := '0'; Post; end; Result := True; end; function TfrmClothContractListHZSel.WKYFData(): Boolean; var CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string; begin Result := False; if GetLSNo(ADOQueryCmd, YFID, 'YF', 'YF_Money_CR', 3, 1) = False then begin Application.MessageBox('取尾款最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString); FieldByName('ZdyStr1').Value := '应付付'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '付款登记'; FieldByName('CRFlag').Value := '应付付'; FieldByName('QtyFlag').Value := -1; FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString); FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp); FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString); FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString); FieldByName('Qty').Value := 0; FieldByName('PS').Value := 0; FieldByName('YFType').Value := '自动生成'; FieldByName('Price').Value := 0; if Order_Main.fieldbyname('Wmoney').asstring <> '' then begin FieldByName('money').Value := Order_Main.fieldbyname('Wmoney').AsFloat; FieldByName('BBmoney').Value := Order_Main.fieldbyname('Wmoney').AsFloat; end else begin FieldByName('money').Value := 0; FieldByName('BBmoney').Value := 0; end; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := 'RMB'; FieldByName('ComTaiTou').Value := ''; FieldByName('QtyUnit').Value := ''; FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString); FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString); FieldByName('YFName').Value := '坯布采购尾款'; FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString); FieldByName('status').Value := '0'; Post; end; Result := True; end; procedure TfrmClothContractListHZSel.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmClothContractListHZSel.Tv1DblClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; ModalResult := 1; end; end.