unit U_BpRklistsel; 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, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxCalendar, cxCheckBox; type TfrmBpRklistsel = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: 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; Label2: TLabel; Label3: TLabel; Label4: TLabel; YWZB: 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; v1P_Code: TcxGridDBColumn; v1INoutNo: TcxGridDBColumn; Label7: TLabel; ywy: TEdit; v1ywy: TcxGridDBColumn; v1Column1: TcxGridDBColumn; kuwei: TEdit; Label8: TLabel; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; cxTabControl1: TcxTabControl; v1editer: TcxGridDBColumn; v1editTime: TcxGridDBColumn; v1DefStr6: TcxGridDBColumn; Label9: TLabel; factoryName: TEdit; v1Column9: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; ToolButton1: TToolButton; CheckBox1: TCheckBox; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure YWZBChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); private procedure InitGrid(); procedure SetComboBox(); // procedure Setstatus(); { Private declarations } public fCKName: string; canshu1: string; { Public declarations } end; var frmBpRklistsel: TfrmBpRklistsel; implementation uses U_DataLink, U_Fun10, U_ZDYHelp; {$R *.dfm} procedure TfrmBpRklistsel.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=''YPRKTYPE'''); 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 TfrmBpRklistsel.InitGrid(); begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('select A.*'); SQL.Add(',HRNAME=ISNULL((SELECT TOP 1 ISNULL(COHRNAME,CONAME) FROM COMPANY B WHERE A.FactoryName=B.CONAME AND VALID=''Y'' and cotype=''供应商''),FACTORYNAME)'); SQL.Add(' from YP_InOut A where 1=1 '); if CheckBox1.Checked = True then begin sql.Add('and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add('and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; // sql.Add('and CRFlag=''入库'' '); sql.Add('and valid=''Y'' '); if cxTabControl1.TabIndex = 0 then begin SQL.Add(' and not exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRID ) '); sql.Add('and ((JSFS=''其他月结'' and STATUS=0) or crtype= ''供应商退货'')'); //in (''买样入库'',''采购入库'',''捞色入库'') end else begin SQL.Add(' and exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRID )'); end; // ShowMessage(sql.Text); open; end; SCreateCDS20(ADOQueryCmd, CDS_Main); SInitCDSData20(ADOQueryCmd, CDS_Main); finally end; end; procedure TfrmBpRklistsel.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption, Tv1, '成品仓库'); Action := cafree; end; procedure TfrmBpRklistsel.FormDestroy(Sender: TObject); begin frmBpRklistsel := nil; end; procedure TfrmBpRklistsel.YWZBChange(Sender: TObject); begin if ADOQueryCmd.Active = False then Exit; SDofilter(ADOQueryCmd, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryCmd, CDS_Main); SInitCDSData20(ADOQueryCmd, CDS_Main); end; procedure TfrmBpRklistsel.FormShow(Sender: TObject); begin readCxGrid(self.Caption, Tv1, '外调布仓库'); SetComboBox(); Enddate.DateTime := SGetServerDate(ADOQueryTmp); begdate.DateTime := Enddate.DateTime - 30; InitGrid(); end; procedure TfrmBpRklistsel.FormCreate(Sender: TObject); begin BegDate.Date := DServerDate - 30; EndDate.Date := DServerDate; cxGrid1.Align := alclient; end; procedure TfrmBpRklistsel.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '外调布仓库'); close; end; procedure TfrmBpRklistsel.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; // with ADOQueryTmp do // begin // Close; // sql.Clear; // sql.Add('select sum(Qty*CRQtyFlag)as Qty from YP_InOut A'); // SQL.Add('where A.P_Code=''' + Trim(CDS_Main.fieldbyname('P_Code').AsString) + ''' '); // sQL.Add('and A.valid=''Y'''); // Open; // end; // // if ADOQueryTmp.FieldByName('Qty').AsInteger > 0 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 CRID=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + ''' '); execsql; end; TBRafresh.Click; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmBpRklistsel.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpRklistsel.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpRklistsel.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpRklistsel.cxTabControl1Change(Sender: TObject); begin initGrid(); end; procedure TfrmBpRklistsel.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 TfrmBpRklistsel.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 TfrmBpRklistsel.ToolButton1Click(Sender: TObject); begin ModalResult := 1; end; procedure TfrmBpRklistsel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmBpRklistsel.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[Tv1Column1.Index] = true then ACanvas.FONT.Color := CLRED; end; end.