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, cxPC; 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; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label3: TLabel; Label4: TLabel; P_CodeName: TEdit; P_Code: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; v1CPTYPE: TcxGridDBColumn; ckName: TComboBox; Label6: TLabel; v1P_Color: TcxGridDBColumn; ADOPrint: TADOQuery; RMDB_MD: TRMDBDataSet; RMGridReport1: TRMGridReport; RMXLSExport1: TRMXLSExport; v1P_Code: TcxGridDBColumn; v1inoutNO: TcxGridDBColumn; TBsmADD: TToolButton; ywy: TEdit; Label7: TLabel; v1custName: TcxGridDBColumn; TbPrint1: TToolButton; v1Column1: TcxGridDBColumn; kuwei: TEdit; Label8: TLabel; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1defnote5: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cxTabControl1: TcxTabControl; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; P_Color: TEdit; Label9: TLabel; custName: TEdit; Label2: TLabel; Tchk: TToolButton; Tnochk: TToolButton; v1Column8: TcxGridDBColumn; v1BZType: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(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 TBsmADDClick(Sender: TObject); procedure TbPrint1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure CRTypeChange(Sender: TObject); procedure TBFindClick(Sender: TObject); private procedure InitGrid(); procedure SetComboBox(); procedure SetStatus(); { Private declarations } public fCKName:string; canshu1:string; { Public declarations } end; var frmBpCklist: TfrmBpCklist; implementation uses U_DataLink,U_Fun10,U_ZDYHelp, U_BpCk, U_BpSmCk; {$R *.dfm} procedure TfrmBpCklist.SetStatus(); begin TBedit.Visible:=false; Tbdel.Visible:=false; Tchk.Visible:=false; Tnochk.Visible:=false; IF trim(canshu1)='' then begin case cxTabControl1.TabIndex of 0:begin TBedit.Visible:=true; Tbdel.Visible:=true; end; 1:begin // tbcdel.Visible:=true; end; end; end else IF trim(canshu1)='业务员' then begin case cxTabControl1.TabIndex of 0:begin TBedit.Visible:=true; Tbdel.Visible:=true; end; 1:begin // tbcdel.Visible:=true; end; end; end else begin case cxTabControl1.TabIndex of 0:begin TBedit.Visible:=true; Tbdel.Visible:=true; Tchk.Visible:=true; end; 1:begin Tnochk.Visible:=true; end; end; end; end; procedure TfrmBpCklist.SetComboBox(); begin ckName.Items.Clear; with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''YPCK'' '); 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=''YPCKTYPE'''); 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.CYMF,B.CYKZ,B.defnote5 from YP_InOut A'); sql.Add('left join CP_YDang B on B.CYNO=A.P_Code'); 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=''出库'' '); sql.Add('and A.valid=''Y'' '); if trim(FckName)<>'' then sql.Add('and ckName='+quotedstr(trim(FckName)) ); if cxTabControl1.TabIndex<2 then sql.Add('and A.status='''+inttostr(cxTabControl1.TabIndex)+''' '); 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 frmbpck:=Tfrmbpck.create(self); with frmbpck do begin fkeyNo:=''; fType:=0; fckName:=self.fckName; IF trim(self.canshu1)='业务员'then begin ywy.text:=trim(Dname); ywy.Enabled:=false; end; if showmodal=1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; end; procedure TfrmBpCklist.FormShow(Sender: TObject); begin readCxGrid(self.Caption,Tv1,'成品仓库'); SetComboBox(); SetStatus(); InitGrid(); IF trim(self.canshu1)='业务员'then begin ywy.text:=trim(Dname); ywy.Enabled:=false; end; end; procedure TfrmBpCklist.FormCreate(Sender: TObject); begin BegDate.Date:=DServerDate-7; 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 A'); SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.status>=''1'' '); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('应收款数据已审核,不能修改!','提示',0); Exit; end; frmbpck:=Tfrmbpck.create(self); with frmbpck 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; 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 A'); SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.status>=''1'' '); 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 YP_InOut SET valid=''N'' '); sql.Add(',editer='+quotedstr(trim(DName))); sql.Add(',edittime=getdate()'); SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sql.Add('delete from YF_money_CR '); SQL.Add('where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); SQL.Add('and subID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' '); 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; with AdoPrint do begin close; sql.Clear; sql.Add('exec P_Print_cpCkMd '); sql.Add('@inoutNo='+quotedstr(trim(CDS_Main.fieldbyname('inoutNO').AsString))); sql.Add(',@flag='+quotedstr(trim(''))); open; end; try 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; finally end; end; procedure TfrmBpCklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmBpCklist.TBsmADDClick(Sender: TObject); begin frmbpsmck:=Tfrmbpsmck.create(self); with frmbpsmck do begin fkeyNo:=''; fType:=0; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; // self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; TBRafresh.Click; free; end; end; procedure TfrmBpCklist.TbPrint1Click(Sender: TObject); var filepath:string; begin if CDS_Main.IsEmpty then exit; with AdoPrint do begin close; sql.Clear; sql.Add('select inoutNo,custName,TocustName,P_Code,P_CodeName,P_Spec,sum(RollNum) as RollNum,sum(Qty) as Qty from CP_INout A '); sql.Add('where A.inoutNo='+quotedstr(trim(CDS_Main.fieldbyname('inoutNO').AsString))); sql.Add('group by inoutNo,custName,TocustName,P_Code,P_CodeName,P_Spec '); sql.Add('order by inoutNo,custName,TocustName,P_Code '); open; end; try 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; finally end; end; procedure TfrmBpCklist.cxTabControl1Change(Sender: TObject); begin SetStatus(); initGrid(); end; procedure TfrmBpCklist.TchkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YP_InOut SET status=''1'' '); sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; application.MessageBox('审核成功!','提示信息'); TBRafresh.Click; except application.MessageBox('审核失败!','提示信息',0); end; end; procedure TfrmBpCklist.TnochkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YP_InOut SET status=''0'' '); sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; application.MessageBox('撤销审核成功!','提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!','提示信息',0); end; end; procedure TfrmBpCklist.CRTypeChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmBpCklist.TBFindClick(Sender: TObject); begin if ADOQueryTmp.Active=False then Exit; SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryTmp,CDS_Main); SInitCDSData20(ADOQueryTmp,CDS_Main); end; end.