⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datapas.~pas

📁 本软件是一套功能完整成熟的固定资产管理系统,具有固定资产管理系统的相应全部功能
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
    WideStringField16: TWideStringField;
    WideStringField19: TWideStringField;
    StringField36: TStringField;
    StringField37: TStringField;
    StringField38: TStringField;
    StringField39: TStringField;
    StringField40: TStringField;
    DateTimeField7: TDateTimeField;
    DateTimeField8: TDateTimeField;
    WideStringField20: TWideStringField;
    WideStringField21: TWideStringField;
    IntegerField1: TIntegerField;
    StringField41: TStringField;
    zcxxbmb: TADOTable;
    SmallintField50: TSmallintField;
    SmallintField51: TSmallintField;
    SmallintField52: TSmallintField;
    SmallintField53: TSmallintField;
    SmallintField54: TSmallintField;
    WideStringField22: TWideStringField;
    WideStringField23: TWideStringField;
    SmallintField55: TSmallintField;
    DateTimeField9: TDateTimeField;
    BCDField2: TBCDField;
    SmallintField56: TSmallintField;
    WideStringField24: TWideStringField;
    SmallintField57: TSmallintField;
    BooleanField4: TBooleanField;
    BooleanField5: TBooleanField;
    WideStringField25: TWideStringField;
    MemoField1: TMemoField;
    DateTimeField10: TDateTimeField;
    BooleanField6: TBooleanField;
    zcxxbmbzclb: TStringField;
    zcxxbmbzcmc: TStringField;
    zcxxbmbzcxh: TStringField;
    zcxxbmbzcyt: TStringField;
    zcxxbmbgys: TStringField;
    zcxxbmbsyz: TStringField;
    maxzybm: TADOQuery;
    zcfltj: TADOQuery;
    SmallintField58: TSmallintField;
    SmallintField59: TSmallintField;
    SmallintField60: TSmallintField;
    SmallintField61: TSmallintField;
    SmallintField62: TSmallintField;
    SmallintField63: TSmallintField;
    DateTimeField11: TDateTimeField;
    SmallintField64: TSmallintField;
    WideStringField26: TWideStringField;
    BooleanField7: TBooleanField;
    WideStringField27: TWideStringField;
    WideStringField28: TWideStringField;
    StringField42: TStringField;
    StringField43: TStringField;
    StringField44: TStringField;
    StringField45: TStringField;
    StringField46: TStringField;
    StringField47: TStringField;
    BCDField3: TBCDField;
    SmallintField65: TSmallintField;
    CurrencyField1: TCurrencyField;
    CurrencyField2: TCurrencyField;
    procedure gdzcmcbBeforePost(DataSet: TDataSet);
    procedure zcwxcxDSDesignerGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure gdzccxDSDesigner2GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure zcbfcxDSDesigner2GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure zccjcxDSDesignerGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure gdzccxCalcFields(DataSet: TDataSet);
    procedure zcfltjCalcFields(DataSet: TDataSet);
  private
    { Private declarations }
  public
  filepath:string;
    { Public declarations }
  end;

var
  hjzcdata: Thjzcdata;

implementation


{$R *.dfm}
function rqc(sourdate:tdatetime;detidate:tdatetime):integer;
var year,month,day:word;
total1,total2:integer;
begin
 DecodeDate(sourdate, Year, Month, Day);
 //要求固定资产购买日期必须为1800年之后
 total1:=(year-1800)*365+month*30+day;
 DecodeDate(detidate, Year, Month, Day);
 total2:=(year-1800)*365+month*30+day;
 result:=abs(total1-total2);
 end;


procedure Thjzcdata.gdzcmcbBeforePost(DataSet: TDataSet);
begin
if gdzcmcb.fields[0].value=0 then
gdzcmcb.delete;

end;

procedure Thjzcdata.zcwxcxDSDesignerGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
if not zcwxcx.IsEmpty then
begin
if sender.Value=true then
text:='是' else
if sender.Value=false then
text:='否';
end;
end;

procedure Thjzcdata.gdzccxDSDesigner2GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
var year,month:integer;
begin
if not gdzccx.IsEmpty then
begin
year:=sender.Value div 12;
month:=sender.Value mod 12;
if month<>0 then
text:=inttostr(year)+'年零'+inttostr(month)+'月' else
text:=inttostr(year)+'年';
end;


end;

procedure Thjzcdata.zcbfcxDSDesigner2GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
var year,month:integer;
begin
year:=sender.Value div 12;
month:=sender.Value mod 12;
if month<>0 then
text:=inttostr(year)+'年零'+inttostr(month)+'月' else
text:=inttostr(year)+'年';

end;

procedure Thjzcdata.zccjcxDSDesignerGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
if sender.value=true then
text:='是' else
text:='否';
end;

procedure Thjzcdata.gdzccxCalcFields(DataSet: TDataSet);
var zclbbm,sylx,yylx,i:integer;  //资产类别编码,使用年限,已用年限
zjzh,yjjczl,yzjl,zjz,jz,ljzj:currency;  //折旧总和,预计净残值率,月折旧率,购买价格,净值,累积折旧
zjfs:boolean;
gmrq:tdatetime;
begin
zclbbm:=gdzccx.fieldbyname('资产类别编码').asinteger;
//查询预计净残值率和月折旧率
with jczlcx do
begin
close;
parameters.ParamByName('zclbbm').Value:=zclbbm;
prepared;
open;
yjjczl:=fieldbyname('预计净残值率').AsCurrency;
yzjl:=fieldbyname('月折旧率').AsCurrency;
end;
//查询折旧方式
with lscx do
begin
close;
sql.clear;
sql.add('select 折旧方式 from 参数表');
prepared;
open;
zjfs:=fields[0].AsBoolean;
end;
sylx:=gdzccx.fieldbyname('使用年限').asinteger;
gmrq:=gdzccx.fieldbyname('购买日期').AsDateTime;
zjz:=gdzccx.fieldbyname('购买价格').AsCurrency;
yylx:=(rqc(now,gmrq)+15) div 30;  //求得已用年限
if zjfs then  //采用平均年限法
begin
zjzh:=zjz*(1-yjjczl);  //折旧总和=总价值*(1-预计净残值率)
ljzj:=zjzh*(yylx/sylx);  //累积折旧=折旧总和*(已使用年限/使用年限)
if ljzj<=zjzh then
begin
gdzccx.fieldbyname('累积折旧').AsCurrency:=ljzj;
gdzccx.fieldbyname('净值').AsCurrency:=zjz-ljzj;
end  else
//如果累积折旧大于应该折旧总和,则累积折旧为应折旧总和
begin
gdzccx.fieldbyname('累积折旧').AsCurrency:=zjzh;
gdzccx.fieldbyname('净值').AsCurrency:=zjz-zjzh;
end;
end else
begin        //采用复式月折旧率法
jz:=zjz;
if yylx>0 then
for i:=1 to yylx do   //求得净值
jz:=jz*(1-yzjl);
gdzccx.fieldbyname('累积折旧').AsCurrency:=zjz-jz;
gdzccx.fieldbyname('净值').AsCurrency:=jz;
end;
end;

procedure Thjzcdata.zcfltjCalcFields(DataSet: TDataSet);
var
  zclbbm,sylx,yylx,i:integer;  //资产类别编码,使用年限,已用年限
  zjzh,yjjczl,yzjl,zjz,jz,ljzj:currency;  //折旧总和,预计净残值率,月折旧率,购买价格,净值,累积折旧
  zjfs:boolean;
  gmrq:tdatetime;
begin
  zclbbm:=gdzccx.fieldbyname('资产类别编码').asinteger;
  //查询预计净残值率和月折旧率
  with jczlcx do
  begin
  close;
  parameters.ParamByName('zclbbm').Value:=zclbbm;
  prepared;
  open;
  yjjczl:=fieldbyname('预计净残值率').AsCurrency;
  yzjl:=fieldbyname('月折旧率').AsCurrency;
  end;
  //查询折旧方式
  with lscx do
  begin
  close;
  sql.clear;
  sql.add('select 折旧方式 from 参数表');
  prepared;
  open;
  zjfs:=fields[0].AsBoolean;
  end;
  sylx:=gdzccx.fieldbyname('使用年限').asinteger;
  gmrq:=gdzccx.fieldbyname('购买日期').AsDateTime;
  zjz:=gdzccx.fieldbyname('购买价格').AsCurrency;
  yylx:=(rqc(now,gmrq)+15) div 30;  //求得已用年限
  if zjfs then  //采用平均年限法
  begin
  zjzh:=zjz*(1-yjjczl);  //折旧总和=总价值*(1-预计净残值率)
  ljzj:=zjzh*(yylx/sylx);  //累积折旧=折旧总和*(已使用年限/使用年限)
  if ljzj<=zjzh then
  begin
  gdzccx.fieldbyname('累积折旧').AsCurrency:=ljzj;
  gdzccx.fieldbyname('净值').AsCurrency:=zjz-ljzj;
  end  else
  //如果累积折旧大于应该折旧总和,则累积折旧为应折旧总和
  begin
    gdzccx.fieldbyname('累积折旧').AsCurrency:=zjzh;
    gdzccx.fieldbyname('净值').AsCurrency:=zjz-zjzh;
  end;
  end else
  begin        //采用复式月折旧率法
    jz:=zjz;
    if yylx>0 then
    for i:=1 to yylx do   //求得净值
    jz:=jz*(1-yzjl);
    gdzccx.fieldbyname('累积折旧').AsCurrency:=zjz-jz;
    gdzccx.fieldbyname('净值').AsCurrency:=jz;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -