unit U_OrderInPut_TC; 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, cxPC, Menus, cxCheckBox, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator, cxDropDownEdit; type TfrmOrderInPut_TC = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; cxTabControl1: TcxTabControl; PopupMenu1: TPopupMenu; N3: TMenuItem; CDS_CG: TClientDataSet; DataSource2: TDataSource; PopupMenu2: TPopupMenu; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; Panel1: TPanel; Label1: TLabel; Label39: TLabel; Label10: TLabel; Label14: TLabel; Label19: TLabel; Label2: TLabel; Label4: TLabel; TCNO: TEdit; TCDate: TDateTimePicker; CustomerNoName: TBtnEditC; Note: TMemo; conNO: TEdit; orderNo: TBtnEditA; OrdPerson1: TBtnEditC; Label13: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; CustomerNoshortName: TEdit; Label20: TLabel; HCAdress: TBtnEditC; Label3: TLabel; OrderQty: TEdit; Label7: TLabel; PBQty: TEdit; Label8: TLabel; PBPrice: TEdit; Label9: TLabel; PBMoney: TEdit; Label11: TLabel; RSQty: TEdit; Label12: TLabel; RSPrice: TEdit; Label15: TLabel; RSMoney: TEdit; Label16: TLabel; YFMoney: TEdit; Label17: TLabel; OtherMoney: TEdit; Label18: TLabel; THKHName: TBtnEditC; Label22: TLabel; THAdress: TBtnEditC; Label23: TLabel; FROMFHSQ: TBtnEditA; FROMSSID: TEdit; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ORDER_MX: TClientDataSet; cxGrid2: TcxGrid; TV1: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label5: TLabel; YWY: TBtnEditC; Label6: TLabel; YWZB: TBtnEditC; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure RanFactoryBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnDnClick(Sender: TObject); procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure YCLFactoryBtnUpClick(Sender: TObject); procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); procedure OtherNoteDblClick(Sender: TObject); procedure NoteDblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure conNoChange(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure orderNoBtnClick(Sender: TObject); procedure OrdPerson1BtnUpClick(Sender: TObject); procedure orddefstr4BtnClick(Sender: TObject); procedure THKHNameBtnUpClick(Sender: TObject); procedure PBQtyChange(Sender: TObject); procedure PBQtyKeyPress(Sender: TObject; var Key: Char); procedure RSQtyChange(Sender: TObject); procedure FROMFHSQBtnClick(Sender: TObject); procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure YWYBtnUpClick(Sender: TObject); procedure YWYBtnDnClick(Sender: TObject); procedure YWZBBtnUpClick(Sender: TObject); private procedure InitData(); procedure ZDYHelp(FButn: TcxButtonEdit; LType: string); function SaveData(): Boolean; function YFData(): Boolean; function getCYNo(fconNo: string): string; { Private declarations } public PState, CopyInt, PriceFlag: Integer; FMainId, FFMainId, FOrderNo: string; FXS: Integer; { Public declarations } end; var frmOrderInPut_TC: TfrmOrderInPut_TC; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_Fun, U_ZDYHelpSel, U_ProductOrderListSel, U_ZdyAttachment, U_ZdyAttachGYS; {$R *.dfm} function TfrmOrderInPut_TC.getCYNo(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 JYOrderCY_Main01 where CYNO=' + 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 JYOrderCY_Main01 where CYNO=' + quotedstr(trim(str1))); open; end; if ADOCmd.IsEmpty then break; end; end; result := str1; end; function TfrmOrderInPut_TC.YFData(): Boolean; var CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string; begin Result := False; with ADOTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(CDS_CG.fieldbyname('custName').AsString) + ''''); Open; end; if ADOTemp.IsEmpty = False then begin CRID := ADOTemp.fieldbyname('CRID').AsString; end else begin with ADOCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOCmd.fieldbyname('CRID').AsString; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(CDS_CG.fieldbyname('custName').AsString); FieldByName('ZdyStr1').Value := '应付付'; Post; end; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where FactoryName=''' + Trim(CDS_CG.fieldbyname('custName').AsString) + ''''); sql.Add(' and mainID=''' + Trim(CDS_CG.fieldbyname('CRNO').AsString) + ''''); // sql.Add(' and subID='''+Trim(ADOQuerySub.fieldbyname('subID').AsString)+''''); Open; end; if ADOTemp.IsEmpty then begin if GetLSNo(ADOCmd, YFID, 'PF', 'YF_Money_CR', 3, 1) = False then begin Application.MessageBox('取坯布应付最大号失败!', '提示', 0); Exit; end; end else begin YFID := Trim(ADOTemp.fieldbyname('YFID').AsString); end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); Open; end; with ADOCmd do begin if ADOTemp.IsEmpty then Append else Edit; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(CDS_CG.fieldbyname('mainID').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应付款登记'; FieldByName('CRFlag').Value := '应付付'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(CDS_CG.fieldbyname('custName').AsString); FieldByName('CRTime').Value := CDS_CG.fieldbyname('CRTime').AsDateTime; FieldByName('Qty').Value := CDS_CG.fieldbyname('Qty').AsFloat; FieldByName('PS').Value := 0; FieldByName('YFType').Value := '自动生成'; FieldByName('Price').Value := CDS_CG.fieldbyname('Price').AsFloat; FieldByName('money').Value := CDS_CG.fieldbyname('money').AsFloat; FieldByName('BBmoney').Value := CDS_CG.fieldbyname('money').AsFloat; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := 'RMB'; FieldByName('ComTaiTou').Value := Trim(CDS_CG.fieldbyname('custName').AsString); FieldByName('QtyUnit').Value := Trim(CDS_CG.fieldbyname('QtyUnit').AsString); FieldByName('YFName').Value := '采购金额'; FieldByName('MainId').Value := Trim(CDS_CG.fieldbyname('CRNO').AsString); FieldByName('subId').Value := Trim(CDS_CG.fieldbyname('CRID').AsString); Post; end; with ADOCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; procedure TfrmOrderInPut_TC.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmOrderInPut_TC.InitData(); begin with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from Order_TC where MainId=''' + Trim(FMainId) + ''''); Open; end; SCSHDataNew(ADOQuery1, Panel1, 2); with ADOTemp do begin Close; SQL.Clear; sql.Add(' select * from Order_TC_MX 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; SCreateCDS20(ADOTemp, ORDER_MX); SInitCDSData20(ADOTemp, ORDER_MX); end; procedure TfrmOrderInPut_TC.ZDYHelp(FButn: TcxButtonEdit; LType: string); var FType, ZDYName, FText: string; begin end; procedure TfrmOrderInPut_TC.FormShow(Sender: TObject); begin InitData(); if PState = 0 then begin tcno.Text := '自动生成'; OrdPerson1.Text := Trim(DName); end; end; function TfrmOrderInPut_TC.SaveData(): Boolean; var maxno, Smaxno: string; begin try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId) = '' then begin if GetLSNo(ADOCmd, maxno, 'TC', 'Order_TC', 3, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; TCNO.Text := maxno; end else begin maxno := Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from Order_TC where MainId=''' + Trim(FMainId) + ''''); Open; end; with ADOCmd do begin if Trim(FMainId) = '' then begin Append; end else begin Edit; end; FieldByName('MainId').Value := Trim(maxno); SSetsaveSqlNew(ADOCmd, 'Order_TC', Panel1, 2); if Trim(FMainId) = '' then begin FieldByName('Filler').Value := Trim(DName); FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp); FieldByName('status').Value := '0'; end else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; Post; end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from Order_TC where TCNO=''' + Trim(TCNO.Text) + ''''); Open; end; if ADOCmd.RecordCount > 1 then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('申请单号重复!', '提示', 0); Exit; end; //保存退仓明细 with Order_MX do begin First; while not Eof do begin if Trim(Order_MX.fieldbyname('SubId').AsString) = '' then begin if GetLSNo(ADOCmd, Smaxno, 'TCX', 'ORDER_TC_MX', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin Smaxno := Trim(Order_MX.fieldbyname('SubId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from ORDER_TC_MX where MainId=''' + Trim(maxno) + ''''); sql.Add(' and SubId=''' + Trim(Smaxno) + ''''); Open; end; with ADOCmd do begin if Trim(Order_MX.fieldbyname('SubId').AsString) = '' then Append else Edit; FieldByName('MainId').Value := Trim(maxno); FieldByName('SubId').Value := Trim(Smaxno); RTSetSaveDataCDS(ADOCmd, Tv1, Order_MX, 'ORDER_TC_MX', 0); FieldByName('ConSubId').Value := Trim(Order_MX.fieldbyname('ConSubId').AsString); Post; end; Next; end; end; ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmOrderInPut_TC.TBSaveClick(Sender: TObject); var FFreal: Double; begin TCDate.SetFocus; if Trim(TCNO.Text) = '' then begin Application.MessageBox('申请单号不能为空!', '提示', 0); Exit; end; if Trim(YWY.Text) = '' then begin Application.MessageBox('业务员不能为空!', '提示', 0); Exit; end; if Trim(YWZB.Text) = '' then begin Application.MessageBox('业务组别不能为空!', '提示', 0); Exit; end; if ORDER_MX.IsEmpty then begin Application.MessageBox('明细不能为空!', '提示', 0); Exit; end; if ORDER_MX.Locate('PRTOrderQty', null, []) then begin Application.MessageBox('数量不能为空!', '提示', 0); Exit; end; if ORDER_MX.Locate('PRTPS', null, []) then begin Application.MessageBox('匹数不能为空!', '提示', 0); Exit; end; if ORDER_MX.Locate('PRTCODE', null, []) then begin Application.MessageBox('编号不能为空!', '提示', 0); Exit; end; if ORDER_MX.Locate('OrderUnit', null, []) then begin Application.MessageBox('单位不能为空!', '提示', 0); Exit; end; // if TryStrToFloat(TCQty.Text, FFreal) = False then // begin //// ADOCmd.Connection.RollbackTrans; // Application.MessageBox('退仓数量非法数字!', '提示', 0); // Exit; // end; // if Trim(TCUNIT.Text) = '' then // begin // Application.MessageBox('退仓单位不能为空!', '提示', 0); // Exit; // end; if Trim(HCAdress.Text) = '' then begin Application.MessageBox('回仓地址不能为空!', '提示', 0); Exit; end; if Trim(Note.Text) = '' then begin Application.MessageBox('退仓原因不能为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmOrderInPut_TC.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrdColor'; flagname := '颜色'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; // MainType:=Trim(DName); 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('SOrddefstr4').Value := Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.RanFactoryBtnUpClick(Sender: TObject); begin {try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='RKPlace'; flagname:='染厂名称'; if ShowModal=1 then begin JGFactoryName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); JGFactoryName.TxtCode:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; } end; procedure TfrmOrderInPut_TC.CustomerNoNameBtnUpClick(Sender: TObject); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin CustomerNoName.Text := Trim(CDS_HZ.fieldbyname('coName').AsString); CustomerNoName.TxtCode := Trim(CDS_HZ.fieldbyname('coCode').AsString); CustomerNoshortName.Text := Trim(CDS_HZ.fieldbyname('CoHRName').AsString); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmOrderInPut_TC.CustomerNoNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmOrderInPut_TC.v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin 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('OrderUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.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_TC.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); MainType := TEdit(Sender).Name; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.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_TC.OtherNoteDblClick(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 Note.Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; Note.Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut_TC.NoteDblClick(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 Note.Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; Note.Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmOrderInPut_TC.FormCreate(Sender: TObject); begin TCDate.DateTime := SGetServerDateTime(ADOTemp); end; procedure TfrmOrderInPut_TC.conNoChange(Sender: TObject); var ConMainId: string; begin end; procedure TfrmOrderInPut_TC.ToolButton4Click(Sender: TObject); begin CDS_CG.Append; CDS_CG.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', date()); CDS_CG.Post; end; procedure TfrmOrderInPut_TC.ToolButton5Click(Sender: TObject); //哪个事件没找到 begin if CDS_CG.IsEmpty then exit; if CDS_CG.FieldByName('defBit1').AsBoolean then begin if Application.MessageBox('此单已生成采购单,是否删除采购单和拆分信息', '提示', 32 + 4) <> IDYES then Exit; end; with ADOCmd do begin Close; sql.Clear; sql.Add('delete BP_InOut_CF where CRNO=''' + Trim(CDS_CG.fieldbyname('CRNO').AsString) + ''''); sql.Add('delete YF_Money_CR where mainID=''' + Trim(CDS_CG.fieldbyname('CRNO').AsString) + ''''); ExecSQL; end; CDS_CG.Delete; end; procedure TfrmOrderInPut_TC.ToolButton6Click(Sender: TObject); //哪个事件没找到 var strlist: Tstringlist; i: integer; maxno: string; begin // strlist:=Tstringlist.Create; if (CDS_CG.Locate('ssel', true, []) and CDS_CG.Locate('defbit1', true, [])) then begin if Application.MessageBox('所选信息已有采购单生成,是否重新生成?', '提示', 32 + 4) <> IDYES then exit; end; with CDS_CG do begin DisableControls; first; while not eof do begin if fieldbyname('ssel').AsBoolean then begin if trim(fieldbyname('custName').AsString) = '' then begin Application.MessageBox('生成采购单的拆分信息供应商不能为空!', '提示信息', MB_ICONERROR); EnableControls; Exit; end; // IF strlist.IndexOf(trim(fieldbyname('custName').AsString))<0 then // strlist.Add(trim(fieldbyname('custName').AsString)); end; next; end; first; EnableControls; end; ADOCmd.Connection.BeginTrans; try with CDS_CG do begin DisableControls; first; while not eof do begin if fieldbyname('ssel').AsBoolean then begin // maxNo:=trim(orderNo.Text)+'-'+CDS_CG.fieldbyname('ID').AsString; // if trim(fieldbyname('custName').AsString)=trim(strlist.Strings[i]) then // begin with ADOCmd do begin close; sql.Clear; sql.Add('update BP_InOut_CF SET defBit1=1'); // sql.Add('inoutNO='+quotedstr(trim(orderNo.Text)+'-'+trim(maxno))); sql.Add('where CRNO=' + quotedstr(CDS_CG.fieldbyname('CRNO').AsString)); execsql; end; if pos('华恒', trim(CDS_CG.fieldbyname('custName').AsString)) < 1 then begin if not YFData() then begin ADOCmd.Connection.RollbackTrans; application.MessageBox('应付款生成失败!', '提示信息', MB_ICONERROR); exit; end; end; // end; end; next; ; end; first; EnableControls; end; with ADOCmd do begin close; sql.Clear; sql.Add('update BP_InOut_CF SET inoutNO=rtrim(B.orderNo)+''-''+cast(A.CRID as varchar) '); sql.Add('from BP_InOut_CF A'); sql.Add('inner join JYOrder_main B on B.mainID=A.mainID'); sql.Add('where A.mainID=' + quotedstr(CDS_CG.fieldbyname('mainID').AsString)); execsql; end; with ADOCmd do begin close; sql.Clear; sql.Add('update BP_InOut_CF SET inoutNO=(select min(inoutNO) from BP_InOut_CF X where X.mainID=BP_InOut_CF.mainID and X.custName=BP_InOut_CF.custName)'); sql.Add('where mainID=' + quotedstr(CDS_CG.fieldbyname('mainID').AsString)); execsql; end; { for i:=0 to strlist.Count-1 do begin if GetLSNo(ADOCmd,maxno,'',trim(orderNO.Text),2,0)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; // i:=i+1; end; } ADOCmd.Connection.CommitTrans; application.MessageBox('成功生成采购单!', '提示信息'); InitData(); except ADOCmd.Connection.RollbackTrans; CDS_CG.EnableControls; application.MessageBox('生成采购单失败!', '提示信息', MB_ICONERROR); end; end; procedure TfrmOrderInPut_TC.orderNoBtnClick(Sender: TObject); var ConSubId: string; begin ConSubId := ''; frmProductOrderListSel := TfrmProductOrderListSel.create(self); with frmProductOrderListSel do begin if showmodal = 1 then begin ConSubId := trim(Order_Main.fieldbyname('subid').asstring); SELF.ConNo.Text := Trim(Order_Main.fieldbyname('ConNo').AsString); SELF.OrderNo.Text := Trim(Order_Main.fieldbyname('orderNo').AsString); Self.CustomerNoName.Text := Trim(Order_Main.fieldbyname('CustomerNoName').AsString); OrdPerson1.Text := trim(Order_Main.fieldbyname('ywy').AsString); OrderQty.Text := Trim(Order_Main.fieldbyname('PRTOrderQty').AsString); // OrderUnit.Text := Trim(Order_Main.fieldbyname('OrderUnit').AsString); while Order_Main.locate('SSel', true, []) do begin if orderNo.Text <> trim(frmProductOrderListSel.Order_Main.Fieldbyname('orderNo').AsString) then begin Application.MessageBox('不能选择多个指示单!', '提示', 0); break; end; with self.ORDER_MX do begin append; // Fieldbyname('PrtKuanNO').value := trim(frmContractListSel.Order_Main.Fieldbyname('SCSKX').AsString); Fieldbyname('PrtColor').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('PrtColor').AsString); Fieldbyname('OrderUnit').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('OrderUnit').AsString); Fieldbyname('Prtcode').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('MPRTCODE').AsString); Fieldbyname('PRTMF').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('MPRTMF').AsString); Fieldbyname('PrtKZ').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('MPRTKZ').AsString); Fieldbyname('PRTOrderQty').value := 0; Fieldbyname('PRTPs').value := 0; end; Order_Main.Edit; Order_Main.fieldbyname('SSel').value := false; end; end; free; end; if ConSubId = '' then exit; end; procedure TfrmOrderInPut_TC.OrdPerson1BtnUpClick(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 //flag:='OrdDefStr2'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; fnote := True; end; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); if Trim(flag) = 'MPRTCode' then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select Top 1 * from JYOrder_Main where MPRTCode=''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + ''''); sql.Add(' order by FillTime desc'); Open; end; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.orddefstr4BtnClick(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 //flag:='OrdDefStr2'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; fnote := True; end; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); if Trim(flag) = 'MPRTCode' then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select Top 1 * from JYOrder_Main where MPRTCode=''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + ''''); sql.Add(' order by FillTime desc'); Open; end; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.THKHNameBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin THKHName.Text := Trim(CDS_HZ.fieldbyname('coName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmOrderInPut_TC.PBQtyChange(Sender: TObject); begin if PBQty.Text = '' then begin PBMoney.Text := ''; Exit; end; if PBPrice.Text = '' then begin PBMoney.Text := ''; Exit; end; pbmoney.Text := FloatToStr(strtofloat(PBQty.Text) * strtofloat(pbprice.Text)); end; procedure TfrmOrderInPut_TC.PBQtyKeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', '.', #8]) then Key := #0; end; procedure TfrmOrderInPut_TC.RSQtyChange(Sender: TObject); begin if RSQty.Text = '' then begin RSMoney.Text := ''; Exit; end; if RSPrice.Text = '' then begin RSMoney.Text := ''; Exit; end; RSMoney.Text := FloatToStr(strtofloat(RSQty.Text) * strtofloat(RSPrice.Text)); end; procedure TfrmOrderInPut_TC.FROMFHSQBtnClick(Sender: TObject); begin // try // frmAllFHSQListSel := TfrmAllFHSQListSel.Create(self); // with frmAllFHSQListSel do // begin //// CANSHU3 := '现货'; // if ShowModal = 1 then // begin // FROMFHSQ.Text := Trim(Order_Main.fieldbyname('FSID').AsString); // FROMSSID.Text := Trim(ClientDataSet2.fieldbyname('SSID').AsString); // Self.CustomerNoName.Text := Trim(Order_Main.fieldbyname('CustomerNoName').AsString); //// CPName.Text := Trim(ClientDataSet2.fieldbyname('SPrtCodeName').AsString); // // with ADOTemp do // begin // Close; // sql.Clear; // sql.Add('select * from jyorder_main A INNER JOIN jyorder_SUB B on a.mainid=b.mainid where SUBID=' + quotedstr(Trim(ClientDataSet2.fieldbyname('SUBID').AsString))); //// sql.Add(' order by FillTime desc'); // Open; // end; // if ADOTemp.IsEmpty = False then // begin // orderNo.Text := Trim(ADOTemp.fieldbyname('orderNo').AsString); // conNO.Text := Trim(ADOTemp.fieldbyname('conNO').AsString); //// ConSubId := trim(ADOTemp.fieldbyname('subid').asstring); // OrderQty.Text := Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); //// OrderUnit.Text := Trim(ADOTemp.fieldbyname('OrderUnit').AsString); //// TCUnit.Text := Trim(ADOTemp.fieldbyname('OrderUnit').AsString); // end; // // with self.ORDER_MX do // begin // append; // Fieldbyname('Prtcode').value := trim(frmAllFHSQListSel.ClientDataSet2.Fieldbyname('SPrtCodename').AsString); // Fieldbyname('PrtColor').value := trim(frmAllFHSQListSel.ClientDataSet2.Fieldbyname('PrtColor').AsString); // Fieldbyname('OrderUnit').value := trim(frmAllFHSQListSel.ClientDataSet2.Fieldbyname('OrderUnit').AsString); // //// Fieldbyname('PRTMF').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('MPRTMF').AsString); //// Fieldbyname('PrtKZ').value := trim(frmProductOrderListSel.Order_Main.Fieldbyname('MPRTKZ').AsString); // Fieldbyname('PRTOrderQty').value := 0; // Fieldbyname('PRTPs').value := 0; // end; // end; // end; // finally // frmAllFHSQListSel.Free; // end; end; procedure TfrmOrderInPut_TC.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin // frmCPManageSel := TfrmCPManageSel.Create(self); // with frmCPManageSel do // begin // if showmodal = 1 then // begin // with ORDER_MX do // begin // Edit; // fieldbyname('PRTCODE').AsString := CDS_Main.fieldbyname('CYNo').asstring; // fieldbyname('PRTMF').AsString := CDS_Main.fieldbyname('CYYXMF').asstring; // fieldbyname('PRTKZ').AsString := CDS_Main.fieldbyname('CYkz').asstring; // // end; // // end; // free; // end; end; procedure TfrmOrderInPut_TC.ToolButton1Click(Sender: TObject); begin with ORDER_MX do begin APPEND; FieldByName('PRTColor').Value := ''; FieldByName('PRTOrderQty').Value := 0; FieldByName('PRTPs').Value := 0; Post; end; end; procedure TfrmOrderInPut_TC.ToolButton2Click(Sender: TObject); begin if ORDER_MX.IsEmpty then Exit; if Trim(ORDER_MX.fieldbyname('SubId').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete ORDER_TC_MX where SubId=''' + Trim(ORDER_MX.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; end; ORDER_MX.Delete; end; procedure TfrmOrderInPut_TC.cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin // frmCPManageSel := TfrmCPManageSel.Create(self); // with frmCPManageSel do // begin // if showmodal = 1 then // begin // with ORDER_MX do // begin // Edit; // FieldByName('PRTColor').Value := CDS_Main.fieldbyname('CYcolor').asstring; // FieldByName('PRTCODE').Value := CDS_Main.fieldbyname('CYNo').asstring; // FieldByName('PRTmf').Value := CDS_Main.fieldbyname('CYyxmf').asstring; // FieldByName('prtkz').Value := CDS_Main.fieldbyname('CYkz').asstring; // // Post; // end; // // end; // free; // end; // tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmOrderInPut_TC.YWYBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'YWY'; flagname := '业务员'; if ShowModal = 1 then begin Self.YWY.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPut_TC.YWYBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmOrderInPut_TC.YWZBBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'SalesClass'; flagname := '业务组别'; if ShowModal = 1 then begin YWZB.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; end.