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

📄 khhkjz.pas

📁 仓库管理信息系统
💻 PAS
字号:
unit khhkjz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin,Adodb,Db, ExtCtrls;

type
  Tkhhknmjzfrm = class(TForm)
    GroupBox2: TGroupBox;
    Label3: TLabel;
    jzts: TLabel;
    nf_spe: TSpinEdit;
    Memo1: TMemo;
    Panel1: TPanel;
    Button2: TButton;
    Button3: TButton;
    Button1: TButton;
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure nf_speChange(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  khhknmjzfrm: Tkhhknmjzfrm;

implementation
uses data, cpkcjz;
{$R *.dfm}

procedure Tkhhknmjzfrm.Button2Click(Sender: TObject);
begin
close;
end;

procedure Tkhhknmjzfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
khhknmjzfrm:=nil;
end;

procedure Tkhhknmjzfrm.FormCreate(Sender: TObject);
begin
dm.jzxxbads.Close;
dm.jzxxbads.Open;
dm.jzxxbads.Filtered:=false;
dm.jzxxbads.Filter:='结转项目='+''''+'客户货款'+'''';
dm.jzxxbads.Filtered:=true;
nf_spe.MinValue:=dm.jzxxbads.fieldbyname('开始年份').Value;
nf_spe.MaxValue:=dm.jzxxbads.fieldbyname('最后年份').Value;
nf_spe.Value:=dm.jzxxbads.fieldbyname('最后年份').Value;
end;

procedure Tkhhknmjzfrm.nf_speChange(Sender: TObject);
begin
if nf_spe.Value>nf_spe.MaxValue then
  nf_spe.Value:=nf_spe.MaxValue;
if nf_spe.Value<nf_spe.MinValue then
  nf_spe.Value:=nf_spe.MinValue;
button1.Enabled:=(nf_spe.Value=nf_spe.MaxValue);
button3.Enabled:=(nf_spe.Value+1=nf_spe.MaxValue);
if not button1.Enabled then
begin
  jzts.Caption:='当年数据已结转';
  jzts.Color:=clred;
end
else
begin
  jzts.Caption:='当年数据未结转';
  jzts.Color:=clbtnface;
end;
end;

procedure Tkhhknmjzfrm.Button1Click(Sender: TObject);
var ts:string;
begin
if MessageDlg('注意!结转后,不能再修改当年的数据,你确定吗 ?', mtWarning,
   [mbYes, mbNo], 0) = mrno then
   begin
     abort;
   end;
try
ts:=jzts.Caption;
jzts.Font.Color:=clFuchsia;
jzts.Caption:='正在整理年末货款...';
khhknmjzfrm.Refresh;
dm.asp_hkzl.Close;
dm.asp_hkzl.ProcedureName:='khmnhk;1';
dm.asp_hkzl.Parameters.Clear;
with dm.asp_hkzl.Parameters.AddParameter do
begin
Name:='@return_value';
Direction:=pdReturnValue;
DataType:=ftInteger;
end;
with dm.asp_hkzl.Parameters.AddParameter do
begin
Name:='@nf';
Direction:=pdInput;
DataType:=ftInteger;
end;
dm.asp_hkzl.Parameters.ParamByName('@nf').Value:=nf_spe.Value;
dm.asp_hkzl.Prepared;
dm.asp_hkzl.ExecProc;
jzts.Caption:='正在将年末货款转入下一年年初...';
khhknmjzfrm.Refresh;
dm.adocn.BeginTrans;
dm.adocn.Execute('delete from 客户每年货款 where 年份>'+
  inttostr(nf_spe.Value));
dm.adocn.Execute('insert 客户每年货款(年份,'+
  '客户id,上年未收款)'+
  ' select 年份+1,客户id,当年未收款'+
  ' from 客户每年货款 where 年份='+inttostr(nf_spe.Value));
dm.jzxxbads.Edit;
dm.jzxxbads.fieldbyname('最后年份').Value:=
  dm.jzxxbads.fieldbyname('最后年份').Value+1;
dm.jzxxbads.Post;
dm.adocn.CommitTrans;
jzts.Font.Color:=clblack;
nf_spe.MaxValue:=dm.jzxxbads.fieldbyname('最后年份').Value;
button1.Enabled:=(nf_spe.Value=nf_spe.MaxValue);
button3.Enabled:=(nf_spe.Value+1=nf_spe.MaxValue);
if not button1.Enabled then
begin
  jzts.Caption:='当年数据已结转';
  jzts.Color:=clred;
end
else
begin
  jzts.Caption:='当年数据未结转';
  jzts.Color:=clbtnface;
end;
except
  dm.adocn.RollbackTrans;
  jzts.Caption:=ts;
  jzts.Font.Color:=clblack;
  showmessage('无法完成结转!请联系系统管理员')
end;
end;

procedure Tkhhknmjzfrm.Button3Click(Sender: TObject);
begin
if MessageDlg('注意!执行反结转,可能会影响后续年份的数据!'+#13+
  '你确定要反结转吗 ?', mtWarning,
   [mbNo,mbYes],0 ) = mrno then
   begin
     abort;
   end;
dm.jzxxbads.Edit;
dm.jzxxbads.fieldbyname('最后年份').Value:=
  dm.jzxxbads.fieldbyname('最后年份').Value-1;
dm.jzxxbads.Post;
nf_spe.MaxValue:=dm.jzxxbads.fieldbyname('最后年份').Value;
button1.Enabled:=(nf_spe.Value=nf_spe.MaxValue);
button3.Enabled:=(nf_spe.Value+1=nf_spe.MaxValue);
if not button1.Enabled then
begin
  jzts.Caption:='当年数据已结转';
  jzts.Color:=clred;
end
else
begin
  jzts.Caption:='当年数据未结转';
  jzts.Color:=clbtnface;
end;
end;

end.

⌨️ 快捷键说明

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