程序是用来统计上网记录的,
主表显示汇总的结果
子表显示明细
现在要做的是子表IP对应主表IP,子表网址对应主表网址.但我搞了半天只能设置一项也就是要么设置IP对应,要么网址对应,不太了解CXGRID不知是否有方法做到这点.

解决方案 »

  1.   

    主表的主键对应从表的外键就样就可以了(设置两项好像不可以,但对mysql好像可以)
      

  2.   

    你是否要用SQL写个关联?如果是,你发点主从表的数据上来,很容易解决~
      

  3.   

    不会只能设置一项吧.,mysql应该怎么呢.
      

  4.   

    主表
    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,网址两项
      

  5.   

    建个下级LEVEL,设置DBTABLE的KEYFIELD等。
      

  6.   

    cxGrid主从表: 
    假设: 
    有主表数据源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、打开数据集 
      

  7.   

    我自己做了个笨方法,把这两个字段在数据表中结合成一条记录.然后用它作连接,
    beifangke 的方法的方法没听说过,可以这样做吗.是否keyfiled中也可以设置两个以上的字段.
      

  8.   

    你说的意思是不是指:主表记录各个终端上了哪些网站的记录子表记录特定终端上特定网站的明细记录那么可以在BDS2006+ECOIII下建一个ECO项目工程,在工程的ECOSPACE里画3个类类A:终端
    属性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学习笔记三”这三篇文章