unit U_FinishedClothTJing; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, MovePanel, cxTextEdit, cxContainer, cxCurrencyEdit, BtnEdit, RM_e_main, RM_e_htm, RM_e_Graphic, RM_e_Jpeg, RM_e_txt, RM_e_csv, RM_E_llPDF, Math, Clipbrd, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmFinishedClothTJing = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_Main: TDataSource; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; RM2: TRMGridReport; RMDB_Main: TRMDBDataSet; ADOQueryPrint: TADOQuery; MovePanel2: TMovePanel; RMXLSExport1: TRMXLSExport; N3: TMenuItem; X1: TMenuItem; Order_Main: TClientDataSet; Panel3: TPanel; Panel2: TPanel; Panel4: TPanel; cxTabControl1: TcxTabControl; Panel6: TPanel; Label1: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; Panel1: TPanel; Label7: TLabel; Label5: TLabel; lab1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CPPERSON: TEdit; P_Code: TEdit; IsJYTime: TCheckBox; P_CodeName: TEdit; Label6: TLabel; KHName: TEdit; Label8: TLabel; ConNo: TEdit; ClType: TEdit; ToolButton1: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column32: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label4: TLabel; edtkano: TEdit; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure MJIDKeyPress(Sender: TObject; var Key: Char); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure MJStr2Change(Sender: TObject); procedure KHConNOKeyPress(Sender: TObject; var Key: Char); procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char); procedure N3Click(Sender: TObject); procedure X1Click(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure BTNPClick(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure APIDKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); private DQdate: TDateTime; FLeft, FTop: Integer; FDCheG, FPCode: string; CurrentPage, RecordsNumber: Integer; procedure InitGrid(); procedure InitForm(); function Savedata(): Boolean; { Private declarations } public FFInt: Integer; canshu1: string; procedure SetStatus(); { Public declarations } end; implementation uses U_DataLink, U_Fun, U_MJEdit, U_ZDYHelp, U_SysLogHelp; {$R *.dfm} procedure TfrmFinishedClothTJing.SetStatus(); var i: Integer; begin 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); v1Column10.Visible := True; v1Column1.Visible := True; Tv1Column1.Visible := True; Tv1Column3.Visible := True; Tv1Column4.Visible := True; Tv1Column5.Visible := True; end; 1: begin for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := True; end; v1Column1.Visible := False; ClearOrHideControls(Panel1, '0', False, True); ClearOrHideControls(Panel1, '1', False, True); // Tv1Column4.Visible := false; // Tv1Column5.Visible := false; end; end; end; procedure TfrmFinishedClothTJing.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmFinishedClothTJing.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; DQdate := SGetServerDate(ADOQueryTemp); end; procedure TfrmFinishedClothTJing.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '检验管理'); Close; end; procedure TfrmFinishedClothTJing.InitGrid(); var fwhere, Pwhere: string; begin MovePanel2.Left := (self.Width - MovePanel2.Width) div 2; MovePanel2.Visible := True; MovePanel2.Refresh; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; case cxTabControl1.TabIndex of 0: /////////////////////////订单汇总////////////////////////////// begin Pwhere := SGetFilters(Panel1, 1, 2); if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); sql.Add('exec P_CK_Cloth_TJHZ '); sql.add('@Begdate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)))); sql.Add(',@enddate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)))); sql.Add(',@WSql=' + QuotedStr(fwhere) + ' '); end; 1: /////////////////////////明细////////////////////////////// begin fwhere := ' where CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)); fwhere := fwhere + ' and CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)); // fwhere := fwhere + ' and ClType = ''停经'' '; Pwhere := SGetFilters(Panel1, 1, 2); if trim(Pwhere) <> '' then fwhere := fwhere + ' and ' + trim(Pwhere); sql.Add('exec P_CK_Cloth_TJList '); sql.Add('@pageIndex=' + inttostr(CurrentPage)); sql.Add(',@pageSize=' + inttostr(RecordsNumber)); sql.Add(',@criteria= ' + quotedstr(fwhere)); end; end; //ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); if cxTabControl1.TabIndex = 1 then LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); MovePanel2.Visible := false; finally ADOQueryMain.EnableControls; MovePanel2.Visible := false; end; end; procedure TfrmFinishedClothTJing.InitForm(); var fsj: string; begin ReadCxGrid(self.Caption, Tv1, '检验管理'); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmFinishedClothTJing.TBFindClick(Sender: TObject); var fsj, fwhere: string; begin end; procedure TfrmFinishedClothTJing.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; SetStatus(); InitGrid(); end; procedure TfrmFinishedClothTJing.FormShow(Sender: TObject); begin CurrentPage := 1; RecordsNumber := 500; InitForm(); SetStatus(); InitGrid(); end; procedure TfrmFinishedClothTJing.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft := X; FTop := Y; end; procedure TfrmFinishedClothTJing.N1Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmFinishedClothTJing.N2Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; function TfrmFinishedClothTJing.Savedata(): Boolean; var maxno, LLID: string; HXPS: Integer; HXQty, HXMQty: Double; begin HXPS := 0; HXQty := 0; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); sql.Add(' and FirstName=''' + Trim(Order_Main.fieldbyname('AOrddefstr4').AsString) + ''''); Open; end; LLID := Trim(ADOQueryTemp.fieldbyname('LLID').AsString); if Trim(LLID) = '' then begin Result := False; Application.MessageBox('没有相对应的加工厂!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxno, 'HX', 'Contract_Cloth_BefChkHX', 2, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取回修最大号失败!', '提示', 0); Exit; end; with Order_Main do begin First; while not Eof do begin if Order_Main.FieldByName('SSel').AsBoolean = True then begin HXPS := HXPS + 1; HXQty := HXQty + Order_Main.FieldByName('MJLen').Value; end; Next; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(''); Open; end; except end; end; procedure TfrmFinishedClothTJing.MJIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmFinishedClothTJing.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin //Clipboard.SetTextBuf(PChar(Trim(Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmFinishedClothTJing.MJStr2Change(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmFinishedClothTJing.KHConNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmFinishedClothTJing.RKOrdIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmFinishedClothTJing.N3Click(Sender: TObject); var SSubId, SGangNo: string; begin with Order_Main do begin SSubId := trim(FieldByName('SubId').AsString); Order_Main.DisableControls; first; while not eof do begin if SSubId = trim(FieldByName('SubId').AsString) then begin edit; FieldByName('SSel').value := true; Post; end else begin edit; FieldByName('SSel').value := false; Post; end; Next; end; Order_Main.Locate('SubId', VarArrayOf([SSubId]), []); Order_Main.EnableControls; end; end; procedure TfrmFinishedClothTJing.X1Click(Sender: TObject); var str, SSubId: string; ZChiShu, DQChiShu: integer; ISSel: boolean; begin ISSel := true; SSubId := trim(Order_Main.FieldByName('SubId').AsString); str := ''; if InputQuery('选择', '请输入数字', str) then begin ZChiShu := strtointdef(str, 0); if ZChiShu <= 0 then exit; with Order_Main do begin Order_Main.DisableControls; first; DQChiShu := 0; while not eof do begin if SSubId = trim(FieldByName('SubId').AsString) then begin edit; FieldByName('SSel').value := ISSel; DQChiShu := DQChiShu + 1; Post; end else begin edit; FieldByName('SSel').value := false; Post; end; if DQChiShu = ZChiShu then ISSel := false; Next; end; Order_Main.Locate('SubId', VarArrayOf([SSubId]), []); Order_Main.EnableControls; end; end; end; procedure TfrmFinishedClothTJing.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmFinishedClothTJing.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmFinishedClothTJing.BTNPClick(Sender: TObject); begin if CurrentPage < Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmFinishedClothTJing.Tv1DblClick(Sender: TObject); var Tabint: integer; begin Tabint := cxTabControl1.TabIndex; case Tabint of 0: begin AssignmentControls(Panel1, Order_Main, '0'); cxTabControl1.TabIndex := 1; end; end; end; procedure TfrmFinishedClothTJing.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmFinishedClothTJing.APIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; end; procedure TfrmFinishedClothTJing.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('停经产量统计', cxGrid1); end; end.