unit U_PRTLable; 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, cxPC, Buttons; type TfrmPRTLable = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; Panel1: TPanel; Order_Main: TClientDataSet; DataSource1: TDataSource; ADOQueryCmd: TADOQuery; ADOQueryPrint: TADOQuery; ADOQueryTemp: TADOQuery; Edit1: TEdit; Label1: TLabel; Label2: TLabel; RM2: TRMGridReport; RMDB_Main: TRMDBDataSet; Label5: TLabel; FS: TComboBox; Label3: TLabel; Label4: TLabel; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure PrtDataMD(FMJID: string); public { Public declarations } end; var frmPRTLable: TfrmPRTLable; implementation uses U_DataLink,U_RTFun; {$R *.dfm} procedure TfrmPRTLable.FormDestroy(Sender: TObject); begin frmPRTLable := nil; end; procedure TfrmPRTLable.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmPRTLable.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmPRTLable.PrtDataMD(FMJID: string); var fPrintFile: string; Txt, fImagePath,FJYType,FLabName: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; i: Integer; begin if Trim(Edit1.Text) = '' then Exit; with ADOQueryPrint do begin Close; SQL.Clear; sql.Add('select A.*,B.*,C.*,ZH.*,ZHXHNo=ZH.XHNo '); sql.Add(',KHNameJC=(select KHNameJC from KH_Main KM where KM.KHNO=B.KHNO)'); SQL.Add('from JTJY_New A '); SQL.Add('inner join ML_OrderMainNew B on B.NewMLID=A.NewMLID '); SQL.Add('inner join ML_OrderSubidNew C on C.NewSubid=A.NewSubid '); sql.Add('left join ML_OrderZuHe ZH on B.NewMLID=ZH.NewMLID'); sql.Add('where A.JYID=''' + trim(FMJID) + ''''); sql.Add(' order by ZH.XHNo'); Open; end; SCreateCDS20(ADOQueryPrint,Order_Main); SInitCDSData20(ADOQueryPrint,Order_Main); FJYType:=Trim(Order_Main.fieldbyname('JYType').AsString); if Order_Main.IsEmpty then begin Label4.Visible:=True; Label4.Caption:='条码错误!!!'; Edit1.Text:=''; Exit; end else begin Label4.Visible:=True; Label4.Caption:=FJYType; Label4.Color:=clBlue; end; if Trim(FJYType)='成品' then begin FLabName:=Trim(Order_Main.fieldbyname('CPBQName1').AsString); end else if Trim(FJYType)='底布' then begin FLabName:='底布标签'; end else if Trim(FJYType)='面布' then begin FLabName:='面布标签'; end else if Trim(FJYType)='退货' then begin FLabName:=Trim(Order_Main.fieldbyname('CPBQName1').AsString); end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(Order_Main.fieldbyname('JYID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(FLabName) + '.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM2.LoadFromFile(fPrintFile); //RM2.PrintReport; //RM2.ShowReport; for i := 1 to StrToInt(FS.Text) do begin RM2.PrintReport; end; end else begin Application.MessageBox('没有找标签格式', '提示', 0); exit; end; Edit1.Text:=''; end; procedure TfrmPRTLable.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin PrtDataMD(Edit1.Text); end; end; end.