在DATAREPORT中是无法动态地添加控件的。

解决方案 »

  1.   

    dataport1.sections(1).controls没有add方法
    但是我也不能确定是否能用其他方法添加
    至少窗体的方式不行
      

  2.   

    有关DATAREPORT的用法,可以参见我的贴子
    http://www.csdn.net/Expert/TopicView1.asp?id=654745
      

  3.   

    我的datareport需要:由用户在复选框中指定要显示的各项。
    要达到这个目的我应该怎样做?
    实在不行,我应该换用什么实现?
      

  4.   

    看看此贴
    http://www.csdn.net/expert/topic/653/653225.xml?temp=.6744348
      

  5.   

    你可以在设计时在datareport中多放几个所需控件,用不到时让其不可用即可
      

  6.   

    datareport没有ADD方法,好像不能动态的加载控件上去,你的问题可以这样做,把表的所有字段都画上,用户选的时候就将没选中的控件的Visible改为false,然后将位置重新安排一下。
      

  7.   

    我的datareport需要:由用户在复选框中指定要显示的各项。
    要达到这个目的我应该怎样做?
    实在不行,我应该换用什么实现?
    我预先在报表中添加了几个,可是这些控件没有enabled属性。
      

  8.   

    如果要做一个通用的报表,可以把DETAIL中的TEXTBOX的DATAFIELD统一设为FIELD1、FIELD2、FIELD3...,然后,在SQL语句中统一使用别名就可以了。如:select id as field1,name as field2 ....
        select cargo as field1,typr as field2...
    但是,无论如何,SQL中的字段一定要等于报表中的TEXTBOX的数量,而且在DETAIL中不要把其它的TEXTBOX的DATAFIELD设为空,不想显示的只能改其VISIBLE。
      

  9.   

    刚才试了一下,找到一个不太有用的方法:
    如果SQL中的字段比报表的中TEXTBOX少,那可以在SQL中写一此空的字段,如:
    rs.Open "select cid,'' as kong from tclient", Connection1, adOpenDynamic, adLockOptimistic
    然后:
    DataReport1.Sections("section1").Controls("text2").Visible = False
    DataReport1.Sections("section1").Controls("text2").DataField = "kong"这样报表就不会显示了,呵呵:)
      

  10.   

    我试过了,挺好的,
    但是,在dbgrid中相关的显示查询结果,出现一列kong字段,
    这个怎么处理?