程序是用来统计上网记录的,
主表显示汇总的结果
子表显示明细
现在要做的是子表IP对应主表IP,子表网址对应主表网址.但我搞了半天只能设置一项也就是要么设置IP对应,要么网址对应,不太了解CXGRID不知是否有方法做到这点.
主表显示汇总的结果
子表显示明细
现在要做的是子表IP对应主表IP,子表网址对应主表网址.但我搞了半天只能设置一项也就是要么设置IP对应,要么网址对应,不太了解CXGRID不知是否有方法做到这点.
解决方案 »
- 高分请教,Hook到窗口显示消息后,怎么让窗口不可见,并且不显示任务栏图标?
- ClientDataSet1.FieldByName('ddzp').Value这样给一个字段附值时保存不了数据,不知为什么?
- SQL语名中引用变量!
- 各位大哥:真的非常非常急,我现在感觉天都要塌下了!
- 如何保存WebBrowser控件中浏览的网页的HTML代码为TX文件
- 再帮忙一下,SQL语句
- 哪有indy的教程?
- 菜单提示的功能怎么实现?
- 谁有文档加密方面的源码(就是只能在本机打开,文档拷贝到其它机器打不开),想购买...
- 小问题,不过很实用的,但我不会,请你帮我,谢谢!
- Delphi如何设置热键?
- 三年没上Delphi模块了,上来看看,顺便散点分
ID IP地址 网址 日期
3450 192.168.0.134 www.ptli.com 2008-11-24 00:00:00.000
3451 192.168.0.134 www.yahoo.com 2008-11-24 00:00:00.000
3452 192.168.0.134 z.about.com 2008-11-24 00:00:00.000
...子表
ID ip地址 网址 日期 时间
60800 192.168.0.105 www.ptli.com 2008-11-24 1899-12-30 18:47:12.000
60809 192.168.0.105 www.ptli.com 2008-11-24 1899-12-30 18:47:12.000
60818 192.168.0.105 www.ptli.com 2008-11-24 1899-12-30 18:47:12.000
...我就是要对应两个表中的IP,网址两项
假设:
有主表数据源dsMaster,从表数据源dsDetail
主表和从表使用两个字段关联,分别为MasterID1对应DetailID1,MasterID2对应DetailID2
步骤:
1、cxGrid1下加一Level为Level1(默认有一个Level)
2、Level1下加一DBTableView1(默认有一个DBTableView),右击DBTableView1创建所有列
3、Level1上右击,添加一个Level2
4、Level2上右击,创建一个DBTableView2,右击DBTableView2创建所有列
5、选中TableView1,设置DataControler.DataSource为dsMaster
5、选中TableView1,设置DataControler.KeyFieldNames为"MasterID1;MasterID2"
6、选中TableView2,设置DataControler.DataSource为dsDetail
7、选中TableView2,设置DataControler.MasterKeyFieldNames为"MasterID1;MasterID2"
8、选中TableView2,设置DataControler.DetailKeyFieldNames为"DetailID1;DetailID2"
9、设置dsMaster、dsDetail的关联数据集
10、dsMaster、dsDetail的关联数据集写上SQL语句,并使其分别按MasterID和DetailID排序(SQL语句或索引字段均可)
11、打开数据集
beifangke 的方法的方法没听说过,可以这样做吗.是否keyfiled中也可以设置两个以上的字段.
属性1:ID
属性2:IP地址类B:外访网站
属性1:网址类C:外访记录
属性1:日期
属性2:时间三个类之间的关系:
A与B为1对多(0..1,0..n),意为一个终端会访问N个网站
B与C为1对多(0..1,0..n),意为一个网站会有N条受访记录界面体现可以有不同的方法选择一种是设置3个C1DBGRID(DGA、DGB、DGC),分别绑定到以上3个类(DATAGRID绑定到类的方法是先给设置三个分别与A、B、C关联的句柄控件ExpressionHandle(EHA、EHB、EHC),再把DATAGRID绑定到相应的EH上)然后把DGB设为DGA的CHILD(就是把DGB设为DGA的子表),再把DGC设为DGB的CHILD,再添三个按钮分别与三个类关联,以便增加三个类的实例,当然,增加类的实例可以用按钮手动加也可以编程序语句通过响应某种事件来自动加程序运行结果就是你在DGA里加一个终端,然后该终端就对应有一个子表(DGB)可以加入N个受访网站的地址,而该子表中的每一个网站地址又有一个子表(DGC),可以加入N个上网时间记录,每一个终端都有自己对应的受访网站与每个受访网站的受访记录上面这种是最简单明快的界面方案,需要安装Comunent1 FOR .NET1.1 控件包(主要原因是ECOIII只能运行在.NET环境下)如果结合C1COMBOX控件及在EHC里增加字段,也可以实现其它类型的界面方案数据存储可以用XML文件(自己去查点ECOIII的资料吧,很简单的两步操作),也可以挂各种类型的数据库,总之在ECOIII里,数据存储是不需要考虑的,表结构是由ECOSPACE自动映射生成的,你只要选择存到哪种类型的数据库文件里就可以了我对编程也是刚学,大家自己试试吧,这种通过画ER图进行设计的方式真的很有趣,不过就是ECO的资料比较少,可以上网搜一下“ECO学习笔记一”,“ECO学习笔记二”,“ECO学习笔记三”这三篇文章