如果要做一个通用的报表,可以把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。
刚才试了一下,找到一个不太有用的方法: 如果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"这样报表就不会显示了,呵呵:)
但是我也不能确定是否能用其他方法添加
至少窗体的方式不行
http://www.csdn.net/Expert/TopicView1.asp?id=654745
要达到这个目的我应该怎样做?
实在不行,我应该换用什么实现?
http://www.csdn.net/expert/topic/653/653225.xml?temp=.6744348
要达到这个目的我应该怎样做?
实在不行,我应该换用什么实现?
我预先在报表中添加了几个,可是这些控件没有enabled属性。
select cargo as field1,typr as field2...
但是,无论如何,SQL中的字段一定要等于报表中的TEXTBOX的数量,而且在DETAIL中不要把其它的TEXTBOX的DATAFIELD设为空,不想显示的只能改其VISIBLE。
如果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"这样报表就不会显示了,呵呵:)
但是,在dbgrid中相关的显示查询结果,出现一列kong字段,
这个怎么处理?