unit U_ZHCPInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils, cxDropDownEdit, jpeg, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC, cxGridCustomPopupMenu, cxGridPopupMenu, cxGroupBox, cxCheckBox, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IniFiles; type TfrmZHCPInPut = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; ADOQuery1: TADOQuery; TBSave: TToolButton; Label26: TLabel; CDS_PRT: TClientDataSet; RM1: TRMGridReport; Panel3: TPanel; Panel6: TPanel; Panel5: TPanel; Label12: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label2: TLabel; ZIKZ: TEdit; ZIMF: TEdit; ZICF: TEdit; Panel8: TPanel; Button1: TButton; ODPat: TOpenDialog; Image1: TImage; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; Label1: TLabel; Panel66: TPanel; Image2: TImage; Panel2: TPanel; Label3: TLabel; Button2: TButton; ToolButton1: TToolButton; Label4: TLabel; ZIID: TEdit; adoqueryPicture: TADOQuery; Panel1: TPanel; Image11: TImage; Image22: TImage; RMDBMain: TRMDBDataSet; Label5: TLabel; Edit1: TEdit; Label6: TLabel; Edit2: TEdit; ZIGY: TMemo; Label7: TLabel; Label8: TLabel; ZIName: TEdit; Label9: TLabel; Note: TMemo; ADOQueryCmd: TADOQuery; Label10: TLabel; ZICL: TEdit; Label11: TLabel; Label13: TLabel; Label17: TLabel; Label18: TLabel; MianBu: TBtnEditA; ZhongJianC: TBtnEditA; DiBu: TBtnEditA; Label19: TLabel; Label20: TLabel; Label21: TLabel; DiBuName: TBtnEditA; ZhongJianCName: TEdit; ZhongJianCID: TEdit; Label22: TLabel; DiBuID: TEdit; Label23: TLabel; MianBuName: TBtnEditA; HXNO: TBtnEditC; Label24: TLabel; MBCBDJ: TEdit; Label25: TLabel; DBCBDJ: TEdit; Label27: TLabel; MHDJ: TEdit; Label28: TLabel; XHJGFDJ: TEdit; Label29: TLabel; CPCBDJ: TEdit; Panel4: TPanel; Button3: TButton; Button4: TButton; Label30: TLabel; TSHGYCB: TEdit; Label31: TLabel; CPSSL: TEdit; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Image1DblClick(Sender: TObject); procedure Image2DblClick(Sender: TObject); procedure HXNO1BtnClick(Sender: TObject); procedure MianBuBtnClick(Sender: TObject); procedure ZhongJianCBtnClick(Sender: TObject); procedure DiBuBtnClick(Sender: TObject); procedure DiBuNameBtnClick(Sender: TObject); procedure MianBuNameBtnClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure HXNOBtnDnClick(Sender: TObject); procedure HXNOBtnUpClick(Sender: TObject); procedure MBCBDJChange(Sender: TObject); private lstPat, lstPat2: TStringList; FangXiang1, FangXiang2: string; procedure InitData(); procedure SaveImage(maxnoWB: string; FIMNO: string); procedure ReadINIFile10(); function SaveData(): Boolean; function BJData(): Boolean; function StrFenHang(FStr: string; var FHStr: string): Boolean; { Private declarations } public canshu1, ZT: string; PState, CopyInt: Integer; FMainId, FZIType: string; { Public declarations } end; var frmZHCPInPut: TfrmZHCPInPut; implementation //ZH_KH_DJ uses U_DataLink, U_ZDYHelp, U_RTFun, U_ZHCPBigTP, U_ZdyAttachCP_HX, U_MLMangeRSSel, U_MCP, U_MLMangeYH; {$R *.dfm} function TfrmZHCPInPut.BJData(): Boolean; var BJmaxno, BJmaxmxno, FMXID, FBaoJia, FZIID, FZIIDAdd, FAdd, FZIIDYS: string; FXH: Integer; FDate: TDateTime; begin Result := False; FDate := SGetServerDate(ADOTemp); try // ADOCmd.Connection.BeginTrans; // if GetLSNoHZ(ADOCmd, BJmaxno, 'ZD', 'ZH_KH_DJ', 3, 1, 1) = False then // begin // ADOCmd.Connection.RollbackTrans; // Application.MessageBox('取最大号失败!', '提示', 0); // Exit; // end; // with ADOCmd do // begin // Close; // sql.Clear; // SQL.Add('select * from ZH_KH_DJ where ZDId=''' + Trim(BJmaxno) + ''''); // Open; // end; // with ADOCmd do // begin // Append; // FieldByName('ZDId').Value := Trim(BJmaxno); // FieldByName('Filler').Value := Trim(DName); // FieldByName('FillerCode').Value := Trim(DCode); // FieldByName('Valid').Value := 'Y'; // FieldByName('ZDDate').Value := FDate; // Post; // end; if GetLSNo(ADOCmd, BJmaxmxno, 'ZC', 'ZH_KH_DJ_CP', 4, 1) = False then begin // Order_Sub.EnableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('取明细最大号失败', '提示', 0); Exit; end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from ZH_KH_DJ_CP where ZCID=''' + Trim(BJmaxmxno) + ''''); Open; end; with ADOCmd do begin Append; FieldByName('Filler').Value := Trim(DName); FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Valid').Value := 'Y'; FieldByName('ZIID').Value := Trim(FMainId); FieldByName('ZIName').Value := Trim(ZIName.text); FieldByName('ZIMF').Value := Trim(ZIMF.text); FieldByName('ZIKZ').Value := Trim(ZIKZ.text); FieldByName('ZICF').Value := Trim(ZICF.text); FieldByName('ZICL').Value := Trim(ZICL.text); FieldByName('ZIIDYS').Value := Trim(FMainId); FieldByName('ZDID').Value := Trim(BJmaxno); FieldByName('ZCID').Value := Trim(BJmaxmxno); // FieldByName('CPFiller').Value := Trim(DName); FieldByName('LeiBie').Value := '登记样'; FieldByName('MBBJ').Value := StrToFloatDef(MBCBDJ.text, 0); FieldByName('DBBJ').Value := StrToFloatDef(DBCBDJ.text, 0); FieldByName('BaoJia').Value := StrToFloatDef(CPCBDJ.text, 0); FieldByName('BaoJiaYW').Value := StrToFloatDef(CPCBDJ.text, 0); Post; end; // ADOCmd.Connection.CommitTrans; // FMainId := Trim(maxno); Result := True; except Result := False; // Panel1.Visible := False; // ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmZHCPInPut.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmZHCPInPut.InitData(); var jpg: TJpegImage; myStream: TADOBlobStream; FStr: string; begin with ADOQuery1 do begin Close; sql.Clear; sql.Add(' select * '); sql.Add(' from ZH_CP_Info '); sql.Add(' where ZIID=''' + Trim(FMainId) + ''''); Open; end; SCSHDataNew(ADOQuery1, Panel5, 9); SCSHDataNew(ADOQuery1, Panel5, 2); SCSHDataNew(ADOQuery1, Panel3, 9); with adoqueryPicture do begin Close; sql.Clear; sql.Add('select * from Image_Info A'); sql.Add(' inner join Image_File B on A.IMID=B.IMID'); sql.Add(' and A.WBID=''' + Trim(FMainId) + ''''); sql.Add(' and isnull(A.IMNo,'''')=''内容'' and A.Valid=''Y'' '); Open; end; if adoqueryPicture.IsEmpty = False then begin FStr := Trim(adoqueryPicture.fieldbyname('ImageName').AsString); Edit1.Text := Copy(FStr, 1, Length(FStr) - 4); jpg := TJpegImage.Create(); myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('ImageFile')), bmread); jpg.LoadFromStream(myStream); Image1.Picture.Assign(jpg); Image1.Width := adoqueryPicture.fieldbyname('ImageWidth').Value; Image1.Height := adoqueryPicture.fieldbyname('ImageHeight').Value; if Trim(adoqueryPicture.fieldbyname('FangXiang').AsString) = '垂直' then begin Image1.Top := 1; Image1.Left := Round((Panel6.Width - Image1.Width) / 2); end else begin Image1.Left := 1; Image1.Top := Round((Panel6.Height - Image1.Height) / 2); end; Image1.Visible := True; end; with adoqueryPicture do begin Close; sql.Clear; sql.Add('select * from Image_Info A'); sql.Add(' inner join Image_File B on A.IMID=B.IMID'); sql.Add(' and A.WBID=''' + Trim(FMainId) + ''''); sql.Add(' and isnull(A.IMNo,''图片'')=''图片'' and A.Valid=''Y'' '); Open; end; if adoqueryPicture.IsEmpty = False then begin FStr := Trim(adoqueryPicture.fieldbyname('ImageName').AsString); Edit2.Text := Copy(FStr, 1, Length(FStr) - 4); jpg := TJpegImage.Create(); myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('ImageFile')), bmread); jpg.LoadFromStream(myStream); Image2.Picture.Assign(jpg); Image2.Width := adoqueryPicture.fieldbyname('ImageWidth').Value; Image2.Height := adoqueryPicture.fieldbyname('ImageHeight').Value; if Trim(adoqueryPicture.fieldbyname('FangXiang').AsString) = '垂直' then begin Image2.Top := 1; Image2.Left := Round((Panel66.Width - Image2.Width) / 2); end else begin Image2.Left := 1; Image2.Top := Round((Panel66.Height - Image2.Height) / 2); end; Image2.Visible := True; end; if TBSave.Visible = False then begin Button1.Visible := False; Button2.Visible := False; ZIMF.Color := ZIID.Color; ZIKZ.Color := ZIID.Color; ZICF.Color := ZIID.Color; ZIName.Color := ZIID.Color; ZIGY.Color := ZIID.Color; Note.Color := ZIID.Color; end; end; procedure TfrmZHCPInPut.FormShow(Sender: TObject); begin InitData(); end; function TfrmZHCPInPut.SaveData(): Boolean; var maxno: string; begin Result := False; try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId) = '' then begin if Trim(FZIType) <> '75D绗绣面料' then begin if GetLSNoHZ(ADOCmd, maxno, 'Y', 'ZH_CP_Info', 4, 1, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin if GetLSNoHZ(ADOCmd, maxno, 'A', 'ZH_CP_Info', 4, 1, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end; end else begin maxno := Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from ZH_CP_Info where ZIId=''' + Trim(maxno) + ''''); Open; end; with ADOCmd do begin if Trim(FMainId) = '' then begin Append; FieldByName('ZIType').Value := FZIType; end else begin Edit; end; FieldByName('ZIId').Value := Trim(maxno); if Trim(FMainId) = '' then begin FieldByName('ZIIdYS').Value := Trim(maxno); FieldByName('Filler').Value := Trim(DName); FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Valid').Value := 'Y'; FieldByName('ZIDate').Value := SGetServerDate(ADOTemp); end else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditerCode').Value := Trim(DCode); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; RTSetsavedata(ADOCmd, 'ZH_CP_Info', Panel5, 2); RTSetsavedata(ADOCmd, 'ZH_CP_Info', Panel3, 9); FieldByName('HXNM').Value := Trim(HXNO.TxtCode); Post; end; FMainId := Trim(maxno); if Trim(Image1.Hint) <> '' then begin SaveImage(maxno, '内容'); end; if Trim(Image2.Hint) <> '' then begin SaveImage(maxno, '图片'); end; if trim(FZIType) <> '单面料' then begin if not BJData() then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!', '提示', 0); exit; end; end; ADOCmd.Connection.CommitTrans; FMainId := Trim(maxno); Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmZHCPInPut.TBSaveClick(Sender: TObject); begin ToolBar1.SetFocus; if Trim(ZIName.Text) = '' then begin Application.MessageBox('品名不能为空!', '提示', 0); Exit; end; if Trim(ZIMF.Text) = '' then begin Application.MessageBox('门幅不能为空!', '提示', 0); Exit; end; if Trim(ZIKZ.Text) = '' then begin Application.MessageBox('克重不能为空!', '提示', 0); Exit; end; if Trim(ZICF.Text) = '' then begin Application.MessageBox('成份不能为空!', '提示', 0); Exit; end; if trim(FZIType) <> '单面料' then begin if Trim(HXNO.Text) = '' then begin Application.MessageBox('花型号不能为空!', '提示', 0); Exit; end; if (Trim(DiBu.Text) = '') and (Trim(DiBuName.Text) = '') then begin Application.MessageBox('底布编号和底布名称不能都为空!', '提示', 0); Exit; end; if Trim(MianBuName.Text) = '' then begin Application.MessageBox('面布名称不能为空!', '提示', 0); Exit; end; if Trim(ZhongJianC.Text) = '' then begin Application.MessageBox('中间层编号不能为空!', '提示', 0); Exit; end; if Trim(ZhongJianCName.Text) = '' then begin Application.MessageBox('中间层名称不能为空!', '提示', 0); Exit; end; if Trim(MHDJ.Text) = '' then begin Application.MessageBox('棉花单价不能为空!', '提示', 0); Exit; end; if Trim(XHJGFDJ.Text) = '' then begin Application.MessageBox('绣花加工费单价不能为空!', '提示', 0); Exit; end; end; if Trim(ZICL.Text) = '' then begin if Application.MessageBox('产量为空,确定要保存数据吗?', '提示', 32 + 4) <> IDYES then Exit; end; Panel1.Visible := True; Panel1.Refresh; if SaveData() then begin Panel1.Visible := False; Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmZHCPInPut.ReadINIFile10(); var programIni: Tinifile; //配置文件名 FileName: string; begin FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI'; programIni := Tinifile.create(FileName); server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1'); programIni.Free; end; procedure TfrmZHCPInPut.SaveImage(maxnoWB: string; FIMNO: string); var ImagePath, ImagName, MaxNo, MaxNoFile: string; AJpeg: TJPEGImage; myStream: TADOBlobStream; begin try if Trim(FIMNO) = '内容' then begin ImagePath := Image1.Hint; ImagName := Image1.Hint; end else if Trim(FIMNO) = '图片' then begin ImagePath := Image2.Hint; ImagName := Image2.Hint; end; AJpeg := TJpegImage.Create(); with ADOCmd do begin Close; sql.Clear; SQL.Add('UPdate Image_File Set Valid=''N'' '); sql.Add(' where IMID=(select IMID from Image_Info'); Sql.Add('where WBID=''' + Trim(maxnoWB) + ''' and Valid=''Y'' and IMNO=''' + Trim(FIMNO) + ''')'); ExecSQL; end; with ADOCmd do begin Close; sql.Clear; SQL.Add('UPdate Image_Info Set Editer=''' + Trim(DName) + ''',EditerCode=''' + Trim(DCode) + ''',EditTime=getdate()'); sql.Add(',Valid=''N'' where WBID=''' + Trim(maxnoWB) + ''' and Valid=''Y'' and IMNO=''' + Trim(FIMNO) + ''' '); ExecSQL; end; if GetLSNo(ADOCmd, MaxNo, 'IM', 'Image_Info', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取图片信息最大号失败!', '提示', 0); Exit; end; with ADOCmd do begin Close; SQL.Clear; SQL.Add('select * from Image_Info where 1=2'); Open; end; with ADOCmd do begin Append; FieldByName('IMID').Value := Trim(MaxNo); FieldByName('IMNo').Value := FIMNO; FieldByName('WBID').Value := Trim(maxnoWB); FieldByName('ImageName').Value := Trim(ImagName); FieldByName('ImagePath').Value := Trim(MaxNo) + Trim(ImagName); FieldByName('ImageDate').Value := SGetServerDate(ADOTemp); Fieldbyname('ImageType').value := Trim('YP'); Fieldbyname('Valid').value := Trim('Y'); Post; end; if GetLSNo(ADOCmd, MaxNoFile, 'IF', 'Image_File', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取图片文件最大号失败!', '提示', 0); Exit; end; with ADOCmd do begin close; sql.Clear; sql.Add(' select * from Image_File where 1=2'); open; end; with ADOCmd do begin Append; FieldByName('IMID').Value := Trim(MaxNo); FieldByName('IFID').Value := Trim(MaxNoFile); Fieldbyname('Valid').value := Trim('Y'); if Trim(FIMNO) = '内容' then begin FieldByName('ImageWidth').Value := Image1.Width; FieldByName('ImageHeight').Value := Image1.Height; FieldByName('FangXiang').Value := FangXiang1; end else if Trim(FIMNO) = '图片' then begin FieldByName('ImageWidth').Value := Image2.Width; FieldByName('ImageHeight').Value := Image2.Height; FieldByName('FangXiang').Value := FangXiang2; end; FieldByName('IFType').Value := '小'; myStream := TADOBlobStream.Create(TBlobField(ADOCmd.FieldByName('ImageFile')), bmWrite); if Trim(FIMNO) = '内容' then begin AJpeg.Assign(Image1.Picture.Graphic); end else if Trim(FIMNO) = '图片' then begin AJpeg.Assign(Image2.Picture.Graphic); end; AJpeg.SaveToStream(myStream); myStream.Free; Post; end; with ADOCmd do begin Append; FieldByName('IMID').Value := Trim(MaxNo); FieldByName('IFID').Value := Trim(MaxNoFile) + 'D'; Fieldbyname('Valid').value := Trim('Y'); if Trim(FIMNO) = '内容' then begin FieldByName('ImageWidth').Value := Image11.Width; FieldByName('ImageHeight').Value := Image11.Height; FieldByName('FangXiang').Value := FangXiang1; end else if Trim(FIMNO) = '图片' then begin FieldByName('ImageWidth').Value := Image22.Width; FieldByName('ImageHeight').Value := Image22.Height; FieldByName('FangXiang').Value := FangXiang2; end; FieldByName('IFType').Value := '大'; myStream := TADOBlobStream.Create(TBlobField(ADOCmd.FieldByName('ImageFile')), bmWrite); if Trim(FIMNO) = '内容' then begin AJpeg.Assign(Image11.Picture.Graphic); end else if Trim(FIMNO) = '图片' then begin AJpeg.Assign(Image22.Picture.Graphic); end; AJpeg.SaveToStream(myStream); myStream.Free; Post; end; try ReadINIFile10(); server := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1'); IdFTP1.Host := server; //PicSvr; IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except IdFTP1.Quit; Application.MessageBox('无法连接到文件服务器,请检查!', '提示', MB_ICONWARNING); Exit; end; if IdFTP1.Connected then begin if Trim(FIMNO) = '内容' then begin IdFTP1.Put(lstPat[0], 'YP' + '\' + Trim(MaxNo) + Trim(ImagName)); end else if Trim(FIMNO) = '图片' then begin IdFTP1.Put(lstPat2[0], 'YP' + '\' + Trim(MaxNo) + Trim(ImagName)); end; end; if IdFTP1.Connected then IdFTP1.Quit; except ADOCmd.Connection.RollbackTrans; Application.MessageBox('图片保存失败!', '提示', 0); end; end; procedure TfrmZHCPInPut.FormClose(Sender: TObject; var Action: TCloseAction); begin ModalResult := 1; end; procedure TfrmZHCPInPut.Button1Click(Sender: TObject); var AJpeg: TJPEGImage; Bitmap, Bitmap11: TBitmap; ARect, ARect11: TRect; TPHeight, AHeightOffset: Integer; TPWidth, AWidthOffset: Integer; WZShuiPing, WZChuiZhi: Integer; WZFlag: string; FHFStr: string; begin lstPat.Clear; if ODPat.Execute then begin lstPat.AddStrings(ODPat.Files); end else begin Exit; end; if lstPat.Count > 1 then begin lstPat.Clear; Application.MessageBox('不能上传多个图片!', '提示', 0); Exit; end else if lstPat.Count < 1 then begin Exit; end; Panel1.Visible := True; Panel1.Refresh; Panel6.Color := clBtnFace; Panel6.Hint := ''; AJpeg := TJpegImage.Create(); AJpeg.LoadFromFile(ExtractFileName(ODPat.FileName)); Image1.Hint := ExtractFileName(ODPat.FileName); if Copy(Image1.Hint, Length(Image1.Hint) - 2, Length(Image1.Hint)) <> 'jpg' then begin Application.MessageBox('图片必须是jpg格式', '提示', 0); Exit; end; TPWidth := AJpeg.Width; TPHeight := AJpeg.Height; Bitmap := TBitmap.Create; Bitmap11 := TBitmap.Create; Bitmap.Width := Panel6.Width - 2; Bitmap.Height := Round(Panel6.Width / TPWidth * TPHeight); if Bitmap.Height > Panel6.Height then begin WZFlag := '垂直'; Bitmap.Height := Panel6.Height - 2; Bitmap.Width := Round(Panel6.Height / TPHeight * TPWidth); end; Bitmap11.Width := Bitmap.Width * 2; Bitmap11.Height := Bitmap.Height * 2; Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height)); ARect := Rect(0, 0, Bitmap.Width, Bitmap.Height); Bitmap.Canvas.StretchDraw(ARect, AJpeg); Image1.Height := Bitmap.Height; Image1.Width := Bitmap.Width; Image1.Picture.Assign(Bitmap); if Trim(WZFlag) = '垂直' then begin Image1.Top := 1; Image1.Left := Round((Panel6.Width - Image1.Width) / 2); end else begin Image1.Left := 1; Image1.Top := Round((Panel6.Height - Image1.Height) / 2); end; FangXiang1 := WZFlag; Image1.Visible := True; Bitmap11.Canvas.FillRect(Rect(0, 0, Bitmap11.Width, Bitmap11.Height)); ARect11 := Rect(0, 0, Bitmap11.Width, Bitmap11.Height); Bitmap11.Canvas.StretchDraw(ARect11, AJpeg); Image11.Height := Bitmap11.Height; Image11.Width := Bitmap11.Width; Image11.Picture.Assign(Bitmap11); // Image11.Visible:=True; Edit1.Text := Copy(Image1.Hint, 1, Length(Image1.Hint) - 4); StrFenHang(Edit1.Text, FHFStr); ZIGY.Text := FHFStr; Panel1.Visible := False; end; function TfrmZHCPInPut.StrFenHang(FStr: string; var FHStr: string): Boolean; var i, j: Integer; LSStr: string; begin Result := False; FStr := Trim(FStr); FHStr := ''; j := 1; i := Pos(' ', FStr); while i > 0 do begin if j = 1 then begin LSStr := Copy(FStr, 1, i - 1); //'1234 5678 456' FHStr := '1:' + LSStr; end else begin LSStr := Copy(FStr, 1, i - 1); if Trim(LSStr) = '' then begin FStr := Copy(FStr, i + 1, Length(FStr) - i); end else FHStr := FHStr + #13 + #10 + inttostr(j) + ':' + LSStr; end; if Trim(LSStr) <> '' then begin j := j + 1; FStr := Copy(FStr, i + 1, Length(FStr) - i); end; i := Pos(' ', FStr); end; if j = 1 then begin FHStr := FStr; end else begin if Trim(FStr) <> '' then begin FHStr := FHStr + #13 + #10 + inttostr(j) + ':' + FStr; end; end; Result := True; end; procedure TfrmZHCPInPut.FormCreate(Sender: TObject); begin lstPat := TStringList.Create; lstPat2 := TStringList.Create; end; procedure TfrmZHCPInPut.Button2Click(Sender: TObject); var AJpeg: TJPEGImage; Bitmap, Bitmap22: TBitmap; ARect, ARect22: TRect; TPHeight, AHeightOffset: Integer; TPWidth, AWidthOffset: Integer; WZShuiPing, WZChuiZhi: Integer; WZFlag: string; begin lstPat2.Clear; if ODPat.Execute then begin lstPat2.AddStrings(ODPat.Files); end else begin Exit; end; if lstPat2.Count > 1 then begin lstPat2.Clear; Application.MessageBox('不能上传多个图片!', '提示', 0); Exit; end else if lstPat2.Count < 1 then begin Exit; end; Panel1.Visible := True; Panel1.Refresh; AJpeg := TJpegImage.Create(); AJpeg.LoadFromFile(ExtractFileName(ODPat.FileName)); Image2.Hint := ExtractFileName(ODPat.FileName); //ShowMessage(Copy(Image2.Hint,Length(Image2.Hint)-2,Length(Image2.Hint))); if Copy(Image2.Hint, Length(Image2.Hint) - 2, Length(Image2.Hint)) <> 'jpg' then begin Application.MessageBox('图片必须是jpg格式', '提示', 0); Exit; end; TPWidth := AJpeg.Width; TPHeight := AJpeg.Height; Bitmap := TBitmap.Create; Bitmap22 := TBitmap.Create; Bitmap.Width := Panel66.Width - 2; Bitmap.Height := Round(Panel66.Width / TPWidth * TPHeight); if Bitmap.Height > Panel66.Height then begin WZFlag := '垂直'; Bitmap.Height := Panel66.Height - 2; Bitmap.Width := Round(Panel66.Height / TPHeight * TPWidth); end; Bitmap22.Width := Bitmap.Width * 2; Bitmap22.Height := Bitmap.Height * 2; Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height)); ARect := Rect(0, 0, Bitmap.Width, Bitmap.Height); Bitmap.Canvas.StretchDraw(ARect, AJpeg); Image2.Height := Bitmap.Height; Image2.Width := Bitmap.Width; Image2.Picture.Assign(Bitmap); if Trim(WZFlag) = '垂直' then begin Image2.Top := 1; Image2.Left := Round((Panel66.Width - Image2.Width) / 2); end else begin Image2.Left := 1; Image2.Top := Round((Panel66.Height - Image2.Height) / 2); end; FangXiang2 := WZFlag; Bitmap22.Canvas.FillRect(Rect(0, 0, Bitmap22.Width, Bitmap22.Height)); ARect22 := Rect(0, 0, Bitmap22.Width, Bitmap22.Height); Bitmap22.Canvas.StretchDraw(ARect22, AJpeg); Image22.Height := Bitmap22.Height; Image22.Width := Bitmap22.Width; Image22.Picture.Assign(Bitmap22); Image2.Visible := True; Edit2.Text := Copy(Image2.Hint, 1, Length(Image2.Hint) - 4); ZIName.Text := Edit2.Text; Panel1.Visible := False; end; procedure TfrmZHCPInPut.ToolButton1Click(Sender: TObject); var fPrintFile, Txt, fImagePath, maxno: string; i, j: Integer; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Trim(FMainId) = '' then begin Application.MessageBox('没有保存数据,不能打印!', '提示', 0); Exit; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\展会产品标签85.rmf'; if FileExists(fPrintFile) = False then begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\展会产品标签85.rmf'), '提示', 0); exit; end; with ADOTemp do begin Close; SQL.Clear; sql.Add(' select A.* ,C.ImageFile'); sql.Add(' from ZH_CP_Info A'); sql.Add(' inner join Image_Info B on A.ZIID=B.WBID'); sql.Add(' inner join Image_File C on B.IMID=C.IMID'); sql.Add(' where A.ZIID=''' + Trim(FMainId) + ''''); sql.Add(' and B.IMNO=''图片'' and A.Valid=''Y'' and B.Valid=''Y'' and C.Valid=''Y'' '); Open; end; SCreateCDS20(ADOTemp, CDS_PRT); SInitCDSData20(ADOTemp, CDS_PRT); try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxno, 'DYKC', 'ZH_CP_Info_KC', 4, 1, ) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取样品打印最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select * from ZH_CP_Info_KC where DYId=''' + Trim(maxno) + ''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('ZIId').Value := Trim(FMainId); FieldByName('DYId').Value := Trim(maxno); FieldByName('Filler').Value := Trim(DName); FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Valid').Value := 'Y'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update ZH_CP_Info_KC Set DYXH=isnull((select max(DYXH) from ZH_CP_Info_KC A '); sql.Add(' where A.ZIID=''' + Trim(FMainId) + '''),0)+1 '); sql.Add(' where DYID=''' + Trim(maxno) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存打印流水号异常!', '提示', 0); Exit; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(maxno); 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; RMVariables['DYID'] := maxno; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; RM1.PrintReport; end; procedure TfrmZHCPInPut.Image1DblClick(Sender: TObject); begin if Trim(FMainId) = '' then begin Application.MessageBox('没有保存数据,不能查看大图!', '提示', 0); Exit; end; try frmZHCPBigTP := TfrmZHCPBigTP.Create(Application); with frmZHCPBigTP do begin frmZHCPBigTP.FMainId := Self.FMainId; if Trim(ZIID.Text) <> '' then frmZHCPBigTP.FIMNO := '内容'; if ShowModal = 1 then begin end; end; finally frmZHCPBigTP.Free; end; end; procedure TfrmZHCPInPut.Image2DblClick(Sender: TObject); begin if Trim(FMainId) = '' then begin Application.MessageBox('没有保存数据,不能查看大图!', '提示', 0); Exit; end; try frmZHCPBigTP := TfrmZHCPBigTP.Create(Application); with frmZHCPBigTP do begin frmZHCPBigTP.FMainId := Self.FMainId; if Trim(ZIID.Text) <> '' then frmZHCPBigTP.FIMNO := '图片'; if ShowModal = 1 then begin end; end; finally frmZHCPBigTP.Free; end; end; procedure TfrmZHCPInPut.HXNO1BtnClick(Sender: TObject); begin try frmZdyAttachCP_HX := TfrmZdyAttachCP_HX.Create(Application); with frmZdyAttachCP_HX do begin if ShowModal = 1 then begin HXNO.text := Trim(CDS_HZ.fieldbyname('zdyCode').AsString); ZICL.text := Trim(CDS_HZ.fieldbyname('defstr1').AsString); end; end; finally frmZdyAttachCP_HX.Free; end; end; procedure TfrmZHCPInPut.MianBuBtnClick(Sender: TObject); begin try frmMLMangeYH := TfrmMLMangeYH.Create(Application); with frmMLMangeYH do begin if ShowModal = 1 then begin MianBu.text := Trim(CDS_Main.fieldbyname('MLXXNO').AsString); MianBuName.text := Trim(CDS_Main.fieldbyname('MLName').AsString); with ADOTemp do begin Close; sql.Clear; sql.Add('select top 1 MBCBDJ from ZH_CP_Info where MianBu=''' + Trim(CDS_Main.fieldbyname('MLXXNO').AsString) + ''' and Valid=''Y'' order by ZIDate desc '); Open; end; MBCBDJ.text := Trim(ADOTemp.fieldbyname('MBCBDJ').AsString); end; end; finally frmMLMangeYH.Free; end; end; procedure TfrmZHCPInPut.ZhongJianCBtnClick(Sender: TObject); begin Panel4.Visible := True; ZT := 'ZJC'; end; procedure TfrmZHCPInPut.DiBuBtnClick(Sender: TObject); begin Panel4.Visible := True; ZT := 'DB'; end; procedure TfrmZHCPInPut.DiBuNameBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'DiBuName'; flagname := '底布名称'; if ShowModal = 1 then begin DiBuName.text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZHCPInPut.MianBuNameBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'MianBuName'; flagname := '面布名称'; if ShowModal = 1 then begin MianBuName.text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); // with ADOTemp do // begin // Close; // sql.Clear; // sql.Add('select top 1 MBCBDJ from ZH_CP_Info where MianBuName=''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + ''' order by ZIDate desc '); // Open; // end; // MBCBDJ.text := Trim(ADOTemp.fieldbyname('MBCBDJ').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZHCPInPut.Button3Click(Sender: TObject); begin Self.Panel4.Visible := false; frmMCP := TfrmMCP.create(self); with frmMCP do begin flag := 'MName'; flagName := '棉'; ViewFlag := true; Panel4.Align := alClient; ToolBar3.Visible := false; ToolBar2.Enabled := false; Button1.Visible := False; if ShowModal = 1 then begin if ZT = 'ZJC' then begin ZhongJianCName.text := Trim(ClientDataSet1.fieldbyname('BPKZ').AsString) + 'G' + Trim(ClientDataSet1.fieldbyname('BPName').AsString); ZhongJianC.text := Trim(ClientDataSet1.fieldbyname('BPCode').AsString); ZhongJianCID.text := Trim(ClientDataSet1.fieldbyname('BPID').AsString); end else if ZT = 'DB' then begin DiBuName.text := Trim(ClientDataSet1.fieldbyname('BPKZ').AsString) + 'G' + Trim(ClientDataSet1.fieldbyname('BPName').AsString); DiBu.text := Trim(ClientDataSet1.fieldbyname('BPCode').AsString); DiBuID.text := Trim(ClientDataSet1.fieldbyname('BPID').AsString); end; end; free; end; end; procedure TfrmZHCPInPut.Button4Click(Sender: TObject); begin Self.Panel4.Visible := false; try frmMLMangeYH := TfrmMLMangeYH.Create(Application); with frmMLMangeYH do begin if ShowModal = 1 then begin if ZT = 'ZJC' then begin ZhongJianCName.text := Trim(CDS_Main.fieldbyname('MLName').AsString); ZhongJianC.text := Trim(CDS_Main.fieldbyname('MLXXNO').AsString); end else if ZT = 'DB' then begin DiBuName.text := Trim(CDS_Main.fieldbyname('MLName').AsString); DiBu.text := Trim(CDS_Main.fieldbyname('MLXXNO').AsString); end; end; end; finally frmMLMangeYH.Free; end; end; procedure TfrmZHCPInPut.HXNOBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmZHCPInPut.HXNOBtnUpClick(Sender: TObject); begin try frmZdyAttachCP_HX := TfrmZdyAttachCP_HX.Create(Application); with frmZdyAttachCP_HX do begin if ShowModal = 1 then begin HXNO.text := Trim(CDS_HZ.fieldbyname('zdyCode').AsString); ZICL.text := Trim(CDS_HZ.fieldbyname('defstr1').AsString); HXNO.TxtCode := Trim(CDS_HZ.fieldbyname('ZdyName').AsString); end; end; finally frmZdyAttachCP_HX.Free; end; end; procedure TfrmZHCPInPut.MBCBDJChange(Sender: TObject); begin if (Trim(MBCBDJ.Text) <> '') and (Trim(DBCBDJ.Text) <> '') and (Trim(MHDJ.Text) <> '') and (Trim(XHJGFDJ.Text) <> '') and (Trim(TSHGYCB.Text) <> '') then begin CPCBDJ.Text := FloatToStr(StrToFloatdef(Trim(MBCBDJ.Text), 0) + StrToFloatdef(Trim(DBCBDJ.Text), 0) + StrToFloatdef(Trim(MHDJ.Text), 0) + StrToFloatdef(Trim(XHJGFDJ.Text), 0) + StrToFloatdef(Trim(TSHGYCB.Text), 0)); end else begin CPCBDJ.Text := ''; end; end; end.