unit U_YSCR; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxContainer, cxCurrencyEdit; type TfrmYSCR = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; YFName: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; FactoryName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; TBADd: TToolButton; v2Column1: TcxGridDBColumn; VYB: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v2PS: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column5: TcxGridDBColumn; P_CodeName: TEdit; Label4: TLabel; Label7: TLabel; Edit1: TEdit; Button1: TButton; CheckBox1: TCheckBox; orderNo: TEdit; Label8: TLabel; Tchk: TToolButton; Tnochk: TToolButton; cxTabControl1: TcxTabControl; v2Column7: TcxGridDBColumn; v2Column9: TcxGridDBColumn; ToolButton3: TToolButton; Label5: TLabel; KHName: TEdit; Tv2Column2: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; Tv2Column3: TcxGridDBColumn; Tv2Column4: TcxGridDBColumn; Tv2Column5: TcxGridDBColumn; ToolButton4: TToolButton; Panel9: TPanel; Label32: TLabel; Button11: TButton; Button12: TButton; cxCurrencyEdit2: TcxCurrencyEdit; Tv2Column6: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure Button2Click(Sender: TObject); procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); procedure TBADdClick(Sender: TObject); procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure v2Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2PSPropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure v2KPMoneyPropertiesEditValueChanged(Sender: TObject); procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton3Click(Sender: TObject); procedure Tv2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column3PropertiesEditValueChanged(Sender: TObject); procedure v2Column7PropertiesEditValueChanged(Sender: TObject); procedure v2Column9PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure ToolButton4Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button12Click(Sender: TObject); private { Private declarations } procedure InitGridHZ(); procedure InitGrid(); function SaveData(): Boolean; procedure SetStatus(); public fflag: integer; { Public declarations } RKFlag, FCYID: string; fmanage: string; canshu1: string; end; var frmYSCR: TfrmYSCR; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ProductOrderList, U_ZdyAttachment, U_SXCKNewList, U_YSSCList; {$R *.dfm} procedure TfrmYSCR.SetStatus(); var i: integer; begin TBADd.Visible := False; Tchk.Visible := false; TNochk.Visible := false; TBDel.Visible := false; ToolButton4.Visible := false; // ToolButton3.Visible := False; // for i:=0 to tv2.ColumnCount-1 do // begin // IF uppercase(tv2.Columns[i].DataBinding.FieldName)<>'SSEL' then // tv2.Columns[i].Options.Editing:=false; // end; if fmanage = '业务员查询' then begin TBADd.Visible := false; end else if fmanage = '高权限' then begin if cxTabControl1.TabIndex = 0 then begin Tchk.Visible := true; TBDel.Visible := true; ToolButton4.Visible := true; TBADd.Visible := true; // ToolButton3.Visible := true; // for i:=1 to tv2.ColumnCount-1 do // begin // tv2.Columns[i].Options.Editing:=true; // end; end; if cxTabControl1.TabIndex = 1 then begin TNochk.Visible := true; end; end else begin if cxTabControl1.TabIndex = 0 then begin Tchk.Visible := false; TBDel.Visible := false; ToolButton4.Visible := false; TBADd.Visible := false; // ToolButton3.Visible := false; // for i:=1 to tv2.ColumnCount-1 do // begin // tv2.Columns[i].Options.Editing:=true; // end; end; if cxTabControl1.TabIndex = 1 then begin TNochk.Visible := false; end; end; end; procedure TfrmYSCR.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin // Close; // sql.Clear; // Filtered:=False; // sql.Add('select CRTime,A.MainId,A.QtyUnit,C.OrderNo,D.PRTCodeName,D.PrtColor,D.SOrddefstr5,YFName,D.PRTPrice as price,FactoryName, '); // sql.Add('sum(A.ps) as ps,SUM(A.qty) as Qty,'); //// SQL.Add('money=(qty *prtprice),'); // sql.Add('ywy=(select defstr5 from KH_Zdy_Attachment X where X.zdyname=A.FactoryName),'); // sql.Add('KHCode=(select ZdyCode from KH_Zdy_Attachment X where X.zdyname=A.FactoryName)'); // sql.Add('from YF_Money_CR A '); // sql.Add('inner join JYOrder_Main C on C.MainId=A.MainId '); // sql.Add('inner join JYOrder_sub D on D.subID=A.subID '); // Sql.add('where A.fillTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); // Sql.add('and A.fillTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); // Sql.add('group by crtime,A.SubId,A.MainId,qtyunit,C.OrderNo,C.ConNO,D.PRTCodeName,YFName,D.PrtColor,D.SOrddefstr5,D.PRTPrice,FactoryName'); // ShowMessage(SQL.text); // Open; Filtered := False; Close; SQL.Clear; sql.Add(' select A.*,C.orderno as Yorderno,D.prtcolor,D.prtprice,D.Sorddefstr5,D.prtcodename,D.dibucolor,YMoney=(A.qty)*isnull(D.prtprice,0),'); sql.Add('KHCode=(select top 1 zdycode from KH_Zdy_Attachment X where X.zdyname=A.FactoryName and Type=''KHName'' and Valid=''Y'')'); sql.Add(' ,KHconNO=case when YFName=''销售金额'' then (select X1.KHConNO from JYOrderCon_Main X1,JYorder_main X2 where X1.conNO=X2.conNO and X2.MainID=A.MainID )'); sql.Add(' else (select X1.KHConNO from JYOrderCon_Main X1 where X1.MainID=A.MainID ) end '); sql.Add(' ,ywy=(select top 1 filler from KH_Zdy_Attachment X where X.zdyName=A.factoryName and X.Type=''KHName'') '); sql.Add(' from YF_Money_CR A'); sql.Add('inner join JYOrder_Main C on C.MainId=A.MainId '); sql.Add('inner join JYOrder_sub D on D.subID=A.subID '); sql.Add(' where A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' and A.CRType=''应收款登记'' '); if cxTabControl1.TabIndex < 2 then sql.Add(' and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' '); // ShowMessage(SQL.text); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); // if canshu1<>'高权限' then // begin // ywy.Text:=Trim(DName); // ToolButton2.Click; // end; finally ADOQueryMain.EnableControls; ToolButton2.Click; end; end; procedure TfrmYSCR.InitGridHZ(); begin end; procedure TfrmYSCR.FormDestroy(Sender: TObject); begin frmYSCR := nil; end; procedure TfrmYSCR.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYSCR.TBCloseClick(Sender: TObject); begin WriteCxGrid('应收款登记1', Tv2, '财务管理'); Close; end; procedure TfrmYSCR.TBDelClick(Sender: TObject); var FBBMoney, CRID: string; begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin // IF fieldbyname('YFType').AsString='自动生成' then // begin // EnableControls; // ADOQueryCmd.Connection.RollbackTrans; // Application.MessageBox('自动生成的数据不能删除!','提示',0); // exit; // end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('delete YF_Money_CR where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); 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=' + Trim(CDS_HZ.fieldbyname('CRID').AsString)); ExecSQL; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except CDS_HZ.EnableControls; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCR.FormShow(Sender: TObject); begin canshu1 := trim(DParameters1); if fmanage = '业务员查询' then begin // ywy.Enabled:=false; // ywy.Text:=DName; end; ReadCxGrid('应收款登记1', Tv2, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime; if Trim(DParameters1) = '无订单号' then begin // VOrderNo.Hidden := True; // VOrderNo.Visible := False; end; if Trim(DParameters2) = '人民币' then begin // VHL.Hidden:=True; // VHL.Visible:=False; // VBZ.Hidden:=True; // VBZ.Visible:=False; VYB.Hidden := True; VYB.Visible := False; // VBB.Caption:='金额'; end; SetStatus(); InitGrid(); end; procedure TfrmYSCR.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSCR.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; procedure TfrmYSCR.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCR.Button2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if Trim(CDS_HZ.fieldbyname('SubID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete YCL_SG_HZ where SubID=''' + Trim(CDS_HZ.fieldbyname('SubID').AsString) + ''''); ExecSQL; end; end; CDS_HZ.Delete; end; function TfrmYSCR.SaveData(): Boolean; var maxId, CRID: string; begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxId, 'YS', 'YF_Money_CR', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(CDS_HZ.fieldbyname('FactoryName').AsString) + ''''); Open; end; if ADOQueryCmd.IsEmpty = False then begin CRID := ADOQueryCmd.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd 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 := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryNo').Value := Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value := Trim(CDS_HZ.fieldbyname('FactoryName').AsString); FieldByName('ZdyStr1').Value := '应收收'; // FieldByName('YFDefFlag1').Value:=fFlag; Post; end; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(maxId); FieldByName('CRID').Value := StrToInt(CRID); //SSetSaveDataCDSNew(ADOQueryCmd,Tv2,CDS_HZ,'YF_Money_CR',3); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryNo').Value := Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value := Trim(CDS_HZ.fieldbyname('FactoryName').AsString); FieldByName('CRTime').Value := SGetServerDate(ADOQueryTemp); FieldByName('YFDefFlag1').Value := fFlag; FieldByName('status').Value := '0'; Post; end; with CDS_HZ do begin Edit; FieldByName('YFId').Value := Trim(maxId); FieldByName('CRID').Value := StrToInt(CRID); end; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('增行失败!', '提示', 0); end; end; procedure TfrmYSCR.cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YCL_SG_HZ '); if Trim(mvalue) <> '' then begin sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); end else begin sql.Add(' Set ' + FFieldName + '=NULL'); end; SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where SubId=''' + Trim(CDS_HZ.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); var mvalue, FQty, FPrice, FMoney, FHuiLv, FBBMoney, FKCBB, FFieldName: string; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); if Trim(DParameters2) = '人民币' then begin FieldByName('HuiLv').Value := 1; end; Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID=''' + cds_hz.fieldbyname('YFID').AsString + ''''); Open; end; FKCBB := ADOQueryTemp.fieldbyname('BBMoney').AsString; FQty := Trim(CDS_HZ.fieldbyname('Qty').AsString); if Trim(FQty) = '' then FQty := '0'; FPrice := Trim(CDS_HZ.fieldbyname('Price').AsString); if Trim(FPrice) = '' then FPrice := '0'; FQty := Trim(CDS_HZ.fieldbyname('Qty').AsString); if Trim(FQty) = '' then FQty := '0'; FMoney := Trim(CDS_HZ.fieldbyname('Money').AsString); if Trim(FMoney) = '' then FMoney := '0'; FHuiLv := Trim(CDS_HZ.fieldbyname('HuiLv').AsString); if Trim(FHuiLv) = '' then FHuiLv := '1'; {FBBMoney:=Trim(CDS_HZ.fieldbyname('BBMoney').AsString); if Trim(FBBMoney)='' then FBBMoney:='0'; } if Trim(FFieldName) <> 'Money' then begin if Trim(FFieldName) <> 'HuiLv' then begin FBBMoney := FloatToStr(RoundFloat(StrToFloat(FQty) * StrToFloat(FPrice) * StrToFloat(FHuiLv), 2)); FMoney := FloatToStr(RoundFloat(StrToFloat(FQty) * StrToFloat(FPrice), 2)); end else begin FBBMoney := FloatToStr(RoundFloat(StrToFloat(FMoney) * StrToFloat(FHuiLv), 2)); end; end else begin FBBMoney := FloatToStr(RoundFloat(StrToFloat(FMoney) * StrToFloat(FHuiLv), 2)); end; with CDS_HZ do begin Edit; FieldByName('Money').Value := StrToFloat(FMoney); FieldByName('BBMoney').Value := StrToFloat(FBBMoney); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set ' + FFieldName + '=' + Trim(mvalue)); if Trim(FFieldName) <> 'Money' then begin sql.Add(',Money=' + FMoney); end; sql.Add(',BBMoney=' + FBBMoney); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); SQL.Add('Update YF_Money_KC Set KCBBMoney=KCBBMoney-' + FKCBB + '+' + FBBMoney); sql.Add(' where CRID=''' + Trim(CDS_HZ.fieldbyname('CRID').AsString) + ''''); ExecSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmYSCR.cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); if Trim(mvalue) <> '' then begin sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); end else begin sql.Add(' Set ' + FFieldName + '=NULL'); end; SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.TBADdClick(Sender: TObject); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin // IF (self.canshu1<>'高权限' ) then // begin // canshu1:='业务员'; // ywy.Text:=Trim(DName); // ywy.Enabled:=False; // end; if ShowModal = 1 then begin with Self.CDS_HZ do begin Append; FieldByName('FactoryNo').Value := Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); FieldByName('FactoryName').Value := Trim(CDS_HZ.fieldbyname('ZdyName').AsString); FieldByName('ywy').Value := Trim(CDS_HZ.fieldbyname('filler').AsString); FieldByName('CRTime').Value := SGetServerDate(ADOQueryTemp); FieldByName('HuiLv').Value := 1; if Trim(DParameters2) = '人民币' then begin FieldByName('HuiLv').Value := 1; end; Post; end; Self.SaveData(); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmYSCR.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString) <> '' then begin Application.MessageBox('自动生成数据不能更改!', '提示', 0); Exit; end; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'YFName'; flagname := '项目及摘要'; if Trim(DParameters3) = '项目分开' then MainType := '收款'; if ShowModal = 1 then begin with Self.CDS_HZ do begin Edit; FieldByName('YFCode').Value := Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString); FieldByName('YFName').Value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set YFCode=''' + Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) + ''''); sql.Add(' ,YFName=''' + Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYSCR.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString) <> '' then begin Application.MessageBox('自动生成数据不能更改!', '提示', 0); Exit; end; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrderUnit'; flagname := '数量单位'; if ShowModal = 1 then begin Self.CDS_HZ.Edit; Self.CDS_HZ.FieldByName('QtyUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set QtyUnit=''' + Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYSCR.v2Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin // if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then // begin // Application.MessageBox('自动生成数据不能更改!','提示',0); // Exit; // end; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'BZType'; flagname := '币种'; if ShowModal = 1 then begin Self.CDS_HZ.Edit; Self.CDS_HZ.FieldByName('BZType').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set BZType=''' + Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYSCR.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2, ADOQueryMain, '应收款列表'); end; procedure TfrmYSCR.v2Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString) <> '' then begin Application.MessageBox('自动生成数据不能删除!', '提示', 0); Exit; end; try frmProductOrderNewList := TfrmProductOrderNewList.Create(Application); with frmProductOrderNewList do begin ; if ShowModal = 1 then begin with Self.CDS_HZ do begin Edit; // FieldByName('MainId').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('MainId').AsString); // FieldByName('subID').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('subID').AsString); FieldByName('OrderNo').Value := Trim(frmProductOrderNewList.Order_Main.fieldbyname('OrderNo').AsString); FieldByName('PRTCodeName').Value := Trim(frmProductOrderNewList.Order_Main.fieldbyname('PRTCodeName').AsString); FieldByName('PRTColor').Value := Trim(frmProductOrderNewList.Order_Main.fieldbyname('PRTColor').AsString); // FieldByName('Filler').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('Filler').AsString); post; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set MainId=''' + Trim(SELF.CDS_HZ.fieldbyname('MainId').AsString) + ''''); sql.Add(' ,SubId=''' + Trim(SELF.CDS_HZ.fieldbyname('SubId').AsString) + ''''); sql.Add(' ,p_CodeName=''' + Trim(SELF.CDS_HZ.fieldbyname('PRTCodeName').AsString) + ''''); sql.Add(' ,p_Color=''' + Trim(SELF.CDS_HZ.fieldbyname('PRTColor').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; end; finally frmProductOrderNewList.Free; self.Tv2.Controller.EditingController.ShowEdit(); end; end; procedure TfrmYSCR.v2PSPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set ' + FFieldName + '=' + Trim(mvalue)); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.v2Column2PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.v2KPMoneyPropertiesEditValueChanged(Sender: TObject); var mvalue, FBBMoney, FKCBB, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select isnull(KPMoney,0) KPMoney from YF_Money_CR where YFID=''' + cds_hz.fieldbyname('YFID').AsString + ''''); Open; end; FKCBB := ADOQueryTemp.fieldbyname('KPMoney').AsString; FBBMoney := CDS_HZ.fieldbyname('KPMoney').AsString; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set ' + FFieldName + '=' + Trim(mvalue)); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); SQL.Add('Update YF_Money_KC Set KCKPMoney=KCKPMoney-' + FKCBB + '+' + FBBMoney); sql.Add(' where CRID=''' + Trim(CDS_HZ.fieldbyname('CRID').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.Button1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if cxTabControl1.TabIndex > 0 then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; ADOQueryCmd.Connection.BeginTrans; try with CDS_HZ do begin DisableControls; First; while not eof do begin if fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add('where YFID=' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); open; edit; Fieldbyname('Price').Value := strtofloatdef(edit1.Text, 0); Fieldbyname('Money').Value := format('%.2f', [Fieldbyname('Qty').AsFloat * strtofloatdef(edit1.Text, 0)]); Fieldbyname('BBMoney').Value := format('%.2f', [Fieldbyname('Qty').AsFloat * strtofloatdef(edit1.Text, 0)]); post; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmYSCR.CheckBox1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; with CDS_HZ do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := checkbox1.Checked; post; next; end; First; EnableControls; end; end; procedure TfrmYSCR.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmYSCR.FormCreate(Sender: TObject); begin cxGrid2.Align := alclient; end; procedure TfrmYSCR.TchkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YF_Money_CR SET status=''1'' '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCR.TnochkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YF_Money_CR SET status=''0'' '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCR.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); var i: integer; begin if cxTabControl1.TabIndex = 0 then begin // if (CDS_HZ.fieldbyname('YFType').AsString = '自动生成') then // begin // for i := 0 to tv2.ColumnCount - 1 do // begin // if ((uppercase(tv2.Columns[i].DataBinding.FieldName) = 'SSEL') or (uppercase(tv2.Columns[i].DataBinding.FieldName) = 'BZTYPE') or (uppercase(tv2.Columns[i].DataBinding.FieldName) = 'HUILV') or (uppercase(tv2.Columns[i].DataBinding.FieldName) = 'PRICE') or (uppercase(tv2.Columns[i].DataBinding.FieldName) = 'YJ')) then // tv2.Columns[i].Options.Editing := True // else // tv2.Columns[i].Options.Editing := false; // end; // end // else // begin for i := 0 to tv2.ColumnCount - 1 do begin if uppercase(tv2.Columns[i].DataBinding.FieldName) <> 'SSEL' then tv2.Columns[i].Options.Editing := true; end; // end; end else begin for i := 0 to tv2.ColumnCount - 1 do begin if uppercase(tv2.Columns[i].DataBinding.FieldName) <> 'SSEL' then tv2.Columns[i].Options.Editing := False; end; end; end; procedure TfrmYSCR.ToolButton3Click(Sender: TObject); begin frmYSSCList := TfrmYSSCList.create(self); with frmYSSCList do begin show; end; end; procedure TfrmYSCR.Tv2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin with Self.CDS_HZ do begin Edit; FieldByName('KHName').Value := Trim(CDS_HZ.fieldbyname('ZdyName').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set KHName=''' + Trim(CDS_HZ.fieldbyname('ZdyName').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(self.CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmYSCR.v2Column3PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); if Trim(mvalue) <> '' then begin sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); end else begin sql.Add(' Set ' + FFieldName + '=NULL'); end; SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.v2Column7PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); if Trim(mvalue) <> '' then begin sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); end else begin sql.Add(' Set ' + FFieldName + '=NULL'); end; SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; procedure TfrmYSCR.v2Column9PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrdPerson2'; flagname := '业务员'; if ShowModal = 1 then begin with Self.CDS_HZ do begin Edit; FieldByName('YFName').Value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set YFName=''' + Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) + ''''); SQL.Add(',Editer=''' + Trim(DName) + ''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId=''' + Trim(CDS_HZ.fieldbyname('YFId').AsString) + ''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYSCR.v2Column1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin // if AViewInfo.GridRecord.Values[TV2.GetColumnByFieldName('Price').index] < AViewInfo.GridRecord.Values[TV2.GetColumnByFieldName('LowestPrice').index] then // begin // ACanvas.Brush.Color := clRed; // end; end; procedure TfrmYSCR.ToolButton4Click(Sender: TObject); begin Panel9.Left := (self.Width - Panel9.Width) div 2; Panel9.Visible := true; end; procedure TfrmYSCR.Button11Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try CDS_HZ.DisableControls; ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin First; while not Eof do begin if CDS_HZ.FieldByName('SSel').AsBoolean = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR Set YSJC=''' + trim(cxCurrencyEdit2.Text) + ''' '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); sql.Add('Update YF_Money_CR Set YSqty=Qty+YSJC '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); sql.Add('Update YF_Money_CR Set Money=price*YSqty '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); ExecSQL; // ShowMessage(sql.text); end; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.EnableControls; application.MessageBox('数据保存成功!', '提示信息'); Panel9.Visible := false; TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; CDS_HZ.EnableControls; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmYSCR.Button12Click(Sender: TObject); begin Panel9.Visible := false; end; end.