1,如何实现主从表,我在网上找了不少,但设置了后那个“+”号点不开。
2,如何下拉显示备注或照片。就是像一张卡面一样可以展开的那种。谢了。

解决方案 »

  1.   

    一、主从表:
    假设:
    有主表数据源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、打开数据集二、显示备注或照片
    1、在Level下创建DBCardView1,并创建所有列
    2、自定义中选中DBCardView1,右边的列中选中备注或照片的列,将Visible设置为True,其他的设置为False
    3、选中DBCardView1中备注或照片对应的列,设置Properties属性为Memo(备注)或Image(图片)
    4、如果使用的是Image,设置Properties.GraphicClassName属性为TJPEGImage(如果你的数据库中存的是jpg文件)
    5、如果有需要可以把列的Options属性中的ShowCaption属性设置为False,充分利用空间
    6、如果有需要可以在显示图片的时候把Properties.Stretch设置为True,让图片自动缩放
      

  2.   

    备注也就是那么干的,如果显示不出来你应该检查下字段类型及数据是否正确对于备注类型的数据,你如果想显示多行,请设置CardView的OptionsView.CellAutoHeight为True,并设置OptionsView.CellTextMaxLineCount为你想显示的最多行数目。
      

  3.   

    估计你不是要主从表的效果吧?
    是不是在dbgrid上显示相关的值?
    如:在表里你存的是一个科室的编码.而你想在点击字段显示相关的科室编码与名称的的列表呢?
    如果这个是你需要的话,那就是需要在数据集里添加一个lookup字段,然后在设置lookup的dataset.及相关的要显示的字段集.即可.
      

  4.   

    谢谢各位,主从表问题已经顺利解决,可能是我没有说清楚,导致楼上误解,现在留下的就是MEMO的那个问题了,
    现在我说清楚一点:
    比如我数据库里有一个字段是TEXT类型的,存储的文字可能很多,如果用DBGRID那样的浏览那么那一列可能要很长,而我见过CXGRID可以点击那个单元格会出现一个下拉框(是一个比校大的框,不像combobox的那样),就是会有一个矩形框,里面可以显示很多文字.(也就是说把这个单元格的值放在一个MEMO控件里那样)
      

  5.   

    非常感谢 lake_cx,DEMO已经收到,虽然和我要的结果有区别但对我还是有帮助,我会再开贴送分的。
    其实我想要的备注那种是这样的:(现在抛弃主从表的问题)
    那一列备注类型的数据在不点击他的时候就和普通的GRID一样显示,如果点击查看备注那一列的一个单元格时,那个单元格会出现一个下拉的尖头。从而显示出备注。而且弹出的那个框框上有关闭的按扭。