📄 nationaldebt.pas
字号:
unit NationalDebt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frmMapChild, StdCtrls, CheckLst, ComCtrls, AppEvnts, ImgList,
ExtCtrls, ToolWin, Types;
type
TfrmNationalDebt = class(TmapChild)
ToolBar2: TToolBar;
TBtnCityAll: TToolButton;
TBtnCityClear: TToolButton;
TBtnExit: TToolButton;
Panel4: TPanel;
Label2: TLabel;
dtDate1: TDateTimePicker;
dtDate2: TDateTimePicker;
chkDate: TCheckBox;
TBtnStat: TToolButton;
ToolButton5: TToolButton;
clbCity: TCheckListBox;
pnlVariety: TPanel;
ToolBar3: TToolBar;
TBtnVarietyAll: TToolButton;
TBtnVarietyClear: TToolButton;
clbVariety: TCheckListBox;
chkMoney: TCheckBox;
cmbCondM: TComboBox;
edtMoney1: TEdit;
edtMoney2: TEdit;
chkCount: TCheckBox;
cmbCondC: TComboBox;
edtCount1: TEdit;
edtCount2: TEdit;
chkVariety: TCheckBox;
chkCity: TCheckBox;
procedure chkDateClick(Sender: TObject);
procedure chkVarietyClick(Sender: TObject);
procedure chkMoneyClick(Sender: TObject);
procedure chkCountClick(Sender: TObject);
procedure edtMoney1Exit(Sender: TObject);
procedure edtMoney1KeyPress(Sender: TObject; var Key: Char);
procedure edtCount1KeyPress(Sender: TObject; var Key: Char);
procedure edtCount1Exit(Sender: TObject);
procedure edtCount1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure cmbCondMChange(Sender: TObject);
procedure cmbCondCChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure LabelClick(sender: TObject);
procedure chkCityClick(Sender: TObject);
procedure TBtnStatClick(Sender: TObject);
procedure TBtnExitClick(Sender: TObject);
procedure TBtnCityAllClick(Sender: TObject);
procedure TBtnVarietyAllClick(Sender: TObject);
procedure TBtnCityClearClick(Sender: TObject);
procedure TBtnVarietyClearClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmNationalDebt: TfrmNationalDebt;
implementation
{$R *.dfm}
uses uDMFunc, uUserFunc, NationalDebtList;
procedure TfrmNationalDebt.chkDateClick(Sender: TObject);
begin
dtDate1.Enabled := chkDate.Checked;
dtDate2.Enabled := chkDate.Checked;
end;
procedure TfrmNationalDebt.chkVarietyClick(Sender: TObject);
begin
pnlVariety.Visible := chkVariety.Checked;
end;
procedure TfrmNationalDebt.chkMoneyClick(Sender: TObject);
begin
cmbCondM.Enabled := chkMoney.Checked;
edtMoney1.Enabled := chkMoney.Checked;
edtMoney2.Enabled := chkMoney.Checked;
end;
procedure TfrmNationalDebt.chkCountClick(Sender: TObject);
begin
cmbCondC.Enabled := chkCount.Checked;
edtCount1.Enabled := chkCount.Checked;
edtCount2.Enabled := chkCount.Checked;
end;
procedure TfrmNationalDebt.edtMoney1Exit(Sender: TObject);
var
dVal : Double;
cVal : string;
begin
try
dVal := strtofloat((Sender as tEdit).Text);
str(dVal:16:2,cVal);
(Sender as tEdit).Text := cVal;
except
(Sender as tEdit).Text := ' 0.00';
end;
end;
procedure TfrmNationalDebt.edtMoney1KeyPress(Sender: TObject;
var Key: Char);
begin
if not(key in ['0'..'9','.']) and (key <> #8) then
key:= char(0);
end;
procedure TfrmNationalDebt.edtCount1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if not(key in ['0'..'9']) and (key <> #8) then
key:= char(0);
end;
procedure TfrmNationalDebt.edtCount1Exit(Sender: TObject);
var
nVal : longint;
cVal : string;
begin
try
nVal := strtoint((Sender as tEdit).Text);
str(nVal:16,cVal);
(Sender as tEdit).Text := cVal;
except
(Sender as tEdit).Text := ' 0';
end;
end;
procedure TfrmNationalDebt.edtCount1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
(Sender as tEdit).SelectAll;
end;
procedure TfrmNationalDebt.cmbCondMChange(Sender: TObject);
begin
if cmbCondM.ItemIndex = 5 then
edtMoney2.Visible := True
else
edtMoney2.Visible := False;
end;
procedure TfrmNationalDebt.cmbCondCChange(Sender: TObject);
begin
if cmbCondC.ItemIndex = 5 then
edtCount2.Visible := True
else
edtCount2.Visible := False;
end;
procedure TfrmNationalDebt.FormCreate(Sender: TObject);
var
i: smallint;
aData: TStringDynArray;
begin
inherited;
for i:=0 to high(aNode) do
begin
aNode[i].OnClick := LabelClick;
clbCity.Items.Add(aNode[i].Caption);
end;
SearchNationalDebtVariety(aData);
for i:=0 to high(aData) do
clbVariety.Items.Add(aData[i]);
end;
procedure TfrmNationalDebt.LabelClick(sender: TObject);
begin
clbCity.Checked[iNode] := not clbCity.Checked[iNode];
end;
procedure TfrmNationalDebt.chkCityClick(Sender: TObject);
begin
Panel1.Visible := chkCity.Checked;
// Panel2.Visible := chkCity.Checked;
end;
procedure TfrmNationalDebt.TBtnStatClick(Sender: TObject);
var
aCity, aVariety: TStringDynArray;
sDate, sMoney, sCount: String;
NationDebtList: TfrmNationalDebtList;
i, l: smallint;
begin
setlength(aCity,0);
setlength(aVariety,0);
sDate := '';
sMoney := '';
sCount := '';
if chkDate.Checked then
begin
if dtDate1.date>dtDate2.Date then
sDate := '(a.GMRQ betewwn '''+DToS(dtDate2.Date)+''' and '''+DToS(dtDate1.Date)+''')'
else
sDate := '(a.GMRQ betewwn '''+DToS(dtDate1.Date)+''' and '''+DToS(dtDate2.Date)+''')';
end;
if chkMoney.Checked then
begin
case cmbCondM.ItemIndex of
0: sMoney :='a.GMJE>='+trim(edtMoney1.Text);
1: sMoney :='a.GMJE>'+trim(edtMoney1.Text);
2: sMoney :='a.GMJE='+trim(edtMoney1.Text);
3: sMoney :='a.GMJE<'+trim(edtMoney1.Text);
4: sMoney :='a.GMJE<='+trim(edtMoney1.Text);
5: begin
if strtofloat(edtMoney1.Text)>strtofloat(edtMoney2.Text) then
sMoney :='(a.GMJE between '+trim(edtMoney2.Text)+' and '+trim(edtMoney1.Text)+')'
else
sMoney :='(a.GMJE between '+trim(edtMoney1.Text)+' and '+trim(edtMoney2.Text)+')';
end;
end;
end;
if chkCount.Checked then
begin
case cmbCondC.ItemIndex of
0: sCount :='a.QX>='+trim(edtCount1.Text);
1: sCount :='a.QX>'+trim(edtCount1.Text);
2: sCount :='a.QX='+trim(edtCount1.Text);
3: sCount :='a.QX<'+trim(edtCount1.Text);
4: sCount :='a.QX<='+trim(edtCount1.Text);
5: begin
if strtoint(edtCount1.Text)>strtoint(edtCount2.Text) then
sCount :='(a.QX between '+trim(edtCount2.Text)+' and '+trim(edtCount1.Text)+')'
else
sCount :='(a.QX between '+trim(edtCount1.Text)+' and '+trim(edtCount2.Text)+')';
end;
end;
end;
NationDebtList:= TfrmNationalDebtList.Create(application);
l:=0;
if chkCity.Checked then
begin
for i:=0 to clbCity.Count -1 do
if clbCity.Checked[i] then
begin
inc(l);
setlength(aCity,l);
setlength(NationDebtList.aDs,l);
aCity[l-1] := aNode[i].Number;
NationDebtList.aDs[l-1] := aNode[i].Caption;
end;
end
else
begin
for i:=0 to clbCity.Count -1 do
begin
inc(l);
setlength(NationDebtList.aDs,l);
NationDebtList.aDs[l-1] := aNode[i].Caption;
end;
end;
l:=0;
if chkVariety.Checked then
begin
for i:=0 to clbVariety.Count -1 do
if clbVariety.Checked[i] then
begin
inc(l);
setlength(aVariety,l);
setlength(NationDebtList.aPz,l);
aVariety[l-1] := clbVariety.Items.Strings[i];
NationDebtList.aPz[l-1] := clbVariety.Items.Strings[i];
end;
end
else
begin
for i:=0 to clbVariety.Count -1 do
begin
inc(l);
setlength(NationDebtList.aPz,l);
NationDebtList.aPz[l-1] := clbVariety.Items.Strings[i];
end;
end;
NationDebtList.LoadInfo(aCity,aVariety,sDate,sMoney,sCount);
NationDebtList.ShowModal;
NationDebtList.Free;
end;
procedure TfrmNationalDebt.TBtnExitClick(Sender: TObject);
begin
inherited;
close;
end;
procedure TfrmNationalDebt.TBtnCityAllClick(Sender: TObject);
var
i: smallint;
begin
for i:=0 to clbCity.Count -1 do
clbCity.Checked[i] := True;
end;
procedure TfrmNationalDebt.TBtnVarietyAllClick(Sender: TObject);
var
i: smallint;
begin
for i:=0 to clbVariety.Count -1 do
clbVariety.Checked[i] := True;
end;
procedure TfrmNationalDebt.TBtnCityClearClick(Sender: TObject);
var
i: smallint;
begin
for i:=0 to clbCity.Count -1 do
clbCity.Checked[i] := False;
end;
procedure TfrmNationalDebt.TBtnVarietyClearClick(Sender: TObject);
var
i: smallint;
begin
for i:=0 to clbVariety.Count -1 do
clbVariety.Checked[i] := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -