📄 fjtzj.pas
字号:
unit fjtzj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons;
type
TForm11 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
Memo1: TMemo;
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
uses Dataz;
{$R *.dfm}
procedure TForm11.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TBitBtn(Sender).Font.Color := clRed;
end;
procedure TForm11.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TBitBtn(Sender).Font.Color := clBlue;
end;
procedure TForm11.FormShow(Sender: TObject);
begin
DateTimePicker1.Date := Now();
end;
procedure TForm11.BitBtn1Click(Sender: TObject);
var
bj: String;
year,month,day: Word;
begin
DecodeDate(DateTimePicker1.Date,year,month,day);
bj := FormatDateTime('yyyymm',DateTimepicker1.Date);
with Daz.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 计提折旧表 where 计提标记 = :a');
Parameters.ParamByName('a').Value := Trim(bj);
Open;
end;
if Daz.ADOQuery1.RecordCount>0 then
begin
Try
Daz.ADOConnection1.BeginTrans;
with daz.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('delete 计提折旧表 where 计提标记 = :a');
Parameters.ParamByName('a').Value := Trim(bj);
ExecSQL;
end;
with Daz.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 固定资产信息表 where 固定资产编号 not in ( select 固定资产编号 from 固定资产信息表 where Year(入账日期) = :a and Month(入账日期)= :b)and 增减 = 0');
Parameters.ParamByName('a').Value := year;
Parameters.ParamByName('b').Value := Month;
OPen;
end;
if Daz.ADOQuery1.RecordCount >0 then
begin
while Not Daz.ADOQuery1.Eof do
begin
Daz.ADOQuery1.Edit;
if Trim(Daz.ADOQuery1.FieldByName('折旧方法').Value) = '年限平均法(1)' then
begin
Daz.ADOQuery1.FieldByName('累计折旧').Value :=Daz.ADOQuery1.FieldByName('累计折旧').Value - Daz.ADOQuery1.FieldByName('月折旧额').Value;
Daz.ADOQuery1.FieldByName('已计提月份').Value := Daz.ADOQuery1.FieldByName('已计提月份').Value -1;
Daz.ADOQuery1.Post;
end
else if Trim(Daz.ADOQuery1.FieldByName('折旧方法').Value) = '年限平均法(2)' then
begin
Daz.ADOQuery1.Edit;
with Daz.ADOQuery1 do
begin
FieldByName('已计提月份').Value := FieldByName('已计提月份').Value -1;
FieldByName('月折旧额').Value := (FieldByName('入账原值').Value - FieldByName('累计折旧').Value - FieldByName('预计净残值').Value)/(FieldByName('预计使用月份').Value-FieldByName('已计提月份').Value);
Post;
end;
end;
Daz.ADOQuery1.Next;
end;
end;
with Daz.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from 固定资产信息表 where 固定资产编号 in (Select 固定资产编号 From 固定资产减少表 where year(日期)=:a and Month(日期) = :b)');
If Month = 1 then
begin
Parameters.ParamByName('a').Value := Year -1;
Parameters.ParamByName('b').Value := 12;
end
else
begin
Parameters.ParamByName('a').Value := Year;
Parameters.ParamByName('b').Value := Month -1;
end;
Open;
end;
if Daz.ADOQuery1.RecordCount>0 then
begin
Daz.ADOQuery1.Edit;
while Not Daz.ADOQuery1.Eof do
begin
if Trim(Daz.ADOQuery1.FieldByName('折旧方法').Value) = '年限平均法(1)' then
begin
Daz.ADOQuery1.FieldByName('累计折旧').Value :=Daz.ADOQuery1.FieldByName('累计折旧').Value - Daz.ADOQuery1.FieldByName('月折旧额').Value;
Daz.ADOQuery1.FieldByName('已计提月份').Value := Daz.ADOQuery1.FieldByName('已计提月份').Value -1;
Daz.ADOQuery1.Post;
end
else if Trim(Daz.ADOQuery1.FieldByName('折旧方法').Value) = '年限平均法(2)' then
begin
with Daz.ADOQuery1 do
begin
FieldByName('已计提月份').Value := FieldByName('已计提月份').Value -1;
FieldByName('月折旧额').Value := (FieldByName('入账原值').Value - FieldByName('累计折旧').Value - FieldByName('预计净残值').Value)/(FieldByName('预计使用月份').Value-FieldByName('已计提月份').Value);
Post;
end;
end;
Daz.ADOQuery1.Next;
end;
end;
Daz.ADOConnection1.CommitTrans;
Application.MessageBox('反计提成功。','提示',64);
Except
Daz.ADOConnection1.RollbackTrans;
Application.MessageBox('反计提失败。','提示',64);
end;
end
else
Application.MessageBox('本期没有计提折旧,不能进行反计提。','提示',64);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -