📄 ucount_person.pas
字号:
unit ucount_person;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, dialogs, Grids, DBGridEh, Menus, ComCtrls, DBGridEhImpExp,
DB, ADODB;
type
Tcount_person = class(TForm)
Panel2: TPanel;
Panel3: TPanel;
Panel1: TPanel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DBGridEh1: TDBGridEh;
Splitter1: TSplitter;
BitBtn5: TBitBtn;
SaveDialog1: TSaveDialog;
BitBtn6: TBitBtn;
BitBtn1: TBitBtn;
Panel4: TPanel;
Button2: TButton;
treeview1: TTreeView;
procedure CancelBtnClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Add_tv;
procedure CheckBox1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button2Click(Sender: TObject);
private
FF_xm: string;
FF_exp: string;
FF_values: string;
FF_backcolor: TColor;
FF_font: TFont;
procedure SetF_backcolor(const Value: TColor);
procedure SetF_exp(const Value: string);
procedure SetF_font(const Value: TFont);
procedure SetF_values(const Value: string);
procedure SetF_xm(const Value: string);
{ Private declarations }
public
{ Public declarations }
published
property F_xm: string read FF_xm write SetF_xm;
property F_exp: string read FF_exp write SetF_exp;
property F_values: string read FF_values write SetF_values;
property F_font: TFont read FF_font write SetF_font;
property F_backcolor: TColor read FF_backcolor write SetF_backcolor;
end;
var
count_person: Tcount_person;
implementation
uses u_dm, u_main, FRM_SELECTFIELDS, frm_dbgrideh_print_set, RICH_SYS,
ucount_person_filter, ucount_bold;
{$R *.dfm}
procedure Tcount_person.CancelBtnClick(Sender: TObject);
begin
close;
end;
procedure Tcount_person.BitBtn1Click(Sender: TObject);
begin
with dm1.A_jd_person do
begin
Close;
Parameters.ParamByName('@acount_id').Value := StrToInt(main.Acount_id);
Open;
DBGridEh1.DataSource := dm1.D_jd_person;
end;
end;
procedure Tcount_person.BitBtn2Click(Sender: TObject);
begin
with TSELECTFIELDS.Create(self) do
begin
Dbgrideh := DBGridEh1;
ShowModal;
end;
end;
procedure Tcount_person.BitBtn3Click(Sender: TObject);
var
s: string;
begin
s := main.dw + main.ACOUNT_YEAR + '入库进度表';
with Tdbgrideh_print.Create(self) do
begin
PrintDBGridEh1.DBGridEh := DBGridEh1;
L_TITLE_CENTER.Caption := s;
s := '报表时间:' + DateToStr(Date);
L_GRIDE_BEFOR.Caption := s;
ShowModal;
end;
end;
procedure Tcount_person.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
procedure Tcount_person.Add_tv;
var
tvNode, tvnode2, tvnode3: TTreeNode;
cun, she, s: string;
begin
dm1.Open_Q1('select distinct left(she_no,2) as cun from she');
with TreeView1, dm1 do
begin
Items.Clear;
q_1.First;
tvNode := Items.Add(nil, '所有村');
while not Q_1.Eof do
begin
cun := trim(Q_1.fieldbyname('cun').AsString);
tvnode2 := Items.AddChild(tvNode, cun + '村');
s := 'select substring(she_no,3,1) as she,she_name,she_master from she where left(she_no,2)='
+ string_sqlText(cun);
dm1.Open_Q2(s);
while not q_2.Eof do
begin
she := trim(Q_2.fieldbyname('she').AsString);
s := she + '社(' + trim(Q_2.fieldbyname('she_name').AsString) + ':社长:'
+ trim(Q_2.fieldbyname('she_master').AsString) + ')';
tvnode3 := Items.AddChild(tvNode2, s);
q_2.Next;
end;
Q_1.Next;
end;
end;
end;
procedure Tcount_person.CheckBox1Click(Sender: TObject);
begin
dm1.A_jd_person.Filtered := true;
end;
procedure Tcount_person.BitBtn4Click(Sender: TObject);
begin
with Tcount_person_filter.Create(self) do
ShowModal;
end;
procedure Tcount_person.FormCreate(Sender: TObject);
begin
if FileExists(main.App_path + 'count_person.txt') then
TreeView1.LoadFromFile(main.App_path + 'count_person.txt');
// Add_tv;
BitBtn1.Click;
F_font := TFont.Create;
F_font.Assign(Self.Font);
F_backcolor := clWhite;
if main.Load_grid_enable then
if FileExists(main.dat_path + 'count_person.dat') then
DBGridEh1.Columns.LoadFromFile(main.dat_path + 'count_person.dat');
end;
procedure Tcount_person.TreeView1Click(Sender: TObject);
var
s, she: string;
Mnode: TTreeNode;
begin
if not dm1.A_jd_person.Active then BitBtn1.Click;
case TreeView1.Selected.Level of
2:
begin
she := LeftStr(TreeView1.Selected.Text, 1);
Mnode := TreeView1.Selected.Parent;
she := LeftStr(Mnode.Text, 2) + she;
s := 'pno like ' + string_sqlText(she + '%');
end;
1:
begin
she := LeftStr(TreeView1.Selected.Text, 2);
s := 'pno like ' + string_sqlText(she + '%');
end;
0:
begin
s := '';
end;
end;
dm1.A_jd_person.Filter := s;
dm1.A_jd_person.Filtered := true;
end;
procedure Tcount_person.BitBtn5Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
if SaveDialog1.FileName <> '' then
begin
if UpperCase(Copy(SaveDialog1.FileName, Length(SaveDialog1.FileName) -
2, 3)) <> 'XLS' then
SaveDialog1.FileName := SaveDialog1.FileName + '.XLS';
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS, DBGridEh1,
SaveDialog1.FileName, true);
MessageDlg('网格数据已成功导出到文件!', mtWarning, [mbok], 0);
end;
end;
end;
procedure Tcount_person.BitBtn6Click(Sender: TObject);
var
xm: string;
begin
with Tcount_bold.Create(self) do
begin
if F_xm <> '' then
begin
ListBox1.ItemIndex := ListBox1.Items.IndexOf(F_xm);
ListBox2.ItemIndex := ListBox2.Items.IndexOf(F_exp);
Edit1.Text := F_values;
l_example.Font.Assign(F_font);
Panel1.Color := F_backcolor;
end;
if ShowModal = mrok then
begin
case ListBox1.ItemIndex of
0: xm := 'r_s1';
1: xm := 's1';
2: xm := 'x_s1';
3: xm := 'b_s1';
4: xm := 'r_s2';
5: xm := 's2';
6: xm := 'x_s2';
7: xm := 'b_s2';
8: xm := 'r_count';
9: xm := 'y_count';
10: xm := 'x_count';
11: xm := 'b_count';
end;
if trim(edit1.Text) <> '' then
begin
F_xm := xm;
F_exp := ListBox2.Items[ListBox2.itemindex];
F_values := Edit1.Text;
F_font.Assign(l_example.Font);
F_backcolor := Panel1.Color;
DBGridEh1.Invalidate;
end;
end;
end;
end;
procedure Tcount_person.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
with dm1.A_jd_person do
begin
if F_exp = '=' then
begin
if FieldByName(F_xm).AsCurrency = StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
if F_exp = '>' then
begin
if FieldByName(F_xm).AsCurrency > StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
if F_exp = '<' then
begin
if FieldByName(F_xm).AsCurrency < StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
if F_exp = '>=' then
begin
if FieldByName(F_xm).AsCurrency >= StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
if F_exp = '<=' then
begin
if FieldByName(F_xm).AsCurrency <= StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
if F_exp = '<>' then
begin
if FieldByName(F_xm).AsCurrency <> StrToCurr(F_values) then
begin
AFont.Assign(F_font);
Background := F_backcolor;
exit;
end;
end;
end;
end;
procedure Tcount_person.SetF_backcolor(const Value: TColor);
begin
FF_backcolor := Value;
end;
procedure Tcount_person.SetF_exp(const Value: string);
begin
FF_exp := Value;
end;
procedure Tcount_person.SetF_font(const Value: TFont);
begin
FF_font := Value;
end;
procedure Tcount_person.SetF_values(const Value: string);
begin
FF_values := Value;
end;
procedure Tcount_person.SetF_xm(const Value: string);
begin
FF_xm := Value;
end;
procedure Tcount_person.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if main.Load_grid_enable then
DBGridEh1.Columns.SaveToFile(main.dat_path + 'count_person.dat');
end;
procedure Tcount_person.Button2Click(Sender: TObject);
begin
add_tv;
TreeView1.SaveToFile(main.App_path + 'count_person.txt');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -