unit U_WDBLIST; 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 TfrmWDBLIST = 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; 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 frmWDBLIST: TfrmWDBLIST; implementation uses U_DataLink, U_Fun10, U_ZDYHelp; {$R *.dfm} procedure TfrmWDBLIST.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 TfrmWDBLIST.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 CW_FY_mx X where X.YFPZNO=A.CRID ) '); // sql.Add('and ((crtype in (''买样入库'',''采购入库'') and STATUS=0) or crtype= ''供应商退货'')'); end else begin SQL.Add(' and exists(select YFPZNO from CW_FY_mx X where X.YFPZNO=A.CRID )'); end; // ShowMessage(sql.Text); open; end; SCreateCDS20(ADOQueryCmd, CDS_Main); SInitCDSData20(ADOQueryCmd, CDS_Main); finally end; end; procedure TfrmWDBLIST.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption, Tv1, '成品仓库'); Action := cafree; end; procedure TfrmWDBLIST.FormDestroy(Sender: TObject); begin frmWDBLIST := nil; end; procedure TfrmWDBLIST.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 TfrmWDBLIST.FormShow(Sender: TObject); var FSJ: string; begin readCxGrid(self.Caption, Tv1, '外调布仓库'); FSJ := 'select DISTINCT CRTYPE AS NAME from YP_InOut ORDER BY CRTYPE '; SInitComBoxBySql(ADOQueryCmd, CRType, False, FSJ); // SetComboBox(); Enddate.DateTime := SGetServerDate(ADOQueryTmp); begdate.DateTime := Enddate.DateTime - 30; InitGrid(); end; procedure TfrmWDBLIST.FormCreate(Sender: TObject); begin BegDate.Date := DServerDate - 30; EndDate.Date := DServerDate; cxGrid1.Align := alclient; end; procedure TfrmWDBLIST.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '外调布仓库'); close; end; procedure TfrmWDBLIST.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 TfrmWDBLIST.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmWDBLIST.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmWDBLIST.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmWDBLIST.cxTabControl1Change(Sender: TObject); begin initGrid(); end; procedure TfrmWDBLIST.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 TfrmWDBLIST.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 TfrmWDBLIST.ToolButton1Click(Sender: TObject); begin ModalResult := 1; end; procedure TfrmWDBLIST.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmWDBLIST.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.