unit U_YsScXsList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC; type TfrmYsScXsList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; SPName: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; CRType: TComboBox; Label6: TLabel; SPCF: TEdit; Label7: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column17: TcxGridDBColumn; ToolButton1: TToolButton; cxTabControl1: TcxTabControl; cxGridPopupMenu1: TcxGridPopupMenu; v1Column16: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column25: TcxGridDBColumn; jzxNo: TEdit; Label10: TLabel; tdNo: TEdit; Label9: TLabel; v1Column23: TcxGridDBColumn; v1Column22: TcxGridDBColumn; Label30: TLabel; Label11: TLabel; ywy: TEdit; v1Column26: TcxGridDBColumn; v1Column27: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure v1Column17PropertiesChange(Sender: TObject); private canshu1,canshu2:string; procedure InitGrid(); function YFData():Boolean; procedure SetStatus(); { Private declarations } public { Public declarations } end; var frmYsScXsList: TfrmYsScXsList; implementation uses U_DataLink,U_Fun; {$R *.dfm} procedure TfrmYsScXsList.SetStatus(); begin if cxTabControl1.TabIndex=0 then begin ToolButton1.Visible:=True; end else begin ToolButton1.Visible:=False; end; end; function TfrmYsScXsList.YFData():Boolean; var CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName:String; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='+quotedstr(Trim(CDS_Main.fieldbyname('factoryName').AsString))); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; end else begin 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('FactoryName').Value:=Trim(CDS_Main.fieldbyname('factoryName').AsString); FieldByName('ZdyStr1').Value:='应付付'; Post; end; end; if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then begin Application.MessageBox('取应收最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1=2'); // YFID='''+Trim(YFID)+''' Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(CDS_Main.fieldbyname('SPID').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(CDS_Main.fieldbyname('factoryName').AsString); FieldByName('CRTime').Value:=CDS_Main.fieldbyname('CRTime').AsDateTime; FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').AsFloat; FieldByName('PS').Value:=CDS_Main.fieldbyname('PiQty').AsFloat; FieldByName('YFType').Value:='自动生成'; FieldByName('Price').Value:=CDS_Main.fieldbyname('Price').AsFloat; FieldByName('money').Value:=CDS_Main.fieldbyname('money').AsFloat; FieldByName('BBmoney').Value:=CDS_Main.fieldbyname('money').AsFloat; FieldByName('HuiLv').Value:=1; FieldByName('BZType').Value:=Trim(CDS_Main.fieldbyname('PriceUnit').AsString); FieldByName('ComTaiTou').Value:=''; FieldByName('QtyUnit').Value:=Trim(CDS_Main.fieldbyname('QtyUnit').AsString); FieldByName('orderNo').Value:=Trim(CDS_Main.fieldbyname('OrderNo').AsString); FieldByName('P_CodeNo').Value:=Trim(CDS_Main.fieldbyname('spcode').AsString); FieldByName('P_CodeName').Value:=Trim(CDS_Main.fieldbyname('SPName').AsString); FieldByName('P_Color').Value:=Trim(CDS_Main.fieldbyname('SPColor').AsString); FieldByName('P_KuanNO').Value:=Trim(CDS_Main.fieldbyname('SPKuanNO').AsString); FieldByName('YFName').Value:=Trim(CDS_Main.fieldbyname('CRType').AsString); FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); FieldByName('subId').Value:=Trim(CDS_Main.fieldbyname('subId').AsString); FieldByName('status').Value:='0'; // FieldByName('CYNO').Value:=Trim(CDS_Main.fieldbyname('CYNO').AsString); // FieldByName('ConPerson1').Value:=Trim(CDS_Main.fieldbyname('ConPerson1').AsString); Post; 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; Result:=True; end; procedure TfrmYsScXsList.FormDestroy(Sender: TObject); begin frmYsScXsList:=nil; end; procedure TfrmYsScXsList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYsScXsList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-30; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); end; procedure TfrmYsScXsList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' exec P_View_YSSCXS ' +quotedstr(Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))) +','+quotedstr(Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))) +','+quotedstr(inttostr(cxTabControl1.TabIndex))); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYsScXsList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmYsScXsList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmYsScXsList.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption,Tv1,'坯布仓库'); Close; end; procedure TfrmYsScXsList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption,Tv1,'坯布仓库'); { if Trim(canshu2)='查看' then begin TBAdd.Visible:=False; TBDel.Visible:=False; TBEdit.Visible:=False; end else begin TBAdd.Visible:=True; TBDel.Visible:=True; TBEdit.Visible:=True; end;} //InitGrid(); end; procedure TfrmYsScXsList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('坯布入库列表',cxGrid2); end; procedure TfrmYsScXsList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmYsScXsList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmYsScXsList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmYsScXsList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmYsScXsList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text))<4 then begin if Trim(SPID.Text)<>'' then Exit; end; TBFind.Click; end; procedure TfrmYsScXsList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYsScXsList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYsScXsList.ToolButton1Click(Sender: TObject); begin IF CDS_Main.IsEmpty then exit; IF not CDS_Main.Locate('ssel',true,[]) then begin application.MessageBox('没有选择数据!','提示信息',0); exit; end; ADOQueryCmd.Connection.BeginTrans; try with CDS_Main do begin DisableControls; first; while not eof do begin IF fieldbyname('ssel').AsBoolean then begin IF not YFData() then begin ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('生成应收款失败!','提示信息',0); end; end; next; end; first; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('生成应收款成功!','提示信息'); initGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('生成应收款失败!','提示信息',0); end; end; procedure TfrmYsScXsList.cxTabControl1Change(Sender: TObject); begin SetStatus(); INITGrid(); end; procedure TfrmYsScXsList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if button=mbright then end; procedure TfrmYsScXsList.v1Column17PropertiesChange(Sender: TObject); var HJQty,Fmoney:Double; HJPs:Integer; FSPID,FSubId,FCRTime:string; begin HJQty:=0; HJPs:=0; with CDS_Main do begin FSPID:=FieldByName('SPID').AsString; FSubId:=FieldByName('SubId').AsString; FCRTime:=FormatDateTime('yyyy-MM-dd',FieldByName('CRTime').AsDateTime); DisableControls; First; while not Eof do begin if FieldByName('ssel').AsBoolean then begin HJQty:=HJQty+FieldByName('Qty').AsFloat; HJPs:=HJPs+FieldByName('PiQty').AsInteger; Fmoney:=Fmoney+ FieldByName('money').AsFloat; end; Next; end; Label30.Caption:='选择匹数:'+FloatToStr(HJPs)+' 数量:'+FloatToStr(HJQty)+' 金额:'+FloatToStr(Fmoney); Locate('SPID;SubId;CRTime',VarArrayOf([FSPID,FSubId,FCRTime]),[]); EnableControls; end; end; end.