unit U_CPKCTMXLIST; 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, MovePanel, cxButtonEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxPC, cxCheckBox, cxSplitter, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmCPKCTMXLIST = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label3: TLabel; c_Code: TEdit; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; Tv1: TcxGridDBTableView; cxGrid2Level1: TcxGridLevel; cxGrid2: TcxGrid; v2Column1: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; Label6: TLabel; MJID: TEdit; v1Column6: TcxGridDBColumn; MovePanel2: TMovePanel; cds_color: TClientDataSet; DataSource2: TDataSource; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; CDS_MX: TClientDataSet; DataSource3: TDataSource; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Panel2: TPanel; cxGrid1: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; TV2Column7: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Label5: TLabel; C_COLOR: TEdit; Label7: TLabel; C_GANGNO: TEdit; Label8: TLabel; C_KUWEI: TEdit; cxTabControl1: TcxTabControl; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; TV2Column8: TcxGridDBColumn; CheckBox1: TCheckBox; Label4: TLabel; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; Tv1Column15: TcxGridDBColumn; cxStyleRepository3: TcxStyleRepository; cxStyle3: TcxStyle; crtype: TComboBox; cxSplitter1: TcxSplitter; 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 c_CodeChange(Sender: TObject); procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure PRTColorChange(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure cxTabControl1Change(Sender: TObject); procedure C_COLORKeyPress(Sender: TObject; var Key: Char); procedure C_GANGNOKeyPress(Sender: TObject; var Key: Char); procedure C_KUWEIKeyPress(Sender: TObject; var Key: Char); procedure c_CodeKeyPress(Sender: TObject; var Key: Char); procedure CheckBox1Click(Sender: TObject); procedure crtypeChange(Sender: TObject); private procedure InitGrid(); procedure Initsub(); procedure Initsubb(); { Private declarations } public { Public declarations } end; var frmCPKCTMXLIST: TfrmCPKCTMXLIST; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmCPKCTMXLIST.FormDestroy(Sender: TObject); begin frmCPKCTMXLIST := nil; end; procedure TfrmCPKCTMXLIST.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCPKCTMXLIST.FormCreate(Sender: TObject); var fsj: string; begin //cxGrid1.Align:=alClient; BegDate.DateTime := SGetServerDateTime(ADOQueryTemp); EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); fsj := 'select distinct name=crtype from CK_BanCP_CR where crflag=''出库'' order by crtype '; SInitComBoxBySql(ADOQueryCmd, crtype, False, fsj); CRType.ItemIndex := CRType.Items.IndexOf('销售出库'); end; procedure TfrmCPKCTMXLIST.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); if SGetFilters(Panel1, 1, 2) <> '' then Pwhere := ' and ' + SGetFilters(Panel1, 1, 2); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; SQL.Add('EXEC P_View_cpkcMX '); if cxTabControl1.TabIndex = 0 then begin SQL.Add('@DJ=''正品'''); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add('@DJ=''次品'''); end else begin SQL.Add('@DJ='''''); end; if CRTYPE.Text <> '' then begin SQL.Add(',@CKTYPE=' + QuotedStr(Trim(CRTYPE.Text))); end else begin SQL.Add(',@CKTYPE='''''); end; if CheckBox1.Checked = True then begin end else begin Pwhere := Pwhere + ' and ps>0'; end; if Pwhere <> '' then begin SQL.Add(',@mssql=' + QuotedStr(Pwhere)); end; // ShowMessage(sql.Text); // SQL.Add('select sum(KCKGQTY)KGQTY,SUM(KCQTY) QTY,COUNT(MJID)pS,C_CODE,C_COLOR,C_GANGNO,C_KUWEI,C_SALESCLASS,C_YWY, '); // SQL.Add('(CASE WHEN C_DJ=''次品'' or c_dj=''次布'' then ''次品'' else ''正品'' end)dj'); // sql.Add('FROM CK_BanCP_KC WHERE KCVALID=''Y'' '); // SQL.ADD('group by C_SALESCLASS,C_YWY,C_CODE,C_COLOR,C_GANGNO,C_KUWEI ,(CASE WHEN C_DJ=''次品'' or c_dj=''次布'' then ''次品'' else ''正品'' end)'); // if cxTabControl1.TabIndex = 0 then // begin // SQL.Add('and C_DJ<>''次品'' and c_dj<>''次布'''); // end // else if cxTabControl1.TabIndex = 1 then // begin // SQL.Add('and C_DJ in (''次品'',''次布'')'); // end; // showmessage(sql.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCPKCTMXLIST.InitSUB(); begin try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; SQL.Add('SELECT B.FILLER,A.KCKGQTY,A.KCQTY,A.C_DJ,A.MJID,B.JTTYPE,B.FILLTIME,A.C_KUWEI,B.MJXH,b.jynote,b.jbs,YCK=CAST((CASE WHEN MJSTR2=''已出库'' then 1 else 0 end )as bit) FROM CK_BanCP_KC A '); SQL.Add('INNER JOIN WFB_MJJY B ON A.MJID=B.MJID'); SQL.Add(' WHERE 1=1 '); //KCVALID=''Y'' SQL.Add('AND ISNULL(C_CODE,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_CODE').AsString))); SQL.Add('AND ISNULL(C_COLOR,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_COLOR').AsString))); SQL.Add('AND ISNULL(C_GANGNO,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_GANGNO').AsString))); SQL.Add('AND ISNULL(C_SALESCLASS,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_SALESCLASS').AsString))); SQL.Add('AND ISNULL(C_YWY,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_YWY').AsString))); SQL.Add('AND ISNULL(C_KUWEI,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_KUWEI').AsString))); SQL.Add('AND (CASE WHEN C_DJ=''次品'' or c_dj=''次布'' then ''次品'' else ''正品'' end)=' + QuotedStr(Trim(CDS_Main.fieldbyname('DJ').AsString))); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryCmd, cds_color); SInitCDSData20(ADOQueryCmd, cds_color); finally ADOQueryCmd.EnableControls; end; end; procedure TfrmCPKCTMXLIST.InitSUBb(); begin try ADOQueryTemp.DisableControls; with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; SQL.Add('select ISNULL(C_CODE,'''')C_CODE,ISNULL(C_COLOR,'''')C_COLOR,ISNULL(C_GANGNO,'''')C_GANGNO,C_DJ'); sql.Add(',sum(ISNULL(KCKGQty,0))ZPKCKGQty,sum(ISNULL(KCQty,0))ZPKCQty,count(mjid)ZPps'); SQL.Add(' from CK_BanCP_KC A where kcvalid=''Y'''); SQL.Add(' and a.Cycle=(select max(e.Cycle) from CK_BanCP_CR e where e.mjid=a.mjid)'); SQL.Add('AND C_CODE=' + QuotedStr(Trim(cds_color.fieldbyname('C_CODE').AsString))); SQL.Add('AND C_COLOR=' + QuotedStr(Trim(cds_color.fieldbyname('C_COLOR').AsString))); SQL.Add('group by C_CODE,C_COLOR,C_GANGNO,C_DJ'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTemp, cds_mx); SInitCDSData20(ADOQueryTemp, cds_mx); finally ADOQueryTemp.EnableControls; end; end; procedure TfrmCPKCTMXLIST.TBRafreshClick(Sender: TObject); begin //BegDate.SetFocus; MovePanel2.Visible := True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible := False; end; procedure TfrmCPKCTMXLIST.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCPKCTMXLIST.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '成品仓库'); // WriteCxGrid(trim(self.Caption), Tv2, '成品仓库'); // WriteCxGrid(trim(self.Caption), Tv3, '成品仓库'); Close; end; procedure TfrmCPKCTMXLIST.FormShow(Sender: TObject); begin ReadCxGrid(trim(self.Caption), Tv1, '成品仓库'); // ReadCxGrid(trim(self.Caption), Tv2, '成品仓库'); // ReadCxGrid(trim(self.Caption), Tv3, '成品仓库'); end; procedure TfrmCPKCTMXLIST.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('库存汇总列表', cxGrid2); end; procedure TfrmCPKCTMXLIST.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 TfrmCPKCTMXLIST.c_CodeChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCPKCTMXLIST.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'SOrdDefStr10'; flagname := '库存存放地点'; if ShowModal = 1 then begin with CDS_Main do begin Edit; FieldByName('SOrdDefStr10').Value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Sub Set SOrdDefStr10=''' + Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''''); sql.Add(' where SubId=''' + Trim(Self.CDS_Main.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCPKCTMXLIST.PRTColorChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCPKCTMXLIST.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if CDS_Main.IsEmpty = True then Exit; Initsub(); end; procedure TfrmCPKCTMXLIST.tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin // if CDS_COLOR.IsEmpty = True then // Exit; // initsubb(); end; procedure TfrmCPKCTMXLIST.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmCPKCTMXLIST.C_COLORKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCPKCTMXLIST.C_GANGNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCPKCTMXLIST.C_KUWEIKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCPKCTMXLIST.c_CodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCPKCTMXLIST.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmCPKCTMXLIST.crtypeChange(Sender: TObject); begin initgrid(); end; end.