408 lines
13 KiB
ObjectPascal
408 lines
13 KiB
ObjectPascal
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.
|