如题
//==========================
//表结构如下:
ID号 菜单名称 父菜单号 1 系统管理(&Q) 0
2 注册登陆 1
3 退出登陆 1
4 - 1
5 更换皮肤 1
6 蓝色梦想 5
7 金色收获 5
8 绿色希望 5
9 - 1
10 软件注册 1
11 用户管理 1
12 - 1
13 退出 1
14 基础信息(&R) 0
15 商品品种录入 14
16 - 14
17 供应商录入 14
18 客户录入 14
19 - 14
20 系统参数录入 14
21 - 14
22 员工管理 14
23 员工档案 22
24 考勤管理 22
25 计划管理(&S) 0
26 计划录入 25
27 计划查询 25
28 - 25
29 计划汇总 25
30 采购单形成 25
31 入库管理(&T) 0
32 入库录入 31
33 入库查询 31
34 - 31
35 退库录入 31
36 退库查询 31
37 库存管理(&U) 0
38 商品盘点 37
39 库存查询 37
40 库存调整 37
41 - 37
42 预警查询 37
43 销售管理(&V) 0
44 销售录入 43
45 销售查询 43
46 - 43
47 交班 43
48 出库管理(&W) 0
49 出库录入 48
50 出库查询 48
51 - 48
52 财务管理(&X) 0
53 凭证录入 52
54 凭证查询 52
55 - 52
56 月末结账 52
57 - 52
58 帐务查询 52
59 数据传送(&Y) 0
60 订单上传 59
61 销售上传 59
62 - 59
63 信息下载 59
64 帮助(&Z) 0
65 销售系统帮助 64
66 远见主页 64
67 - 64
68 关于 64
//==========================
//表结构如下:
ID号 菜单名称 父菜单号 1 系统管理(&Q) 0
2 注册登陆 1
3 退出登陆 1
4 - 1
5 更换皮肤 1
6 蓝色梦想 5
7 金色收获 5
8 绿色希望 5
9 - 1
10 软件注册 1
11 用户管理 1
12 - 1
13 退出 1
14 基础信息(&R) 0
15 商品品种录入 14
16 - 14
17 供应商录入 14
18 客户录入 14
19 - 14
20 系统参数录入 14
21 - 14
22 员工管理 14
23 员工档案 22
24 考勤管理 22
25 计划管理(&S) 0
26 计划录入 25
27 计划查询 25
28 - 25
29 计划汇总 25
30 采购单形成 25
31 入库管理(&T) 0
32 入库录入 31
33 入库查询 31
34 - 31
35 退库录入 31
36 退库查询 31
37 库存管理(&U) 0
38 商品盘点 37
39 库存查询 37
40 库存调整 37
41 - 37
42 预警查询 37
43 销售管理(&V) 0
44 销售录入 43
45 销售查询 43
46 - 43
47 交班 43
48 出库管理(&W) 0
49 出库录入 48
50 出库查询 48
51 - 48
52 财务管理(&X) 0
53 凭证录入 52
54 凭证查询 52
55 - 52
56 月末结账 52
57 - 52
58 帐务查询 52
59 数据传送(&Y) 0
60 订单上传 59
61 销售上传 59
62 - 59
63 信息下载 59
64 帮助(&Z) 0
65 销售系统帮助 64
66 远见主页 64
67 - 64
68 关于 64
解决方案 »
- delphi如何实现进程防杀
- 求一份国家地区三级联动的数据库
- Delphi中读写 隐藏文件???
- 给大家来个小小的心理测试:
- 【高手请看】在窗体的oncreate事件中,那些事件能造成异常呢?
- 怎么在桌面做一个悬浮窗口,像网际快车最小化时桌面上的那样
- 为什么啊,我最亲密的好友就这样离开了人世啊,苍天你没长眼睛啊!
- Webbrowser控件使用小问题?
- 各位老大,帮帮我啊,急死了我,到底用中文索引来过滤的时候用FILTER的代码该怎么写啊
- delphi中嵌ie browser的问题,今晚解决不了,我不能回去吃饭(200点)
- 这样的表格控件能像华表一样推广吗
- ADO为何无法通过Microsoft.Jet.OLEDB.4.0访问加密Access数据库?
2、假如你的菜单表名称为 菜单表
3、假如你的主连接名称为 ADOConnection1下面是简单的代码procedure TForm1.Button1Click(Sender: TObject);
var
MenuItem: TADOQuery;
I, S: Integer;
begin
MenuItem:=TADOQuery.Create(Self);
try
MenuItem.Connection:=ADOConnection1;
MenuItem.SQL.Add('SELECT * FROM 菜单表 WHERE 父菜单号=0 ORDER BY ID号');
MenuItem.Open;
for I:=0 to MenuItem.RecordCount-1 do
begin
MainMenu1.Items.Add(TMenuItem.Create(Self));
MainMenu1.Items.Items[MainMenu1.Items.Count-1].Caption:=MenuItem.FieldByName('菜单名称').AsString;
with TADOQuery.Create(Self) do
try
Connection:=ADOConnection1;
SQL.Add('SELECT * FROM 菜单表 WHERE 父菜单号='+MenuItem.FieldByName('ID号').AsString+' ORDER BY ID号');
Open;
for S:=0 to RecordCount-1 do
begin
MainMenu1.Items.Items[I].Add(TMenuItem.Create(Self));
MainMenu1.Items.Items[I].Items[MainMenu1.Items.Items[I].Count-1].Caption:=FieldByName('菜单名称').AsString;
Next;
end;
finally
Close;
Free;
end;
MenuItem.Next;
end;
finally
MenuItem.Close;
MenuItem.Free;
end;
end;你可以自行进行再优化,譬如
1、TMainMenu 可以开始的时候动态创建一个
2、创建子菜单的TADOQuery可以一次性创建,完成后再释放