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

📄 fjtzj.pas

📁 由delphi7.0+sql2000开发的固定资产管理程序
💻 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 + -