unit U_CKProductBCPKCList; 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, Menus, cxCheckBox, Clipbrd, cxPC, Math; type TfrmCKProductBCPKCListPB = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; MovePanel2: TMovePanel; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ToolButton1: TToolButton; Panel1: TPanel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label12: TLabel; Label14: TLabel; Label9: TLabel; Label13: TLabel; C_CodeName: TEdit; C_Color: TEdit; ConNo: TEdit; MJID: TEdit; C_Code: TEdit; KHName: TEdit; CarNo: TEdit; APBatchNo: TEdit; Panel2: TPanel; Panel3: TPanel; cxTabControl1: TcxTabControl; Panel6: TPanel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; Label1: TLabel; LBCPAP: TLabel; tbOK: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Sel: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxgrdPS: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxgrdMJGW: TcxGridDBColumn; cxgrdMJNW: TcxGridDBColumn; cxgrdMJTare: TcxGridDBColumn; cxgrdMJLen: TcxGridDBColumn; v1Column7: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column11: TcxGridDBColumn; Label15: TLabel; MJDingChang: TComboBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure BTNPClick(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure tbOKClick(Sender: TObject); procedure ConNoChange(Sender: TObject); private FLeft, FTop: Integer; CurrentPage, RecordsNumber: Integer; procedure InitGrid(); procedure SetStatus(); { Private declarations } public { Public declarations } FPRTCode: string; canshu1: string; end; //var // frmCKProductBCPKCListPB: TfrmCKProductBCPKCListPB; implementation uses U_DataLink, U_Fun, U_SysLogHelp; {$R *.dfm} procedure TfrmCKProductBCPKCListPB.SetStatus(); var i: Integer; begin Panel6.Visible := False; case cxTabControl1.TabIndex of 0: begin ClearOrHideControls(Panel1, '0', True, True); ClearOrHideControls(Panel1, '1', True, False); for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := false; end; IsVisibleTV(Panel1, TV1, '0', True); cxgrdPS.Visible := True; cxgrdMJGW.Visible := True; cxgrdMJNW.Visible := True; cxgrdMJTare.Visible := True; cxgrdMJLen.Visible := True; end; 1: begin for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := True; end; cxgrdPS.Visible := false; ClearOrHideControls(Panel1, '0', False, True); ClearOrHideControls(Panel1, '1', False, True); Panel6.Visible := True; end; end; end; procedure TfrmCKProductBCPKCListPB.FormDestroy(Sender: TObject); begin // frmCKProductBCPKCListPB := nil; end; procedure TfrmCKProductBCPKCListPB.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKProductBCPKCListPB.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); //ShowMessage(Pwhere); if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; case cxTabControl1.TabIndex of 0: /////////////////////////订单汇总////////////////////////////// begin SQL.Add('select AA.*,BB.*,CC.* from ( '); sql.add(' select A.MainId,A.SubId,A.CKOrdNo,A.CRType,A.C_Code,A.C_CodeName,A.C_Color,A.C_Spec,A.MF,A.KZ,A.MJDingChang'); sql.add(',COUNT(A.MJID) PS,SUM(A.MJGW) MJGW,SUM(A.MJNW) MJNW,SUM(A.MJTare) MJTare,SUM(A.MJLen) MJLen'); sql.add(' from GreyCloth_CR A'); Sql.add(' inner join GreyCloth_KC B on A.MJID=B.MJID where B.KCValid=''Y'' and A.CRFlag=''入库'' '); if canshu1='扫描' then SQL.Add(' and '+Trim(FPRTCode)); SQL.Add(' group by A.MainId,A.SubId,A.CKOrdNo,A.CRType,A.C_Code,A.C_CodeName,A.C_Color,A.C_Spec,A.MF,A.KZ,A.MJDingChang '); SQL.Add(' ) AA left join Cloth_Main BB on AA.Mainid=BB.MainId'); SQL.Add(' left join Cloth_Sub CC on AA.SubId=CC.SubId '); sql.Add(fwhere); end; 1: /////////////////////////明细////////////////////////////// begin sql.Add('exec P_Page_GreyClothKC '); sql.Add('@pageIndex=' + inttostr(CurrentPage)); sql.Add(',@pageSize=' + inttostr(RecordsNumber)); sql.Add(',@criteria= ' + quotedstr(fwhere)); end; end; //showmessage(sql.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); if cxTabControl1.TabIndex = 1 then LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCKProductBCPKCListPB.TBRafreshClick(Sender: TObject); begin ConNo.SetFocus; ToolBar1.SetFocus; MovePanel2.Visible := True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible := False; end; procedure TfrmCKProductBCPKCListPB.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductBCPKCListPB.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '坯布仓库'); Close; end; procedure TfrmCKProductBCPKCListPB.FormShow(Sender: TObject); var fsj: string; begin CurrentPage := 1; RecordsNumber := 500; fsj := 'select distinct Code=Null,Name=CRType from GreyCloth_CR order by CRType '; // SInitComBoxBySql(ADOQueryTemp, CRType, False, fsj); ReadCxGrid(self.Caption, Tv1, '坯布仓库'); SetStatus(); InitGrid(); end; procedure TfrmCKProductBCPKCListPB.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('库存列表', cxGrid2); end; procedure TfrmCKProductBCPKCListPB.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCKProductBCPKCListPB.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCKProductBCPKCListPB.ToolButton1Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := self.caption; // facction:='生产指示单删除'; showmodal; free; end; end; procedure TfrmCKProductBCPKCListPB.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmCKProductBCPKCListPB.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmCKProductBCPKCListPB.Tv1DblClick(Sender: TObject); var Tabint: integer; begin Tabint := cxTabControl1.TabIndex; case Tabint of 0: begin AssignmentControls(Panel1, CDS_Main, '0'); cxTabControl1.TabIndex := 1; end; end; end; procedure TfrmCKProductBCPKCListPB.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmCKProductBCPKCListPB.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPKCListPB.tbOKClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if cds_main.FieldByName('ssel').AsBoolean=False then begin Application.MessageBox('请先选择数据!','提示',0); Exit; end; ModalResult := 1; end; procedure TfrmCKProductBCPKCListPB.ConNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end.