unit U_PieceSampleCKlist; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxTextEdit, cxPC, cxCheckBox, Menus, U_SLT, jpeg, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmPieceSampleCKlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1P_MF: TcxGridDBColumn; v1P_KZ: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1CRNO: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ADOPrint: TADOQuery; RMXLSExport1: TRMXLSExport; v1P_Code: TcxGridDBColumn; v1inoutNO: TcxGridDBColumn; inoutNo: TEdit; Label7: TLabel; v1custName: TcxGridDBColumn; v1TocustName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; RMDB_Main: TRMDBDataSet; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_fontBlack: TcxStyle; cxStyle_fontclFuchsia: TcxStyle; cxStyle_fontclPurple: TcxStyle; cxStyle_fontclGreen: TcxStyle; cxStyle_fontclBlue: TcxStyle; cxStyle_fontclTeal: TcxStyle; cxStyle_fontclOlive: TcxStyle; Label8: TLabel; ToFactoryName: TEdit; ADOQueryMain: TADOQuery; v1Column18: TcxGridDBColumn; RM1: TRMGridReport; v1Column5: TcxGridDBColumn; P_CodeName: TEdit; P_Color: TEdit; Label10: TLabel; Label11: TLabel; P_Code: TEdit; Label14: TLabel; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; adoqueryPicture: TADOQuery; lbl1: TLabel; yptype: TEdit; cv1Column6: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton2: TToolButton; ADOQueryPrint: TADOQuery; v1Column6: TcxGridDBColumn; ComboBox1: TComboBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure inoutNoKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); private procedure InitGrid(); function YSData(ADO: TADOQuery): Boolean; function YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; procedure SetStatus(); procedure InitImage(); { Private declarations } public canshu1, canshu2, fCKName: string; { Public declarations } end; //var // frmPieceSampleCKlist: TfrmPieceSampleCKlist; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_Fun10, U_Fun, U_ZDYHelp, U_PieceSampleCK; {$R *.dfm} procedure TfrmPieceSampleCKlist.InitImage(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); if CDS_Main.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B where A.TFID =B.XFID '); if CDS_Main.IsEmpty = False then begin sql.Add('and A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString))); end else begin sql.add(' and 1=2'); end; open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[i].Left := 0 + i * 165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmPieceSampleCKlist.SetStatus(); begin TBEdit.Visible := False; TBDel.Visible := False; if Trim(canshu1) = '高权限' then begin TBEdit.Visible := true; TBDel.Visible := true; end else begin end; end; function TfrmPieceSampleCKlist.YSData(ADO: TADOQuery): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTime').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('ps').Value := ADO.fieldbyname('RollNum').AsFloat; FieldByName('Qty').Value := ADO.fieldbyname('Qty').AsFloat; FieldByName('Price').Value := ADO.fieldbyname('Price').AsFloat; FieldByName('Money').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('BBMoney').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := Trim(ADO.fieldbyname('QtyUnit').AsString); FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := '产品销售'; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; function TfrmPieceSampleCKlist.YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTIme').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('Qty').Value := 1; FieldByName('Price').Value := fmoney; FieldByName('Money').Value := fmoney; FieldByName('BBMoney').Value := fmoney; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := '个'; FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := fYFName; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; procedure TfrmPieceSampleCKlist.InitGrid(); var Pwhere: string; begin if SGetFilters(Panel1, 1, 2) <> '' then Pwhere := ' and ' + SGetFilters(Panel1, 1, 2); try with ADOQueryMain do begin close; sql.Clear; sql.Add(' select A.* '); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); sql.Add(' and CRFlag=''出库'' and isnull(VisType,'''')<>''寄样'' and Chkstatus= ''1'' and A.valid=''Y'' '); sql.Add(' and CKName=' + quotedstr(trim(fCKName))); SQL.Add(Pwhere); // showmessage(sql.Text); open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally end; end; procedure TfrmPieceSampleCKlist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmPieceSampleCKlist.FormDestroy(Sender: TObject); begin // frmPieceSampleCKlist:=nil; end; procedure TfrmPieceSampleCKlist.TBAddClick(Sender: TObject); begin frmPieceSampleCK := TfrmPieceSampleCK.create(self); with frmPieceSampleCK do begin fkeyNo := ''; fType := 0; fCKName := trim(self.fCKName); if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmPieceSampleCKlist.OrderNoChange(Sender: TObject); begin if ADOQuerymain.Active = False then Exit; SDofilter(ADOQuerymain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQuerymain, CDS_Main); SInitCDSData20(ADOQuerymain, CDS_Main); end; procedure TfrmPieceSampleCKlist.FormShow(Sender: TObject); begin readCxGrid(trim(self.Caption), Tv1, '样品仓库'); SetStatus(); InitGrid(); end; procedure TfrmPieceSampleCKlist.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date - 7; cxGrid1.Align := alclient; end; procedure TfrmPieceSampleCKlist.TBCloseClick(Sender: TObject); begin writeCxGrid(trim(self.Caption), Tv1, '样品仓库'); close; end; procedure TfrmPieceSampleCKlist.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu2) <> '高权限') then begin application.MessageBox('操作员不正确,不能修改!', '提示信息', MB_ICONERROR); exit; end; frmPieceSampleCK := TfrmPieceSampleCK.create(self); with frmPieceSampleCK do begin fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; fType := 1; InoutNo.Enabled := false; fCKName := trim(self.fCKName); if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('CRNO', trim(fkeyNo), []); end; free; end; end; procedure TfrmPieceSampleCKlist.TBDelClick(Sender: TObject); var YFID, CRID, note: string; begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try if Trim(CDS_Main.FieldByName('CRNO').AsString) <> '' then begin ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_Sample_CR set Valid=''N'' where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString))); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_SampleKc ' + quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString))); Open; end; if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数量超出库存数量!', '提示', 0); Exit; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmPieceSampleCKlist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmPieceSampleCKlist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmPieceSampleCKlist.v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); var colIdx0, colIdx1: integer; begin colIdx0 := tv1.GetColumnByFieldName('CRNO').Index; if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then AAreEqual := True else AAreEqual := False; end; procedure TfrmPieceSampleCKlist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmPieceSampleCKlist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmPieceSampleCKlist.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin InitImage(); end; procedure TfrmPieceSampleCKlist.ToolButton1Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile('样品出库标签.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\样品出库标签.rmf'; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryPrint do begin Close; sql.Clear; // sql.Add('select * from CP_YDang A inner join CK_Sample_CR B on A.CYNo=B.P_Code and A.CYColor=B.P_COLOR '); sql.Add('select * from CK_Sample_CR A '); sql.Add('where CRNO=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''''); // showmessage(sql.Text); Open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('crno').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; RMVariables['QRBARCODE'] := fImagePath; if FileExists(fPrintFile) then begin RM1.ShowPrintDialog := False; Rm1.DefaultCopies := 1; RM1.LoadFromFile(fPrintFile); // RM1.DefaultCopies := 1; RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; CDS_Main.edit; CDS_Main.FieldByName('ssel').Value := False; end; end; procedure TfrmPieceSampleCKlist.ToolButton2Click(Sender: TObject); var fPrintFile: string; EngMoney: string; Porderno, LBName, SYRName: string; i, j: Integer; OrderKg: Double; FDate: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; // if CDS_Main.Locate('SSel', True, []) = False then // begin // Application.MessageBox('没有选择数据', '提示', 0); // Exit; // end; ExportFtErpFile(Trim(ComboBox1.Text) + '.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('delete TBSubID where DName=''' + Trim(DCode) + ''''); // ExecSQL; // end; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('SELECT * FROM TBSubID where 1=2 '); // open; // end; // CDS_Main.DisableControls; // try // ADOQueryCmd.Connection.BeginTrans; // with CDS_Main do // begin // First; // while not Eof do // begin // if Fieldbyname('Ssel').AsBoolean then // begin // // ADOQueryCmd.append; // ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Main.fieldbyname('crno').AsString); // ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); // ADOQueryCmd.post; // end; // Next; // end; // end; // ADOQueryCmd.Connection.CommitTrans; // except // ADOQueryCmd.Connection.RollbackTrans; // end; // CDS_Main.EnableControls; if ComboBox1.Text = '样品码单1' then begin with ADOPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_YPMD' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); Open; end; end else if ComboBox1.Text = '样品码单2' then begin with ADOPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_YPMD2' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); Open; end; end else if ComboBox1.Text = '色卡挂板码单' then begin with ADOPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_YPMD2' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); Open; end; end; if FileExists(fPrintFile) then begin RMVariables['CustomerNoName'] := CDS_Main.fieldbyname('ToFactoryName').AsString; RMVariables['ShouHuoer'] := CDS_Main.fieldbyname('SHer').AsString; RMVariables['KHDH'] := CDS_Main.fieldbyname('SHDianHua').AsString; RMVariables['FHDZ'] := CDS_Main.fieldbyname('SHDiZhi').AsString; RMVariables['filler'] := CDS_Main.fieldbyname('filler').AsString; RMVariables['NOTE'] := CDS_Main.fieldbyname('NOTE').AsString; RMVariables['crtime'] := CDS_Main.fieldbyname('CRTime').AsDateTime; RMVariables['YWY'] := CDS_Main.fieldbyname('SALESMAN').AsString; RMVariables['SQDLX'] := CDS_Main.fieldbyname('CPLeiBie').AsString; //RMVariables['enddate']:=enddate.DateTime; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim((trim(CDS_Main.fieldbyname('inoutno').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; RM1.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmPieceSampleCKlist.ToolButton3Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile('样品码单2.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\样品码单2.rmf'; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select * from CK_Sample_CR A '); sql.Add('where inoutNO=''' + Trim(CDS_Main.fieldbyname('inoutNO').AsString) + ''''); // showmessage(sql.Text); Open; end; if FileExists(fPrintFile) then begin RM1.ShowPrintDialog := False; RM1.LoadFromFile(fPrintFile); // RM1.DefaultCopies := 1; RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; end; procedure TfrmPieceSampleCKlist.inoutNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmPieceSampleCKlist.CRTypeChange(Sender: TObject); begin InitGrid(); end; end.