D7myYunxiang/云翔OA(WTOA.dll)/U_YGYPInPut_YGFHDJ.pas

408 lines
13 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-20 13:04:03 +08:00
unit U_YGYPInPut_YGFHDJ;
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, cxCalendar,StrUtils, cxDropDownEdit,jpeg,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC,
cxGridCustomPopupMenu, cxGridPopupMenu, Menus, ExtDlgs, cxCurrencyEdit;
type
TfrmYGYPInPut_YGFHDJ = class(TForm)
ToolBar1: TToolBar;
TBClose: TToolButton;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
TBSave: TToolButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
Panel3: TPanel;
Label4: TLabel;
Label11: TLabel;
JSDate: TDateTimePicker;
QSDate: TDateTimePicker;
WCLv: TEdit;
Label6: TLabel;
ToolButton1: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column7: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1RuZhiDate: TcxGridDBColumn;
v1YGGL: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1MBMoney: TcxGridDBColumn;
v1FHType: TcxGridDBColumn;
v1YMBMoney: TcxGridDBColumn;
v1FHMoney: TcxGridDBColumn;
ToolBar2: TToolBar;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
v1PriceUnit: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
YMBMoney: TEdit;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
v1GRYearPF: TcxGridDBColumn;
v1GRNXMoney: TcxGridDBColumn;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
private
TPInt:Integer;
procedure InitData();
function SaveData():Boolean;
procedure GLAge();
procedure GRYearPF();
{ Private declarations }
public
canshu1:String;
PState,CopyInt:Integer;
FMainId,FFHId,FFHYear :String;
{ Public declarations }
end;
var
frmYGYPInPut_YGFHDJ: TfrmYGYPInPut_YGFHDJ;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GRYearPFList_FHDQDJ;
{$R *.dfm}
procedure TfrmYGYPInPut_YGFHDJ.GRYearPF();
begin
end;
procedure TfrmYGYPInPut_YGFHDJ.GLAge();
var FXTGLNF,FYGGLNF,FGLYF: Double;
begin
FXTGLNF:=strtofloat(uppercase(formatdateTime('yyyy',JSDate.datetime)));
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select ZhuanZhengDate,YGGL from OA_YG_DangAn where YGType=''<27><>ʽ'' ');
sql.add('and year(ZhuanZhengDate)<='''+trim(floattostr(FXTGLNF-2))+''' ');
open;
end;
with ADOCmd do
begin
first;
while not eof do
begin
edit;
FYGGLNF:=strtofloat(uppercase(formatdateTime('yyyy',ADOCmd.fieldbyname('ZhuanZhengDate').AsDateTime)));
FGLYF:=strtofloat(uppercase(formatdateTime('MM',ADOCmd.fieldbyname('ZhuanZhengDate').AsDateTime)));
if (FGLYF>=1) and (FGLYF<=3) then
fieldbyname('YGGL').AsFloat:=FXTGLNF-FYGGLNF+1;
if (FGLYF>3) and (FGLYF<=9) then
fieldbyname('YGGL').AsFloat:=FXTGLNF-FYGGLNF+0.5;
if (FGLYF>9) and (FGLYF<=12) then
fieldbyname('YGGL').AsFloat:=FXTGLNF-FYGGLNF;
next;
end;
end;
end;
procedure TfrmYGYPInPut_YGFHDJ.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmYGYPInPut_YGFHDJ.InitData();
begin
{with ADOTemp DO
begin
Close;
sql.Clear;
sql.Add('select D.* ');
sql.add('from GRYearFH_Main D ');
sql.Add('where D.FHID='''+trim(FFHID)+''' ');
Open;
end;
if ADOTemp.IsEmpty=False then
begin
QSDate.DateTime:=ADOTemp.fieldbyname('QSDate').AsDateTime;
JSDate.datetime:=ADOTemp.fieldbyname('JSDate').AsDateTime;
end;}
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select *,cast(0 as decimal(18,2)) GRNXMoney,cast(0 as decimal(18,2)) SYearGZMoney,cast(0 as decimal(18,2)) GRYearPF');
sql.add(',cast(0 as decimal(18,2)) GRNXMoney');
sql.add(' from GRYearFH_Sub where FHID='''+Trim(FFHID)+'''');
open;
end;
SCreateCDS20(ADOCmd,Order_Sub);
SInitCDSData20(ADOCmd,Order_Sub);
end;
procedure TfrmYGYPInPut_YGFHDJ.FormShow(Sender: TObject);
begin
QSDate.DateTime:=SGetServerDate(ADOTemp);
JSDate.DateTime:=SGetServerDate(ADOTemp);
InitData();
end;
function TfrmYGYPInPut_YGFHDJ.SaveData():Boolean;
var
maxno,MaxNXNo:String;
FSNXSMoney: double;
begin
try
with ADOtemp do
begin
close;
sql.Clear;
sql.Add('select * from GRYearFH_Sub ');
sql.Add('where FHID='''+trim(FFHID)+'''');
open;
end;
if ADOTemp.IsEmpty=False then
begin
application.MessageBox('<27>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>','<27><>ʾ');
exit;
end;
with Order_Sub do
begin
first;
while not eof do
begin
if order_sub.FieldByName('FHSubid').AsString='' then
begin
if GetLSNo(ADOCmd,maxno,'FSH','GRYearFH_Sub',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end
else
begin
Maxno:=Order_Sub.fieldbyname('FHSubid').AsString;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from GRYearFH_Sub where FHSubid='''+Trim(Maxno)+'''');
Open;
if isempty then
begin
append;
end
else
edit;
fieldbyname('FHID').AsString:=trim(FFHID);
fieldbyname('FHSubid').asstring:=trim(maxno);
fieldbyname('YGID').AsString:=trim(Order_Sub.fieldbyname('YGID').AsString);
fieldbyname('filler').asstring:=trim(DName);
fieldbyname('filltime').value:=SGetServerDate(ADOTemp);
fieldbyname('NFYear').Value:=uppercase(formatdateTime('yyyy',JSDate.datetime));
fieldbyname('GRYearPF').Value:=Order_Sub.fieldbyname('GRYearPF').AsFloat;
fieldbyname('GRNXMoney').Value:=Order_Sub.fieldbyname('GRNXMoney').AsFloat;
RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'GRYearFH_Sub',0);
post;
end;
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set YWSNXSMoney='''+trim(ADOCmd.fieldbyname('YMBMoney').AsString)+''' ');
sql.add('where YGName='''+trim(Order_Sub.fieldbyname('YGName').AsString)+'''');
execsql;
end;
next;
end;
end;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
Modalresult:=1;
except;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmYGYPInPut_YGFHDJ.TBSaveClick(Sender: TObject);
var
FSFNO:String;
begin
ToolBar1.SetFocus;
SaveData();
end;
procedure TfrmYGYPInPut_YGFHDJ.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmYGYPInPut_YGFHDJ.FormDestroy(Sender: TObject);
begin
FrmYGYPInPut_YGFHDJ:=nil;
end;
procedure TfrmYGYPInPut_YGFHDJ.ToolButton1Click(Sender: TObject);
var FHZMoney,FGSZMoney,FWCL,FTSMoney,FZWCL: double;
begin
frmGRYearPFList_FHDQDJ:=TfrmGRYearPFList_FHDQDJ.create(self);
with frmGRYearPFList_FHDQDJ do
begin
formid:='99';
if showmodal=1 then
begin
QSDate.DateTime:=Order_Main.fieldbyname('QSDate').asdatetime;
JSDate.Datetime:=order_Main.fieldbyname('JSDate').asdatetime;
WCLv.Text:=order_Main.fieldbyname('WCLv').asstring;
FFHID:=Order_Main.fieldbyname('FHID').asstring;
FFHYear:=Order_Main.fieldbyname('FHYear').AsString;
FGSZMoney:=order_Main.fieldbyname('YXSMoney').AsFloat; //<2F><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD><DBBD><EFBFBD>
GLAge(); //<2F>ֺ칤<D6BA><ECB9A4>
if Order_Main.fieldbyname('WCLv').AsFloat>=100 then
begin
FHZMoney:=1000000;
end
else if Order_Main.fieldbyname('WCLv').AsFloat>=50 then
begin
FHZMoney:=Order_Main.fieldbyname('WCLv').AsFloat*10000;
end
else
FHZMoney:=0;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('exec P_FH_GRWCMoney '''+trim(formatdatetime('yyyy-MM-dd',QSDate.DateTime))+'''');
sql.Add(','''+trim(formatdatetime('yyyy-MM-dd',JSDate.DateTime+1))+'''');
open;
end;
with ADOCmd do
begin
first;
FZWCL:=0;
while not eof do
begin
if fieldbyname('FHType').AsString<>'<27><>н<EFBFBD><D0BD>' then
begin
if fieldbyname('MBMoney').AsFloat=0 then
FZWCL:=FZWCL+0
else
FZWCL:=FZWCL+fieldbyname('YMBMoney').AsFloat/fieldbyname('MBMoney').AsFloat;
end;
next;
end;
end;
with ADOCmd do
begin
first;
while not eof do
begin
with order_Sub do
begin
append;
fieldbyname('YGName').AsString:=trim(ADOCmd.fieldbyname('YGName').AsString);
fieldbyname('Dept').Value:=trim(ADOCmd.fieldbyname('Dept').AsString);
fieldbyname('GangWei').Value:=trim(ADOCmd.fieldbyname('GangWei').AsString);
fieldbyname('YGID').AsString:=trim(ADOCmd.fieldbyname('YGID').AsString);
fieldbyname('RuZhiDate').Value:=ADOCmd.fieldbyname('ZhuanZhengDate').asdatetime;
fieldbyname('YGGL').Value:=ADOCmd.fieldbyname('YGGL').AsFloat;
fieldbyname('GRNXMoney').Value:=ADOCmd.fieldbyname('GRNXMoney').AsFloat;
fieldbyname('FHType').Value:=trim(ADOCmd.fieldbyname('FHType').AsString);
fieldbyname('MBMoney').Value:=ADOCmd.fieldbyname('MBMoney').AsFloat;
fieldbyname('PriceUnit').Value:=trim(ADOCmd.fieldbyname('PriceUnit').AsString);
fieldbyname('YMBMoney').Value:=ADOCmd.fieldbyname('YMBMoney').AsFloat;
fieldbyname('SYearGZMoney').Value:=ADOCmd.fieldbyname('SYearGZMoney').AsFloat;
fieldbyname('GRYearPF').Value:=ADOCmd.fieldbyname('GRYearPF').AsFloat;
fieldbyname('GRNXMoney').Value:=ADOCmd.fieldbyname('GRNXMoney').AsFloat;
if ADOCmd.fieldbyname('FHType').AsString<>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
if (ADOCmd.fieldbyname('ZNXMoney').AsFloat=0) or (ADOCmd.fieldbyname('ZYearPF').AsFloat=0) then
begin
FTSMoney:=0;
end
else
begin
FTSMoney:=ADOCmd.fieldbyname('ZNXRY').AsFloat/ADOCmd.fieldbyname('ZRY').AsFloat*FHZMoney*
(ADOCmd.fieldbyname('YGGL').AsFloat/ADOCmd.fieldbyname('ZNXGL').AsFloat*0.3+
ADOCmd.fieldbyname('GRNXMoney').AsFloat/ADOCmd.fieldbyname('ZNXMoney').AsFloat*0.2+
ADOCmd.fieldbyname('GRYearPF').AsFloat/ADOCmd.fieldbyname('ZYearPF').asfloat*0.5);
end;
{if ADOCmd.fieldbyname('FHType').AsString='0.5%<25><><EFBFBD><EFBFBD>' then
begin
if ADOCmd.fieldbyname('YMBMoney').AsFloat*0.005*ADOCmd.fieldbyname('HuiLV').AsFloat>FTSMoney then
begin
FTSMoney:=ADOCmd.fieldbyname('YMBMoney').AsFloat*0.005*ADOCmd.fieldbyname('HuiLV').AsFloat;
end;
end;
if ADOCmd.fieldbyname('FHType').AsString='1%<25><><EFBFBD><EFBFBD>' then
begin
if ADOCmd.fieldbyname('YMBMoney').AsFloat*0.01*ADOCmd.fieldbyname('HuiLV').AsFloat>FTSMoney then
begin
FTSMoney:=ADOCmd.fieldbyname('YMBMoney').AsFloat*0.01*ADOCmd.fieldbyname('HuiLV').AsFloat;
end;
end;
if ADOCmd.fieldbyname('FHType').AsString='0.3/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
if ADOCmd.fieldbyname('YMBQty').AsFloat*0.3>FTSMoney then
begin
FTSMoney:=ADOCmd.fieldbyname('YMBQty').AsFloat*0.3;
end;
end;}
fieldbyname('FHMoney').AsFloat:=FTSMoney;
end
else
begin
if ADOCmd.fieldbyname('MBMoney').AsFloat<>0 then
begin
if ADOCmd.FieldByName('PriceUnit').AsString='<27><>' then
FWCL:=ADOCmd.fieldbyname('YMBMoney').AsFloat/ADOCmd.fieldbyname('HuiLV').AsFloat*2
else
FWCL:=ADOCmd.fieldbyname('YMBMoney').AsFloat;
fieldbyname('FHMoney').Value:=ADOCmd.fieldbyname('ZTCRY').AsFloat/ADOCmd.fieldbyname('ZRY').AsFloat*FHZMoney*
(ADOCmd.fieldbyname('YGGL').AsFloat/ADOCmd.fieldbyname('ZTCGL').AsFloat*0.3+
FWCL/FGSZMoney*0.2+fieldbyname('YMBMoney').AsFloat/fieldbyname('MBMoney').AsFloat/FZWCL*0.5);
end;
end;
post;
end;
next;
end;
end;
end;
free;
end;
end;
procedure TfrmYGYPInPut_YGFHDJ.ToolButton3Click(Sender: TObject);
begin
with Order_Sub do
begin
append;
post;
end;
end;
procedure TfrmYGYPInPut_YGFHDJ.ToolButton4Click(Sender: TObject);
begin
Order_Sub.Delete;
end;
end.