unit U_CKProductBCPKCHZMXList; 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, cxSplitter, cxTextEdit, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmCKProductBCPKCHZMXList = 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; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; cxGrid1: TcxGrid; tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; tv2Column1: TcxGridDBColumn; cds_color: TClientDataSet; DataSource2: TDataSource; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxGrid3: TcxGrid; TV3: TcxGridDBTableView; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridDBColumn15: TcxGridDBColumn; cxGridDBColumn16: TcxGridDBColumn; cxGridDBColumn17: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; CDS_MX: TClientDataSet; DataSource3: TDataSource; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; TV3Column1: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Label4: TLabel; CTYPE: TComboBox; cxSplitter1: TcxSplitter; Label5: TLabel; JLNOTE: TEdit; Tv1Column8: TcxGridDBColumn; ToolButton1: TToolButton; Panel5: TPanel; Label28: TLabel; Button5: TButton; Button6: TButton; BZ: TEdit; 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 c_CodeKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Tv1Column8PropertiesEditValueChanged(Sender: TObject); private procedure InitGrid(); procedure Initsub(); procedure Initsubb(); { Private declarations } public { Public declarations } end; var frmCKProductBCPKCHZMXList: TfrmCKProductBCPKCHZMXList; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmCKProductBCPKCHZMXList.FormDestroy(Sender: TObject); begin frmCKProductBCPKCHZMXList := nil; end; procedure TfrmCKProductBCPKCHZMXList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKProductBCPKCHZMXList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; BegDate.DateTime := SGetServerDateTime(ADOQueryTemp); EndDate.DateTime := SGetServerDateTime(ADOQueryTemp) end; procedure TfrmCKProductBCPKCHZMXList.InitGrid(); var fwhere, Pwhere: string; begin JLNOTE.SetFocus(); 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_CPKC'); if Pwhere <> '' then begin sql.Add('@mssql=' + QuotedStr(Pwhere)); end; Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCKProductBCPKCHZMXList.InitSUB(); begin try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; SQL.Add('EXEC P_VIEW_CPKC2 @CODE=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_CODE').AsString))); Open; end; SCreateCDS20(ADOQueryCmd, cds_color); SInitCDSData20(ADOQueryCmd, cds_color); finally ADOQueryCmd.EnableControls; end; end; procedure TfrmCKProductBCPKCHZMXList.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(a.mjid)ZPps,jynote=isnull(jynote,'''')'); SQL.Add(' from CK_BanCP_KC A inner join wfb_mjjy b on a.mjid=b.mjid 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('and MJStr2=''已入库'''); // SQL.Add('and EXISTS(select * from WFB_MJJY E WHERE E.MJID=A.MJID AND MJStr2=''已入库'')'); SQL.Add('group by C_CODE,C_COLOR,C_GANGNO,C_DJ,isnull(jynote,'''')'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTemp, cds_mx); SInitCDSData20(ADOQueryTemp, cds_mx); finally ADOQueryTemp.EnableControls; end; end; procedure TfrmCKProductBCPKCHZMXList.TBRafreshClick(Sender: TObject); begin //BegDate.SetFocus; MovePanel2.Visible := True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible := False; end; procedure TfrmCKProductBCPKCHZMXList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductBCPKCHZMXList.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '成品仓库'); WriteCxGrid(trim(self.Caption), Tv2, '成品仓库'); WriteCxGrid(trim(self.Caption), Tv3, '成品仓库'); Close; end; procedure TfrmCKProductBCPKCHZMXList.FormShow(Sender: TObject); var fsj: string; begin fsj := 'select distinct cpname as name from CP_Type '; SInitComBoxBySql(ADOQueryCmd, ctype, False, fsj); ReadCxGrid(trim(self.Caption), Tv1, '成品仓库'); ReadCxGrid(trim(self.Caption), Tv2, '成品仓库'); ReadCxGrid(trim(self.Caption), Tv3, '成品仓库'); InitGrid(); end; procedure TfrmCKProductBCPKCHZMXList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('库存汇总列表', cxGrid2); end; procedure TfrmCKProductBCPKCHZMXList.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 TfrmCKProductBCPKCHZMXList.c_CodeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmCKProductBCPKCHZMXList.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 TfrmCKProductBCPKCHZMXList.PRTColorChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCKProductBCPKCHZMXList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if CDS_Main.IsEmpty = True then Exit; Initsub(); end; procedure TfrmCKProductBCPKCHZMXList.tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if CDS_COLOR.IsEmpty = True then Exit; initsubb(); end; procedure TfrmCKProductBCPKCHZMXList.c_CodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCKProductBCPKCHZMXList.ToolButton1Click(Sender: TObject); begin BZ.Text := CDS_Main.fieldbyname('jlnote').AsString; Panel5.Visible := True; end; procedure TfrmCKProductBCPKCHZMXList.Button5Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try CDS_Main.DisableControls; ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set JLNOTE=''' + trim(BZ.Text) + ''' '); SQL.Add('WHERE MJID IN(SELECT A.MJID FROM CK_BanCP_KC A INNER JOIN CK_BANCP_CR B ON A.MJID=B.MJID AND B.CRFLAG=''入库'' WHERE '); SQL.Add('ISNULL(C_CODE,'''')=' + QuotedStr(CDS_Main.fieldbyname('c_Code').AsString)); SQL.Add(')'); // ShowMessage(sql.Text); ExecSQL; end; end; with CDS_Main do begin Edit; FieldbyName('jlnote').AsString := Trim(BZ.Text); Post; end; tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; application.MessageBox('数据保存成功!', '提示信息'); Panel5.Visible := false; exit; except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmCKProductBCPKCHZMXList.Button6Click(Sender: TObject); begin Panel5.Visible := False; end; procedure TfrmCKProductBCPKCHZMXList.Tv1Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); SQL.Add('WHERE MJID IN(SELECT A.MJID FROM CK_BanCP_KC A INNER JOIN CK_BANCP_CR B ON A.MJID=B.MJID AND B.CRFLAG=''入库'' WHERE '); SQL.Add('ISNULL(C_CODE,'''')=' + QuotedStr(CDS_Main.fieldbyname('c_Code').AsString)); SQL.Add(')'); // ShowMessage(SQL.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv1.Controller.EditingController.ShowEdit(); except tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; end.