?? gyshkjz.~pas
字號:
unit gyshkjz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin,ADODB,DB, ExtCtrls;
type
Tgyshknmjzfrm = 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
gyshknmjzfrm: Tgyshknmjzfrm;
implementation
uses data;
{$R *.dfm}
procedure Tgyshknmjzfrm.Button2Click(Sender: TObject);
begin
close;
end;
procedure Tgyshknmjzfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
gyshknmjzfrm:=nil;
end;
procedure Tgyshknmjzfrm.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 Tgyshknmjzfrm.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:='當年數(shù)據(jù)已結轉';
jzts.Color:=clred;
end
else
begin
jzts.Caption:='當年數(shù)據(jù)未結轉';
jzts.Color:=clbtnface;
end;
end;
procedure Tgyshknmjzfrm.Button1Click(Sender: TObject);
var ts:string;
begin
if MessageDlg('注意!結轉后,不能再修改當年的數(shù)據(jù),你確定嗎 ?', mtWarning,
[mbYes, mbNo], 0) = mrno then
begin
abort;
end;
try
ts:=jzts.Caption;
jzts.Font.Color:=clFuchsia;
jzts.Caption:='正在整理年末貨款...';
gyshknmjzfrm.Refresh;
dm.asp_hkzl.Close;
dm.asp_hkzl.ProcedureName:='gysmnhk;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:='正在將年末貨款轉入下一年年初...';
gyshknmjzfrm.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;
nf_spe.MaxValue:=dm.jzxxbads.fieldbyname('最后年份').Value;
dm.adocn.CommitTrans;
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:='當年數(shù)據(jù)已結轉';
jzts.Color:=clred;
end
else
begin
jzts.Caption:='當年數(shù)據(jù)未結轉';
jzts.Color:=clbtnface;
end;
except
jzts.Caption:=ts;
jzts.Font.Color:=clblack;
dm.adocn.RollbackTrans;
showmessage('無法完成結轉!請聯(lián)系系統(tǒng)管理員')
end;
end;
procedure Tgyshknmjzfrm.Button3Click(Sender: TObject);
begin
if MessageDlg('注意!執(zhí)行反結轉,可能會影響后續(xù)年份的數(shù)據(jù)!'+#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:='當年數(shù)據(jù)已結轉';
jzts.Color:=clred;
end
else
begin
jzts.Caption:='當年數(shù)據(jù)未結轉';
jzts.Color:=clbtnface;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -