unit U_BpCklist; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmBpCklist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1P_MF: TcxGridDBColumn; v1P_KZ: TcxGridDBColumn; v1RollNum: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1CRNO: TcxGridDBColumn; v1CRID: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; Label3: TLabel; Label4: TLabel; P_CodeName: TEdit; P_Color: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; v1MJID: TcxGridDBColumn; v1MJXH: TcxGridDBColumn; v1CPTYPE: TcxGridDBColumn; ckName: TComboBox; Label6: TLabel; v1P_Color: TcxGridDBColumn; ADOPrint: TADOQuery; RMDB_MD: TRMDBDataSet; RMGridReport1: TRMGridReport; RMXLSExport1: TRMXLSExport; v1orderNo: TcxGridDBColumn; v1customerNoname: TcxGridDBColumn; customerNoname: TEdit; Label7: TLabel; Label8: TLabel; v1SYRName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; ToolButton1: TToolButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure P_CodeNameChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); private procedure InitGrid(); procedure SetComboBox(); { Private declarations } public fCKName:string; { Public declarations } end; var frmBpCklist: TfrmBpCklist; implementation uses U_DataLink,U_Fun10,U_ZDYHelp, U_BpCk, U_BpYPCkEdit; {$R *.dfm} procedure TfrmBpCklist.SetComboBox(); begin ckName.Items.Clear; with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''BPCK'' '); if trim(fCKName)<>'' then sql.Add('and zdyName='+quotedstr(trim(fCKName))); open; while not eof do begin ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if ckName.Items.Count>0 then ckName.ItemIndex:=0; CRType.Items.Clear; CRType.Items.Add(''); with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); if trim(fCKName)<>'' then sql.Add('and note='+quotedstr(trim(fCKName))); open; while not eof do begin CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if CRType.Items.Count>0 then CRType.ItemIndex:=0; end; procedure TfrmBpCklist.InitGrid(); begin try with adoqueryTmp do begin close; sql.Clear; sql.Add('select A.*,B.orderNo,C.customerNoname from BP_InOut A'); sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); sql.Add('and CRFlag=''出库'' '); if trim(FckName)<>'' then sql.Add('and ckName='+quotedstr(trim(FckName)) ); open; end; SCreateCDS20(adoqueryTmp,CDS_Main); SInitCDSData20(adoqueryTmp,CDS_Main); finally end; end; procedure TfrmBpCklist.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption,Tv1,'布匹仓库'); Action:=cafree; end; procedure TfrmBpCklist.FormDestroy(Sender: TObject); begin frmBpCklist:=nil; end; procedure TfrmBpCklist.TBAddClick(Sender: TObject); begin frmBpYPCkEdit:=TfrmBpYPCkEdit.create(self); with frmBpYPCkEdit do begin fkeyNo:=''; fType:=0; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; TBRafresh.Click; end; procedure TfrmBpCklist.P_CodeNameChange(Sender: TObject); var m:string; begin if ADOQueryTmp.Active=False then Exit; SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); m:= SGetFilters(Panel1,1,2); SCreateCDS20(ADOQueryTmp,CDS_Main); SInitCDSData20(ADOQueryTmp,CDS_Main); end; procedure TfrmBpCklist.FormShow(Sender: TObject); begin readCxGrid(self.Caption,Tv1,'布匹仓库'); SetComboBox(); InitGrid(); end; procedure TfrmBpCklist.FormCreate(Sender: TObject); begin BegDate.Date:=DServerDate; EndDate.Date:=DServerDate; cxGrid1.Align:=alclient; end; procedure TfrmBpCklist.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmBpCklist.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' select * from YF_Money_CR '); SQL.Add(' where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sql.Add(' and status>=''1'' '); Open; if not IsEmpty then begin Application.MessageBox('应收款没有撤销审核,不能修改出库!','提示',0); exit; end; end; { with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from BP_InOut A'); SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); sQL.Add('and A.CRFlag=''出库'''); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('已产生出库数据,不能修改!','提示',0); Exit; end; } frmBpYPCkEdit:=TfrmBpYPCkEdit.create(self); with frmBpYPCkEdit do begin fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString; fType:=1; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; TBRafresh.Click; end; procedure TfrmBpCklist.TBDelClick(Sender: TObject); var YFID,CRID:string; begin if CDS_Main.IsEmpty then Exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' select * from YF_Money_CR '); SQL.Add(' where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sql.Add(' and status>=''1'' '); Open; if not IsEmpty then begin Application.MessageBox('应收款没有撤销审核,不能撤销出库!','提示',0); exit; end; end; { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then begin Application.MessageBox('不能操作他人的数据!','提示',0); Exit; end; } { with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from BP_InOut A'); SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); sQL.Add('and A.CRFlag=''出库'''); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('已产生出库数据,不能删除!','提示',0); Exit; end; } if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; try with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update BP_kc set RollNum=1, Qty=A.Qty + B.Qty '); sql.Add('from BP_kc A'); sql.Add('inner join BP_INout B on B.kcid=A.kcid'); sql.Add('where B.CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sql.Add('delete from BP_InOut '); SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').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('CRNO').AsString)))); sql.Add(','+quotedstr(trim('成功'))); sql.Add(')'); if CDS_Main.FieldByName('CRType').AsString='样品销售出库' then begin sql.Add('delete from YF_Money_CR '); SQL.Add('where maiNID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); 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='''+Trim(CRID)+''''); end; if CDS_Main.FieldByName('CRType').AsString='龙运样品销售出库' then begin sql.Add('delete from YF_Money_CR '); SQL.Add('where maiNID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); 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='''+Trim(CRID)+''''); end; execsql; end; TBRafresh.Click; except Application.MessageBox('数据删除失败!','提示信息',0); end; end; procedure TfrmBpCklist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpCklist.TBPrintClick(Sender: TObject); var filepath:string; begin if CDS_Main.IsEmpty then exit; { if trim(CDS_Main.FieldByName('CRType').AsString)<>'样品零售' then begin application.MessageBox('不是样品零售,不能打印出库单!','提示信息',0); exit; end; } with AdoPrint do begin close; sql.Clear; sql.Add('select A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler as xsyg,SUM(A.Qty) as Qty,AVG(A.Price) as Price,SUM(A.money) as Money, '); sql.Add('customNameAddress=(select Top 1 DEFNote1 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('DEFNote2=(select Top 1 DEFNote2 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('defstr8=(select Top 1 defstr8 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('defstr2=(select Top 1 defstr2 from KH_Zdy_Attachment X where X.ZdyName=A.cust),'); sql.Add('DEFNote3=(select Top 1 DEFNote3 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('P_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and Type=''CP'') '); sql.Add(',P_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and X.DEFstr3=A.P_Color and Type=''CP'') '); sql.Add('from BP_INout A '); sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); sql.Add('where A.CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); sql.Add('group by A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler'); open; end; try IF fCKName='样品仓库' then filepath:=ExtractFilePath(Application.ExeName) + 'report\出库码单样品.rmf' else filepath:=ExtractFilePath(Application.ExeName) + 'report\出库码单样品1.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); RMVariables['zdr'] :=trim(DName); RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); RMGridReport1.LoadFromFile(filepath); RMGridReport1.ShowReport; IF fCKName='样品仓库' then filepath:=ExtractFilePath(Application.ExeName) + 'report\出库码单标签.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); RMVariables['zdr'] :=trim(DName); RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); RMGridReport1.LoadFromFile(filepath); // RMGridReport1.ShowReport; RMGridReport1.PrintReport; finally end; end; procedure TfrmBpCklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmBpCklist.ToolButton1Click(Sender: TObject); var filepath:string; begin if CDS_Main.IsEmpty then exit; { if trim(CDS_Main.FieldByName('CRType').AsString)<>'样品零售' then begin application.MessageBox('不是样品零售,不能打印出库单!','提示信息',0); exit; end; } with AdoPrint do begin close; sql.Clear; sql.Add('select A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler as xsyg,SUM(A.Qty) as Qty,AVG(A.Price) as Price,SUM(A.money) as Money, '); sql.Add('customNameAddress=(select Top 1 DEFNote1 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('DEFNote2=(select Top 1 DEFNote2 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('defstr8=(select Top 1 defstr8 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('defstr2=(select Top 1 defstr2 from KH_Zdy_Attachment X where X.ZdyName=A.cust),'); sql.Add('DEFNote3=(select Top 1 DEFNote3 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); sql.Add('P_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and Type=''CP'') '); sql.Add(',P_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and X.DEFstr3=A.P_Color and Type=''CP'') '); sql.Add('from BP_INout A '); sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); sql.Add('where A.CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); sql.Add('group by A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler'); open; end; try filepath:=ExtractFilePath(Application.ExeName) + 'report\出库码单标签1.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); RMVariables['zdr'] :=trim(DName); RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); RMGridReport1.LoadFromFile(filepath); // RMGridReport1.ShowReport; RMGridReport1.PrintReport; finally end; end; end.