unit U_CKProductBCPInList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, MovePanel, Math, Clipbrd, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter, cxContainer, dxCore, cxDateUtils, cxTextEdit, cxMaskEdit; type TfrmCKProductBCPInList = class(TForm) Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label2: TLabel; CDS_Main: TClientDataSet; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column1: TcxGridDBColumn; cxgrdMPRTCodeName: TcxGridDBColumn; cxgrdPRTColor: TcxGridDBColumn; cxgrdMPRTMF: TcxGridDBColumn; cxgrdMPRTKZ: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cxgrdKGQty: TcxGridDBColumn; cxgrdQty: TcxGridDBColumn; cxgrdQtyUnit: TcxGridDBColumn; cxgrdMPRTSpec: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; RM2: TRMGridReport; RMXLSExport1: TRMXLSExport; v1Column4: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; v1Column13: TcxGridDBColumn; cxgrdNetKGQty: TcxGridDBColumn; cxgrdKuangHao: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; lblAPID: TLabel; cxgrdAPID: TcxGridDBColumn; v1Column22: TcxGridDBColumn; begtime: TDateTimePicker; endTime: TDateTimePicker; RMDBCD: TRMDBDataSet; MovePanel2: TMovePanel; IsJYTime: TCheckBox; cxgrdCustomerNoName: TcxGridDBColumn; APID: TEdit; lblMPRTCodeName: TLabel; lblMJID: TLabel; lblMPRTKZ: TLabel; lblMPRTMF: TLabel; lblCPType: TLabel; lblPRTColor: TLabel; lblMPRTSpec: TLabel; lblRKplace: TLabel; lblConNo: TLabel; lblRKOrdID: TLabel; lblJYXH: TLabel; Label14: TLabel; MPRTCodeName: TEdit; MJID: TEdit; MJKZ: TEdit; MJMF: TEdit; CPType: TComboBox; RKplace: TEdit; PRTColor: TEdit; MPRTSpec: TEdit; ConNo: TEdit; RKOrdID: TEdit; JYXH: TEdit; CustomerNoName: TEdit; cxgrdJQty: TcxGridDBColumn; N3: TMenuItem; lblorderNo: TLabel; orderNo: TEdit; Panel2: TPanel; Panel3: TPanel; cxTabControl1: TcxTabControl; Panel6: TPanel; Label31: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; ADOQueryPrint: TADOQuery; Panel7: TPanel; ToolBar1: TToolBar; TBRafresh: TToolButton; TBRKCX: TToolButton; tbPrint: TToolButton; TBExport: TToolButton; ToolButton1: TToolButton; TBClose: TToolButton; Panel5: TPanel; Edit1: TEdit; Panel4: TPanel; Edit2: TEdit; madan: TComboBox; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; BegDate: TcxDateEdit; EndDate: TcxDateEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure orderNoKeyPress(Sender: TObject; var Key: Char); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBRKCXClick(Sender: TObject); procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure CPTypeChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure N3Click(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure CustomerNoNameKeyPress(Sender: TObject; var Key: Char); procedure tbPrintClick(Sender: TObject); private canshu2: string; CurrentPage, RecordsNumber: Integer; procedure InitGrid(); procedure SetStatus(); { Private declarations } public canshu1: string; FLeft, FTop: Integer; fkhname: string; { Public declarations } end; //var // frmCKProductBCPInList: TfrmCKProductBCPInList; implementation uses U_DataLink, U_Fun, U_SysLogHelp; {$R *.dfm} procedure TfrmCKProductBCPInList.SetStatus(); var i: Integer; begin TBRKCX.Visible := false; tbPrint.Visible := false; Panel5.Visible := false; Edit1.Visible := false; Panel4.Visible := false; Edit2.Visible := false; case cxTabControl1.TabIndex of 0: begin Panel6.Visible := False; ClearOrHideControls(Panel1, '0', True, True); ClearOrHideControls(Panel1, '1', True, False); ClearOrHideControls(Panel1, '2', True, False); for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := false; end; IsVisibleTV(Panel1, TV1, '0', True); cxgrdJQty.Visible := True; cxgrdKGQty.Visible := True; cxgrdNETKGQty.Visible := True; cxgrdQty.Visible := True; cxgrdQtyUnit.Visible := True; end; 1: begin Panel6.Visible := False; ClearOrHideControls(Panel1, '0', false, True); ClearOrHideControls(Panel1, '1', True, True); ClearOrHideControls(Panel1, '2', True, False); for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := false; end; IsVisibleTV(Panel1, TV1, '0', True); IsVisibleTV(Panel1, TV1, '1', True); cxgrdJQty.Visible := True; cxgrdKGQty.Visible := True; cxgrdNETKGQty.Visible := True; cxgrdQty.Visible := True; cxgrdQtyUnit.Visible := True; end; 2: begin for i := 0 to tv1.ColumnCount - 1 do begin tv1.Columns[i].Visible := True; end; cxgrdJQty.Visible := false; ClearOrHideControls(Panel1, '0', False, True); ClearOrHideControls(Panel1, '1', False, True); ClearOrHideControls(Panel1, '2', False, True); // Edit2.Visible := True; // Panel4.Visible := True; // Edit1.Visible := True; // Panel5.Visible := True; // madan.Visible := True; tbPrint.Visible := true; Panel6.Visible := True; if canshu1 = '管理' then TBRKCX.Visible := true; end; end; if cxTabControl1.TabIndex = 0 then begin ReadCxGrid(trim(self.Caption) + '1', Tv1, '成品仓库'); end else if cxTabControl1.TabIndex = 1 then begin ReadCxGrid(trim(self.Caption) + '2', Tv1, '成品仓库'); end else begin ReadCxGrid(trim(self.Caption) + '3', Tv1, '成品仓库'); end; if canshu1 = '客户查询' then begin CustomerNoName.Text := fkhname; ToolButton1.Visible := False; end; end; procedure TfrmCKProductBCPInList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKProductBCPInList.FormCreate(Sender: TObject); begin EndDate.Text := FormatDateTime('yyyy-MM-dd', SGetServerDate10(ADOQueryTemp) + 1) + ' 06:00:00'; BegDate.Text := FormatDateTime('yyyy-MM-dd', SGetServerDate10(ADOQueryTemp)) + ' 06:00:00'; end; procedure TfrmCKProductBCPInList.InitGrid(); var fwhere, Pwhere: string; begin MovePanel2.Left := (self.Width - MovePanel2.Width) div 2; MovePanel2.Visible := True; MovePanel2.Refresh; Pwhere := SGetFilters(Panel1, 1, 2); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; case cxTabControl1.TabIndex of 0: begin if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); sql.Add('select * from ( '); sql.Add('select SUM(A.KGQty) KGQty,SUM(A.Qty) Qty,SUM(A.NetKGQty) NETKGQty,count(A.MJID) JQty,A.QtyUnit '); sql.Add(',B.CustomerNoName,sum(a.Qty-a.kongjia)jinchang'); sql.Add('from CK_BanCP_CR A inner join JYOrder_Main B on A.MainId=B.MainId '); sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId '); sql.Add('inner join JYOrder_Car D on D.CarNo=A.APID '); sql.Add(' where A.CRFlag=''入库'' '); sql.Add(' and A.CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(BegDate.text)))); sql.Add(' and A.CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(endDate.text)))); sql.Add(' group by B.CustomerNoName,A.QtyUnit'); sql.Add(' ) AA ' + fwhere); end; 1: begin if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); sql.Add('select * from ( '); sql.Add('select SUM(A.KGQty) KGQty,SUM(A.Qty) Qty,SUM(A.NetKGQty) NetKGQty,count(A.MJID) JQty,A.QtyUnit,A.ganghao '); sql.Add(' ,B.CustomerNoName,B.ConNo,B.OrderNo,B.MPRTCode,B.MPRTCodeName, B.MPRTSpec,PRTColor=isnull(jycolor,PRTColor) '); sql.Add(' ,A.MJMF,A.MJKZ,A.APID ,sum(a.Qty-a.kongjia)jinchang '); sql.Add('from CK_BanCP_CR A inner join JYOrder_Main B on A.MainId=B.MainId '); sql.Add('inner join JYOrder_Sub C on A.SubId=C.SubId '); sql.Add('inner join JYOrder_Car D on D.CarNo=A.APID '); sql.Add(' where A.CRFlag=''入库'' '); sql.Add(' and A.CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(BegDate.text)))); sql.Add(' and A.CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(endDate.text)))); sql.Add(' group by B.CustomerNoName,A.QtyUnit,A.ganghao,B.ConNo,B.OrderNo,B.MPRTCode,B.MPRTCodeName,A.MJMF,A.MJKZ,A.APID,B.MPRTSpec,isnull(jycolor,PRTColor) '); sql.Add(' ) AA ' + fwhere); end; 2: begin if IsJYTime.Checked then begin fwhere := ' where CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(BegDate.text))); fwhere := fwhere + ' and CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd HH:mm:ss', StrToDateTime(endDate.text))); if trim(Pwhere) <> '' then fwhere := fwhere + ' and ' + trim(Pwhere); end else begin if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); end; sql.Add('exec P_Page_FinishClothRK '); sql.Add('@pageIndex=' + inttostr(CurrentPage)); sql.Add(',@pageSize=' + inttostr(RecordsNumber)); sql.Add(',@criteria= ' + quotedstr(fwhere)); end; end; // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); if cxTabControl1.TabIndex = 2 then LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); MovePanel2.Visible := false; finally ADOQueryMain.EnableControls; MovePanel2.Visible := false; end; end; procedure TfrmCKProductBCPInList.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; SetStatus(); InitGrid(); end; procedure TfrmCKProductBCPInList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductBCPInList.TBCloseClick(Sender: TObject); begin if cxTabControl1.TabIndex = 0 then begin WriteCxGrid(trim(self.Caption) + '1', Tv1, '成品仓库'); end else if cxTabControl1.TabIndex = 1 then begin WriteCxGrid(trim(self.Caption) + '2', Tv1, '成品仓库'); end else begin WriteCxGrid(trim(self.Caption) + '3', Tv1, '成品仓库'); end; Close; end; procedure TfrmCKProductBCPInList.FormShow(Sender: TObject); begin CurrentPage := 1; RecordsNumber := 500; if canshu1 = '客户查询' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('SELECT * FROM Company WHERE COTYPE=''客户'' and valid=''Y'' and isnull(cohrname,coname)=' + QuotedStr(Trim(DName))); Open; end; if ADOQueryTemp.IsEmpty = False then begin CustomerNoName.Text := ADOQueryTemp.FIELDBYNAME('coNAME').AsString; fkhname := ADOQueryTemp.FIELDBYNAME('coNAME').AsString; CustomerNoName.Enabled := False; end; end; SetStatus(); end; procedure TfrmCKProductBCPInList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('入库列表', cxGrid2); end; procedure TfrmCKProductBCPInList.orderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmCKProductBCPInList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCKProductBCPInList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCKProductBCPInList.TBRKCXClick(Sender: TObject); var strsql: string; begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 2 then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要执行操作吗?', '提示', 32 + 4) <> IDYES then Exit; BegDate.SetFocus; MovePanel2.Visible := True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin while Locate('SSel', True, []) do begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR where CRID=' + Trim(CDS_Main.fieldbyname('CRID').AsString)); sql.Add('and CRFlag=''出库'' '); Open; end; if ADOQueryTemp.RecordCount >= 1 then begin ADOQueryCmd.Connection.RollbackTrans; MovePanel2.Visible := False; Application.MessageBox('已出库不能撤销入库!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' Update CK_BanCP_CR Set CRFlag=''待入库'',CRType='''',CRTime=NULL,RKOrdId='''',RKStage='''' '); sql.Add(' where CRID=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + ''' '); sql.Add(' and CRFlag=''入库'' '); sql.Add(' Update WFB_MJJY Set MJStr2=''未入库'' where exists(select MJID from CK_BanCP_CR X where X.MJID=WFB_MJJY.MJID and X.CRFlag=''待入库'' and MJStr2<>''未入库'')'); ExecSQL; end; strsql := '卷ID:' + trim(CDS_Main.FieldByName('MJID').AsString) + ' 入库单号:' + trim(CDS_Main.FieldByName('RKOrdID').AsString); with ADOQueryCmd do begin Close; sql.Clear; 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(strsql))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; MovePanel2.Visible := False; except ADOQueryCmd.Connection.RollbackTrans; MovePanel2.Visible := False; Application.MessageBox('撤销失败!', '提示', 0); end; end; procedure TfrmCKProductBCPInList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft := X; FTop := Y; end; procedure TfrmCKProductBCPInList.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmCKProductBCPInList.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmCKProductBCPInList.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPInList.CPTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPInList.ToolButton1Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := self.caption; // facction:='生产指示单删除'; showmodal; free; end; end; procedure TfrmCKProductBCPInList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmCKProductBCPInList.N3Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmCKProductBCPInList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var Tabint: integer; begin Tabint := cxTabControl1.TabIndex; case Tabint of 0: begin AssignmentControls(Panel1, CDS_Main, '0'); cxTabControl1.TabIndex := 1; end; 1: begin AssignmentControls(Panel1, CDS_Main, '1'); cxTabControl1.TabIndex := 2; end; end; end; procedure TfrmCKProductBCPInList.CustomerNoNameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmCKProductBCPInList.tbPrintClick(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile(madan.Text + '.rmf', ADOQueryTemp); with CDS_Main do begin // if (madan.Text='仓库码单实际') or (madan.Text='仓库码单(公斤)实际') or (madan.Text='仓库码单(米数)实际') then // begin // if Edit1.text=''then Edit1.text:='0'; // if Edit2.text=''then Edit2.text:='0'; // with ADOQueryPrint do // begin // Close; // SQL.Clear; // sql.Add(' exec P_Print_RKMDGangNo '); // SQL.Add(' @RKOrdID=''' + Trim(Trim(CDS_Main.fieldbyname('RKOrdID').AsString)) + ''''); // if FloatToStr(strtofloat(Edit1.text)-CDS_Main.fieldbyname('kongjia').Asfloat)<>'' then // begin // SQL.Add(' ,@kj=' + FloatToStr(strtofloat(Edit1.text)-CDS_Main.fieldbyname('kongjia').AsFloat) ); // end else // begin // SQL.Add(' ,@kj=0' ); // end; // if FloatToStr(strtofloat(Edit2.text)-CDS_Main.fieldbyname('kongjiawei').Asfloat)<>''then // begin // SQL.Add(' ,@kjw=' + FloatToStr(strtofloat(Edit2.text)-CDS_Main.fieldbyname('kongjiawei').AsFloat) ); // end else // begin // SQL.Add(' ,@kjw=0' ); // end; //// ShowMessage(SQL.Text); // Open; // end; // end else if (madan.Text = '入库码单米数') or (madan.Text = '入库码单公斤') then begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_Print_RKMDWSQ2F_10 '); SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('APID').AsString)) + ''''); SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0))); SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0))); // ShowMessage(SQL.text); Open; end; end; if (madan.Text = '入库码单米和公斤') then begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_Print_RKMDWSQ2F_5 '); SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('APID').AsString)) + ''''); SQL.Add(' ,@kj=' + FloatToStr(StrToFloatDef(Edit1.text, 0))); SQL.Add(' ,@kjw=' + FloatToStr(StrToFloatDef(Edit2.text, 0))); // ShowMessage(SQL.text); Open; end; end; if (madan.Text = '入库码单公斤(16行)') or (madan.Text = '入库码单米数(16行)') then begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_Print_RKMD16 '); SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('APID').AsString)) + ''''); Open; end; end; if (madan.Text = '入库码单米和公斤(16行)') then begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_Print_RKMD16_5 '); SQL.Add(' @CKOrdNO=''' + Trim(Trim(CDS_Main.fieldbyname('APID').AsString)) + ''''); Open; end; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_Main.fieldbyname('apid').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\' + madan.Text + '.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RMVariables['DMR'] := Trim(DName); RMVariables['JYGH'] := FieldByName('JYGH').AsString; RMVariables['JYXH'] := FieldByName('JYXH').AsString; RM2.LoadFromFile(fPrintFile); // Rm2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); // RM2.PrintReport; RM2.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; end; end; end.