unit U_YFKInput; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, ExtCtrls, StdCtrls, BtnEdit, cxButtonEdit, cxTextEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmYFKInput = class(TForm) DataSource1: TDataSource; YFSub: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ToolBar1: TToolBar; TSave: TToolButton; TBClose: TToolButton; ToolBar2: TToolBar; TADD: TToolButton; TDEl: TToolButton; Panel1: TPanel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1_KXType: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Money: TcxGridDBColumn; v1note: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label1: TLabel; YFID: TEdit; Label2: TLabel; Label3: TLabel; CRTime: TDateTimePicker; Note: TMemo; PayMent: TBtnEditA; FactoryName: TBtnEditA; Label4: TLabel; Label6: TLabel; ADOQueryTmp: TADOQuery; ADOQueryCmd: TADOQuery; Label8: TLabel; SYRName: TBtnEditA; Label9: TLabel; Money: TEdit; Label10: TLabel; HuiLv: TEdit; BZType: TComboBox; Label11: TLabel; Label12: TLabel; BBMoney: TEdit; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; Label7: TLabel; v1Column4: TcxGridDBColumn; ToolButton1: TToolButton; v1Column5: TcxGridDBColumn; ToolButton2: TToolButton; Label5: TLabel; ishs: TComboBox; v1Column6: TcxGridDBColumn; YFName: TBtnEditA; ToolButton3: TToolButton; Label13: TLabel; FtySYRName: TBtnEditA; v1Column7: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; ToolButton4: TToolButton; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TSaveClick(Sender: TObject); procedure FactoryNameBtnClick(Sender: TObject); procedure PayMentBtnClick(Sender: TObject); procedure v1P_SpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1QtyUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure TADDClick(Sender: TObject); procedure TDElClick(Sender: TObject); procedure v1QtyPropertiesEditValueChanged(Sender: TObject); procedure SYRNameBtnClick(Sender: TObject); procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure HuiLvKeyPress(Sender: TObject; var Key: Char); procedure Panel1Click(Sender: TObject); procedure HuiLvExit(Sender: TObject); procedure v1MoneyPropertiesEditValueChanged(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure YFNameBtnClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FtySYRNameBtnClick(Sender: TObject); procedure ToolButton4Click(Sender: TObject); private procedure initGrid(); procedure SaveDate(); procedure HJJE(); { Private declarations } public FYFID: string; FTYPE: string; { Public declarations } end; var frmYFKInput: TfrmYFKInput; implementation uses U_Fun10, U_ZDYHelp, U_ZdyAttachment, U_dataLink, U_ZdyAttachGYS, U_SXCKNewList, U_PBRKlistSel, U_CPManageSel, U_ZZJWLRKListSel, u_fun, U_PBRKlistSel2; {$R *.dfm} procedure TfrmYFKInput.HJJE(); var FMoney, FHuiLv, FBBMoney: double; begin if TV1.DataController.Summary.FooterSummaryValues[1] <> NULL then FMoney := TV1.DataController.Summary.FooterSummaryValues[1] else FMoney := 0; FHuiLv := strtofloat(HuiLv.Text); if FHuiLv = 0 then FHuiLv := 1; FBBMoney := FHuiLv * FMoney; Money.Text := floattostr(FMoney); HuiLv.Text := floattostr(FHuiLv); BBMoney.Text := floattostr(FBBMoney); end; procedure TfrmYFKInput.SaveDate(); var MaxYFSID, MaxYFID: string; begin ADOQueryCmd.Connection.BeginTrans; try if trim(FYFID) = '' then begin if GetLSNo(ADOQueryTmp, MaxYFID, 'YF', 'YF_Money_CR_Sub', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; YFID.Text := MaxYFID; end else begin MaxYFID := trim(FYFID); end; with ADOQueryCmd do begin close; sql.Clear; sql.add('select * from YF_Money_CR where YFID=' + quotedstr(FYFID)); open; end; with ADOQueryCmd do begin if trim(FYFID) = '' then begin append; Fieldbyname('YFID').value := trim(MaxYFID); FieldByName('CRType').Value := '应付款登记'; FieldByName('CRFlag').Value := FTYPE; FieldByName('QtyFlag').Value := 1; FieldByName('status').Value := '0'; FieldByName('Filler').Value := Trim(DName); end else begin edit; FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTmp); end; SSetsaveSqlnew(ADOQueryCmd, 'YF_Money_CR', panel1, 0); post; end; with YFSub do begin first; while not eof do begin if fieldbyname('YFSID').AsString = '' then begin if GetLSNo(ADOQueryTmp, MaxYFSID, 'YFS', 'YF_Money_CR_Sub', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin MaxYFSID := YFSub.fieldbyname('YFSID').AsString; end; with ADOQueryCmd do begin close; sql.Clear; sql.add('select * from YF_Money_CR_Sub where YFSID=' + Quotedstr(trim(MaxYFSID))); open; end; if ADOQueryCmd.IsEmpty then begin ADOQueryCmd.append; ADOQueryCmd.Fieldbyname('YFSID').value := trim(MaxYFSID); ADOQueryCmd.Fieldbyname('YFID').value := trim(MaxYFID); end else begin ADOQueryCmd.edit; end; SSetSaveDataCDSNew(ADOQueryCmd, Tv1, YFSub, 'YF_Money_CR_Sub', 0); ADOQueryCmd.Post; next; end; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('保存成功!', '提示'); Modalresult := 1; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('保存失败!', '提示', MB_ICONERROR); end; end; procedure TfrmYFKInput.initGrid(); begin with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID=' + quotedstr(trim(FYFID))); open; end; if ADOQueryTmp.isempty = False then begin SCSHDataNew(ADOQueryTmp, Panel1, 0); end else begin HuiLv.Text := '1'; CRTime.DateTime := SGetServerDate(ADOQueryTmp); end; with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from YF_Money_CR_Sub where YFID=''' + trim(FYFID) + ''''); open; end; SCreateCDS20(ADOQueryTmp, YFSub); SInitCDSData20(ADOQueryTmp, YFSub); end; procedure TfrmYFKInput.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '财务管理'); Close; end; procedure TfrmYFKInput.FormShow(Sender: TObject); begin ReadCxGrid(trim(self.Caption), Tv1, '财务管理'); if FTYPE = '织造应付付' then begin ToolButton1.visible := false; ToolButton4.visible := true; end else begin ToolButton1.visible := true; ToolButton4.visible := false; end; initGrid(); end; procedure TfrmYFKInput.TSaveClick(Sender: TObject); begin yfname.SetFocus; if trim(FactoryName.Text) = '' then begin application.MessageBox('对方单位不能为空', '提示'); exit; end; if trim(ishs.Text) = '' then begin application.MessageBox('是否含税不能为空', '提示'); exit; end; if YFSub.Locate('KXType', null, []) then begin application.MessageBox('款项类型不能为空', '提示'); exit; end; if YFSub.Locate('KXType', '', []) then begin application.MessageBox('款项类型不能为空', '提示'); exit; end; SaveDate(); end; procedure TfrmYFKInput.FactoryNameBtnClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('Name').AsString); // FtySYRName.Text := Trim(CDS_HZ.fieldbyname('Name').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmYFKInput.PayMentBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PayMent'; flagname := '付款方式'; if ShowModal = 1 then begin PayMent.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.v1P_SpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'KXType1'; flagname := '款项类型'; if ShowModal = 1 then begin Self.YFSub.Edit; Self.YFSub.FieldByName('KXType').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.v1QtyUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'QtyUnit'; flagname := '数量单位'; if ShowModal = 1 then begin Self.YFSub.Edit; Self.YFSub.FieldByName('QtyUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.TADDClick(Sender: TObject); begin with YFSub do begin Append; FieldByName('Qty').Value := 0; FieldByName('Price').Value := 0; FieldByName('MxMoney').Value := 0; FieldByName('discount').Value := 1; FieldByName('QtyUnit').Value := 'KG'; Post; end; end; procedure TfrmYFKInput.TDElClick(Sender: TObject); begin if YFSub.IsEmpty then exit; if application.MessageBox('确定要删除吗', '提示', 1) = 2 then exit; if trim(YFSub.fieldbyname('YFSID').asstring) = '' then begin YFSub.delete; HJJE(); end else begin with ADOQueryTmp do begin close; sql.clear; sql.add('delete from YF_Money_CR_Sub where YFSID=''' + trim(YFSub.fieldbyname('YFSID').asstring) + ''' '); execsql; end; YFSub.delete; HJJE(); TSave.Click; end; end; procedure TfrmYFKInput.v1QtyPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; FQty, FPrice, FZK, FMxMoney: double; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if Trim(mvalue) = '' then begin mvalue := '0'; end; with YFSub do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with YFSub do begin Edit; FQty := FieldByName('Qty').AsFloat; FPrice := FieldByName('Price').AsFloat; FZK := FieldByName('discount').AsFloat; Post; end; FMxMoney := RoundFloat(FQty * FPrice * FZK, 2); with YFSub do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); FieldbyName('MxMoney').Value := FMxMoney; Post; end; tv1.Controller.EditingController.ShowEdit(); HJJE(); end; procedure TfrmYFKInput.SYRNameBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'GSTTPB'; flagname := '供方'; V1Name.Caption := '中文名称'; if ShowModal = 1 then begin SYRName.Text := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'MPRTCodeName'; flagname := '产品名称'; if ShowModal = 1 then begin with YFSub do begin Edit; FieldByName('CPName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); FieldByName('CPCode').Value := Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; end; finally frmZDYHelp.Free; end; //self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmYFKInput.HuiLvKeyPress(Sender: TObject; var Key: Char); begin if not (((Key >= '0') and (Key <= '9')) or (Key = '.') or (Key = #8)) then begin Key := #0; end else if (pos('.', TEdit(Sender).text) <> 0) then begin if Key = '.' then begin Key := #0; end; end; end; procedure TfrmYFKInput.Panel1Click(Sender: TObject); begin yfname.SetFocus; end; procedure TfrmYFKInput.HuiLvExit(Sender: TObject); begin HJJE(); end; procedure TfrmYFKInput.v1MoneyPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if Trim(mvalue) = '' then begin mvalue := '0'; end; with YFSub do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; tv1.Controller.EditingController.ShowEdit(); HJJE(); end; procedure TfrmYFKInput.ToolButton1Click(Sender: TObject); var CFactoryName, CKXType: string; CQtyFlag: integer; begin try frmSXCKNewList := TfrmSXCKNewList.create(self); with frmSXCKNewList do begin FCKName := '纱线'; with frmSXCKNewList do begin if showmodal = 1 then begin CFactoryName := Trim(CDS_Main.fieldbyname('FactoryName').AsString); CRTime.DateTime := CDS_Main.fieldbyname('CRTime').AsDateTime; while CDS_Main.Locate('SSel', true, []) do begin if trim(CFactoryName) <> Trim(CDS_Main.fieldbyname('FactoryName').AsString) then begin Application.MessageBox('不能选择多个对方单位!', '提示', 0); Exit; end; if self.FactoryName.Text <> '' then begin if trim(self.FactoryName.Text) <> Trim(CDS_Main.fieldbyname('FactoryName').AsString) then begin Application.MessageBox('不能选择多个对方单位!', '提示', 0); Exit; end; end; self.YFSub.Append; self.YFSub.FieldByName('YFPZNO').Value := CDS_Main.FieldByName('Y_ID').Value; self.YFSub.FieldByName('CPCode').Value := CDS_Main.FieldByName('Y_Code').Value; self.YFSub.FieldByName('CPName').Value := CDS_Main.FieldByName('Y_CodeName').Value; self.YFSub.FieldByName('CPSpec').Value := CDS_Main.FieldByName('Y_Spec').Value; self.YFSub.FieldByName('CPBatchNO').Value := CDS_Main.FieldByName('BatchNO').Value; self.YFSub.FieldByName('danbao').Value := CDS_Main.FieldByName('danbao').Value; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '退货' then begin CQtyFlag := -1; CKXType := '纱线退货'; end else if Trim(CDS_Main.fieldbyname('CRType').AsString) = '采购入库' then begin CQtyFlag := 1; CKXType := '纱线采购'; end else begin CQtyFlag := 1; CKXType := '纱线加工'; end; self.YFSub.FieldByName('KXType').Value := CKXType; self.YFSub.FieldByName('PS').Value := CQtyFlag * CDS_Main.FieldByName('PiQty').AsInteger; self.YFSub.FieldByName('Qty').Value := CQtyFlag * CDS_Main.FieldByName('Qty').AsFloat; self.YFSub.FieldByName('QtyUnit').Value := CDS_Main.FieldByName('QtyUnit').Value; self.YFSub.FieldByName('Price').Value := CDS_Main.FieldByName('Price').AsFloat; self.YFSub.FieldByName('MxMoney').Value := CDS_Main.FieldByName('money').AsFloat; self.YFSub.FieldByName('discount').Value := 1; // if StrToFloatDef(CDS_Main.FieldByName('discount').AsString, 0) <> 0 then // begin // self.YFSub.FieldByName('MxMoney').Value := roundfloat(CQtyFlag * CDS_Main.FieldByName('Price').AsFloat * CDS_Main.FieldByName('Qty').AsFloat * CDS_Main.FieldByName('discount').AsFloat, 2); // end // else // self.YFSub.FieldByName('MxMoney').Value := RoundFloat(CQtyFlag * CDS_Main.FieldByName('Price').AsFloat * CDS_Main.FieldByName('Qty').AsFloat, 2); self.YFSub.post; if CDS_Main.FieldByName('YunFei').AsFloat > 0 then begin self.YFSub.Append; self.YFSub.FieldByName('YFPZNO').Value := CDS_Main.FieldByName('Y_ID').Value; self.YFSub.FieldByName('CPCode').Value := CDS_Main.FieldByName('Y_Code').Value; self.YFSub.FieldByName('CPName').Value := CDS_Main.FieldByName('Y_CodeName').Value; self.YFSub.FieldByName('CPSpec').Value := CDS_Main.FieldByName('Y_Spec').Value; self.YFSub.FieldByName('CPBatchNO').Value := CDS_Main.FieldByName('BatchNO').Value; self.YFSub.FieldByName('KXType').Value := '运费'; self.YFSub.FieldByName('Price').Value := 0; self.YFSub.FieldByName('PS').Value := 0; self.YFSub.FieldByName('Qty').Value := 0; self.YFSub.FieldByName('MxMoney').Value := CDS_Main.FieldByName('YunFei').AsFloat; self.YFSub.post; end; CDS_Main.Delete; end; self.FactoryName.Text := Trim(CFactoryName); HJJE(); end; end; end; finally frmSXCKNewList.free; end; end; procedure TfrmYFKInput.ToolButton2Click(Sender: TObject); var CFactoryName, CKXType: string; CQtyFlag: integer; begin try frmZZJWLRKListSel := TfrmZZJWLRKListSel.create(self); with frmZZJWLRKListSel do begin with frmZZJWLRKListSel do begin if showmodal = 1 then begin CFactoryName := Trim(CDS_Main.fieldbyname('FactoryName').AsString); CRTime.DateTime := CDS_Main.fieldbyname('CRTime').AsDateTime; while CDS_Main.Locate('SSel', true, []) do begin if trim(CFactoryName) <> Trim(CDS_Main.fieldbyname('FactoryName').AsString) then begin Application.MessageBox('不能选择多个对方单位!', '提示', 0); Exit; end; self.YFSub.Append; self.YFSub.FieldByName('YFPZNO').Value := CDS_Main.FieldByName('Y_ID').Value; self.YFSub.FieldByName('CPCode').Value := CDS_Main.FieldByName('Y_Code').Value; self.YFSub.FieldByName('CPName').Value := CDS_Main.FieldByName('Y_CodeName').Value; self.YFSub.FieldByName('CPSpec').Value := CDS_Main.FieldByName('Y_Spec').Value; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '退货' then begin CQtyFlag := -1; CKXType := '机物料退货'; end else if Trim(CDS_Main.fieldbyname('CRType').AsString) = '采购入库' then begin CQtyFlag := 1; CKXType := '机物料采购'; end; self.YFSub.FieldByName('KXType').Value := CKXType; self.YFSub.FieldByName('PS').Value := CQtyFlag * CDS_Main.FieldByName('PiQty').AsInteger; self.YFSub.FieldByName('Qty').Value := CQtyFlag * CDS_Main.FieldByName('Qty').AsFloat; self.YFSub.FieldByName('QtyUnit').Value := CDS_Main.FieldByName('QtyUnit').Value; self.YFSub.FieldByName('Price').Value := CDS_Main.FieldByName('Price').AsFloat; self.YFSub.FieldByName('MxMoney').Value := RoundFloat(CQtyFlag * CDS_Main.FieldByName('Qty').AsFloat * CDS_Main.FieldByName('Price').AsFloat, 0); self.YFSub.post; CDS_Main.Delete; end; self.FactoryName.Text := Trim(CFactoryName); HJJE(); end; end; end; finally frmZZJWLRKListSel.free; end; end; procedure TfrmYFKInput.YFNameBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'YFName1'; flagname := '项目及摘要'; if ShowModal = 1 then begin YFName.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.ToolButton3Click(Sender: TObject); var CFactoryName, CKXType: string; CQtyFlag: integer; begin try frmPBRKlistSel := TfrmPBRKlistSel.create(self); with frmPBRKlistSel do begin with frmPBRKlistSel do begin if showmodal = 1 then begin CFactoryName := Trim(CDS_Main.fieldbyname('fromFactoryName').AsString); CRTime.DateTime := CDS_Main.fieldbyname('CRTime').AsDateTime; FtySYRName.Text := CFactoryName; // ishs.ItemIndex:=ishs.Items.IndexOf(trim(CDS_Main.fieldbyname('ishs').AsString)); while CDS_Main.Locate('SSel', true, []) do begin if trim(CFactoryName) <> Trim(CDS_Main.fieldbyname('fromFactoryName').AsString) then begin Application.MessageBox('不能选择多个对方单位!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '销售退回' then begin CQtyFlag := -1; CKXType := '汇总坯布销售退回'; end else if Trim(CDS_Main.fieldbyname('CRType').AsString) = '外加工退回' then begin CQtyFlag := -1; CKXType := '外加工退回'; end else begin CQtyFlag := 1; CKXType := '汇总加工费'; end; self.YFSub.Append; self.YFSub.FieldByName('YFPZNO').Value := CDS_Main.FieldByName('CRID').Value; self.YFSub.FieldByName('KXType').Value := CKXType; self.YFSub.FieldByName('CPCode').Value := CDS_Main.FieldByName('Code').Value; self.YFSub.FieldByName('CPName').Value := CDS_Main.FieldByName('CodeName').Value; // self.YFSub.FieldByName('CPSpec').Value:=CDS_Main.FieldByName('SPSpec').Value; self.YFSub.FieldByName('PS').Value := CQtyFlag * CDS_Main.FieldByName('PS').AsInteger; self.YFSub.FieldByName('Qty').Value := CQtyFlag * CDS_Main.FieldByName('Qty').AsFloat; self.YFSub.FieldByName('QtyUnit').Value := CDS_Main.FieldByName('QtyUnit').Value; self.YFSub.FieldByName('Price').Value := CDS_Main.FieldByName('Price').Value; self.YFSub.FieldByName('MxMoney').Value := roundfloat(CQtyFlag * CDS_Main.FieldByName('money').AsFloat, 0); self.YFSub.post; CDS_Main.Delete; end; self.FactoryName.Text := Trim(CFactoryName); HJJE(); end; end; end; finally frmPBRKlistSel.free; end; end; procedure TfrmYFKInput.FtySYRNameBtnClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'YFFtySYRName'; flagname := '对方抬头'; if ShowModal = 1 then begin FtySYRName.Text := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYFKInput.ToolButton4Click(Sender: TObject); var CFactoryName, CKXType: string; CQtyFlag: integer; begin try frmPBRKlistSel2 := TfrmPBRKlistSel2.create(self); with frmPBRKlistSel2 do begin with frmPBRKlistSel2 do begin if showmodal = 1 then begin CFactoryName := Trim(CDS_Main.fieldbyname('FactoryName').AsString); CRTime.DateTime := CDS_Main.fieldbyname('CRTime').AsDateTime; FtySYRName.Text := CFactoryName; // ishs.ItemIndex:=ishs.Items.IndexOf(trim(CDS_Main.fieldbyname('ishs').AsString)); while CDS_Main.Locate('SSel', true, []) do begin if trim(CFactoryName) <> Trim(CDS_Main.fieldbyname('FactoryName').AsString) then begin Application.MessageBox('不能选择多个对方单位!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '销售退回' then begin CQtyFlag := -1; CKXType := '汇总坯布销售退回'; end else begin CQtyFlag := 1; CKXType := '外发织造出库'; end; self.YFSub.Append; // self.YFGSType.ItemIndex := self.YFGSType.Items.IndexOf('坯布类'); self.YFSub.FieldByName('YFPZNO').Value := CDS_Main.FieldByName('SPID').Value; self.YFSub.FieldByName('KXType').Value := '外发织造出库'; self.YFSub.FieldByName('CPCode').Value := CDS_Main.FieldByName('SPCode').Value; self.YFSub.FieldByName('CPName').Value := CDS_Main.FieldByName('SPNAME').Value; // self.YFSub.FieldByName('CPSpec').Value:=CDS_Main.FieldByName('SPSpec').Value; self.YFSub.FieldByName('PS').Value := CQtyFlag * CDS_Main.FieldByName('PiQty').AsInteger; self.YFSub.FieldByName('Qty').Value := CQtyFlag * CDS_Main.FieldByName('Qty').AsFloat; self.YFSub.FieldByName('QtyUnit').Value := CDS_Main.FieldByName('QtyUnit').Value; self.YFSub.FieldByName('Price').Value := 0; self.YFSub.FieldByName('MxMoney').Value := 0; self.YFSub.FieldByName('discount').Value := 1; self.YFSub.post; CDS_Main.Delete; end; self.FactoryName.Text := Trim(CFactoryName); HJJE(); end; end; end; finally frmPBRKlistSel2.free; end; end; end.