D7myYunxiang/云翔OA(WTOA.dll)/U_YGYPInPut_YGXZDJ.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

1106 lines
34 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_YGYPInPut_YGXZDJ;
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_YGXZDJ = 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;
FFDate: TDateTimePicker;
Label6: TLabel;
TGZFF: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1YGName: TcxGridDBColumn;
v1GZMoney: TcxGridDBColumn;
v1KQJMoney: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1KOtherMoney: TcxGridDBColumn;
v1KCDMoney: TcxGridDBColumn;
v1KGSMoney: TcxGridDBColumn;
v1JLMoney: TcxGridDBColumn;
ToolBar2: TToolBar;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
v1KSBMoney: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label3: TLabel;
Edit1: TEdit;
v1XHNo: TcxGridDBColumn;
v1KFKMeny: TcxGridDBColumn;
v1FFMoney: TcxGridDBColumn;
v1XZNote: TcxGridDBColumn;
Label1: TLabel;
SSYear: TEdit;
Label2: TLabel;
SSMonth: TComboBox;
PriceUnit: TBtnEditA;
v1FKSYSTEM: TcxGridDBColumn;
v1FKType: TcxGridDBColumn;
Label5: TLabel;
FKTaiTou: TBtnEditA;
Label7: TLabel;
FKType: TComboBox;
TSYGZ: TToolButton;
ADOQueryMain: TADOQuery;
Label8: TLabel;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
v1JKMoney: TcxGridDBColumn;
ADOQueryJK: TADOQuery;
ADOQuery3: TADOQuery;
FKDept: TBtnEditA;
v1CJBGZMoney: TcxGridDBColumn;
v1GLFLMoney: TcxGridDBColumn;
v1DXGZMoney: TcxGridDBColumn;
v1XHXJMoney: 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 TGZFFClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure v1GZMoneyPropertiesEditValueChanged(Sender: TObject);
procedure v1FKSYSTEMPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1FKTypePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure FKTaiTouBtnClick(Sender: TObject);
procedure PriceUnitBtnClick(Sender: TObject);
procedure TSYGZClick(Sender: TObject);
procedure Tv1EditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
Shift: TShiftState);
procedure Tv1NavigatorButtonsButtonClick(Sender: TObject;
AButtonIndex: Integer; var ADone: Boolean);
procedure FKDeptBtnClick(Sender: TObject);
private
TPInt:Integer;
procedure InitData();
function SaveData():Boolean;
procedure GLAge();
procedure saveDataSY();
procedure JXUPDate();
procedure YGLiZhi();
procedure NXZZDate();
{ Private declarations }
public
canshu1:String;
PState,CopyInt,FXHNO:Integer;
FMainId,FXZMain,FXZSubid :String;
{ Public declarations }
end;
var
frmYGYPInPut_YGXZDJ: TfrmYGYPInPut_YGXZDJ;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_GRYearPFList_FHDQDJ;
{$R *.dfm}
procedure TfrmYGYPInPut_YGXZDJ.NXZZDate();
var MaxNXNo: string;
FSNXSMoney: double;
begin
try
if SSMonth.Text='1' then
begin
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('select * ');
Sql.add('from OA_YG_DangAN_NXJL ');
sql.add('where YGYear='''+trim(SSYear.Text)+''' ');
open;
if isempty then
begin
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set ');
sql.add(' NXFFStatus='''' ');
sql.add('where LiZhiFlag=0 ');
sql.add('and FHType=''<27><>н<EFBFBD><D0BD>'' ');
execsql;
end;
end;
end;
end;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * ');
Sql.add('from OA_YG_DangAn ');
sql.add('where LiZhiFlag=0 ');
sql.add('and FHType=''<27><>н<EFBFBD><D0BD>'' ');
open;
end;
with ADOCmd do
begin
first;
while not eof do
begin
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('select * ');
Sql.add('from OA_YG_DangAN_NXJL ');
sql.add('where YGYear='''+trim(SSYear.Text)+''' ');
sql.add('and YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
open;
if isempty then
begin
if GetLSNo(ADOQuery1,MaxNXNo,'NX','OA_YG_DangAN_NXJL',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end
else
MaxNXNo:=trim(ADOTemp.fieldbyname('NXId').asstring);
end;
with ADOTemp do
begin
close;
sql.clear;
sql.Add('select * from OA_YG_DangAN_NXJL ');
sql.add(' where NXID='''+trim(MaxNXNo)+'''');
open;
if isempty then
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set ');
Sql.add(' SYearGZMoney=GRNXMoney');
sql.add(' where YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAN_NXJL set ');
if trim(ADOCmd.fieldbyname('GRYearPF').AsString)<>'' then
Sql.add(' GRYearPF='''+trim(ADOCmd.fieldbyname('GRYearPF').AsString)+'''')
else
Sql.add(' GRYearPF=0');
sql.add(' where YGYear='''+trim(floattostr(strtofloat(SSYear.Text)-1))+''' ');
sql.add('and YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
end;
end;
with ADOTemp do
begin
close;
sql.clear;
sql.Add('select * from OA_YG_DangAN_NXJL ');
sql.add(' where NXID='''+trim(MaxNXNo)+'''');
open;
if isempty then
begin
append;
end
else
edit;
fieldbyname('NXID').Value:=trim(MaxNXNo);
fieldbyname('YGYear').Value:=trim(SSYear.Text);
if ADOCmd.FieldByName('NXFFStatus').AsString='' then
begin
if ADOCmd.fieldbyname('NXZZType').AsString<>'<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>' then
begin
if (strtocurr(uppercase(formatdatetime('yyyy',ADOCmd.fieldbyname('ZhuanZhengDate').AsDateTime)))<strtocurr(SSYear.Text)) and
(strtocurr(uppercase(formatdatetime('MM',ADOCmd.fieldbyname('ZhuanZhengDate').AsDateTime)))<=strtocurr(SSMonth.Text)) then
begin
if ADOCmd.fieldbyname('GRYearPF').AsFloat>60 then
begin
if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=50000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.1;
end
else if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=100000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.08;
end
else if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=150000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.05;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.03;
end;
end
else
begin
FSNXSMoney:=ADOCmd.Fieldbyname('GRNXMoney').asfloat;
end;
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set NXFFStatus=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.add('where YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat;
end;
end
else
begin
if trim(SSMonth.text)='1' then
begin
if ADOCmd.fieldbyname('GRYearPF').AsFloat>60 then
begin
if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=50000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.1;
end
else if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=100000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.08;
end
else if ADOCmd.fieldbyname('GRNXMoney').AsFloat<=150000 then
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.05;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat*1.03;
end;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat;
end;
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set NXFFStatus=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.add('where YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').asfloat;
end;
end;
end
else
begin
FSNXSMoney:=ADOCmd.fieldbyname('GRNXMoney').AsFloat;
end;
fieldbyname('YGNXMoney').AsFloat:=FSNXSMoney;
fieldbyname('filltime').AsDateTime:=SGetServerDate(ADOQuery1);
fieldbyname('YGID').Value:=trim(ADOCmd.fieldbyname('YGID').AsString);
post;
end;
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set GRNXMoney='''+currtostr(FSNXSMoney)+''' ');
sql.add('where YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
next;
end;
end;
finally;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.YGLiZhi();
begin
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_DangAn ');
sql.add('where LiZhiFlag=0 and LiZhiStatus=''<27><>ְͨ<D6B0><CDA8>'' ');
open;
end;
with ADOCmd do
begin
first;
while not eof do
begin
if FieldByName('SJLiZhiDate').AsDateTime<SGetServerDate(ADOTemp) then
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.add('update OA_YG_DangAn set ');
sql.add('LiZhiFlag=1,YGType=''<27><>ְ'' ');
sql.Add(' where YGID='''+trim(ADOCmd.fieldbyname('YGID').AsString)+'''');
execsql;
end;
end;
next;
end;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.JXUPDate();
var FNXMoney,FNXZZMoney: double;
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_DangAn_JX ');
sql.add('where JXStatus=''<27><>нͨ<D0BD><CDA8>'' and getdate()>SXJXdate ');
open;
end;
with ADOQueryMain do
begin
first;
while not eof do
begin
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_DangAn ');
sql.add('where YGID='''+trim(ADOQueryMain.fieldbyname('YGID').AsString)+'''');
open;
end;
FNXMoney:=ADOTemp.fieldbyname('GRNXMoney').AsFloat;
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_DangAN_NXJL ');
sql.add('where YGID='''+trim(ADOQueryMain.fieldbyname('YGID').AsString)+'''');
sql.add(' and YGYear='''+trim(SSYear.Text)+'''');
open;
end;
FNXZZMoney:=ADOTemp.fieldbyname('YGNXMoney').AsFloat;
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAn set GRNXMoney='''+floattostr(FNXMoney+ADOQueryMain.fieldbyname('JXMoney').AsFloat)+''' ');
sql.add('where YGID='''+trim(ADOQueryMain.fieldbyname('YGID').AsString)+'''');
execsql;
end;
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('update OA_YG_DangAN_NXJL set YGNXMoney='''+floattostr(FNXZZMoney+ADOQueryMain.fieldbyname('JXMoney').AsFloat)+''' ');
sql.add('where YGID='''+trim(ADOQueryMain.fieldbyname('YGID').AsString)+'''');
sql.add(' and YGYear='''+trim(SSYear.Text)+'''');
execsql;
end;
with ADOTemp do
begin
close;
sql.Clear;
sql.add('update OA_YG_DangAn_JX set ');
sql.add('JXStatus=''<27>Ѽ<EFBFBD>н'' ');
sql.Add(' where JXID='''+trim(ADOQueryMain.fieldbyname('JXID').AsString)+'''');
execsql;
end;
next;
end;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.saveDataSY();
var FYear: string;
begin
{FYear:=uppercase(formatdateTime('yyyy',JSDate.datetime);
with Order_Sub do
begin
first;
while not eof do
begin
with ADOTemp do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_XZFF_Main ');
open;
end;
next;
end;
end;}
end;
procedure TfrmYGYPInPut_YGXZDJ.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><>ʽ'' ');
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_YGXZDJ.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmYGYPInPut_YGXZDJ.InitData();
begin
with ADOTemp DO
begin
Close;
sql.Clear;
sql.add('select * from OA_YG_XZFF_Main ');
sql.Add('where XZMain='''+trim(FXZMain)+''' ');
Open;
end;
if ADOTemp.IsEmpty=False then
begin
SSYear.Text:=trim(ADOTemp.fieldbyname('SSYear').AsString);
SSMonth.Text:=trim(ADOTemp.fieldbyname('SSMonth').AsString);
FFDate.datetime:=ADOTemp.fieldbyname('FFDate').AsDateTime;
PriceUnit.Text:=trim(ADOTemp.fieldbyname('PriceUnit').asstring);
FKTaiTou.Text:=trim(ADOTemp.fieldbyname('FKTaiTou').asstring);
FKDept.Text:=trim(ADOTemp.fieldbyname('FKDept').asstring);
end;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select *,cast(0 as decimal(18,2)) SYearGZMoney from OA_YG_XZFF where XZMain='''+Trim(FXZMain)+''' ');
sql.add('and isnull(Chkstatus,'''')=''<27><><EFBFBD>ύ''');
sql.add('Order By XHNo');
open;
end;
SCreateCDS20(ADOCmd,Order_Sub);
SInitCDSData20(ADOCmd,Order_Sub);
end;
procedure TfrmYGYPInPut_YGXZDJ.FormShow(Sender: TObject);
begin
if strtofloat(uppercase(formatdatetime('MM',SGetServerDate(ADOTemp))))=1 then
begin
SSYear.Text:=floattostr(strtofloat(uppercase(formatdatetime('yyyy',SGetServerDate(ADOTemp))))-1);
SSMonth.Text:='12';
end
else
begin
SSYear.Text:=trim(uppercase(formatdatetime('yyyy',SGetServerDate(ADOTemp))));
SSMonth.Text:=floattostr(strtofloat(uppercase(formatdatetime('MM',SGetServerDate(ADOTemp))))-1);
end;
FFDate.DateTime:=SGetServerDate(ADOTemp);
InitData();
end;
function TfrmYGYPInPut_YGXZDJ.SaveData():Boolean;
var
maxno:String;
begin
Result:=False;
try
ADOCmd.Connection.BeginTrans;
if trim(FXZMain)='' then
begin
if GetLSNo(ADOCmd,FXZMain,'FF','OA_YG_XZFF_Main',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_XZFF_Main ');
sql.add('where XZMain='''+trim(FXZMain)+'''');
open;
end;
if ADOCmd.IsEmpty then
ADOCmd.append
else
ADOCmd.edit;
ADOCmd.fieldbyname('XZMain').asstring:=trim(FXZMain);
ADOCmd.fieldbyname('filler').asstring:=trim(DName);
ADOCmd.fieldbyname('filltime').asdatetime:=SGetServerDate(ADOTemp);
RTSetsavedata(ADOCmd,'OA_YG_XZFF_Main',Panel3,0);
ADOCmd.post;
with Order_Sub do
begin
first;
while not eof do
begin
if fieldbyname('XZID').AsString='' then
begin
if GetLSNo(ADOCmd,maxno,'XZ','OA_YG_XZFF',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('XZID').AsString;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from OA_YG_XZFF where XZID='''+Trim(Maxno)+'''');
Open;
if isempty then
begin
append;
fieldbyname('Chkstatus').asstring:='<27><><EFBFBD>ύ';
end
else
begin
edit;
fieldbyname('Chkstatus').asstring:=trim(Order_Sub.fieldbyname('Chkstatus').AsString);
end;
fieldbyname('XZID').AsString:=trim(maxno);
fieldbyname('XZMain').asstring:=trim(FXZMain);
fieldbyname('YGID').AsString:=trim(Order_Sub.fieldbyname('YGID').AsString);
fieldbyname('XHNo').Value:=Order_Sub.fieldbyname('XHNo').AsFloat;
fieldbyname('GZMoney').Value:=Order_Sub.fieldbyname('GZMoney').AsFloat;
fieldbyname('KQJMoney').Value:=Order_Sub.fieldbyname('KQJMoney').AsFloat;
fieldbyname('KCDMoney').Value:=Order_Sub.fieldbyname('KCDMoney').AsFloat;
fieldbyname('KOtherMoney').Value:=Order_Sub.fieldbyname('KOtherMoney').AsFloat;
fieldbyname('KSBMoney').Value:=Order_Sub.fieldbyname('KSBMoney').AsFloat;
fieldbyname('KGSMoney').Value:=Order_Sub.fieldbyname('KGSMoney').AsFloat;
fieldbyname('JLMoney').Value:=Order_Sub.fieldbyname('JLMoney').AsFloat;
fieldbyname('KFKMeny').Value:=Order_Sub.fieldbyname('KFKMeny').AsFloat;
fieldbyname('FFMoney').Value:=Order_Sub.fieldbyname('FFMoney').AsFloat;
fieldbyname('JKMoney').Value:=Order_Sub.fieldbyname('JKMoney').AsFloat;
fieldbyname('DXGZMoney').Value:=Order_Sub.fieldbyname('DXGZMoney').AsFloat;
RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'OA_YG_XZFF',0);
post;
end;
next;
end;
end;
ADOCmd.Connection.CommitTrans;
Result:=True;
except;
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.TBSaveClick(Sender: TObject);
var
FSFNO:String;
begin
ToolBar1.SetFocus;
if PriceUnit.Text='' then
begin
application.MessageBox('<27><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKTaiTou.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>̧ͷ<CCA7><CDB7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKType.Text='' then
begin
application.MessageBox('<27><><EFBFBD>ʽ<EEB7BD><CABD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
//saveDataSY();
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
Modalresult:=1;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmYGYPInPut_YGXZDJ.FormDestroy(Sender: TObject);
begin
FrmYGYPInPut_YGXZDJ:=nil;
end;
procedure TfrmYGYPInPut_YGXZDJ.TGZFFClick(Sender: TObject);
var FGRMoney,FGZMoney,FJBGZMoney: double;
begin
if SSYear.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if SSMonth.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>·ݲ<C2B7><DDB2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKType.Text='' then
begin
application.MessageBox('<27><><EFBFBD>ʽ<EEB7BD><CABD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKTaiTou.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>̧ͷ<CCA7><CDB7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKDept.Text='' then
begin
application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
Panel3.Enabled:=False;
YGLiZhi();
//JXUPDate(); //<2F><>н<EFBFBD><D0BD><EFBFBD><EFBFBD>
//NXZZDate(); //<2F><>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Order_Sub.IsEmpty then
FXHNO:=1;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select A.*,B.*,MBMoney=cast(0 as decimal(18,2)) ');
sql.Add(',XHXJMoneyM=(select Sum(C.money) from GZList C where C.YGName=A.YGName and Year(C.CRTime)='''+trim(SSYear.Text)+''' ');
sql.Add(' and Month(C.CRTime)='''+trim(SSMonth.Text)+''') ');
sql.Add('from OA_YG_XZFF A ');
sql.add('inner join OA_YG_XZFF_Main B on B.XZMain=A.XZMain ');
sql.add('where A.FKSYSTEM='''+trim(FKTaiTou.Text)+''' ');
sql.add('and isnull(A.FKType,'''')='''+trim(FKType.Text)+''' ');
sql.add('and isnull(B.FKDept,'''')='''+trim(FKDept.Text)+''' ');
if trim(SSMonth.Text)='1' then
begin
sql.add('and B.SSYear='''+trim(floattostr(strtofloat(SSYear.Text)-1))+''' ');
sql.add('and B.SSMonth=''12'' ');
end
else
begin
sql.add('and B.SSYear='''+trim(SSYear.Text)+''' ');
sql.add('and B.SSMonth='''+trim(floattostr(strtofloat(SSMonth.Text)-1))+'''');
end;
open;
end;
if ADOCmd.IsEmpty then
begin
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select A.*,B.* ');
sql.Add(',XHXJMoneyM=(select Sum(C.money) from GZList C where C.YGName=A.YGName and Year(C.CRTime)='''+trim(SSYear.Text)+''' ');
sql.Add(' and Month(C.CRTime)='''+trim(SSMonth.Text)+''') ');
sql.Add('from OA_YG_DangAn A ');
sql.Add('left join OA_YG_XZFF B on B.YGName=A.YGName where LiZhiFlag=0');
open;
end;
end;
with ADOCmd do
begin
first;
while not eof do
begin
with ADOQueryJK do
begin
close;
sql.Clear;
sql.Add('select YGName,CDFKMoney=Sum(case when DATEDIFF(mi,SYDate,convert(varchar,SBDate,8))<5 then 0 else DATEDIFF(mi,SYDate,convert(varchar,SBDate,8)) end)');
sql.Add(',QJDay=(select Sum(SQDay) from OA_YG_CLGLSW C where C.ZWName=YGName and Year(C.SQBegDate)=NDKDate and Month(C.SQBegDate)=MDKDate and C.SQType=''<27><><EFBFBD><EFBFBD>'')');
sql.Add(',CQDay=count(MTDay)+isnull((select Sum(SQDay) from OA_YG_CLGLSW C where C.ZWName=YGName and Year(C.SQBegDate)=NDKDate and Month(C.SQBegDate)=MDKDate and C.SQType=''<27><><EFBFBD><EFBFBD>''),0)');
sql.Add(' from (select A.YGName,Max(DKDate) XBDate,Min(DKDate) SBDate,convert(varchar(10),DKDate,120) MTDay,Year(DKDate) NDKDate,cast(Month(DKDate) as decimal(18,0)) MDKDate ');
sql.Add(',SYDate=(select Top 1 convert(varchar,B.SYDate,8) from OA_YG_DangAn B where B.YGName=A.YGName)');
sql.Add(',XBTime=(select Top 1 convert(varchar,B.XBTime,8)from OA_YG_DangAn B where B.YGName=A.YGName)');
sql.Add(' from OA_YG_KQ A where YGName='''+trim(ADOCmd.fieldbyname('YGName').AsString)+'''');
sql.Add(' and Year(DKDate)='''+trim(SSYear.Text)+''' and cast(Month(DKDate) as decimal(18,0))='''+trim(SSMonth.Text)+'''');
sql.Add(' group by A.YGName,convert(varchar(10),DKDate,120),Year(DKDate),cast(Month(DKDate) as decimal(18,0))) AA');
sql.Add(' group by YGName,NDKDate,MDKDate');
//ShowMessage(sql.Text);
open;
end;
with Order_Sub do
begin
append;
fieldbyname('XHNo').AsInteger:=FXHNo;
fieldbyname('YGName').Value:=trim(ADOCmd.fieldbyname('YGName').AsString);
fieldbyname('DXGZMoney').Value:=ADOCmd.fieldbyname('DXGZMoney').AsFloat;
fieldbyname('KQJMoney').Value:=ADOQueryJK.fieldbyname('QJDay').AsFloat;
fieldbyname('KSBMoney').Value:=30.5-ADOQueryJK.fieldbyname('CQDay').AsFloat-ADOQueryJK.fieldbyname('QJDay').AsFloat;
fieldbyname('KOtherMoney').Value:=ADOQueryJK.fieldbyname('CQDay').AsFloat;
fieldbyname('GLFLMoney').Value:=ADOCmd.fieldbyname('GLFLMoney').AsFloat;
fieldbyname('KGSMoney').Value:=ADOCmd.fieldbyname('KGSMoney').AsFloat;
fieldbyname('KFKMeny').Value:=ADOCmd.fieldbyname('KFKMeny').AsFloat;
fieldbyname('XHXJMoney').Value:=ADOCmd.fieldbyname('XHXJMoneyM').AsFloat;
if ADOCmd.fieldbyname('MBMoney').AsFloat=0 then
begin
fieldbyname('GZMoney').Value:=ADOCmd.fieldbyname('GZMoney').AsFloat;
fieldbyname('JBGZMoney').Value:=Format('%.0f',[ADOCmd.fieldbyname('GZMoney').AsFloat/30.5*ADOQueryJK.fieldbyname('CQDay').AsFloat]);
FGZMoney:=ADOCmd.fieldbyname('GZMoney').AsFloat;
FJBGZMoney:=StrToFloat(Format('%.0f',[ADOCmd.fieldbyname('GZMoney').AsFloat/30.5*ADOQueryJK.fieldbyname('CQDay').AsFloat]));
end
else
begin
fieldbyname('GZMoney').Value:=ADOCmd.fieldbyname('MBMoney').AsFloat;
fieldbyname('JBGZMoney').Value:=Format('%.0f',[ADOCmd.fieldbyname('MBMoney').AsFloat/30.5*ADOQueryJK.fieldbyname('CQDay').AsFloat]);
FGZMoney:=ADOCmd.fieldbyname('MBMoney').AsFloat;
FJBGZMoney:=StrToFloat(Format('%.0f',[ADOCmd.fieldbyname('MBMoney').AsFloat/30.5*ADOQueryJK.fieldbyname('CQDay').AsFloat]));
end;
fieldbyname('KCDMoney').Value:=ADOQueryJK.fieldbyname('CDFKMoney').AsFloat;
if FKDept.Text='<27><EFBFBD><E5BBA8>' then
begin
if ADOCmd.fieldbyname('XHXJMoneyM').AsFloat>FGZMoney then
begin
fieldbyname('FFMoney').Value:=ADOCmd.fieldbyname('XHXJMoneyM').AsFloat;
end
else
begin
fieldbyname('FFMoney').Value:=FJBGZMoney-ADOQueryJK.fieldbyname('CDFKMoney').AsFloat;
end;
end
else
fieldbyname('FFMoney').Value:=FJBGZMoney-ADOQueryJK.fieldbyname('CDFKMoney').AsFloat;
fieldbyname('FKSYSTEM').Value:=trim(FKTaiTou.Text);
fieldbyname('XZNote').Value:=trim(ADOCmd.fieldbyname('XZNote').AsString);
fieldbyname('FKType').Value:=trim(FKType.Text);
post;
end;
FXHNo:=FXHNo+1;
next;
end;
end;
TGZFF.Enabled:=False;
end;
procedure TfrmYGYPInPut_YGXZDJ.ToolButton3Click(Sender: TObject);
var i:integer;
begin
if Order_Sub.IsEmpty then
begin
FXHNo:=1;
end
else
begin
Order_Sub.Last;
FXHNo:=Order_Sub.fieldbyname('XHNo').AsInteger+1;
end;
with Order_Sub do
begin
append;
fieldbyname('XHNo').AsInteger:=FXHNo;
fieldbyname('FKSYSTEM').AsString:=trim(FKTaiTou.Text);
fieldbyname('FKType').AsString:=trim(FKType.Text);
post;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.ToolButton4Click(Sender: TObject);
begin
FXHNo:=Order_Sub.fieldbyname('XHNo').AsInteger;
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('delete from OA_YG_XZFF where XZID='''+trim(Order_Sub.fieldbyname('XZID').AsString)+'''');
execsql;
end;
Order_Sub.Delete;
with Order_Sub do
begin
first;
while not eof do
begin
edit;
if fieldbyname('XHNo').AsInteger>FXHNo then
begin
fieldbyname('XHNo').AsInteger:=fieldbyname('XHNo').AsInteger-1;
end;
post;
next;
end;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.v1GZMoneyPropertiesEditValueChanged(
Sender: TObject);
var
FName,mvalue:string;
begin
FName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
mvalue:=TcxTextEdit(Sender).EditingText;
with Order_Sub do
begin
Edit;
if Trim(mvalue)='' then
FieldByName(FName).Value:=null
else
FieldByName(FName).Value:=mvalue;
Post;
end;
with Order_Sub do
begin
Edit;
FieldByName('FFMoney').Value:=FieldByName('GZMoney').AsFloat-FieldByName('KQJMoney').AsFloat-
FieldByName('KCDMoney').AsFloat-FieldByName('KOtherMoney').AsFloat-
FieldByName('KSBMoney').AsFloat-FieldByName('KGSMoney').AsFloat+
FieldByName('JLMoney').AsFloat-FieldByName('KFKMeny').AsFloat-
fieldbyname('JKMoney').AsFloat;
Post;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.v1FKSYSTEMPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='FKSYSTEM';
flagname:='<27><><EFBFBD><EFBFBD>̧ͷ';
if ShowModal=1 then
begin
with Order_Sub do
begin
edit;
fieldbyname('FKSYSTEM').AsString:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
free;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.v1FKTypePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='FKType';
flagname:='<27><><EFBFBD>ʽ';
if ShowModal=1 then
begin
with Order_Sub do
begin
edit;
fieldbyname('FKType').AsString:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
free;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.FKTaiTouBtnClick(Sender: TObject);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='FKSYSTEM';
flagname:='<27><><EFBFBD><EFBFBD>̧ͷ';
if ShowModal=1 then
begin
FKTaiTou.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
free;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.PriceUnitBtnClick(Sender: TObject);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='priceUnit';
flagname:='<27><><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
PriceUnit.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
free;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.TSYGZClick(Sender: TObject);
var FXHNO: integer;
FGRMoney: double;
begin
if SSYear.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if SSMonth.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>·ݲ<C2B7><DDB2><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKType.Text='' then
begin
application.MessageBox('<27><><EFBFBD>ʽ<EEB7BD><CABD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
if FKTaiTou.Text='' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>̧ͷ<CCA7><CDB7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>','<27><>ʾ');
exit;
end;
Panel3.Enabled:=False;
FXHNO:=1;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from OA_YG_DangAn ');
sql.add('where LiZhiFlag=0 ');
sql.add('and FKSYSTEM='''+trim(FKTaiTou.Text)+''' ');
sql.Add('and FHType=''<27><>н<EFBFBD><D0BD>'' and ZhuanZhengDate<>'''' ');
if FKType.Text='<27><><EFBFBD><EFBFBD>' then
begin
sql.add('and isnull(FKType,'''')<>''<27>ֽ<EFBFBD>'' ');
end
else
begin
sql.add('and isnull(FKType,'''')<>''<27><><EFBFBD><EFBFBD>''');
end;
open;
end;
with ADOCmd do
begin
first;
while not eof do
begin
with Order_Sub do
begin
append;
fieldbyname('XHNo').AsInteger:=FXHNo;
fieldbyname('YGName').Value:=trim(ADOCmd.fieldbyname('YGName').AsString);
fieldbyname('XZNo').Value:=trim(ADOCmd.fieldbyname('XZNo').AsString);
fieldbyname('YGID').Value:=trim(ADOCmd.fieldbyname('YGID').AsString);
fieldbyname('FKSYSTEM').Value:=trim(ADOCmd.fieldbyname('FKSYSTEM').AsString);
fieldbyname('SYearGZMoney').Value:=ADOCmd.fieldbyname('SYearGZMoney').AsFloat;
fieldbyname('FKType').Value:=trim(FKType.Text);
if ADOCmd.FieldByName('SYearGZMoney').AsFloat<=50000 then
begin
FGRMoney:=ADOCmd.FieldByName('SYearGZMoney').AsFloat/14*2;
end
else
begin
FGRMoney:=ADOCmd.FieldByName('SYearGZMoney').AsFloat/14*0.8*2+ADOCmd.FieldByName('SYearGZMoney').AsFloat*0.2;
end;
FieldByName('GZMoney').AsFloat:=FGRMoney;
post;
end;
FXHNo:=FXHNo+1;
next;
end;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.Tv1EditKeyDown(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);
begin
inherited;
if Key=VK_RETURN then
begin
if Tv1.Controller.FocusedColumnIndex=Tv1.VisibleColumnCount-1 then
begin
with Tv1.DataController do
begin
if IsEof then
begin
Tv1.DataController.Append;
end else
begin
Tv1.DataController.MoveBy(1);
end;
Tv1.Controller.FocusedItemIndex:=-1;
end;
end;
end;
end;
procedure TfrmYGYPInPut_YGXZDJ.Tv1NavigatorButtonsButtonClick(
Sender: TObject; AButtonIndex: Integer; var ADone: Boolean);
begin
ToolBar1.Refresh;
end;
procedure TfrmYGYPInPut_YGXZDJ.FKDeptBtnClick(Sender: TObject);
begin
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='FKDept';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if ShowModal=1 then
begin
FKDept.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
free;
end;
end;
end.