unit U_OrderInPut; 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, cxCurrencyEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxDropDownEdit, RM_Common, RM_Preview, RM_System, RM_Class, RM_GridReport, RM_Dataset, Menus, cxSplitter, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxCheckBox, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, cxPC, U_BaseInput, System.ImageList, Vcl.ImgList, cxImage, cxDBEdit, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, ShellAPI; type TfrmOrderInPut = class(TfrmBaseInput) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; OrderNo: TEdit; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; JGFactoryName: TBtnEditC; Label3: TLabel; OrdDate: TDateTimePicker; Label25: TLabel; DLYDate: TDateTimePicker; Note: TMemo; Label23: TLabel; cxgrdpmn1: TcxGridPopupMenu; ADOQueryLabel: TADOQuery; RMGridReport1: TRMGridReport; Label8: TLabel; GDY: TBtnEditC; RM1: TRMGridReport; CDS_PRT: TClientDataSet; RMDBMain: TRMDBDataSet; PopupMenu1: TPopupMenu; N2: TMenuItem; CDS_Copy: TClientDataSet; Label51: TLabel; ADOQuery1: TADOQuery; ADOQueryCmdSC: TADOQuery; ADOQueryCmdFileContent: TBlobField; ADOQueryCmdFtFileName: TStringField; ADOQueryCmdFileEditDate: TDateTimeField; ADOQueryCmdFileSize: TFloatField; ADOQueryCmdFiller: TStringField; ADOQueryCmdLastEditTime: TDateTimeField; ADOQueryCmdLastEditer: TStringField; ADOQueryCmdFileCreateDate: TDateTimeField; ADOQueryCmdchildPath: TStringField; ADOQueryCmdFileType: TStringField; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Column2: TcxGridDBColumn; V2Column1: TcxGridDBColumn; V2Column3: TcxGridDBColumn; V2Column4: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; CDS_Fact: TClientDataSet; DSFact: TDataSource; PM_Fact: TPopupMenu; N1: TMenuItem; ADOQuery2: TADOQuery; BlobField1: TBlobField; StringField1: TStringField; DateTimeField1: TDateTimeField; FloatField1: TFloatField; StringField2: TStringField; DateTimeField2: TDateTimeField; StringField3: TStringField; DateTimeField3: TDateTimeField; StringField4: TStringField; StringField5: TStringField; TV2Column1: TcxGridDBColumn; cxPageControl1: TcxPageControl; cxTabSheet3: TcxTabSheet; ToolBar2: TToolBar; ToolButton2: TToolButton; ToolButton1: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; VC_PRTPs: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxgrdpmn3: TcxGridPopupMenu; CDS_TP: TClientDataSet; DS_TP: TDataSource; cxgrdpmn2: TcxGridPopupMenu; ToolButton8: TToolButton; pnlJGC: TPanel; Label2: TLabel; edtJGC: TBtnEditC; Label6: TLabel; edtGY: TBtnEditC; Button1: TButton; Button2: TButton; Label4: TLabel; SYRName: TBtnEditC; Tv1Column3: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; Label9: TLabel; MPRTHJGBZNote: TMemo; Tv1Column11: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Label10: TLabel; Label17: TLabel; TV2Column2: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; SJGDate: TDateTimePicker; SJGPrice: TEdit; ToolButton3: TToolButton; Label5: TLabel; TV2Column5: TcxGridDBColumn; Label1: TLabel; edtGDY: TBtnEditC; Label7: TLabel; Label11: TLabel; Label15: TLabel; JGNote: TMemo; JGGY: TBtnEditC; Label16: TLabel; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; Tv1Column15: TcxGridDBColumn; Tv1Column16: TcxGridDBColumn; Label12: TLabel; MPRTCODENAME: TBtnEditC; Label13: TLabel; MPRTCODE: TBtnEditC; Label14: TLabel; kaijian: TBtnEditC; Label18: TLabel; biaoqian: TBtnEditC; Label19: TLabel; baozhuang1: TMemo; Label20: TLabel; baozhuang2: TMemo; Label21: TLabel; chuanyang: TMemo; Label22: TLabel; HXTPName: TBtnEditC; Qry_ImgHX: TADOQuery; DS_ImgHX: TDataSource; cxDBImage1: TcxDBImage; IdFTP1: TIdFTP; ADOQueryImage: TADOQuery; Tv1Column4: TcxGridDBColumn; Label24: TLabel; ISFZ: TComboBox; ToolButton4: TToolButton; Tv1Column5: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure JGFactoryNameBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnDnClick(Sender: TObject); procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OrdDefStr2BtnUpClick(Sender: TObject); procedure YCLFactoryBtnUpClick(Sender: TObject); procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); procedure MPRTChuanYDblClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure ScrollBox1Click(Sender: TObject); procedure v1PRTOrderQtyPropertiesEditValueChanged(Sender: TObject); procedure v1Column5PropertiesEditValueChanged(Sender: TObject); procedure HYTTBtnUpClick(Sender: TObject); procedure KYTTBtnUpClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure V2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure edtGYBtnUpClick(Sender: TObject); procedure edtJGCBtnUpClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton3Click(Sender: TObject); procedure Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure MPRTCODENAMEBtnUpClick(Sender: TObject); procedure Tv1Column12PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure HXTPNameBtnUpClick(Sender: TObject); procedure cxDBImage1DblClick(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure Tv1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private FSCXDH: string; procedure InitFact(); procedure InitData(); // procedure InitImage(); procedure InitImageHX(); procedure LookImage(FileName: string); procedure InitSub(); procedure ZDYHelp(FButn: TcxButtonEdit; LType: string); function SaveData(): Boolean; function getOrderNo(fconNo: string): string; function PostFileToData(LabelName, LabelPath: string): boolean; function UPLabel(LabelName, LabelPath: string): Boolean; { Private declarations } public PState, CopyInt, PriceFlag: Integer; FMainId, FFMainId, FOrderNo: string; FXS: Integer; canshu1, canshu2: string; fFlileFlag: string; { Public declarations } end; var frmOrderInPut: TfrmOrderInPut; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_RTFun, U_ZDYHelpSel, U_ZdyAttachment, U_ZdyAttachGYS, U_CPManageFMSel, getpic, U_LabelList, U_ContractListSel, U_JGCEdit; {$R *.dfm} //procedure TfrmOrderInPut.InitImage(); //begin // with ADOQueryImage do // begin // close; // sql.Clear; // sql.Add('select * from TP_File A'); // sql.Add('where WBID=' + quotedstr(Trim(CDS_DB.fieldbyname('HXSID').AsString))); //// ShowMessage(SQL.Text); // open; // end; //end; procedure TfrmOrderInPut.InitImageHX(); begin with Qry_ImgHX do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where isnull(WBID,'''')<>'''' and WBID=' + quotedstr(Trim(FMAINID))); SQL.Add('AND TFTYPE=''HX'' '); // ShowMessage(SQL.Text); open; end; end; procedure TfrmOrderInPut.LookImage(FileName: string); var sFieldName: string; begin sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\图片查看'; if not DirectoryExists(pchar(sFieldName)) then CreateDirectory(pchar(sFieldName), nil); sFieldName := sFieldName + '\' + trim(FileName); try IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1'); IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except ; end; if IdFTP1.Connected then begin try IdFTP1.Get(fFlileFlag + '\' + Trim(FileName), sFieldName, true, false); except Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; end else begin Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); end; procedure TfrmOrderInPut.InitFact(); begin with ADOTemp do begin Close; SQL.Clear; sql.Add(' select * from JYOrder_Fact '); sql.Add(' where SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOTemp, CDS_Fact); SInitCDSData(ADOTemp, CDS_Fact); end; procedure TfrmOrderInPut.InitSub(); begin with ADOTemp do begin Close; SQL.Clear; sql.Add(' select *,HZJGC=[dbo].[F_Ord_Get_JGC](subid) from JYOrder_Sub where MainId=''' + Trim(FMainId) + ''''); // ShowMessage(sql.Text); Open; end; SCreateCDS(ADOTemp, Order_Sub); SInitCDSData(ADOTemp, Order_Sub); end; function TfrmOrderInPut.PostFileToData(LabelName, LabelPath: string): boolean; var mFileName, fFileName, fpathFileName: string; Stream: TMemoryStream; mfileSize: integer; mCreationTime: TdateTime; mWriteTime: TdateTime; // ADOQueryCmdFileContent: TBlobField; begin result := false; fFileName := Trim(LabelName) + '.rmf'; fpathFileName := Trim(LabelPath); try ADOQueryCmdSC.Connection.BeginTrans; try with ADOQueryCmdSC do begin close; sql.Clear; sql.Add('delete from RT_FileUpdate'); sql.Add('where FileName=' + quotedStr(trim(fFileName))); execsql; end; with ADOQueryCmdSC do begin close; sql.Clear; sql.Add('select * from RT_FileUpdate'); sql.Add('where FileName=' + quotedStr(trim(fFileName))); Open; ////////////////////////// //获取文件信息 GetFileInfo(Trim(fpathFileName), mfileSize, mCreationTime, mWriteTime); if RecordCount <= 0 then begin Append; fieldByName('FileName').AsString := trim(fFileName); end else begin edit; end; fieldByName('FileEditDate').Value := mWriteTime; fieldByName('FileCreateDate').Value := mCreationTime; fieldByName('FileSize').Value := mfileSize; fieldByName('Filler').Value := Dname; fieldByName('LastEditer').Value := Dname; fieldByName('LastEditTime').Value := Now(); // if pos('.rmf',fFileName)>0 then begin fieldByName('FilePath').Value := 'report'; fieldByName('FileType').Value := '公用'; end; //将OLE数据存入数据库 RM1.SaveToBlobField(TBlobField(FieldByName('Files'))); // ADOQueryCmdFileContent.LoadFromFile(fpathFileName); //ADOQueryCmdFileContent.LoadFromStream(Stream); post; end; finally end; result := true; ADOQueryCmdSC.Connection.CommitTrans; except ADOQueryCmdSC.Connection.RollbackTrans; Result := False; application.MessageBox(pchar('提交文件[' + trim(fFileName) + ']失败!'), '提示信息', MB_ICONERROR); end; end; function TfrmOrderInPut.UPLabel(LabelName, LabelPath: string): Boolean; begin try ADOCmd.Connection.BeginTrans; with ADOCmd do begin close; sql.Clear; sql.Add('select * from P_Label'); sql.Add('where LabelCaption=' + quotedstr(LabelName)); Open; if ADOCmd.IsEmpty then begin Append; fieldByName('filler').value := DName; fieldByName('filltime').value := DServerDate; fieldByName('beizhu').value := ''; fieldByName('LabelCaption').value := trim(LabelPath); fieldByName('LabelType').value := '中文标签'; fieldByName('LabelFileName').value := trim(LabelName); RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); end else begin Edit; fieldByName('Editer').value := DName; fieldByName('EditTime').value := DServerDate; end; RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile'))); Post; end; ADOCmd.Connection.CommitTrans; result := true; except ADOCmd.Connection.RollbackTrans; Result := false; application.MessageBox('保存标签模板出错!', '警告信息', 0); end; end; function TfrmOrderInPut.getOrderNo(fconNo: string): string; var str1: string; i: integer; begin str1 := trim(fconNo) + '01'; with ADOTemp do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo=' + quotedstr(trim(str1))); open; end; if not ADOTemp.IsEmpty then begin for i := 1 to 99 do begin str1 := trim(fconNo) + rightstr(inttostr(100 + i), 2); with ADOCmd do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo=' + quotedstr(trim(str1))); open; end; if ADOCmd.IsEmpty then break; end; end; result := str1; end; procedure TfrmOrderInPut.TBCloseClick(Sender: TObject); begin WriteCxGrid('指示单录入AA', Tv1, '生产指示单管理9'); Close; end; procedure TfrmOrderInPut.InitData(); var FDate: TDateTime; begin FDate := SGetServerDateTime(ADOTemp); OrdDate.DateTime := FDate; DlyDate.DateTime := FDate + 25; SJGDate.DateTime := FDate; // if PState = 1 then // OrderNo.Enabled := False; with ADOTemp do begin Close; SQL.Clear; sql.Add(' select *,HZJGC=[dbo].[F_Ord_Get_JGC](subid) from JYOrder_Sub where 1=1 '); if PState = 1 then begin sql.Add(' and MainId=''' + Trim(FMainId) + ''''); end; if PState = 0 then begin sql.Add(' and 1<>1'); end; Open; end; SCreateCDS(ADOTemp, Order_Sub); SInitCDSData(ADOTemp, Order_Sub); MPRTCODENAME.Text := ADOTemp.FieldByName('MPRTCODENAME').AsString; MPRTCODE.Text := ADOTemp.FieldByName('MPRTCODE').AsString; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main where MainId=''' + Trim(FMainId) + ''''); Open; end; SCSHData(ADOTemp, ScrollBox1, 2); JGFactoryName.TxtCode := ADOTemp.FieldByName('JGFactoryNo').AsString; JGFactoryName.Text := ADOTemp.FieldByName('JGFactoryName').AsString; with ADOTemp do begin Close; SQL.Clear; sql.Add(' select * from JYOrder_TouPi '); sql.Add(' where MainId=''' + Trim(FMainId) + ''''); sql.Add(' order by TPColorNo'); Open; end; SCreateCDS(ADOTemp, CDS_TP); SInitCDSData(ADOTemp, CDS_TP); if PState = 0 then begin OrdDate.DateTime := SGetServerDateTime(ADOTemp); DlyDate.DateTime := FDate + 25; OrderNo.Text := ''; OrderNo.Enabled := True; end else begin end; if CopyInt = 99 then begin PState := 0; FMainId := ''; OrderNo.Text := ''; OrderNo.Enabled := True; OrdDate.DateTime := FDate; with Order_Sub do begin First; while not Eof do begin Edit; FieldByName('MainId').Value := ''; FieldByName('SubId').Value := ''; FieldByName('hxFile').Value := ''; Post; Next; end; end; end; end; procedure TfrmOrderInPut.ZDYHelp(FButn: TcxButtonEdit; LType: string); var FType, ZDYName, FText: string; begin end; procedure TfrmOrderInPut.FormShow(Sender: TObject); var i: Integer; begin inherited; readCxGrid('指示单录入AA', Tv1, '生产指示单管理9'); OrderNo.Text := ''; fFlileFlag := UserDataFlag + 'HX'; InitData(); v1Column11.Hidden := true; if canshu1 = '查询' then begin Tv1Column13.Visible := false; Tv1Column13.hidden := true; Tv1Column15.Visible := false; Tv1Column15.hidden := true; Tv1Column14.Visible := false; Tv1Column14.hidden := true; Tv1Column16.Visible := false; Tv1Column16.hidden := true; Tv1Column4.Visible := False; Tv1Column4.hidden := true; v1Column1.visible := false; v1Column1.hidden := true; end else begin Tv1Column13.Visible := true; Tv1Column13.hidden := false; Tv1Column15.Visible := true; Tv1Column15.hidden := false; Tv1Column14.Visible := true; Tv1Column14.hidden := false; Tv1Column16.Visible := true; Tv1Column16.hidden := false; Tv1Column4.Visible := true; Tv1Column4.hidden := false; v1Column1.visible := true; v1Column1.hidden := false; end; InitImageHX(); end; function TfrmOrderInPut.SaveData(): Boolean; var maxno, Smaxno, maxorderno, MaxFNo: string; begin try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId) = '' then begin if canshu2 = '外' then begin if GetLSNo(ADOCmd, maxno, 'JW', 'JYOrder_Main', 3, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin if GetLSNo(ADOCmd, maxno, 'JM', 'JYOrder_Main', 3, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end; // if GetLSNo(ADOCmd, maxorderno, 'YC', 'JYOrder_Main', 3, 1) = False then // begin // ADOCmd.Connection.RollbackTrans; // Application.MessageBox('取最大号失败!', '提示', 0); // Exit; // end; // OrderNo.Text := maxorderno; end else begin maxno := Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from JYOrder_Main where MainId=''' + Trim(FMainId) + ''''); Open; end; with ADOCmd do begin if Trim(FMainId) = '' then begin Append; FieldByName('SCXDH').Value := FSCXDH; end else begin Edit; end; FieldByName('MainId').Value := Trim(maxno); RTSetsavedata(ADOCmd, 'JYOrder_Main', ScrollBox1, 2); FieldByName('status').Value := '1'; FieldByName('JHGZ').Value := '按缸排序'; FieldByName('YXJL').Value := '米数'; if canshu2 = '' then begin canshu2 := '内'; end; FieldByName('DANWEI').Value := Trim(canshu2); if Trim(FMainId) = '' then begin FieldByName('Filler').Value := Trim(DName); end else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; FieldByName('JGFactoryNo').Value := JGFactoryName.TxtCode; FieldByName('JGFactoryName').Value := JGFactoryName.Text; Post; end; ///////////////////// 保存子表 /////////////////////////// with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('SubId').AsString) = '' then begin if canshu2 = '外' then begin if GetLSNo(ADOCmd, Smaxno, 'JWS', 'JYOrder_Sub', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin if GetLSNo(ADOCmd, Smaxno, 'JS', 'JYOrder_Sub', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end; end else begin Smaxno := Trim(Order_Sub.fieldbyname('SubId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from JYOrder_Sub where MainId=''' + Trim(maxno) + ''''); sql.Add(' and SubId=''' + Trim(Smaxno) + ''''); Open; end; with ADOCmd do begin if Trim(Order_Sub.fieldbyname('SubId').AsString) = '' then Append else Edit; if Trim(Order_Sub.fieldbyname('SubId').AsString) <> '' then begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add('select * from JYOrder_Sub where MainId=''' + Trim(maxno) + ''''); sql.Add(' and SubId=''' + Trim(Smaxno) + ''''); Open; end; if Order_Sub.fieldbyname('PRTOrderQty').Value <> ADOQuery1.fieldbyname('PRTOrderQty').Value then begin with ADOTemp do begin Close; SQL.Clear; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('数量修改'))); sql.Add(',' + quotedstr(trim('子表ID:' + trim(Smaxno) + ';原数量:' + ADOQuery1.fieldbyname('PRTOrderQty').AsString + ';现数量:' + Order_Sub.fieldbyname('PRTOrderQty').AsString))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; end; FieldByName('MainId').Value := Trim(maxno); FieldByName('SubId').Value := Trim(Smaxno); FieldByName('MPRTCODENAME').Value := Trim(MPRTCODENAME.Text); FieldByName('MPRTCODE').Value := Trim(MPRTCODE.Text); RTSetSaveDataCDS(ADOCmd, Tv1, Order_Sub, 'JYOrder_Sub', 0); FieldByName('MGMainId').Value := Trim(Order_Sub.fieldbyname('MGMainId').AsString); FieldByName('ConSubId').Value := Trim(Order_Sub.fieldbyname('ConSubId').AsString); FieldByName('BuyerNo').Value := Trim(Order_Sub.fieldbyname('BuyerNo').AsString); FieldByName('ConMainId').Value := Trim(Order_Sub.fieldbyname('ConMainId').AsString); Post; with Order_Sub do begin Edit; fieldbyname('SubId').Value := Trim(Smaxno); Post; end; end; Next; end; end; with ADOCmd do begin Close; SQL.Clear; sql.Add('update JYOrder_Fact set Mainid=X.MainID from JYOrder_Sub X where X.SubId=JYOrder_Fact.SubId '); sql.Add(' and X.MainId=''' + Trim(maxno) + ''''); ExecSQL; end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main where orderno=''' + Trim(OrderNo.Text) + ''''); Open; end; if ADOCmd.RecordCount > 1 then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('订单号重复!', '提示', 0); Exit; end; FMainId := Trim(maxno); ///////////////////// 保存子表 /////////////////////////// ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmOrderInPut.TBSaveClick(Sender: TObject); var MAXNO1: string; FINT: Integer; begin if PState <> 1 then begin OrdDate.SetFocus; end; if MPRTCODENAME.text = '' then begin Application.MessageBox('产品名称不能为空!', '提示', 0); Exit; end; if OrderNo.text = '' then begin Application.MessageBox('订单号不能为空!', '提示', 0); Exit; end; if ISFZ.text = '' then begin Application.MessageBox('是否分组不能为空!', '提示', 0); Exit; end; if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!', '提示', 0); Exit; end; // if ZS.Text <> '' then // begin // if TryStrToInt(ZS.Text, FINT) = False then // begin // Application.MessageBox('组数非整数!', '提示', 0); // Exit; // end; // // end; // if mzss.Text <> '' then // begin // if TryStrToInt(mzss.Text, FINT) = False then // begin // Application.MessageBox('每组色数非整数!', '提示', 0); // Exit; // end; // // end; if Order_Sub.Locate('OrderUnit', null, []) then begin Application.MessageBox('数量单位不能为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); // ModalResult := 1; end; end; procedure TfrmOrderInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrdColor'; flagname := '颜色'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; fnote := True; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PRTColor').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.Order_Sub.FieldByName('PRTColorNo').Value := Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.ToolButton1Click(Sender: TObject); var i: Integer; begin CopyAddRow(Tv1, Order_Sub); with Order_Sub do begin Edit; FieldByName('SSel').Value := false; FieldByName('hxFile').Value := ''; FieldByName('PRTOrderQty').Value := 0; FieldByName('sellunit').Value := '美元'; Post; end; end; procedure TfrmOrderInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Order_Sub.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除选择的数据吗?', '提示', 32 + 4) <> IDYES then exit; Order_Sub.DisableControls; with Order_Sub do begin First; while Locate('SSel', True, []) do begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from JY_Cloth where isnull(SubId,'''')<>'''' and SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); Open; end; if ADOTemp.IsEmpty = False then begin Application.MessageBox('已检验不能删除数据!', '提示', 0); Exit; end; if Trim(Order_Sub.fieldbyname('SubId').AsString) <> '' then begin with ADOCmd do begin Close; sql.Clear; sql.Add('insert into JYOrder_Sub_Del select * from JYOrder_Sub where SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); sql.Add('delete JYOrder_Sub where SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; end; Delete; end; end; Order_Sub.EnableControls; end; procedure TfrmOrderInPut.ToolButton3Click(Sender: TObject); begin try frmJGCEdit := TfrmJGCEdit.Create(Application); with frmJGCEdit do begin FMainId := Self.FMainId; if ShowModal = 1 then begin end; end; finally frmJGCEdit.Free; end; end; procedure TfrmOrderInPut.ToolButton4Click(Sender: TObject); begin inherited; with ADOCmd do begin Close; sql.Clear; sql.Add('update SY_MaxBH set bhno=bhno+10,BHDATE=CONVERT(varchar(100), GETDATE(), 12) where bhtype=''JYOrder_Main'' and bhstr=''JM'' '); sql.Add('update SY_MaxBH set bhno=bhno+10,BHDATE=CONVERT(varchar(100), GETDATE(), 12) where bhtype=''JYOrder_SUB'' and bhstr=''JS'' '); ExecSQL; end; Application.MessageBox('重新取号成功!', '提示', 0); end; procedure TfrmOrderInPut.JGFactoryNameBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin // frmZdyAttachGYS.FactType.ItemIndex:=FactType.Items.IndexOf('加工厂'); if ShowModal = 1 then begin JGFactoryName.TxtCode := Trim(CDS_HZ.fieldbyname('CoCode').AsString); JGFactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmOrderInPut.edtJGCBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin edtJGC.TEXT := Trim(CDS_HZ.fieldbyname('CoName').AsString); edtJGC.TxtCode := Trim(CDS_HZ.fieldbyname('CoCode').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmOrderInPut.edtGYBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TBtnEditC(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TBtnEditC(Sender).text := ''; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; if TBtnEditC(Sender).text = '' then TBtnEditC(Sender).text := FieldByName('ZDYName').AsString else TBtnEditC(Sender).text := TBtnEditC(Sender).text + ',' + FieldByName('ZDYName').AsString; //inttostr(i)+'.'+ end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut.MPRTCODENAMEBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'MPRTCODENAME'; flagname := '产品信息'; V1Name.Caption := '产品名称'; V1Note.Caption := '产品编号'; fnote := True; if ShowModal = 1 then begin MPRTCODENAME.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); MPRTCODE.Text := Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.HXTPNameBtnUpClick(Sender: TObject); begin inherited; if trim(FMainId) = '' then begin Application.MessageBox('请先保存数据!', '提示', 0); Exit; end; FormGetPic := TFormGetPic.create(self); with FormGetPic do begin fFlileFlag := self.fFlileFlag; FMainId := trim(SELF.FMainId); fkeyNO := TRIM(HXTPName.Text); pat1 := 'FileName'; pic1 := 'FilesOther'; FTFType := 'HX'; if showmodal = 1 then begin Self.HXTPName.Text := FormGetPic.fkeyNO; end; free; end; InitimageHX(); end; procedure TfrmOrderInPut.Button1Click(Sender: TObject); begin if not Order_Sub.Locate('SSel', True, []) then begin Application.MessageBox('请选择数据', '提示', 0); exit; end; if Order_Sub.Locate('SubId', null, []) then begin Application.MessageBox('请先保存数据', '提示', 0); exit; end; with Order_Sub do begin DisableControls; First; while not Eof do begin if Order_Sub.fieldbyname('SSEL').AsBoolean then begin with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_Ord_In_Fact '); sql.Add(' @SubId=' + QuotedStr(Trim(Order_Sub.fieldbyname('SubId').AsString))); sql.Add(' ,@CoCode=' + QuotedStr(Trim(edtJGC.TxtCode))); sql.Add(' ,@SJGType=' + QuotedStr(Trim(edtGY.Text))); sql.Add(' ,@HJGBZNote=' + QuotedStr(Trim(MPRTHJGBZNote.Text))); sql.Add(' ,@SJGPrice=' + QuotedStr(Trim(SJGPrice.Text))); sql.Add(' ,@SJGDate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', SJGDate.DateTime)))); sql.Add(' ,@SJGDY=' + QuotedStr(Trim(edtGDY.Text))); open; end; if ADOCmd.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOCmd.fieldbyname('ShowMsg').AsString), '提示', 0); Order_Sub.EnableControls; exit; end; end; Next; end; with ADOCmd do begin Close; SQL.Clear; sql.Add('update JYOrder_Fact set Mainid=X.MainID from JYOrder_Sub X where X.SubId=JYOrder_Fact.SubId '); sql.Add(' and X.MainId=''' + Trim(FMainId) + ''''); ExecSQL; end; EnableControls; end; pnlJGC.Visible := False; InitSub(); InitFact(); end; procedure TfrmOrderInPut.Button2Click(Sender: TObject); begin pnlJGC.Visible := false; end; procedure TfrmOrderInPut.CustomerNoNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmOrderInPut.cxDBImage1DblClick(Sender: TObject); begin inherited; if TcxDBImage(Sender).Picture.Height = 0 then exit; LookImage(Qry_ImgHX.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; procedure TfrmOrderInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var mvalues: string; begin mvalues := tv1.Columns[tv1.Controller.FocusedColumn.index].DataBinding.FieldName; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrderUnit'; flagname := '数量单位'; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName(mvalues).Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PriceUnit'; flagname := '价格单位'; if Trim(DParameters1) <> '高权限' then begin TBAdd.Visible := False; TBEdit.Visible := False; TBDel.Visible := False; end; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PriceUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.OrdDefStr2BtnUpClick(Sender: TObject); var FOStr: string; fsj: string; FWZ: Integer; i: integer; j: integer; begin FOStr := StringReplace(trim(JGGY.text), ',', '|', [rfReplaceAll]); fsj := Trim(TBtnEditC(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); FChkStr := FOStr; if ShowModal = 1 then begin TBtnEditC(Sender).text := ''; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; if TBtnEditC(Sender).text = '' then TBtnEditC(Sender).text := FieldByName('ZDYName').AsString else TBtnEditC(Sender).text := TBtnEditC(Sender).text + ',' + FieldByName('ZDYName').AsString; //inttostr(i)+'.'+ end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut.YCLFactoryBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := ReturnStr; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut.MPRTChuanYDblClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TMemo(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TMemo(Sender).Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; TMemo(Sender).Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut.N1Click(Sender: TObject); begin if CDS_Fact.IsEmpty then Exit; if Trim(CDS_Fact.fieldbyname('FactId').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Fact where FactId=''' + Trim(CDS_Fact.fieldbyname('FactId').AsString) + ''''); ExecSQL; end; end; CDS_Fact.Delete; end; procedure TfrmOrderInPut.N2Click(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmOrderInPut.ScrollBox1Click(Sender: TObject); begin OrdDate.SetFocus; end; procedure TfrmOrderInPut.ToolButton8Click(Sender: TObject); begin pnlJGC.Visible := True; end; procedure TfrmOrderInPut.Tv1Column12PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin Order_Sub.Edit; Order_Sub.fieldbyname('BuyerNo').Value := Trim(CDS_HZ.fieldbyname('CoCode').AsString); Order_Sub.fieldbyname('BuyerName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString); Order_Sub.Post; end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmOrderInPut.Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin frmCPManageFMSel := TfrmCPManageFMSel.Create(self); with frmCPManageFMSel do begin if showmodal = 1 then begin Order_Sub.Edit; Order_Sub.fieldbyname('MPRTCode').Value := CDS_Main.fieldbyname('CYNO').asstring; Order_Sub.fieldbyname('MPRTCodeName').Value := CDS_Main.fieldbyname('CYName').asstring; Order_Sub.fieldbyname('MPRTSpec').Value := CDS_Main.fieldbyname('CYSpec').asstring; Order_Sub.fieldbyname('MPRTCF').Value := CDS_Main.fieldbyname('CYCF').asstring; Order_Sub.fieldbyname('PRTColor').Value := CDS_Main.fieldbyname('CYColor').asstring; Order_Sub.fieldbyname('PRTHX').Value := CDS_Main.fieldbyname('CYHX').asstring; Order_Sub.fieldbyname('MPRTMF').Value := CDS_Main.fieldbyname('CYMF').asstring; Order_Sub.fieldbyname('MPRTKZ').Value := CDS_Main.fieldbyname('CYKZ').asstring; Order_Sub.fieldbyname('OrderUnit').Value := CDS_Main.fieldbyname('CYPUnit').asstring; Order_Sub.fieldbyname('SuoLv').Value := CDS_Main.fieldbyname('SuoLv').asstring; Order_Sub.Post; end; free; end; end; procedure TfrmOrderInPut.Tv1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin inherited; try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin Order_Sub.Edit; Order_Sub.fieldbyname('khName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString); Order_Sub.Post; end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmOrderInPut.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin InitFact(); end; procedure TfrmOrderInPut.v1PRTOrderQtyPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; FQty, FPrice, FHKMoney: Double; begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with Order_Sub do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; FQty := Fieldbyname('PRTOrderQty').AsFloat; FPrice := Fieldbyname('Price').AsFloat; end; FHKMoney := RoundFloat(FQty * FPrice, 2); with Order_Sub do begin Edit; FieldByName('MXMoney').Value := FHKMoney; Post; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmOrderInPut.V2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin CDS_Fact.Edit; CDS_Fact.FieldByName('SJGFactory').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString); CDS_Fact.FieldByName('SJGFactoryCode').Value := Trim(CDS_HZ.fieldbyname('CoCode').AsString); CDS_Fact.FieldByName('SJGFactoryJC').Value := Trim(CDS_HZ.fieldbyname('CoHRName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmOrderInPut.v1Column5PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with Order_Sub do begin Edit; FieldByName(FFieldName).Value := mvalue; FieldByName('MGMainId').Value := ''; Post; end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmOrderInPut.HYTTBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut.KYTTBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if Trim(flag) = 'OrdDefStr2' then begin V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; fnote := True; end; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; end.