unit U_LLRKInPutMH_CG; 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 TfrmLLRKInPutMH_CG = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; ADOQuery1: TADOQuery; TBSave: TToolButton; DataSource1: TDataSource; ClientDataSet1: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; Label21: TLabel; Label26: TLabel; Label19: TLabel; CDS_Print: TClientDataSet; RM1: TRMGridReport; Panel3: TPanel; labMYType: TLabel; Panel4: TPanel; Label13: TLabel; Label27: TLabel; CRTime: TDateTimePicker; KHName: TBtnEditA; MYName: TEdit; Label22: TLabel; Panel5: TPanel; Label6: TLabel; Label12: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Note: TEdit; MYKZ: TEdit; MYMF: TEdit; PS: TEdit; Qty: TEdit; KgQty: TEdit; Label4: TLabel; Label5: TLabel; Label7: TLabel; Label8: TLabel; MXHZPS: TEdit; MXHZQty: TEdit; MXHZKgQty: TEdit; Label9: TLabel; Label10: TLabel; Label17: TLabel; Label18: TLabel; PSChaE: TEdit; QtyChaE: TEdit; KgQtyChaE: TEdit; Panel7: TPanel; Panel1: TPanel; Label20: TLabel; PTID: TEdit; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; Panel16: TPanel; Panel2: TPanel; Button3: TButton; Panel9: TPanel; Image1: TImage; Image11: TImage; adoqueryPicture: TADOQuery; Button2: TButton; MYCode: TEdit; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Panel6DblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure KHNameBtnClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Image1DblClick(Sender: TObject); procedure Panel1Click(Sender: TObject); procedure Label20Click(Sender: TObject); procedure Button2Click(Sender: TObject); private lstPat:TStringList; FangXiang1:String; procedure InitData(); procedure SaveImage(maxnoWB:String); procedure ReadINIFile10(); function SaveData():Boolean; procedure InitColor(); procedure ShowImage(); { Private declarations } public canshu1:String; PState,CopyInt:Integer; FMainId:String; FRead:String; FMYType,FMYTypeFlag,FML:string; { Public declarations } end; var frmLLRKInPutMH_CG: TfrmLLRKInPutMH_CG; implementation uses U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel, U_GYSList,U_SCPerson,U_QCRKJLList,U_RSColorBig, U_RTPTColor,U_KHListSelJJ,U_ZHCPBigTP,U_LLRKMXInPutMH,U_ZDYCPName,U_BPZdy_LRPB; {$R *.dfm} procedure TfrmLLRKInPutMH_CG.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmLLRKInPutMH_CG.InitData(); begin with ADOQuery1 do begin Close; sql.Clear; sql.Add(' select * '); sql.Add(' from CK_MYSC_CR '); sql.Add(' where MYID='''+Trim(FMainId)+''''); Open; end; SCSHDataNew(ADOQuery1,Panel4,2); SCSHDataNew(ADOQuery1,Panel4,0); SCSHDataNew(ADOQuery1,Panel5,2); SCSHDataNew(ADOQuery1,Panel5,0); KHName.TxtCode:=Trim(ADOQuery1.fieldbyname('KHCode').AsString); labMYType.Caption:=Trim(ADOQuery1.fieldbyname('MYType').AsString); ShowImage(); if PState=0 then begin CRTime.Date:=SGetServerDate(ADOTemp); labMYType.Caption:=FMYType; end; // KHName.SetFocus; {if Trim(PTID.Text)<>'' then begin InitColor(); end; } if TBSave.Visible=False then begin // Panel8.Visible:=False; Panel2.Visible:=False; initBtnColor(Panel4,clMenu); initBtnColor(Panel5,clMenu); end; end; procedure TfrmLLRKInPutMH_CG.FormShow(Sender: TObject); begin InitData(); end; function TfrmLLRKInPutMH_CG.SaveData():Boolean; var maxno,maxmxno,maxnoflag,fsj,FMXID:String; begin Result:=False; try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId)='' then begin if GetLSNo(ADOCmd,maxno,'LL','CK_MYSC_CR',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; maxno:=Trim(maxno); end else begin maxno:=Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from CK_MYSC_CR where MYId='''+Trim(FMainId)+''''); Open; end; with ADOCmd do begin if Trim(FMainId)='' then begin Append; end else begin Edit; end; FieldByName('MYId').Value:=Trim(maxno); FieldByName('CRType').Value:='采购入库'; FieldByName('CRFlag').Value:='入库'; FieldByName('CRQtyFlag').Value:=1; if Trim(FMainId)='' then begin FieldByName('Filler').Value:=Trim(DName); FieldByName('FillerCode').Value:=Trim(DCode); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditerCode').Value:=Trim(DCode); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; RTSetsavedata(ADOCmd,'CK_MYSC_CR',Panel4,2); RTSetsavedata(ADOCmd,'CK_MYSC_CR',Panel5,2); FieldByName('MYType').Value:=Trim(FMYType); FieldByName('MYTypeFlag').Value:=Trim(FMYTypeFlag); FieldByName('MYName').Value:=Trim(KHName.Text)+Trim(FormatDateTime('MMdd',CRTime.Date))+FMYType; fieldbyname('KHCode').AsString:=Trim(KHName.TxtCode); Post; end; FMainId:=Trim(maxno); with ADOCmd do begin Close; sql.Clear; SQL.Add('UPdate CK_MYSC_CR Set KHDayCS=isnull((select isnull(max(KHDayCS),0) from CK_MYSC_CR A '); sql.Add(' where A.CRTime=CK_MYSC_CR.CRTime and A.MYType=CK_MYSC_CR.MYType and isnull(A.KHName,'''')=isnull(CK_MYSC_CR.KHName,'''')),0)+1'); SQL.Add('where MYID='''+Trim(FMainId)+''' and isnull(KHName,'''')<>'''' '); sql.Add(' and isnull(KHDayCS,0)=0'); ExecSQL; end; with ADOCmd do begin Close; sql.Clear; sql.Add(' exec P_Update_LLRK_Qty :MYID'); Parameters.ParamByName('MYID').Value:=Trim(maxno); ExecSQL; end; if Trim(Image1.Hint)<>'' then begin SaveImage(maxno); end; ADOCmd.Connection.CommitTrans; FMainId:=Trim(maxno); Result:=True; except Result:=False; ClientDataSet1.EnableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmLLRKInPutMH_CG.TBSaveClick(Sender: TObject); var FReal:Double; FInt:Integer; begin ToolBar1.SetFocus; if Trim(KHName.Text)='' then begin Application.MessageBox('客户不能为空!','提示',0); Exit; end; if Trim(PS.Text)='' then begin Application.MessageBox('匹数不能为空!','提示',0); Exit; end; if TryStrToInt(PS.Text,FInt)=False then begin Application.MessageBox('匹数非法数字!','提示',0); exit; end; if (Trim(Qty.Text)='') and (Trim(KgQty.text)='') then begin Application.MessageBox('米数和公斤数不能同时为空!','提示',0); exit; end; if Trim(Qty.Text)<>'' then begin if TryStrToFloat(Qty.Text,FReal)=False then begin Application.MessageBox('米数非法数字!','提示',0); exit; end; end; if Trim(KgQty.Text)<>'' then begin if TryStrToFloat(KgQty.Text,FReal)=False then begin Application.MessageBox('公斤数非法数字!','提示',0); exit; end; end; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmLLRKInPutMH_CG.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 TfrmLLRKInPutMH_CG.SaveImage(maxnoWB:string); var ImagePath,ImagName,MaxNo,MaxNoFile:String; AJpeg:TJPEGImage; myStream:TADOBlobStream; begin try ImagePath:=Image1.Hint; ImagName:=Image1.Hint; 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'' )'); 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'' '); 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('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'); FieldByName('ImageWidth').Value:=Image1.Width; FieldByName('ImageHeight').Value:=Image1.Height; FieldByName('FangXiang').Value:=FangXiang1; FieldByName('IFType').Value:='小'; myStream := TADOBlobStream.Create(TBlobField(ADOCmd.FieldByName('ImageFile')), bmWrite); AJpeg.Assign(Image1.Picture.Graphic); 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'); FieldByName('ImageWidth').Value:=Image11.Width; FieldByName('ImageHeight').Value:=Image11.Height; FieldByName('FangXiang').Value:=FangXiang1; FieldByName('IFType').Value:='大'; myStream := TADOBlobStream.Create(TBlobField(ADOCmd.FieldByName('ImageFile')), bmWrite); AJpeg.Assign(Image11.Picture.Graphic); 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 IdFTP1.Put(lstPat[0], 'YP'+'\'+Trim(MaxNo)+Trim(ImagName)); end; if IdFTP1.Connected then IdFTP1.Quit; except ADOCmd.Connection.RollbackTrans; Application.MessageBox('图片保存失败!','提示',0); end; end; Procedure TfrmLLRKInPutMH_CG.FormClose(Sender: TObject; var Action: TCloseAction); begin ModalResult:=1; end; procedure TfrmLLRKInPutMH_CG.InitColor(); var fsj:string; begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from RT_PTColor where PTID='''+Trim(PTID.Text)+''''); Open; end; fsj:=Trim(ADOTemp.fieldbyname('ColDaiMa').AsString); if Trim(fsj)<>'' then begin //Panel6.Color:=StrToInt('$'+Trim(fsj)); end; end; procedure TfrmLLRKInPutMH_CG.ShowImage(); var jpg:TJpegImage; myStream: TADOBlobStream; begin 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 A.Valid=''Y'' '); Open; end; if adoqueryPicture.IsEmpty=False then begin 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((Panel9.Width-Image1.Width)/2); end else begin Image1.Left:=1; Image1.Top:=Round((Panel9.Height-Image1.Height)/2); end; Image1.Visible:=True; end; end; procedure TfrmLLRKInPutMH_CG.Panel6DblClick(Sender: TObject); begin {try frmRSColorBig:=TfrmRSColorBig.Create(Application); with frmRSColorBig do begin frmRSColorBig.Label1.Caption:=Self.MYColorNo.Text+'#'; frmRSColorBig.Label2.Caption:=Self.MYColor.Text; frmRSColorBig.Color:=Self.Panel6.Color; if ShowModal=1 then begin end; end; finally end; } end; procedure TfrmLLRKInPutMH_CG.FormCreate(Sender: TObject); begin lstPat := TStringList.Create; end; procedure TfrmLLRKInPutMH_CG.KHNameBtnClick(Sender: TObject); begin try frmGYSList:=TfrmGYSList.Create(Application); with frmGYSList do begin if ShowModal=1 then begin Self.KHName.Text:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString); Self.KHName.TxtCode:=Trim(frmGYSList.Order_Main.fieldbyname('KHCode').AsString); end; end; finally frmGYSList.Free; end; end; procedure TfrmLLRKInPutMH_CG.Button3Click(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; Panel9.Color:=clBtnFace; Panel9.Hint:=''; AJpeg:=TJpegImage.Create(); AJpeg.LoadFromFile(ExtractFileName(ODPat.FileName)); Image1.Hint:=ExtractFileName(ODPat.FileName); TPWidth:=AJpeg.Width; TPHeight:=AJpeg.Height; Bitmap := TBitmap.Create; Bitmap11 := TBitmap.Create; Bitmap.Width :=Panel9.Width-2; Bitmap.Height :=Round(Panel9.Width/TPWidth*TPHeight); if Bitmap.Height>Panel9.Height then begin WZFlag:='垂直'; Bitmap.Height:=Panel9.Height-2; Bitmap.Width :=Round(Panel9.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((Panel9.Width-Image1.Width)/2); end else begin Image1.Left:=1; Image1.Top:=Round((Panel9.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); end; procedure TfrmLLRKInPutMH_CG.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; frmZHCPBigTP.FIMNO:=''; if ShowModal=1 then begin end; end; finally frmZHCPBigTP.Free; end; end; procedure TfrmLLRKInPutMH_CG.Panel1Click(Sender: TObject); begin if Trim(FMainId)='' then begin Application.MessageBox('未保存数据!','',0); Exit; end; try frmLLRKMXInPutMH:=TfrmLLRKMXInPutMH.Create(Application); with frmLLRKMXInPutMH do begin PState:=1; frmLLRKMXInPutMH.FMainId:=Trim(Self.FMainId); if Self.TBSave.Visible=False then begin frmLLRKMXInPutMH.TBSave.Visible:=False; end; if ShowModal=1 then begin InitData(); end; end; finally frmLLRKMXInPutMH.Free; end; end; procedure TfrmLLRKInPutMH_CG.Label20Click(Sender: TObject); begin if Trim(FMainId)='' then begin Application.MessageBox('未保存数据!','',0); Exit; end; try frmLLRKMXInPutMH:=TfrmLLRKMXInPutMH.Create(Application); with frmLLRKMXInPutMH do begin PState:=1; frmLLRKMXInPutMH.FMainId:=Trim(Self.FMainId); if Self.TBSave.Visible=False then begin frmLLRKMXInPutMH.TBSave.Visible:=False; end; if ShowModal=1 then begin InitData(); end; end; finally frmLLRKMXInPutMH.Free; end; end; procedure TfrmLLRKInPutMH_CG.Button2Click(Sender: TObject); begin frmBPZDY_LRPB:=TfrmBPZDY_LRPB.create(self); with frmBPZDY_LRPB do begin flag:='PBName'; flagName:='坯布'; if ShowModal=1 then begin MYName.text:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); MYCode.text:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); end; free; end; end; end.