unit U_PayableBatchInput; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, cxSpinEdit, StdCtrls, ExtCtrls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseInput, System.ImageList, Vcl.ImgList, dxScrollbarAnnotations, dxSkinsCore, dxSkinsDefaultPainters, cxImageList, dxSkinOffice2013White, dxSkinSharpPlus, dxSkinWXI, cxCheckBox, Vcl.Menus, Clipbrd, cxCurrencyEdit; type TfrmPayableBatchInput = class(TfrmBaseInput) ToolBar1: TToolBar; TBAdd: TToolButton; TBDel: TToolButton; TBSave: TToolButton; TBClose: TToolButton; DS_1: TDataSource; CDS_1: TClientDataSet; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; GPM_1: TcxGridPopupMenu; ToolButton1: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column22: TcxGridDBColumn; Tv1FFTime: TcxGridDBColumn; TV1OurCoName: TcxGridDBColumn; Tv1OppCoName: TcxGridDBColumn; Tv1FFAbstract: TcxGridDBColumn; Tv1ConNo: TcxGridDBColumn; Tv1OrderNo: TcxGridDBColumn; Tv1BuyConNo: TcxGridDBColumn; Tv1F_Code: TcxGridDBColumn; Tv1F_Name: TcxGridDBColumn; Tv1F_Width: TcxGridDBColumn; Tv1F_GramWeight: TcxGridDBColumn; Tv1F_Color: TcxGridDBColumn; Tv1Piece: TcxGridDBColumn; Tv1Qty: TcxGridDBColumn; Tv1QtyUnit: TcxGridDBColumn; Tv1Currency: TcxGridDBColumn; Tv1NoTaxPrice: TcxGridDBColumn; Tv1NoTaxInclude: TcxGridDBColumn; Tv1TaxRate: TcxGridDBColumn; Tv1Tax: TcxGridDBColumn; Tv1TaxInclude: TcxGridDBColumn; Tv1Note: TcxGridDBColumn; Tv1FromID1: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; TbOrdAdd: TToolButton; Tv1PurNo: TcxGridDBColumn; Tv1FinType: TcxGridDBColumn; TbPurSel: TToolButton; PM_1: TPopupMenu; N1: TMenuItem; N3: TMenuItem; N2: TMenuItem; Tv1oppShuiNo: TcxGridDBColumn; Tv1ourShuiNo: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton1Click(Sender: TObject); procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure TBAddClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TbOrdAddClick(Sender: TObject); procedure TbPurSelClick(Sender: TObject); procedure Tv1OppCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Tv1FFAbstractPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure Tv1PurNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Tv1OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Tv1CurrencyPropertiesChange(Sender: TObject); procedure Tv1TaxRatePropertiesEditValueChanged(Sender: TObject); procedure TV1OurCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } function SaveData(): Boolean; procedure InitGrid(); public { Public declarations } FBCId, FKHName: string; FFFID : string; end; var frmPayableBatchInput: TfrmPayableBatchInput; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_FinTradePlanSel, U_FinPurchasePlanSel; {$R *.dfm} procedure TfrmPayableBatchInput.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmPayableBatchInput.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered := False; sql.Add(' select A.* '); sql.Add(' from Finance_Flow A '); sql.Add(' where FFID = ' + QuotedStr(FFFID)); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; end; end; procedure TfrmPayableBatchInput.N1Click(Sender: TObject); begin SelOKNo(CDS_1, True); end; procedure TfrmPayableBatchInput.N2Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmPayableBatchInput.N3Click(Sender: TObject); begin SelOKNo(CDS_1, false); end; function TfrmPayableBatchInput.SaveData(): Boolean; var Maxno, MFFID: string; begin try ADOQueryCmd.Connection.BeginTrans; CDS_1.DisableControls; with CDS_1 do begin First; while not eof do begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Finance_Flow where FFID=''' + Trim(CDS_1.fieldbyname('FFID').AsString) + ''''); open; end; MFFID := Trim(ADOQueryTemp.fieldbyname('FFID').AsString); if Trim(MFFID) = '' then begin if not GetLSNo(ADOQueryCmd, Maxno, 'YFK', 'Finance_Flow', 3, 1) then raise Exception.Create('取应收款编号失败!'); end else begin Maxno := Trim(MFFID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from Finance_Flow where FFID=''' + Trim(Maxno) + ''''); Open; end; with ADOQueryCmd do begin if Trim(MFFID) = '' then begin Append; FieldByName('Fillid').Value := Trim(Dcode); FieldByName('Filler').Value := Trim(DName); end else begin Edit; FieldByName('Editid').Value := Trim(Dcode); FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp); end; RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Finance_Flow', 0); FieldByName('FFID').Value := Maxno; FieldByName('FFFlag').Value := '应付付'; FieldByName('FFType').Value := '应付款登记'; FieldByName('CheckStatus').Value := '未审核'; //织造单号 FieldByName('OrdMainId').Value := CDS_1.fieldbyname('OrdMainId').Value; FieldByName('OrdSubId').Value := CDS_1.fieldbyname('OrdSubId').Value; //织造单号 FieldByName('PurMID').Value := CDS_1.fieldbyname('PurMID').Value; FieldByName('PurSID').Value := CDS_1.fieldbyname('PurSID').Value; //坯布合同 FieldByName('ConMId').Value := CDS_1.fieldbyname('ConMId').value; FieldByName('ConSId').Value := CDS_1.fieldbyname('ConSId').value; //面料合同 FieldByName('BuyConMID').Value := CDS_1.fieldbyname('BuyConMID').value; FieldByName('BuyConSID').Value := CDS_1.fieldbyname('BuyConSID').Value; //对方单位 FieldByName('OppCoNo').Value := CDS_1.fieldbyname('OppCoNo').Value; //我方单位 FieldByName('OurCoNo').Value := CDS_1.fieldbyname('OurCoNo').Value; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails)'); sql.Add('values(''应付款批量登记'' '); sql.Add(',' + quotedstr(Maxno)); sql.Add(',''保存'' '); sql.Add(',' + quotedstr(DName)); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(Maxno)); sql.Add(') '); ExecSQL; end; Next; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := False; CDS_1.EnableControls; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmPayableBatchInput.TBAddClick(Sender: TObject); begin CDS_1.Append; CDS_1.FieldByName('FFTime').Value := SGetServerDateTime(ADOQueryCmd); CDS_1.FieldByName('ReconciliationDate').Value := SGetServerDate(ADOQueryCmd); CDS_1.FieldByName('OurCoName').Value := 'DESHINE VIETNAM CO., LTD'; CDS_1.FieldByName('SSel').Value := False; CDS_1.Post; end; procedure TfrmPayableBatchInput.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmPayableBatchInput.TBDelClick(Sender: TObject); begin CDS_1.Delete; end; procedure TfrmPayableBatchInput.TbOrdAddClick(Sender: TObject); begin try frmFinTradePlanSel := TfrmFinTradePlanSel.Create(Application); with frmFinTradePlanSel do begin if ShowModal = 1 then begin with frmFinTradePlanSel.CDS_1 do begin //织造单 self.CDS_1.FieldByName('OrderNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); self.CDS_1.FieldByName('OrdMainId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('MainId').AsString); self.CDS_1.FieldByName('OrdSubId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('SubId').AsString); //坯布合同 self.CDS_1.FieldByName('ConNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.CDS_1.FieldByName('ConMId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConMId').AsString); self.CDS_1.FieldByName('ConSId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConSId').AsString); //面料合同 self.CDS_1.FieldByName('BuyConNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('BuyConNo').AsString); self.CDS_1.FieldByName('BuyConMID').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('FROMCPSID').AsString); self.CDS_1.FieldByName('BuyConSID').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('FROMCPMID').AsString); self.CDS_1.FieldByName('F_Code').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); self.CDS_1.FieldByName('F_Name').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('MainId').AsString); self.CDS_1.FieldByName('F_Width').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('SubId').AsString); self.CDS_1.FieldByName('F_GramWeight').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); self.CDS_1.FieldByName('F_Color').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('MainId').AsString); end; end; end; finally frmFinTradePlanSel.Free; end; end; procedure TfrmPayableBatchInput.FormShow(Sender: TObject); var fsj: string; begin inherited; ReadCxGrid('应付款批量登记', Tv1, '应付款批量登记'); InitGrid(); end; procedure TfrmPayableBatchInput.TBSaveClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('FFTime', null, []) = True then begin Application.MessageBox('登记日期不能为空!', '提示', 0); Exit; end; if CDS_1.Locate('ReconciliationDate', null, []) = True then begin Application.MessageBox('对账日期不能为空!', '提示', 0); Exit; end; if CDS_1.Locate('FinType', null, []) = True then begin Application.MessageBox('请选择类型!', '提示', 0); Exit; end; if CDS_1.Locate('Qty', null, []) = True then begin Application.MessageBox('数量不能为空!', '提示', 0); Exit; end; // CDS_1.First; // while not CDS_1.Eof do // begin // // 同时判断两个条件 // if (CDS_1.FieldByName('IOType').AsString = '车间领用') and (CDS_1.FieldByName('ToOrdNo').IsNull or (Trim(CDS_1.FieldByName('ToOrdNo').AsString) = '')) then // begin // Application.MessageBox('请选择车间领用 出到织造单!', '提示', 0); // Exit; // end; // CDS_1.Next; // end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); //ModalResult:=1; Exit; end; end; procedure TfrmPayableBatchInput.ToolButton1Click(Sender: TObject); begin WriteCxGrid('应付款批量登记', Tv1, '应付款批量登记'); end; procedure TfrmPayableBatchInput.TbPurSelClick(Sender: TObject); begin try frmFinPurchasePlanSel := TfrmFinPurchasePlanSel.Create(Application); with frmFinPurchasePlanSel do begin if ShowModal = 1 then begin with frmFinPurchasePlanSel.CDS_1 do begin first; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin with Self.CDS_1 do begin append; //对方单位 self.CDS_1.FieldByName('OppCoName').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SellName').asstring); self.CDS_1.FieldByName('OppCoNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SellNo').asstring); self.CDS_1.FieldByName('oppShuiNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('shuino').asstring); //我方单位 self.CDS_1.FieldByName('FFTime').Value := SGetServerDateTime(ADOQueryCmd); self.CDS_1.FieldByName('ReconciliationDate').Value := SGetServerDate(ADOQueryCmd); self.CDS_1.FieldByName('OurCoName').Value := 'DESHINE VIETNAM CO., LTD'; self.CDS_1.FieldByName('FinType').Value := '纱线'; self.CDS_1.FieldByName('Currency').Value := 'CNY'; self.CDS_1.FieldByName('SSel').Value := False; self.CDS_1.FieldByName('FFAbstract').Value := '纱线采购'; //采购单 self.CDS_1.FieldByName('PurNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurNo').AsString); self.CDS_1.FieldByName('PurMID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurMId').AsString); self.CDS_1.FieldByName('PurSID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurSId').AsString); //坯布合同 self.CDS_1.FieldByName('ConNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.CDS_1.FieldByName('ConMId').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('fromConMId').AsString); self.CDS_1.FieldByName('ConSId').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('fromConSId').AsString); //面料合同 self.CDS_1.FieldByName('BuyConNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('CPConNo').AsString); self.CDS_1.FieldByName('BuyConMID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('FROMCPSID').AsString); self.CDS_1.FieldByName('BuyConSID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('FROMCPMID').AsString); self.CDS_1.FieldByName('F_Code').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Code').Value); self.CDS_1.FieldByName('F_Name').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Name').Value); // self.CDS_1.FieldByName('F_Width').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SubId').AsString); // self.CDS_1.FieldByName('F_GramWeight').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('C_GramWeight').AsString); self.CDS_1.FieldByName('F_Color').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Color').Value); if not frmFinPurchasePlanSel.CDS_1.FieldByName('Piece').IsNull then begin self.CDS_1.FieldByName('Piece').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Piece').AsString); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('Qty').IsNull then begin self.CDS_1.FieldByName('Qty').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Qty').AsString); end; self.CDS_1.FieldByName('QtyUnit').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('QtyUnit').AsString); self.CDS_1.FieldByName('currency').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('currency').AsString); if not frmFinPurchasePlanSel.CDS_1.FieldByName('Price').IsNull then begin self.CDS_1.FieldByName('NoTaxPrice').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Price').AsString); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('Amount').IsNull then begin self.CDS_1.FieldByName('NoTaxInclude').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Amount').AsString); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('TaxRate').IsNull then begin self.CDS_1.FieldByName('TaxRate').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxRate').AsString); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('Tax').IsNull then begin self.CDS_1.FieldByName('Tax').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Tax').AsString); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('TaxInclude').IsNull then begin self.CDS_1.FieldByName('TaxInclude').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxInclude').AsString); end; Post; end; end; frmFinPurchasePlanSel.CDS_1.Next; end; end; end; end; finally frmFinPurchasePlanSel.Free; end; end; procedure TfrmPayableBatchInput.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '供应商'; if ShowModal = 1 then begin with Self.CDS_1 do begin Edit; FieldByName('ToCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString); FieldByName('ToCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString); post; end; end; end; finally frmCompanySel.Free; end; end; procedure TfrmPayableBatchInput.Tv1CurrencyPropertiesChange(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; // if not Assigned(Sender) or not (Sender is TComboBox) then // Exit; if TComboBox(Sender).Text = 'VND' then begin with CDS_1 do begin // 检查记录是否处于可编辑状态 if not (State in [dsEdit, dsInsert]) then Edit; // 检查字段是否存在且不为空 if not FieldByName('NoTaxPrice').IsNull and (FieldByName('NoTaxPrice').AsString <> '') then begin FieldByName('NoTaxPrice').Value := RoundFloat(FieldByName('NoTaxPrice').AsFloat, 0); end; // 检查Qty和NoTaxPrice字段是否存在且不为空 if not FieldByName('Qty').IsNull and not FieldByName('NoTaxPrice').IsNull and (FieldByName('Qty').AsString <> '') and (FieldByName('NoTaxPrice').AsString <> '') then begin FieldByName('NoTaxInclude').Value := RoundFloat(FieldByName('Qty').AsFloat * FieldByName('NoTaxPrice').AsFloat, 0); end; if not FieldByName('TaxRate').IsNull and (FieldByName('TaxRate').AsString <> '') then FieldByName('TaxRate').Value := RoundFloat(FieldByName('TaxRate').AsFloat, 0); if not FieldByName('Tax').IsNull and (FieldByName('Tax').AsString <> '') then FieldByName('Tax').Value := RoundFloat(FieldByName('Tax').AsFloat, 0); Post; end; end else begin with CDS_1 do begin // 检查记录是否处于可编辑状态 if not (State in [dsEdit, dsInsert]) then Edit; // 使用一致的空值检查方式 if (not FieldByName('NoTaxPrice').IsNull) and (FieldByName('NoTaxPrice').AsString <> '') then begin FieldByName('NoTaxPrice').Value := FormatFloat('0.00', FieldByName('NoTaxPrice').AsFloat); end; if (not FieldByName('Qty').IsNull) and (not FieldByName('NoTaxPrice').IsNull) and (FieldByName('Qty').AsString <> '') and (FieldByName('NoTaxPrice').AsString <> '') then begin FieldByName('NoTaxInclude').Value := FormatFloat('0.00', FieldByName('NoTaxInclude').AsFloat); end; if not FieldByName('TaxRate').IsNull and (FieldByName('TaxRate').AsString <> '') then begin FieldByName('TaxRate').Value := FormatFloat('0.00', FieldByName('TaxRate').AsFloat); end; if not FieldByName('Tax').IsNull and (FieldByName('Tax').AsString <> '') then begin FieldByName('Tax').Value := FormatFloat('0.00', FieldByName('Tax').AsFloat); end; Post; end; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmPayableBatchInput.Tv1FFAbstractPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'FFAbstract'; flagname := '摘要'; if ShowModal = 1 then begin Self.CDS_1.Edit; Self.CDS_1.FieldByName('FFAbstract').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.CDS_1.Post; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmPayableBatchInput.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var FFSPID: string; begin // if CDS_Sub.IsEmpty then // Exit; // if Trim(CDS_Sub.fieldbyname('BYIOID').AsString) <> '' then // begin // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(CDS_Sub.fieldbyname('BYIOID').AsString) + ''''); // Open; // end; // FFSPID := Trim(ADOQueryTemp.fieldbyname('BYIOID').AsString); // if Trim(FFSPID) <> '' then // begin // v1CRType.Options.Editing := False; // end // else // begin // v1CRType.Options.Editing := True; // end; // end // else // begin // v1CRType.Options.Editing := True; // end; end; procedure TfrmPayableBatchInput.Tv1OppCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '供应商'; if ShowModal = 1 then begin Self.CDS_1.Edit; Self.CDS_1.FieldByName('OppCoName').asstring := Trim(frmCompanySel.CDS_1.fieldbyname('CoName').AsString); Self.CDS_1.FieldByName('OurCoNo').asstring := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString); Self.CDS_1.FieldByName('oppShuiNo').asstring := Trim(frmCompanySel.CDS_1.fieldbyname('ShuiNo').AsString); Self.CDS_1.Post; end; end; finally frmCompanySel.Free; end; end; procedure TfrmPayableBatchInput.Tv1OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmFinTradePlanSel := TfrmFinTradePlanSel.Create(Application); with frmFinTradePlanSel do begin if ShowModal = 1 then begin with frmFinTradePlanSel.CDS_1 do begin //采购单 self.CDS_1.FieldByName('PurNo').value := null; self.CDS_1.FieldByName('PurMID').value := null; self.CDS_1.FieldByName('PurSID').value := null; //织造单 self.CDS_1.FieldByName('OrderNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); self.CDS_1.FieldByName('OrdMainId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('MainId').AsString); self.CDS_1.FieldByName('OrdSubId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('SubId').AsString); //坯布合同 self.CDS_1.FieldByName('ConNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.CDS_1.FieldByName('ConMId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConMId').AsString); self.CDS_1.FieldByName('ConSId').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConSId').AsString); //面料合同 self.CDS_1.FieldByName('BuyConNo').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('BuyConNo').AsString); self.CDS_1.FieldByName('BuyConMID').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('FROMCPMID').AsString); self.CDS_1.FieldByName('BuyConSID').AsString := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('FROMCPSID').AsString); // self.CDS_1.FieldByName('F_Code').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Code').AsString); // self.CDS_1.FieldByName('F_Name').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Name').AsString); // self.CDS_1.FieldByName('F_Color').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Color').AsString); // self.CDS_1.FieldByName('Piece').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Piece').AsString); // self.CDS_1.FieldByName('Qty').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Qty').AsString); // self.CDS_1.FieldByName('QtyUnit').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('QtyUnit').AsString); // self.CDS_1.FieldByName('currency').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('currency').AsString); // self.CDS_1.FieldByName('NoTaxPrice').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Piece').AsString); // self.CDS_1.FieldByName('NoTaxInclude').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Amount').AsString); // self.CDS_1.FieldByName('TaxRate').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxRate').AsString); // self.CDS_1.FieldByName('Tax').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Tax').AsString); // self.CDS_1.FieldByName('TaxInclude').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxInclude').AsString); self.CDS_1.Post; end; end; end; finally frmFinTradePlanSel.Free; end; end; procedure TfrmPayableBatchInput.TV1OurCoNamePropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '我司'; if ShowModal = 1 then begin self.CDS_1.Edit; self.CDS_1.FieldByName('OurCoName').Value := Trim(frmCompanySel.CDS_1.fieldbyname('CoName').AsString); self.CDS_1.FieldByName('OurShuiNo').Value := Trim(frmCompanySel.CDS_1.fieldbyname('ShuiNo').AsString); self.CDS_1.FieldByName('OurCoNo').Value := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString); self.CDS_1.Post; end; end; finally frmCompanySel.Free; end; end; procedure TfrmPayableBatchInput.Tv1PurNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmFinPurchasePlanSel := TfrmFinPurchasePlanSel.Create(Application); with frmFinPurchasePlanSel do begin if ShowModal = 1 then begin with frmFinPurchasePlanSel.CDS_1 do begin self.CDS_1.Edit; //对方单位 self.CDS_1.FieldByName('OppCoName').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SellName').AsString); self.CDS_1.FieldByName('OppCoNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SellNo').AsString); //织造单号 self.CDS_1.FieldByName('OrderNo').value := null; self.CDS_1.FieldByName('OrdMainId').value := null; self.CDS_1.FieldByName('OrdSubId').value := null; //类型 self.CDS_1.FieldByName('FinType').Value := '纱线'; self.CDS_1.FieldByName('FFAbstract').Value := '纱线采购'; //采购单 self.CDS_1.FieldByName('PurNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurNo').AsString); self.CDS_1.FieldByName('PurMID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurMId').AsString); self.CDS_1.FieldByName('PurSID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PurSId').AsString); //坯布合同 self.CDS_1.FieldByName('ConNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.CDS_1.FieldByName('ConMId').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('fromConMId').AsString); self.CDS_1.FieldByName('ConSId').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('fromConSId').AsString); //面料合同 self.CDS_1.FieldByName('BuyConNo').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('CPConNo').AsString); self.CDS_1.FieldByName('BuyConMID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('FROMCPSID').AsString); self.CDS_1.FieldByName('BuyConSID').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('FROMCPMID').AsString); self.CDS_1.FieldByName('F_Code').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Code').AsString); self.CDS_1.FieldByName('F_Name').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Name').AsString); // self.CDS_1.FieldByName('F_Width').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('SubId').AsString); // self.CDS_1.FieldByName('F_GramWeight').AsString := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('C_GramWeight').AsString); self.CDS_1.FieldByName('F_Color').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Y_Color').AsString); self.CDS_1.FieldByName('Piece').asstring := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Piece').AsString); self.CDS_1.FieldByName('Qty').asstring := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Qty').AsString); self.CDS_1.FieldByName('QtyUnit').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('QtyUnit').AsString); self.CDS_1.FieldByName('currency').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('currency').AsString); if not frmFinPurchasePlanSel.CDS_1.FieldByName('PRICE').IsNull then begin self.CDS_1.FieldByName('NoTaxPrice').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('PRICE').Value); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('Amount').IsNull then begin self.CDS_1.FieldByName('NoTaxInclude').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Amount').Value); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('TaxRate').IsNull then begin self.CDS_1.FieldByName('TaxRate').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxRate').Value); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('Tax').IsNull then begin self.CDS_1.FieldByName('Tax').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('Tax').Value); end; if not frmFinPurchasePlanSel.CDS_1.FieldByName('TaxInclude').IsNull then begin self.CDS_1.FieldByName('TaxInclude').Value := Trim(frmFinPurchasePlanSel.CDS_1.fieldbyname('TaxInclude').Value); end; self.CDS_1.Post; end; end; end; finally frmFinPurchasePlanSel.Free; end; end; procedure TfrmPayableBatchInput.Tv1TaxRatePropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; FQty, FNoTaxPrice, FNoTaxInclude: Double; //数量,不含税单价,不含税金额 mTaxRate, mTax, mTaxInclude: Double; //税率,税额,含税金额 // mCP_QTY, mCP_TPXS: Double; //成品数量,投坯系数 begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := StrToFloat(Trim(mvalue)); Post; // ShowMessage(Fieldbyname('TaxRate').AsString); if Fieldbyname('Qty').AsString <> '' then begin FQty := Fieldbyname('Qty').AsFloat; end else begin FQty := 0; end; if Fieldbyname('NoTaxPrice').AsString <> '' then begin FNoTaxPrice := Fieldbyname('NoTaxPrice').AsFloat; end else begin FNoTaxPrice := 0; end; if Fieldbyname('TaxRate').AsString <> '' then begin mTaxRate := Fieldbyname('TaxRate').AsFloat / 100; end else begin mTaxRate := 0; end; if Fieldbyname('Tax').AsString <> '' then begin mTax := Fieldbyname('Tax').AsFloat; end else begin mTax := 0; end; if Fieldbyname('TaxInclude').AsString <> '' then begin mTaxInclude := Fieldbyname('TaxInclude').AsFloat; end else begin mTaxInclude := 0; end; end; FNoTaxInclude := RoundFloat(FQty * FNoTaxPrice, 2); mTax := RoundFloat(FNoTaxInclude * mTaxRate, 2); mTaxInclude := RoundFloat(FNoTaxInclude + mTax, 2); with CDS_1 do begin Edit; FieldByName('Qty').Value := FQty; // FieldByName('ConPrice').Value := FConPrice; FieldByName('NoTaxPrice').Value := FloatToStr(FNoTaxPrice); FieldByName('NoTaxInclude').Value := FloatToStr(FNoTaxInclude); FieldByName('TaxRate').Value := FloatToStr(mTaxRate * 100); FieldByName('Tax').Value := FloatToStr(mTax); FieldByName('TaxInclude').Value := FloatToStr(mTaxInclude); Post; end; tv1.Controller.EditingController.ShowEdit(); end; end.