unit U_LabSet; interface uses Windows, Messages, StrUtils, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDropDownEdit, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxContainer, dxCore, cxDateUtils, cxImage, cxDBEdit, IdExplicitTLSClientServerBase, RM_Preview, cxPC, U_BaseHelp, System.ImageList, Vcl.ImgList, RTComboBox, RM_BarCode, RM_e_Xls, dxScrollbarAnnotations; type TfrmLabSet = class(TfrmBaseHelp) ToolBar1: TToolBar; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ToolButton3: TToolButton; ScrollBox1: TScrollBox; Label14: TLabel; Label1: TLabel; cxPageControl1: TcxPageControl; cxTabSheet4: TcxTabSheet; RMPreview1: TRMPreview; Label2: TLabel; RuleBeforeTare: TEdit; RuleConversion: TComboBox; Label3: TLabel; Coefficient: TEdit; Label4: TLabel; ADOQueryLabel: TADOQuery; RM1: TRMGridReport; RMDB_1: TRMDBDataSet; ADO_1: TADOQuery; RM2: TRMGridReport; RMDB_2: TRMDBDataSet; cxTabSheet1: TcxTabSheet; DS_Label: TDataSource; CDS_Label: TClientDataSet; RMDB_Label: TRMDBDataSet; RMLabel: TRMGridReport; Panel1: TPanel; Panel2: TPanel; cxGridLabel: TcxGrid; TVLabel: TcxGridDBTableView; TVLabellabelId: TcxGridDBColumn; TVLabellabeltype: TcxGridDBColumn; TVLabellabelCaption: TcxGridDBColumn; TVLabellabelFile: TcxGridDBColumn; cxGridLabelLevel1: TcxGridLevel; RMPreview3: TRMPreview; Panel4: TPanel; Label9: TLabel; Label10: TLabel; LabelCaption: TEdit; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; Tadd: TToolButton; Tupd: TToolButton; Tdel: TToolButton; ToolButton4: TToolButton; RMBarCodeObject1: TRMBarCodeObject; RMXLSExport1: TRMXLSExport; RMDataDictionary1: TRMDataDictionary; ADO_Down: TADOQuery; TVLabelColumn1: TcxGridDBColumn; TVLabelColumn2: TcxGridDBColumn; LabVolume: TEdit; LabPackage: TEdit; Label5: TLabel; RulePieceNo: TComboBox; Label6: TLabel; RuleLenUnit: TComboBox; Label8: TLabel; RuleLaterTare: TEdit; ToolButton5: TToolButton; ToolButton6: TToolButton; labeltype: TComboBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TdelClick(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure labeltypeChange(Sender: TObject); procedure TVLabelCellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton5Click(Sender: TObject); procedure TaddClick(Sender: TObject); procedure TupdClick(Sender: TObject); procedure ToolButton6Click(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; procedure InitLabel(); function SaveLabel(MLabelID: string): Boolean; procedure InitLabVolume(); procedure InitLabPackage(); public FDataID, FAuthority: string; end; var frmLabSet: TfrmLabSet; implementation uses U_DataLink, U_RTFun, U_LabelInput, U_LabelList; {$R *.dfm} function TfrmLabSet.SaveLabel(MLabelID: string): Boolean; begin try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from Trade_Label'); sql.Add('where LabelID=' + Quotedstr(MLabelID)); Open; Edit; fieldByName('Editer').value := DName; FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp); // RMLabel.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); Post; end; ADOQueryCmd.Connection.CommitTrans; result := true; except ADOQueryCmd.Connection.RollbackTrans; Result := false; application.MessageBox('�����ǩģ�����!', '������Ϣ', 0); end; end; procedure TfrmLabSet.InitLabel(); begin with ADOQueryMain do begin close; sql.Clear; sql.Add(' select * from Trade_Label'); if FAuthority = '����ҵ��' then begin sql.Add('where (Filler =''' + trim(DName) + ''') or (LabelCaption in (''�κƱ�ǩ'',''ͨ�ñ�ǩ''))'); end; sql.Add(' order by labeltype,labelCaption'); // ShowMessage(sql.text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel4, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Label); SInitCDSData(ADOQueryMain, CDS_Label); end; procedure TfrmLabSet.InitLabVolume(); begin with ADOQueryLabel do begin close; sql.Clear; sql.Add('select top 1 * from RT_FileUpdate'); sql.Add('where FileName=' + quotedstr(trim(LabVolume.Text) + '.rmf')); Open; end; if ADOQueryLabel.IsEmpty then exit; with RM1 do begin LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('Files'))); Preview := RMPreview1; ShowReport; end; end; procedure TfrmLabSet.InitLabPackage(); begin end; procedure TfrmLabSet.labeltypeChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel4, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Label); SInitCDSData(ADOQueryMain, CDS_Label); end; end; procedure TfrmLabSet.InitGrid(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from Trade_Cloth_Inspect_Rule where RuleID=''' + Trim(FDataID) + ''''); Open; end; SCSHData(ADOQueryTemp, ScrollBox1, 2); end; procedure TfrmLabSet.FormDestroy(Sender: TObject); begin inherited; frmLabSet := nil; end; procedure TfrmLabSet.cxPageControl1Change(Sender: TObject); begin case cxPageControl1.ActivePageIndex of 1: begin InitLabVolume(); end; 2: begin InitLabPackage(); end; end; end; procedure TfrmLabSet.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmLabSet.TaddClick(Sender: TObject); begin try frmLabelInput := TfrmLabelInput.create(self); with frmLabelInput do begin FLabelId := ''; if showModal = 1 then begin InitLabel(); end; end; finally frmLabelInput.Free; end; end; procedure TfrmLabSet.TBCloseClick(Sender: TObject); begin ModalResult := 1; end; procedure TfrmLabSet.FormShow(Sender: TObject); begin inherited; ExportFtErpFile('ģ���ǩ.rmf', ADOQueryTemp); with ADO_1 do begin Close; SQL.Clear; sql.Add('exec P_BS_Label_Get_Test'); Open; end; Initlabel(); InitGrid(); end; procedure TfrmLabSet.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmLabSet.TdelClick(Sender: TObject); var fPrintFile: string; begin if CDS_Label.IsEmpty then exit; if (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '�κƱ�ǩ') or (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '��̧ͷ�κƱ�ǩ') then begin Application.MessageBox('���ܲ���ģ���ǩ!', '��ʾ', 0); Exit; end; if TRIM(DName) <> 'ADMIN' then begin if TRIM(CDS_Label.fieldByName('Filler').asString) <> TRIM(DName) then begin Application.MessageBox('���ܲ������˵�����!', '��ʾ', 0); Exit; end; end; if Application.MessageBox('ȷ��Ҫɾ��������', '��ʾ', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.clear; sql.Add('delete Trade_Label'); sql.Add('where labelId=' + quotedstr(CDS_Label.fieldByName('LabelID').asString)); sql.Add('delete RT_FileUpdate'); sql.Add('where FileName=' + quotedstr(trim(CDS_Label.fieldByName('labelCaption').asString) + '.rmf')); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('��ǩɾ��'))); sql.Add(',' + quotedstr(trim('��ǩ���ƣ�' + trim(CDS_Label.fieldByName('labelCaption').asString)))); sql.Add(',' + quotedstr(trim('�ɹ�'))); sql.Add(')'); execSql; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'report\' + trim(CDS_Label.fieldByName('labelCaption').asString) + '.rmf'; if FileExists(fPrintFile) then begin DeleteFile(fPrintFile); end; CDS_Label.Delete; except application.MessageBox('ɾ��ʧ��!', '������Ϣ', 0); end; end; function TfrmLabSet.SaveData(): Boolean; var MaxId, MaxSubId, FCoCode, FCCID, MaxCFID: string; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FDataID) = '' then begin if GetLSNo(ADOQueryCmd, MaxId, 'R', 'Trade_Cloth_Inspect_Rule', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('ȡ����ʧ�ܣ�', '��ʾ', 0); Exit; end; end else begin MaxId := Trim(FDataID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from Trade_Cloth_Inspect_Rule where RuleID=''' + Trim(FDataID) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FDataID) = '' then begin Append; FieldByName('Filler').Value := Trim(DName); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('RuleID').Value := Trim(MaxId); RTSetsavedata(ADOQueryCmd, 'Trade_Cloth_Inspect_Rule', ScrollBox1, 2); Post; end; ADOQueryCmd.Connection.CommitTrans; FCCID := Trim(MaxSubId); Result := True; except Result := false; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('�����쳣!', '��ʾ', 0); end; end; procedure TfrmLabSet.ToolButton1Click(Sender: TObject); begin if CDS_Label.IsEmpty then exit; LabVolume.Text := trim(CDS_Label.fieldbyname('labelCaption').asstring); end; procedure TfrmLabSet.ToolButton2Click(Sender: TObject); begin if CDS_Label.IsEmpty then exit; LabPackage.Text := trim(CDS_Label.fieldbyname('labelCaption').asstring); end; procedure TfrmLabSet.ToolButton3Click(Sender: TObject); begin if SaveData() then begin Application.MessageBox('����ɹ�!', '��ʾ', 0); end; end; procedure TfrmLabSet.ToolButton4Click(Sender: TObject); var fFileName, fPrintFile: string; MLabelID, MLabelCaption: string; begin if CDS_Label.IsEmpty then exit; if (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '�κƱ�ǩ') or (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '��̧ͷ�κƱ�ǩ') then begin Application.MessageBox('���ܲ���ģ���ǩ!', '��ʾ', 0); Exit; end; MLabelID := TRIM(CDS_Label.fieldByName('LabelID').asString); MLabelCaption := TRIM(CDS_Label.fieldByName('LabelCaption').asString); ExportFtErpFile(MLabelCaption + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'report\' + MLabelCaption + '.rmf'; if not FileExists(fPrintFile) then CopyFile(PChar(ExtractFilePath(Application.ExeName) + 'Report\ģ���ǩ.rmf'), PChar(fPrintFile), False); with RMLabel do begin RMLabel.Clear; RMDB_Label.DataSet := nil; Dictionary.FieldAliases.Clear; Dictionary.FieldAliases['RMDB_Label'] := '��ǩ����'; RMDB_Label.DataSet := ADO_1; LoadFromFile(fPrintFile); application.ProcessMessages; DesignReport(); // RMLabel.SaveToFile(fPrintFile); SaveLabel(MLabelID); ExportToFtErp(fPrintFile, ADOQueryCmd); end; end; procedure TfrmLabSet.ToolButton5Click(Sender: TObject); begin ModalResult := 1; end; procedure TfrmLabSet.ToolButton6Click(Sender: TObject); var MFromLabelId: string; begin MFromLabelId := trim(CDS_Label.fieldbyname('LabelId').asstring); try frmLabelInput := TfrmLabelInput.create(self); with frmLabelInput do begin if showModal = 1 then begin FLabelId := frmLabelInput.LabelCaption.Text; with ADOQueryCmd do begin close; sql.clear; sql.Add(' exec P_BS_Label_Copy'); sql.Add(' @FromLabelId=' + quotedstr(trim(MFromLabelId))); sql.Add(',@ToLabelId=' + quotedstr(trim(FLabelId))); // ShowMessage(sql.text); execSql; end; InitLabel(); end; end; finally frmLabelInput.Free; end; end; procedure TfrmLabSet.TupdClick(Sender: TObject); begin if CDS_Label.IsEmpty then exit; if (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '�κƱ�ǩ') or (trim(CDS_Label.fieldbyname('labelCaption').asstring) = '��̧ͷ�κƱ�ǩ') then begin Application.MessageBox('���ܲ���ģ���ǩ!', '��ʾ', 0); Exit; end; try frmLabelInput := TfrmLabelInput.create(self); with frmLabelInput do begin fLabelId := CDS_Label.fieldByName('LabelId').AsString; if showModal = 1 then begin InitLabel(); end; end; finally frmLabelInput.Free; end; end; procedure TfrmLabSet.TVLabelCellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var fPrintFile: string; begin if CDS_Label.IsEmpty then exit; ExportFtErpFile(TRIM(CDS_Label.fieldByName('LabelCaption').asString) + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + CDS_Label.fieldbyname('LabelCaption').AsString + '.rmf'; if not FileExists(fPrintFile) then CopyFile(PChar(ExtractFilePath(Application.ExeName) + 'Report\ģ���ǩ.rmf'), PChar(fPrintFile), False); with RMLabel do begin RMLabel.LoadFromFile(fPrintFile); Preview := RMPreview3; ShowReport; end; end; end.