unit U_ProductOrderSel; 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, StrUtils, Menus, cxTextEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseHelp, System.ImageList, Vcl.ImgList, U_BaseInput; type TfrmProductOrderSel = class(TfrmBaseHelp) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; v1OrderNo: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; Label4: TLabel; BuyName: TEdit; v1MPRTCodeName: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; Label8: TLabel; SCSName: TEdit; Label9: TLabel; ConNo: TEdit; v1MPRTKZ: TcxGridDBColumn; v1OrdDefStr1: TcxGridDBColumn; Label10: TLabel; SCOrderNo: TEdit; Label11: TLabel; SCSCode: TEdit; Label12: TLabel; SCSKZ: TEdit; Label13: TLabel; SCSMF: TEdit; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; ADOQueryCmdSC: TADOQuery; ADOQueryCmdFileContent: TBlobField; ADOQueryCmdFtFileName: TStringField; ADOQueryCmdFileEditDate: TDateTimeField; ADOQueryCmdFileSize: TFloatField; ADOQueryCmdFiller: TStringField; ADOQueryCmdLastEditTime: TDateTimeField; ADOQueryCmdLastEditer: TStringField; ADOQueryCmdFileCreateDate: TDateTimeField; ADOQueryCmdchildPath: TStringField; ADOQueryCmdFileType: TStringField; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Label2: TLabel; SCSColor: TEdit; Label3: TLabel; Label5: TLabel; SCSHX: TEdit; SCSColorno: TEdit; ToolButton1: TToolButton; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure OrderNoMChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure v1Column3PropertiesEditValueChanged(Sender: TObject); procedure v1Column1PropertiesEditValueChanged(Sender: TObject); procedure v1Column6PropertiesEditValueChanged(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure v1Column8PropertiesChange(Sender: TObject); procedure ConNoChange(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv1DblClick(Sender: TObject); private DQdate: TDateTime; procedure InitGrid(); procedure InitForm(); function UPLabel(LabelName, LabelPath: string): Boolean; function PostFileToData(LabelName, LabelPath: string): boolean; { Private declarations } public FFInt, FCloth: Integer; canshu1, Forderno, FColor, FCROrderNo: string; { Public declarations } end; var // newh: hwnd; frmProductOrderSel: TfrmProductOrderSel; implementation uses U_DataLink, U_RTFun, U_LabelList; {$R *.dfm} function TfrmProductOrderSel.PostFileToData(LabelName, LabelPath: string): boolean; var mFileName, fFileName, fpathFileName: string; Stream: TMemoryStream; mfileSize: integer; mCreationTime: TdateTime; mWriteTime: TdateTime; // ADOQueryCmdFileContent: TBlobField; begin result := false; fFileName := Trim(LabelName) + '.rmf'; fpathFileName := Trim(LabelPath); try ADOQueryCmdSC.Connection.BeginTrans; try with ADOQueryCmdSC do begin close; sql.Clear; sql.Add('delete from RT_FileUpdate'); sql.Add('where FileName=' + quotedStr(trim(fFileName))); execsql; end; with ADOQueryCmdSC do begin close; sql.Clear; sql.Add('select * from RT_FileUpdate'); sql.Add('where FileName=' + quotedStr(trim(fFileName))); Open; ////////////////////////// //获取文件信息 GetFileInfo(Trim(fpathFileName), mfileSize, mCreationTime, mWriteTime); if RecordCount <= 0 then begin Append; fieldByName('FileName').AsString := trim(fFileName); end else begin edit; end; fieldByName('FileEditDate').Value := mWriteTime; fieldByName('FileCreateDate').Value := mCreationTime; fieldByName('FileSize').Value := mfileSize; fieldByName('Filler').Value := Dname; fieldByName('LastEditer').Value := Dname; fieldByName('LastEditTime').Value := Now(); // if pos('.rmf',fFileName)>0 then begin fieldByName('FilePath').Value := 'report'; fieldByName('FileType').Value := '公用'; end; //将OLE数据存入数据库 RM1.SaveToBlobField(TBlobField(FieldByName('Files'))); // ADOQueryCmdFileContent.LoadFromFile(fpathFileName); //ADOQueryCmdFileContent.LoadFromStream(Stream); post; end; finally end; result := true; ADOQueryCmdSC.Connection.CommitTrans; except ADOQueryCmdSC.Connection.RollbackTrans; Result := False; application.MessageBox(pchar('提交文件[' + trim(fFileName) + ']失败!'), '提示信息', MB_ICONERROR); end; end; function TfrmProductOrderSel.UPLabel(LabelName, LabelPath: string): Boolean; begin try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from P_Label'); sql.Add('where LabelCaption=' + quotedstr(LabelName)); Open; if ADOQueryCmd.IsEmpty then begin Append; fieldByName('filler').value := DName; fieldByName('filltime').value := DServerDate; fieldByName('beizhu').value := ''; fieldByName('LabelCaption').value := trim(LabelPath); fieldByName('LabelType').value := '中文标签'; fieldByName('LabelFileName').value := trim(LabelName); RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); end else begin Edit; fieldByName('Editer').value := DName; fieldByName('EditTime').value := DServerDate; end; RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); Post; end; ADOQueryCmd.Connection.CommitTrans; result := true; except ADOQueryCmd.Connection.RollbackTrans; Result := false; application.MessageBox('保存标签模板出错!', '警告信息', 0); end; end; procedure TfrmProductOrderSel.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmProductOrderSel.FormCreate(Sender: TObject); begin inherited; cxgrid1.Align := alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate := SGetServerDate(ADOQueryTemp); end; procedure TfrmProductOrderSel.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('标签设置', Tv1, '生产指示单管理'); end; procedure TfrmProductOrderSel.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); if trim(Pwhere) <> '' then fwhere := fwhere + ' and ' + trim(Pwhere); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.add('select DISTINCT AA.* ,V.SCOrderNo '); sql.add('from '); sql.add('(select A.ConNo,A.OrdDate,A.BuyName,B.*'); sql.add('from SalesContract_Main A inner join SalesContract_Sub B on A.MainId=B.MainId '); sql.add('where 1=1'); sql.add(')AA join V_Ord_MS V on AA.ConNo=V.ConNo where 1=1 ' + fwhere); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmProductOrderSel.N1Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmProductOrderSel.N2Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; procedure TfrmProductOrderSel.InitForm(); begin ReadCxGrid('标签设置', Tv1, '生产指示单管理'); BegDate.DateTime := SGetServerDate(ADOQueryTemp) - 7; EndDate.DateTime := SGetServerDate(ADOQueryTemp); end; procedure TfrmProductOrderSel.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmProductOrderSel.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmProductOrderSel.OrderNoMChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmProductOrderSel.FormShow(Sender: TObject); begin inherited; InitForm(); initgrid(); SCSColor.text := Fcolor; SCOrderNo.text := FCROrderNo; end; procedure TfrmProductOrderSel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmProductOrderSel.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmProductOrderSel.ConNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmProductOrderSel.v1Column3PropertiesEditValueChanged(Sender: TObject); var mvalues: string; begin mvalues := TCXTextEdit(Sender).Text; with Order_Main do begin edit; fieldbyname('NLBName').Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); if trim(mvalues) = '' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main Set NLBName='''' '); sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); ExecSQL; end; end end; procedure TfrmProductOrderSel.v1Column1PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with Order_Main do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); if trim(mvalues) = '' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main Set' + Trim(FFieldName) + '='''' '); sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); ExecSQL; end; end end; procedure TfrmProductOrderSel.v1Column6PropertiesEditValueChanged(Sender: TObject); var mvalues: string; begin mvalues := TCXTextEdit(Sender).Text; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main Set XSType=''' + trim(mvalues) + ''' '); sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); ExecSQL; end; with Order_Main do begin edit; fieldbyname('XSType').Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmProductOrderSel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // if Order_Main.IsEmpty then // exit; // ToolButton1.Click; end; procedure TfrmProductOrderSel.Tv1DblClick(Sender: TObject); begin ToolButton1.Click; end; procedure TfrmProductOrderSel.v1Column8PropertiesChange(Sender: TObject); var mvalues: string; begin mvalues := TCXTextEdit(Sender).Text; with Order_Main do begin edit; fieldbyname('Orddefstr15').Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrder_Main Set Orddefstr15=''' + trim(mvalues) + ''' '); sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + ''''); ExecSQL; end; end; end.