D7wmguihua/应收应付/U_FYDJInput.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

393 lines
11 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_FYDJInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, DB, ADODB, cxControls, cxContainer, cxEdit,
cxTextEdit, cxCurrencyEdit, BtnEdit, StdCtrls, ExtCtrls, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxDBData,
cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, DBClient, cxDropDownEdit;
type
TfrmFYDJInput = class(TForm)
ToolBar1: TToolBar;
TSAVE: TToolButton;
Tclose: TToolButton;
Panel1: TPanel;
Label8: TLabel;
Label2: TLabel;
CRTime: TDateTimePicker;
ADOQueryTMP: TADOQuery;
ADOQueryCMD: TADOQuery;
FeeType: TComboBox;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
v2Column5: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column9: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxGridPopupMenu2: TcxGridPopupMenu;
CDS_HZ: TClientDataSet;
ADOQueryMain: TADOQuery;
DS_HZ: TDataSource;
v2Column3: TcxGridDBColumn;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
v2Column4: TcxGridDBColumn;
procedure TcloseClick(Sender: TObject);
procedure TSAVEClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FeeTypeChange(Sender: TObject);
procedure v2Column3PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure v2Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
private
procedure savedata();
procedure initdata();
procedure SetComboBox();
function SaveZL():Boolean;
{ Private declarations }
public
fkeyNo: string;
fflag:integer;
fSYRName:string;
{ Public declarations }
end;
var
frmFYDJInput: TfrmFYDJInput;
implementation
uses U_ZDYHelpSel, U_ZDYHelp,U_Fun, U_ProductOrderNewList,U_DataLink;
{$R *.dfm}
function TfrmFYDJInput.SaveZL():Boolean;
var
LLNO:string;
begin
if GetLSNo(ADOQueryCMD,LLNO,'YL','YF_Money_LL',3,1)=False then
begin
ADOQueryCMD.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ');
Exit;
end;
result:=false;
try
with ADOqueryCmd do
begin
Close;
sql.Clear;
IF Trim(CDS_HZ.fieldbyname('FeeID').AsString)<>'' then
SQL.Add('delete from YF_Money_LL where fromMainID='''+Trim(CDS_HZ.fieldbyname('FeeID').AsString)+''' ');
execsql;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from YF_Money_LL where fromMainID='''+Trim(CDS_HZ.fieldbyname('FeeID').AsString)+''' ');
Open;
append;
fieldbyname('filler').Value:=trim(Dname);
FieldByName('LLNO').Value:=Trim(LLNO);
fieldbyname('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.DateTime);
fieldbyname('CRType').Value:=Trim(CDS_HZ.fieldbyname('FeeName').AsString);
fieldbyname('factoryName').Value:=Trim(CDS_HZ.fieldbyname('bankNo').AsString);
// fieldbyname('TOfactoryName').Value:=Trim(CDS_HZ.fieldbyname('factoryName').AsString);
fieldbyname('NOTE').Value:=Trim(CDS_HZ.fieldbyname('note').AsString);
IF Fflag=1 then
fieldbyname('inMoney').Value:=CDS_HZ.fieldbyname('Money').AsFloat
else
fieldbyname('OutMoney').Value:=CDS_HZ.fieldbyname('Money').AsFloat;
fieldbyname('status').Value:='0';
FieldByName('fromMainID').Value:=Trim(CDS_HZ.fieldbyname('FeeID').AsString);
FieldByName('syrName').Value:=Trim(fsyrName);
Post;
end;
result:=true;
except
end;
end;
procedure TfrmFYDJInput.initdata();
begin
with ADOQueryMain do
begin
close;
sql.clear;
sql.Add(' select * from YF_Money_Fee ');
sql.Add(' where FeeNo='+quotedstr(trim(fkeyNo)) );
sql.Add(' and money<>0 ') ;
open;
if not IsEmpty then
begin
SCSHDataNew(ADOQueryMain,Panel1,0);
end;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
end;
procedure TfrmFYDJInput.savedata();
var
MaxNo:string;
SMaxNo:string;
begin
try
ADOQueryCMD.Connection.BeginTrans;
if Trim(fkeyNo)='' then
begin
if GetLSNo(ADOQueryCMD,MaxNo,'FM','YF_Money_Fee',3,1)=False then
begin
ADOQueryCMD.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ');
Exit;
end;
end
else
begin
MaxNo:=Trim(fkeyNo);
end;
with CDS_HZ do
begin
First;
while not Eof do
begin
IF trim(CDS_HZ.FieldByName('FeeID').AsString)='' then
begin
if GetLSNo(ADOQueryCMD,SMaxNo,'FS','YF_Money_Fee',4,1)=False then
begin
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
edit;
CDS_HZ.FieldByName('FeeID').AsString:=trim(SMaxNo);
post;
end;
with ADOQueryCMD do
begin
Close;
sql.Clear;
SQL.Add(' select * from YF_Money_Fee where FeeNo='''+Trim(MaxNo)+''' ');
SQL.Add(' and FeeID='''+Trim(CDS_HZ.FieldByName('FeeID').AsString)+''' ');
Open;
end;
if ADOQueryCMD.IsEmpty then
begin
ADOQueryCMD.Append;
ADOQueryCMD.FieldByName('Filler').Value:=Trim(Dname);
ADOQueryCMD.FieldByName('FeeNo').Value:=Trim(MaxNo);
ADOQueryCMD.FieldByName('FeeID').Value:=Trim(CDS_HZ.FieldByName('FeeID').AsString);
end else
begin
ADOQueryCMD.Edit;
ADOQueryCMD.FieldByName('Editer').Value:=Trim(Dname);
ADOQueryCMD.FieldByName('Edittime').Value:=SGetServerDateTime(ADOQueryTMP);
end;
SSetsaveSqlNew(ADOQueryCMD,'YF_Money_Fee',Panel1,0);
SSetSaveDataCDSNew(ADOQueryCMD,Tv2,CDS_HZ,'YF_Money_Fee',0);
ADOQueryCMD.FieldByName('Money').Value:=CDS_HZ.FieldByName('Money').AsFloat;
ADOQueryCMD.FieldByName('SYRName').Value:=trim(fSYRName);
ADOQueryCMD.FieldByName('FeeFlag').Value:=fflag;
IF fflag=1 then
ADOQueryCMD.FieldByName('CRType').Value:='<27>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
IF fflag=0 then
ADOQueryCMD.FieldByName('CRType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
ADOQueryCMD.Post;
try
with ADOqueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete from YF_Money_LL where fromMainID='''+Trim(CDS_HZ.fieldbyname('FeeID').AsString)+''' ');
execsql;
end;
IF (CDS_HZ.FieldByName('Money').AsFloat<>0) and
(trim(CDS_HZ.fieldbyname('bankNo').AsString)<>'') then
begin
IF not saveZL() then
begin
ADOquerycmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>ˮ<EFBFBD><CBAE>Ϣʧ<CFA2><CAA7>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
exit;
end;
end;
except
end;
Next;
end;
end;
ADOquerycmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
ModalResult:=1;
except
ADOquerycmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmFYDJInput.TcloseClick(Sender: TObject);
begin
WriteCxGrid(Self.Caption + Tv2.Name,Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmFYDJInput.TSAVEClick(Sender: TObject);
begin
IF CDS_HZ.IsEmpty then exit;
savedata();
end;
procedure TfrmFYDJInput.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cahide;
end;
procedure TfrmFYDJInput.FormDestroy(Sender: TObject);
begin
frmFYDJInput:=nil;
end;
procedure TfrmFYDJInput.FormShow(Sender: TObject);
begin
ReadCxGrid(Self.Caption + Tv2.Name,Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
CRTime.DateTime:=SGetServerDate10(adoqueryTmp);
SetComboBox();
initData();
end;
procedure TfrmFYDJInput.SetComboBox();
begin
FeeType.Items.Clear;
with ADOQueryTMP do
begin
Close;
SQL.Clear;
SQL.Add(' select distinct Note from KH_ZDY ');
SQL.Add(' where Type=''FeeType'' and ISNULL(Note,'''')<>'''' and zdyFlag='''+inttostr(fflag)+''' ');
Open;
while not Eof do
begin
FeeType.Items.Add(Trim(FieldByName('Note').AsString));
Next;
end;
end;
FeeType.ItemIndex:=-1;
end;
procedure TfrmFYDJInput.FeeTypeChange(Sender: TObject);
var
SMaxNo:string;
begin
CDS_HZ.EmptyDataSet;
with ADOQueryTMP do
begin
Close;
SQL.Clear;
SQL.Add(' select * from KH_ZDY where Type=''FeeType'' and Note='''+Trim(FeeType.Text)+''' ');
Open;
while not Eof do
begin
if GetLSNo(ADOQueryCMD,SMaxNo,'FS','YF_Money_Fee',4,1)=False then
begin
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with CDS_HZ do
begin
Append;
FieldByName('FeeID').Value:=Trim(SMaxNo);
FieldByName('FeeName').Value:=Trim(ADOQueryTMP.FieldByName('ZdyName').AsString);
FieldByName('BZType').Value:='RMB';
FieldByName('Money').Value:='0';
Post;
end;
Next;
end;
end;
end;
procedure TfrmFYDJInput.v2Column3PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag:=trim(fsyrName)+'XJLLFLAG';
flagname:='<27>˻<EFBFBD><CBBB><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>';
if showmodal=1 then
begin
CDS_HZ.Edit;
CDS_HZ.FieldByName('bankNo').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
CDS_HZ.Post;
end;
end;
finally
frmZDYHelp.Free;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmFYDJInput.ToolButton1Click(Sender: TObject);
var
SMaxNo:string;
begin
if GetLSNo(ADOQueryCMD,SMaxNo,'FS','YF_Money_Fee',4,1)=False then
begin
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
CDS_HZ.Append;
CDS_HZ.FieldByName('FeeID').Value:=Trim(SMaxNo);
CDS_HZ.FieldByName('BZType').Value:='RMB';
CDS_HZ.post;
end;
procedure TfrmFYDJInput.ToolButton2Click(Sender: TObject);
begin
IF CDS_HZ.IsEmpty then exit;
CDS_HZ.Delete;
end;
procedure TfrmFYDJInput.v2Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='FeeType';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
fnote:=True;
fZdyFlag:=True;
V1Note.Caption:='<27><><EFBFBD><EFBFBD>';
IF Showmodal=1 then
begin
CDS_HZ.edit;
CDS_HZ.fieldbyName('FeeName').AsString:=frmZDYHelp.ClientDataSet1.fieldbyName('zdyName').AsString;
CDS_HZ.fieldbyName('FeeType').AsString:=frmZDYHelp.ClientDataSet1.fieldbyName('Note').AsString;
CDS_HZ.Post;
end;
free;
end;
tv2.Controller.EditingController.ShowEdit();
end;
end.