unit U_MJEdit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StrUtils, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxButtonEdit, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmMJEdit = class(TForm) ToolBar1: TToolBar; ToolButton2: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; MJID: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; tv2CDType: TcxGridDBColumn; tv2CDWZ: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Tv2CDQty: TcxGridDBColumn; Tv2CDReason: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ADOTmp: TADOQuery; ADOQueryMain: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_MJ: TClientDataSet; ToolButton1: TToolButton; ToolButton3: TToolButton; Label2: TLabel; MJMaoZ: TEdit; Label4: TLabel; M: TLabel; Label6: TLabel; MJLen: TEdit; RadioGroup1: TRadioGroup; Ma: TLabel; Label7: TLabel; MJQty1: TEdit; Label5: TLabel; Label8: TLabel; MJFK: TEdit; Label9: TLabel; Label10: TLabel; Label3: TLabel; Label11: TLabel; MJSJKZ: TEdit; ToolButton4: TToolButton; Label13: TLabel; MJQty2: TEdit; Label12: TLabel; Label14: TLabel; MJQty4: TEdit; MJXH: TEdit; Label15: TLabel; Label16: TLabel; MJStr4: TEdit; TBQPrint: TToolButton; ADOQueryPrint: TADOQuery; RMDBMain: TRMDBDataSet; RM2: TRMGridReport; Label17: TLabel; FS: TComboBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure MJIDKeyPress(Sender: TObject; var Key: Char); procedure tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure tv2CDWZPropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure MDblClick(Sender: TObject); procedure TBQPrintClick(Sender: TObject); private { Private declarations } function SaveData(): Boolean; public FStyleNo, FOrderUnit, FHX, FSE: string; { Public declarations } end; var frmMJEdit: TfrmMJEdit; implementation uses U_Fun, U_ZDYHelp, U_DataLink; {$R *.dfm} procedure TfrmMJEdit.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmMJEdit.FormDestroy(Sender: TObject); begin frmMJEdit := nil; end; procedure TfrmMJEdit.MJIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select A.* from WFB_MJJY A'); sql.Add(' where A.MJID=''' + Trim(MJID.Text) + ''''); Open; end; if ADOTmp.IsEmpty then begin MJID.Text := ''; Label2.Caption := ''; Label2.Visible := False; Application.MessageBox('条码错误!', '提示', 0); Exit; end; MJXH.Text := Trim(ADOTmp.fieldbyname('MJXH').AsString); MJstr4.Text := Trim(ADOTmp.fieldbyname('MJstr4').AsString); MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); MJQty1.Text := Trim(ADOTmp.fieldbyname('MJQty1').AsString); MJQty2.Text := Trim(ADOTmp.fieldbyname('MJQty2').AsString); MJQty4.Text := Trim(ADOTmp.fieldbyname('MJQty4').AsString); MJFK.Text := Trim(ADOTmp.fieldbyname('MJFK').AsString); MJSJKZ.Text := Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); M.Caption := Trim(Trim(ADOTmp.fieldbyname('MJTypeOther').AsString)); Ma.Caption := Trim(Trim(ADOTmp.fieldbyname('MJStr1').AsString)); { if Trim(m.Caption)='' then begin m.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString); end; if Trim(Ma.Caption)='' then begin Ma.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString); end; } if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = '正品' then begin RadioGroup1.ItemIndex := 0 end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = '次品' then begin RadioGroup1.ItemIndex := 1; end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString)) = '留样' then begin RadioGroup1.ItemIndex := 2; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_CD A where A.MJID=''' + Trim(MJID.Text) + ''''); Open; end; Label2.Caption := Trim(MJID.Text); Label2.Visible := True; MJID.Text := ''; SCreateCDS20(ADOTmp, Order_MJ); SInitCDSData20(ADOTmp, Order_MJ); TBQPrint.Click; end; end; procedure TfrmMJEdit.tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'WFBCD'; flagname := '疵点'; if ShowModal = 1 then begin Self.Order_MJ.Edit; Self.Order_MJ.FieldByName('CDName').value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMJEdit.tv2CDWZPropertiesEditValueChanged(Sender: TObject); var mvalue, CDBeg, CDEnd: string; FFReal: Double; begin mvalue := TcxTextEdit(Sender).EditingText; with Order_MJ do begin Edit; FieldByName('CDBeg').Value := mvalue; Post; end; CDBeg := Trim(Order_MJ.fieldbyname('CDBeg').AsString); CDEnd := Trim(Order_MJ.fieldbyname('CDEnd').AsString); if (Trim(CDBeg) <> '') and (Trim(CDEnd) <> '') then begin if TryStrToFloat(CDBeg, FFReal) and TryStrToFloat(CDBeg, FFReal) then begin if StrToFloat(CDEnd) < StrToFloat(CDBeg) then begin Application.MessageBox('终止位置小于起始位置!', '提示', 0); Exit; end; with Order_MJ do begin Edit; FieldByName('CDQty').Value := StrToFloat(CDEnd) - StrToFloat(CDBeg); Post; end; end else begin Application.MessageBox('非法数字!', '提示', 0); Exit; end; end; end; procedure TfrmMJEdit.v2Column2PropertiesEditValueChanged(Sender: TObject); var mvalue, CDBeg, CDEnd: string; FFReal: Double; begin mvalue := TcxTextEdit(Sender).EditingText; with Order_MJ do begin Edit; FieldByName('CDEnd').Value := mvalue; Post; end; CDBeg := Trim(Order_MJ.fieldbyname('CDBeg').AsString); CDEnd := Trim(Order_MJ.fieldbyname('CDEnd').AsString); if (Trim(CDBeg) <> '') and (Trim(CDEnd) <> '') then begin if TryStrToFloat(CDBeg, FFReal) and TryStrToFloat(CDBeg, FFReal) then begin if StrToFloat(CDEnd) < StrToFloat(CDBeg) then begin Application.MessageBox('终止位置小于起始位置!', '提示', 0); Exit; end; with Order_MJ do begin Edit; FieldByName('CDQty').Value := StrToFloat(CDEnd) - StrToFloat(CDBeg); Post; end; end else begin Application.MessageBox('非法数字!', '提示', 0); Exit; end; end; end; procedure TfrmMJEdit.ToolButton1Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; Order_MJ.Append; Order_MJ.Post; end; procedure TfrmMJEdit.ToolButton3Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; if Order_MJ.IsEmpty then Exit; if Trim(Order_MJ.fieldbyname('MCID').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY_CD where MCID=''' + Trim(Order_MJ.fieldbyname('MCID').AsString) + ''''); ExecSQL; end; with ADOCmd do begin Close; sql.Clear; sql.Add('update WFB_MJJY SET ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); sql.Add(' where MJID=''' + Trim(Order_MJ.fieldbyname('MJID').AsString) + ''''); execsql; end; end; Order_MJ.Delete; end; function TfrmMJEdit.SaveData(): Boolean; var maxno: string; FFreal: Double; FKHZ, FKHY, FCD, FMZ, FTM: string; begin try ADOCmd.Connection.BeginTrans; ///保存疵点表 with Order_MJ do begin First; while not Eof do begin if Trim(Order_MJ.fieldbyname('MCID').AsString) = '' then begin if GetLSNo(ADOTmp, maxno, 'MC', 'WFB_MJJY_CD', 5, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin maxno := Trim(Order_MJ.fieldbyname('MCID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFB_MJJY_CD '); sql.Add(' where MCID=''' + Trim(maxno) + ''''); Open; end; with ADOCmd do begin if Trim(Order_MJ.fieldbyname('MCID').AsString) = '' then Append else Edit; FieldByName('MJId').Value := Trim(Label2.Caption); FieldByName('MCID').Value := Trim(maxno); SSetSaveDataCDSNew(ADOCmd, Tv2, Order_MJ, 'WFB_MJJY_CD', 0); if trim(Order_MJ.fieldbyname('CDName').AsString) = '测幅宽' then FieldByName('koufenQty').Value := 0 else FieldByName('koufenQty').Value := Order_MJ.fieldbyname('koufenQty').AsFloat; Post; end; Order_MJ.Edit; Order_MJ.FieldByName('MCID').Value := Trim(maxno); Order_MJ.FieldByName('MJID').Value := Trim(Label2.Caption); Next; end; end; if Trim(MJMaoZ.Text) <> '' then begin if TryStrToFloat(MJMaoZ.Text, FFreal) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('重量非法数字!', '提示', 0); Exit; end; end; if Trim(MJLen.Text) <> '' then begin if TryStrToFloat(MJLen.Text, FFreal) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('长度非法数字!', '提示', 0); Exit; end; end; if Trim(MJSJKZ.Text) <> '' then begin if TryStrToFloat(MJSJKZ.Text, FFreal) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('克重非法数字!', '提示', 0); Exit; end; end; if Trim(MJQty2.Text) <> '' then begin if TryStrToFloat(MJQty2.Text, FFreal) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('赠送数量非法数字!', '提示', 0); Exit; end; end; if Trim(MJQty4.Text) <> '' then begin if TryStrToFloat(MJQty4.Text, FFreal) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('净重非法数字!', '提示', 0); Exit; end; end; FKHZ := Copy(Trim(FStyleNo), 1, 3); FKHY := Copy(Trim(FStyleNo), 5, 7); if (FOrderUnit <> 'KG') and (FOrderUnit <> 'Kg') and (FOrderUnit <> 'kg') then begin if Pos('.', Trim(MJLen.Text)) = 0 then begin if Length(Trim(MJLen.Text)) = 1 then FCD := '0' + Trim(MJLen.Text) + '0000'; end else begin if Length(Copy(Trim(MJLen.Text), 1, Pos('.', Trim(MJLen.Text)) - 1)) = 1 then FCD := '0' + MJLen.Text + '0000'; FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); end; end else begin if Pos('.', Trim(MJMaoz.Text)) = 0 then begin if Length(Trim(MJMaoz.Text)) = 1 then FCD := '0' + Trim(MJMaoz.Text) + '0000'; end else begin if Length(Copy(Trim(MJMaoz.Text), 1, Pos('.', Trim(MJMaoz.Text)) - 1)) = 1 then FCD := '0' + MJMaoz.Text + '0000'; FCD := Copy(Trim(FCD), 1, Pos('.', Trim(FCD)) - 1) + Copy(Trim(FCD), Pos('.', Trim(FCD)) + 1, 3); end; end; FCD := Copy(Trim(FCD), 1, 4); FMZ := '0000' + trim(MJXH.Text); FMZ := Copy(Trim(FMZ), Length(FMZ) - 3, Length(FMZ)); FTM := trim(FKHZ) + trim(FKHY) + copy(Trim(FHX) + Trim(FSE), 1, 3) + '0' + trim(FCD) + trim(MJStr4.Text) + trim(FMZ); with ADOCmd do begin Close; sql.Clear; sql.Add('UPdate WFB_MJJY Set MJTypeOther=''' + Trim(M.Caption) + ''''); SQL.Add(',TM=''' + Trim(FTM) + ''''); SQL.Add(',MZ=''' + Trim(FMZ) + ''''); sql.Add(',MJStr1=''' + Trim(Ma.Caption) + ''''); sql.Add(',MJStr4=''' + Trim(MJStr4.Text) + ''''); sql.Add(',MJXH=''' + Trim(MJXH.Text) + ''''); sql.add(',ZCDName=dbo.F_Get_Order_SubStr(MJID,''QDHZ'')'); if Trim(MJLen.Text) <> '' then begin sql.Add(',MJLen=' + Trim(MJLen.Text)); end else begin sql.Add(',MJLen=0'); end; if Trim(MJQty1.Text) <> '' then begin sql.Add(',MJQty1=' + Trim(MJQty1.Text)); end else begin sql.Add(',MJQty1=0'); end; if Trim(MJQty2.Text) <> '' then begin sql.Add(',MJQty2=' + Trim(MJQty2.Text)); end else begin sql.Add(',MJQty2=0'); end; if Trim(MJFK.Text) <> '' then begin sql.Add(',MJFK=' + Trim(MJFK.Text)); end else begin sql.Add(',MJFK=0'); end; if Trim(MJMaoZ.Text) <> '' then begin sql.Add(',MJMaoZ=' + Trim(MJMaoZ.Text)); end else begin sql.Add(',MJMaoZ=0'); end; if Trim(MJSJKZ.Text) <> '' then begin sql.Add(',MJSJKZ=' + Trim(MJSJKZ.Text)); end else begin sql.Add(',MJSJKZ=0'); end; if Trim(MJQty4.Text) <> '' then begin sql.Add(',MJQty4=' + Trim(MJQty4.Text)); end else begin sql.Add(',MJQty4=0'); end; if RadioGroup1.ItemIndex = 0 then begin sql.Add(',MJType=''正品'' '); end else if RadioGroup1.ItemIndex = 1 then begin sql.Add(',MJType=''次品'' '); end else if RadioGroup1.ItemIndex = 2 then begin sql.Add(',MJType=''多拼'' '); end; sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''''); sql.Add('UPdate CK_BanCP_KC Set KCQtyUnit=''' + Trim(M.Caption) + ''''); if Trim(MJLen.Text) <> '' then begin sql.Add(',KCQty=' + Trim(MJLen.Text)); end else begin sql.Add(',KCQty=0'); end; if Trim(MJMaoZ.Text) <> '' then begin sql.Add(',KCKGQty=' + Trim(MJMaoZ.Text)); end else begin sql.Add(',KCKGQty=0'); end; sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''' and KCQty>0'); ExecSQL; end; with ADOCmd do begin Close; sql.Clear; sql.Add('UPdate CK_BanCP_CR Set QtyUnit=''' + Trim(M.Caption) + ''''); sql.Add(',AOrdDefStr1=''' + Trim(MJStr4.Text) + ''''); if Trim(MJLen.Text) <> '' then begin sql.Add(',Qty=' + Trim(MJLen.Text)); end else begin sql.Add(',Qty=0'); end; if Trim(MJMaoZ.Text) <> '' then begin sql.Add(',KGQty=' + Trim(MJMaoZ.Text)); end else begin sql.Add(',KGQty=0'); end; if Trim(MJQty4.Text) <> '' then begin sql.Add(',MJQty4=' + Trim(MJQty4.Text)); end else begin sql.Add(',MJQty4=0'); end; if RadioGroup1.ItemIndex = 0 then begin sql.Add(',CPType=''正品'' '); end else if RadioGroup1.ItemIndex = 1 then begin sql.Add(',CPType=''次品'' '); end else if RadioGroup1.ItemIndex = 2 then begin sql.Add(',MJType=''多拼'' '); end; sql.Add(' where MJID=''' + Trim(Label2.Caption) + ''''); ExecSQL; end; ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmMJEdit.ToolButton2Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); Exit; end; end; procedure TfrmMJEdit.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('布匹管理', Tv2, '染厂检验管理'); end; procedure TfrmMJEdit.FormShow(Sender: TObject); begin ReadCxGrid('布匹管理', Tv2, '染厂检验管理'); end; procedure TfrmMJEdit.ToolButton4Click(Sender: TObject); begin with ADOTmp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR where MJID=''' + Trim(Label2.Caption) + ''''); sql.Add(' and CRFlag=''入库'''); Open; end; if ADOTmp.IsEmpty = False then begin Application.MessageBox('已产生入库数据不能删除!', '提示', 0); Exit; end else begin if Application.MessageBox('确定要作废数据吗?作废后数据不能恢复。', '提示', 32 + 4) = IDYES then begin with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY where MJID=''' + Trim(Label2.Caption) + ''' '); sql.Add('delete WFB_MJJY_CD where MJID=''' + Trim(Label2.Caption) + ''' '); sql.Add('delete CK_BanCP_CR where MJID=''' + Trim(Label2.Caption) + ''' '); sql.Add('delete CK_BanCP_KC where MJID=''' + Trim(Label2.Caption) + ''' '); 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(MJID.text)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; Label2.Caption := ''; end; end; end; procedure TfrmMJEdit.MDblClick(Sender: TObject); begin if trim(M.Caption) = 'M' then M.Caption := 'Y' else M.Caption := 'M'; end; procedure TfrmMJEdit.TBQPrintClick(Sender: TObject); var // fPrintFile: string; // Txt, fImagePath: string; // Moudle: THandle; // Makebar: TMakebar; // Mixtext: TMixtext; fPrintFile, fPrintFile1, fPrintFile2: string; Txt, fImagePath, fImagePath1, fImagePath2, Txt4, fImagePath4: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,G.ConNo,GangNo=A.MJStr4,A.MJStr4,isnull(C.styleNo,F.StyleNo) StyleNo,G.KHConNo,G.ConLBName,G.ConNLBName'); sql.Add(',B.MaiTouNote,B.MPRTCode,B.LBName,B.NLBName,B.Filltime ZDDate,B.FBQName '); sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)'); sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,isnull(C.PRTColorEng,F.SOrdDefStr4) OrdPRTColorEng,F.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,B.LengUnit,D.PiQty '); sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty'); sql.add(' ,substring(G.ConNo,LEN(G.ConNO)-3,LEN(G.ConNO)) HS,F.XHNo'); sql.Add(',TLen=cast(MJLen as varchar(10))'); sql.Add(',FLen=substring(cast(MJLen as varchar(10)),1,LEN(MJLen)-3)+'',''+RIGHT(cast(MJLen as varchar(10)),2)'); SQL.ADD(' ,F.PRTMF,F.PRTKZ,F.PRTCodeName,F.PRTCode,G.CustomerNoName,C.*,A.*'); sql.Add(' from WFB_MJJY A'); sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid'); sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' '); sql.Add(' inner join CK_SXPB_CR D on D.SPId=A.APId '); sql.add(' left join JYOrderCon_Sub F on F.Subid=A.ConID'); sql.add(' left join JYOrderCon_Main G on G.Mainid=F.Mainid'); SQL.Add(' where A.MJID=''' + Trim(Label2.Caption) + ''''); Open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('MJID').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; sleep(500); try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := '32' + Copy(Trim(ADOQueryPrint.fieldbyname('orderNo').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); fImagePath1 := ExtractFilePath(Application.ExeName) + 'image\temp1.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath1) then DeleteFile(fImagePath1); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath1), 4); except ; //ADOCmd.Connection.RollbackTrans; application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := 'NWJ01.100;' + Trim(ADOQueryPrint.fieldbyname('styleNo').AsString) + ';801;' + Trim(ADOQueryPrint.fieldbyname('PRTHX').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJQty4').AsString) + ';' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + ';' + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\temp2.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath2) then DeleteFile(fImagePath2); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath2), 4); except ; application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt4 := '{"A":"' + Trim(ADOQueryPrint.fieldbyname('KHConNO').AsString) + '","B":"' + Trim(ADOQueryPrint.fieldbyname('StyleNo').AsString) + '","C":"' + Trim(ADOQueryPrint.fieldbyname('mjqty4').AsString) + '","D":"' + Trim(ADOQueryPrint.fieldbyname('MJlen').AsString) + '","E":"' + Trim(ADOQueryPrint.fieldbyname('mjstr4').AsString) + '","F":"' + RightStr(('10000' + trim(ADOQueryPrint.fieldbyName('MJXH').AsString)), 4) + '"}'; fImagePath4 := ExtractFilePath(Application.ExeName) + 'image\temp4.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath4) then DeleteFile(fImagePath4); Makebar(pchar(Txt4), Length(Txt4), 3, 3, 0, PChar(fImagePath4), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf'; if FileExists(fPrintFile) then begin RMVariables['ID'] := trim(ADOQueryPrint.fieldbyname('HS').AsString) + Trim(ADOQueryPrint.fieldbyname('XHNo').AsString); RMVariables['QRBARCODE'] := fImagePath; RMVariables['QRBARCODE1'] := fImagePath1; RMVariables['QRBARCODE2'] := fImagePath2; RMVariables['QRBARCODE4'] := fImagePath4; RMVariables['MJXH1'] := '32' + copy(Trim(ADOQueryPrint.fieldbyname('orderNo').AsString), 3, 4) + formatdatetime('yyyyMMdd', ADOQueryPrint.fieldbyname('ZDDate').AsDateTime) + RightStr('10000' + Trim(ADOQueryPrint.fieldbyname('MJXH').AsString), 4); RMVariables['FMPRTMF'] := StrToFloatDef(ADOQueryPrint.fieldbyname('MPRTMF').AsString, 0) / 100; RM2.LoadFromFile(fPrintFile); RM2.DefaultCopies := strtointdef(trim(FS.Text), 1); //RM2.ShowReport; RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString)), '提示', 0); end; end; end.