解决方案 »
- 如何在exe文件中查找字符串?
- NMFast50.bpl和vclie50.bpl的问题
- Form1中有一个panel3,panel3包括一个edit1,edit1.Left是panel左边到edit的左边的距离,如何知道edit1到form1的左边的距离。(有没有直接的
- 请问在DELPHI下,一个数据的3/4方如何表示,即表示40^(3/4),即40的四分之三次方如何表示?
- 请教高手一个奇怪问题,关于指针的
- 模式窗口的返回值(非ModalResult),就是文件对话框返回的Filename,Filenames
- 我是个菜鸟,请问一道简单 的问题呢,怎么实现文件搜索啊,
- Idhttp控件在Get的时候会卡死,请问是什么原因
- 关于多个BUTTON的问题?谢谢!
- 急招 广州 delphi程序员
- 请问视觉红色的RGB值范围是多少?
- delphi7开发工具这么不好???
当前月值:='';
当前年节点:=nil;
当前月节点:=nil;
再顺序处理每一条记录:
如年份字段值<>当前年值,则当前年节点:=treeview.items.add(nil,年份字段值);当前年值:=年份字段值;
如月份字段值<>当前月值,则当前月节点:=treeview.items.add(当前年节点,月份字段值);当前月值:=月份字段值;
treeview.items.add(当前月节点,日期字段值);
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_Unit, Buttons, ExtCtrls, ComCtrls, cxControls, cxContainer,
cxTreeView,CommDeclare, DB, ADODB, StdCtrls;type
TRes_Department_F = class(TBase_F)
cx_TV: TcxTreeView;
pnl_main: TPanel;
qry_tmp: TADOQuery;
qry_op: TADOQuery;
pnl_top: TPanel;
lbl1: TLabel;
edt_zg: TEdit;
lbl2: TLabel;
edt_jb: TEdit;
lbl3: TLabel;
edt_mail: TEdit;
procedure btnSB_SearchClick(Sender: TObject);
procedure cx_TVChange(Sender: TObject; Node: TTreeNode);
procedure FormCreate(Sender: TObject);
procedure cx_TVExpanded(Sender: TObject; Node: TTreeNode);
procedure cx_TVExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure FormDestroy(Sender: TObject);
private
p_data:PString;
{ Private declarations }
public
{ Public declarations }
end;var
Res_Department_F: TRes_Department_F;implementationuses sys_datamoudle;{$R *.dfm}procedure TRes_Department_F.btnSB_SearchClick(Sender: TObject);
var
iLoop:Integer;
Master,MasterNode:TTreeNode;
begin
inherited;
qry_tmp.Close;
qry_tmp.SQL.Text:='select bmbh,bmmc from RES_DEPARTMENT where sjbm=''10000''';
qry_tmp.Open;
cx_TV.Items.BeginUpdate;
cx_TV.Items.Clear;
New(p_data);
p_data^:='10000';
Master:=cx_TV.Items.AddObject(nil,'總經理',p_data);
while not qry_tmp.Eof do
begin
Screen.Cursor:=crSQLWait;
New(p_data);
p_data^:=qry_tmp.fieldbyname('bmbh').AsString;
MasterNode:=cx_TV.Items.AddChildObject(Master,qry_tmp.fieldbyname('bmmc').AsString,p_data);
qry_op.Close;
qry_op.SQL.Text:='select bmbh,max(bmmc)as bmmc from RES_DEPARTMENT where sjbm='+ QuotedStr(qry_tmp.fieldbyname('bmbh').AsString)+' group by bmbh';
qry_op.Open;
Application.ProcessMessages;
for iLoop:=0 to qry_op.RecordCount -1 do
begin
New(p_data);
p_data^:=qry_op.fieldbyname('bmbh').AsString;
cx_TV.Items.AddChildObject(MasterNode,qry_op.fieldbyname('bmmc').AsString,p_data);
qry_op.Next;
end;
qry_tmp.Next;
end;
cx_TV.Items.EndUpdate;
Screen.Cursor:=crDefault;
Application.ProcessMessages;
end;procedure TRes_Department_F.cx_TVChange(Sender: TObject; Node: TTreeNode);
begin
inherited;
if Node.Data<>nil then
begin
qry_tmp.Close;
qry_tmp.SQL.Text:='select fzr,bmjb from RES_DEPARTMENT where bmbh='+ QuotedStr(pstring(Node.Data)^);
qry_tmp.Open;
edt_zg.Text:=qry_tmp.fieldbyname('fzr').AsString;
edt_jb.Text:=qry_tmp.fieldbyname('bmjb').AsString;
end;
end;procedure TRes_Department_F.FormCreate(Sender: TObject);
begin
inherited;
btnSB_SearchClick(Sender);
end;procedure TRes_Department_F.cx_TVExpanded(Sender: TObject;
Node: TTreeNode);
var
iLoop:Integer;
begin
inherited;
if Node.Level>0 then
begin
for iLoop:=0 to Node.Count-1 do
begin
qry_op.Close;
qry_op.SQL.Text:='select top 1 bmbh from RES_DEPARTMENT where sjbm='+QuotedStr(pstring(Node.Item[iLoop].Data)^);
qry_op.Open;
if (qry_op.RecordCount>0) then
Node.Item[iLoop].HasChildren:=True;
Application.ProcessMessages;
end;
end;
end;procedure TRes_Department_F.cx_TVExpanding(Sender: TObject;
Node: TTreeNode; var AllowExpansion: Boolean);
begin
inherited;
if Node.Level>0 then
begin
Node.DeleteChildren;
qry_op.Close;
qry_op.SQL.Text:='select bmbh,max(bmmc)as bmmc from RES_DEPARTMENT where sjbm='+ QuotedStr(pstring(Node.Data)^)+' group by bmbh';
qry_op.Open;
while not qry_op.Eof do
begin
New(p_data);
p_data^:=qry_op.Fieldbyname('bmbh').AsString;
cx_TV.Items.AddChildObjectFirst(Node,qry_op.Fieldbyname('bmmc').AsString,p_data);
qry_op.Next;
end;
end;
end;procedure TRes_Department_F.FormDestroy(Sender: TObject);
begin
inherited;
if p_data<>nil then
Dispose(p_data);
end;end.
var
sSql: String;
nOrgId: Integer;
dbQuery: TADOQUery;
TreeNode: TTreeNode;
begin
sSql := Format('Select * from Org Where OrgParentId = %d Order By OrgId', [nIndex]);
dbQuery := TADOQUery.Create(nil);
if dbQuery <> nil then
begin
dbQuery.Connection := dbDataModule.m_dbConnection;
dbQuery.SQL.Clear;
dbQuery.SQL.Add(sSql);
dbQuery.Open; dbQuery.First;
while not dbQuery.Eof do
begin
nOrgId := dbQuery.FieldByName('OrgId').AsInteger;
TreeNode := TreeView.Items.AddChild(Node, dbQuery.FieldByName('OrgName').AsString);
InitTreeView(TreeNode, nOrgId);
dbQuery.Next;
end;
end;
dbQuery.Close;
dbQuery.Free;
end;
var
sSql: String;
nOrgId: Integer;
dbQuery: TADOQUery;
TreeNode: TTreeNode;
begin
sSql := Format('Select * from Org Where OrgParentId = %d Order By OrgId', [nIndex]);
dbQuery := TADOQUery.Create(nil);
if dbQuery <> nil then
begin
dbQuery.Connection := dbDataModule.m_dbConnection;
dbQuery.SQL.Clear;
dbQuery.SQL.Add(sSql);
dbQuery.Open; dbQuery.First;
while not dbQuery.Eof do
begin
nOrgId := dbQuery.FieldByName('OrgId').AsInteger;
TreeNode := TreeView.Items.AddChild(Node, dbQuery.FieldByName('OrgName').AsString);
InitTreeView(TreeNode, nOrgId);
dbQuery.Next;
end;
end;
dbQuery.Close;
dbQuery.Free;
end;
======================================
OrgId : 自动编号
OrgName : 文本
OrgParentId : 数字
======================================