unit U_ProductOrderLBNameSel; 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 TfrmProductOrderLBNameSel = 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; 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; frmProductOrderLBNameSel: TfrmProductOrderLBNameSel; implementation uses U_DataLink, U_OrderInPut, U_RTFun, U_LabelList; {$R *.dfm} function TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmProductOrderLBNameSel.FormCreate(Sender: TObject); begin inherited; cxgrid1.Align := alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate := SGetServerDate(ADOQueryTemp); end; procedure TfrmProductOrderLBNameSel.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('标签设置', Tv1, '生产指示单管理'); end; procedure TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.N1Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmProductOrderLBNameSel.N2Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; procedure TfrmProductOrderLBNameSel.InitForm(); begin ReadCxGrid('标签设置', Tv1, '生产指示单管理'); BegDate.DateTime := SGetServerDate(ADOQueryTemp) - 7; EndDate.DateTime := SGetServerDate(ADOQueryTemp); end; procedure TfrmProductOrderLBNameSel.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmProductOrderLBNameSel.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.FormShow(Sender: TObject); begin inherited; InitForm(); initgrid(); SCSColor.text := Fcolor; SCOrderNo.text := FCROrderNo; end; procedure TfrmProductOrderLBNameSel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmProductOrderLBNameSel.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.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 TfrmProductOrderLBNameSel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // if Order_Main.IsEmpty then // exit; // ToolButton1.Click; end; procedure TfrmProductOrderLBNameSel.Tv1DblClick(Sender: TObject); begin ToolButton1.Click; end; procedure TfrmProductOrderLBNameSel.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.