unit U_PKInPutWFX; 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, cxDropDownEdit, cxCalendar, cxGridCustomPopupMenu, cxGridPopupMenu, cxSplitter; type TfrmPKInPutWFX = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; ToolButton3: TToolButton; ToolButton4: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column22: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column11: TcxGridDBColumn; ToolButton2: TToolButton; v1Column12: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column2: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure v1Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton2Click(Sender: TObject); procedure v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private FXS:Integer; procedure InitData(); procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); function SaveData():Boolean; procedure GetMaxConNO(); { Private declarations } public PState,PCopyInt:Integer; FMainId,FConNo,FConType,FYLType:String; { Public declarations } end; var frmPKInPutWFX: TfrmPKInPutWFX; implementation uses U_DataLink,U_ZDYHelp,U_RTFun,U_GYSList,U_ZDYHelpSel, U_ModuleNote, U_GYSSelList; {$R *.dfm} procedure TfrmPKInPutWFX.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('资金审批录入生产',Tv1,'财务管理'); end; procedure TfrmPKInPutWFX.InitData(); var fsj:String; begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select A.* '); SQL.Add(' from YF_Money_PaiKuan A '); sql.Add(' where A.PKId='''+Trim(FMainId)+''''); Open; end; SCreateCDS20(ADOQuery1,Order_Sub); SInitCDSData20(ADOQuery1,Order_Sub); end; procedure TfrmPKInPutWFX.ZDYHelp(FButn:TcxButtonEdit;LType:string); begin end; procedure TfrmPKInPutWFX.FormShow(Sender: TObject); begin ReadCxGrid('资金审批录入生产',Tv1,'财务管理'); InitData(); end; procedure TfrmPKInPutWFX.GetMaxConNO(); begin end; function TfrmPKInPutWFX.SaveData():Boolean; var maxno,FSQID:String; begin try Result:=False; ADOCmd.Connection.BeginTrans; //保存主表 Order_Sub.DisableControls; with Order_Sub do begin First; while not Eof do begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_PaiKuan where PKID='''+Trim(Order_Sub.fieldbyname('PKID').AsString)+''''); Open; end; FSQID:=Trim(ADOTemp.fieldbyname('PKID').AsString); if Trim(FSQID)='' then begin if GetLSNo(ADOCmd,maxno,'SS','YF_Money_PaiKuan',4,1)=False then begin Order_Sub.EnableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('取规则流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(FSQID); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from YF_Money_PaiKuan where PKID='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(FSQID)='' then begin Append; end else begin Edit; end; FieldByName('PKID').Value:=Trim(maxno); RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'YF_Money_PaiKuan',0) ; FieldByName('HZType').Value:='生产'; FieldByName('BZType').Value:='人民币'; FieldByName('HuiLv').Value:=1; FieldByName('FactoryNo').Value:=Order_Sub.fieldbyname('FactoryNo').Value; if PState=1 then begin FieldByName('Chker').Value:=Null; FieldByName('ChkStatus').Value:=Null; FieldByName('ChkNote').Value:=Null; FieldByName('ChkTime').Value:=Null; end; if Trim(FSQID)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; Post; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_PaiKuan where PKNO='+Trim(Order_Sub.fieldbyname('PKNO').AsString)); sql.Add(' and Convert(varchar(4),PKDate,120)='''+Trim(FormatDateTime('yyyy',Order_Sub.fieldbyname('PKDate').AsDateTime))+''''); Open; end; if ADOTemp.RecordCount>1 then begin Result:=False; ADOCmd.Connection.RollbackTrans; Order_Sub.EnableControls; Application.MessageBox(PChar('编号: '+ Trim(Order_Sub.fieldbyname('PKNO').AsString)+ ' 不能重复录入!'),'提示',0); Exit; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_PaiKuan where '); sql.Add(' FactoryName='''+Trim(Order_Sub.fieldbyname('FactoryName').AsString)+''''); sql.Add(' and isnull(ComTaiTou,'''')='''+Trim(Order_Sub.fieldbyname('ComTaiTou').AsString)+''''); sql.Add(' and isnull(FactoryNameOther,'''')='''+Trim(Order_Sub.fieldbyname('FactoryNameOther').AsString)+''''); sql.Add(' and isnull(PayMent,'''')='''+Trim(Order_Sub.fieldbyname('PayMent').AsString)+''''); sql.Add(' and PKDate='''+Trim(Order_Sub.fieldbyname('PKDate').AsString)+''''); Open; end; if ADOTemp.RecordCount>1 then begin Result:=False; ADOCmd.Connection.RollbackTrans; Order_Sub.EnableControls; Application.MessageBox(PChar('供应商:'+ Trim(Order_Sub.fieldbyname('FactoryName').AsString)+ Trim(FormatDateTime('yyyy-MM-dd',Order_Sub.fieldbyname('FactoryName').AsDateTime))+ '日期的排款数据不能重复录入!'),'提示',0); Exit; end; Edit; FieldByName('PKID').Value:=Trim(maxno); Next; end; end; Order_Sub.EnableControls; ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmPKInPutWFX.TBSaveClick(Sender: TObject); begin ToolBar1.SetFocus; if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!','提示',0); exit; end; if Order_Sub.Locate('PKNO',null,[]) then begin Application.MessageBox('编号不能为空!','提示',0); Exit; end; if Order_Sub.Locate('PKDate',null,[]) then begin Application.MessageBox('日期不能为空!','提示',0); Exit; end; if Order_Sub.Locate('FactoryName',null,[]) then begin Application.MessageBox('供应商不能为空!','提示',0); Exit; end; if Order_Sub.Locate('PKName',null,[]) then begin Application.MessageBox('品名不能为空!','提示',0); Exit; end; if Order_Sub.Locate('PayMent',null,[]) then begin Application.MessageBox('支付方式不能为空!','提示',0); Exit; end; if Order_Sub.Locate('PKMoney',null,[]) then begin Application.MessageBox('申请金额不能为空!','提示',0); Exit; end; if Order_Sub.Locate('ComTaiTou',null,[]) then begin Application.MessageBox('付款单位不能为空!','提示',0); Exit; end; if Order_Sub.Locate('JBPerson',null,[]) then begin Application.MessageBox('经办人不能为空!','提示',0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmPKInPutWFX.ToolButton3Click(Sender: TObject); begin with Order_Sub do begin Append; FieldByName('PKDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',Now)); Post; end; end; procedure TfrmPKInPutWFX.ToolButton4Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('PKId').AsString)<>'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete YF_Money_PaiKuan where PKId='''+Trim(Order_Sub.fieldbyname('PKId').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmPKInPutWFX.v1Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='GSTT'; flagname:='公司抬头'; V1ZdyStr1.Visible:=True; V1ZdyStr2.Visible:=True; V1ZdyStr3.Visible:=True; V1ZdyStr4.Visible:=True; V1ZdyStr1.Caption:='简称'; V1ZdyStr2.Caption:='电话'; V1ZdyStr3.Caption:='传真'; V1ZdyStr4.Caption:='地址'; frmZDYHelp.Align:=alClient; if ShowModal=1 then begin with Self.Order_Sub do begin Edit; FieldByName('ComTaiTou').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmPKInPutWFX.v1Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PKPayMent'; flagname:='支付方式'; if ShowModal=1 then begin with Self.Order_Sub do begin Edit; FieldByName('PayMent').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmPKInPutWFX.ToolButton2Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='资金审批(生产)'; if ShowModal=1 then begin end; end; finally frmModuleNote.Free; end; end; procedure TfrmPKInPutWFX.v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PKName'; flagname:='品名'; if ShowModal=1 then begin with Self.Order_Sub do begin Edit; FieldByName('PKName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmPKInPutWFX.v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmGYSSelList:=TfrmGYSSelList.Create(Application); with frmGYSSelList do begin if ShowModal=1 then begin with Self.Order_Sub do begin Edit; FieldByName('FactoryNo').Value:=Trim(frmGYSSelList.Order_Main.fieldbyname('ZKID').AsString); FieldByName('FactoryName').Value:=Trim(frmGYSSelList.Order_Main.fieldbyname('KHName').AsString); //Post; end; end; end; finally frmGYSSelList.Free; end; end; procedure TfrmPKInPutWFX.v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='JBPerson'; flagname:='经办人'; if ShowModal=1 then begin with Self.Order_Sub do begin Edit; FieldByName('JBPerson').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; end.