在vb中的datareport的代码中引用控件无效,为什么? vb datareport做报表,怎么动态添加控件

VB6.0 (DataReport)\u8c03\u7528\u65f6\u63d0\u793a\u201c\u65e0\u6548\u6570\u636e\u6e90\u201d \uff1f

\u6570\u636e\u6e90\u597d\u6bd4\u662f\u4e00\u4e2a\u4e2d\u4ecb\uff0c\u8d1f\u8d23\u63d0\u4f9b\u7528\u6237\u4e0e\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u64cd\u4f5c\uff0c\u901a\u8fc7\u6570\u636e\u6e90\u6765\u64cd\u4f5c\u6570\u636e\u5e93\uff0c\u6bd4\u7528\u6237\u76f4\u63a5\u64cd\u4f5c\u6570\u636e\u5e93\u5b89\u5168\u6027\u9ad8\u3002
\u5efa\u7acb\u6570\u636e\u6e90\uff1a\u901a\u8fc7\u63a7\u5236\u9762\u677f---\u7ba1\u7406\u5de5\u5177---\u6570\u636e\u6e90(ODBC)\uff0c\u9009\u62e9\u201c\u7528\u6237DSN\u201d\u6216\u201c\u7cfb\u7edfDSN\u201d\uff0c\u5982\u679c\u5e0c\u671b\u522b\u4eba\u4e5f\u80fd\u8bbf\u95ee\u6570\u636e\u5e93\uff0c\u53ef\u4ee5\u9009\u62e9\u7cfb\u7edfDSN\uff0c\u7136\u540e\u6309\u4e0b\u201c\u6dfb\u52a0\u201d\u6309\u94ae\u5e76\u9009\u62e9\u4e00\u4e2a\u4e0e\u4f60\u6570\u636e\u5e93\u76f8\u7b26\u5408\u7684\u6570\u636e\u5e93\u7c7b\u578b\uff0c\u518d\u6309\u4e0b\u201c\u5b8c\u6210\u201d\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684ODBC\u5b89\u88c5\u7a97\u53e3\uff0c\u7ed9\u201c\u6570\u636e\u6e90\u540d\u201d\u8d77\u4e00\u4e2a\u552f\u4e00\u7684\u540d\u79f0\uff08\u5f53\u524d\u5728\u7cfb\u7edfDSN\u4e2d\u6ca1\u6709\u7684\uff09\uff0c\u5728\u201c\u8bf4\u660e\u201d\u680f\u8f93\u5165\u8be5\u6570\u636e\u6e90\u7684\u5907\u6ce8\u4fe1\u606f\uff0c\u6700\u540e\u6309\u4e0b\u201c\u9009\u62e9...\u201d\u6216\u201c\u521b\u5efa...\u201d\u6309\u94ae\uff0c\u9009\u62e9\u4f60\u6570\u636e\u5e93\u6587\u4ef6\u6240\u5728\u7684\u8def\u5f84\uff0c\u518d\u6309\u4e0b\u201c\u5b8c\u6210\u201d\u6309\u94ae\u5373\u53ef\u3002\u8fd9\u65f6\u5019\u53ef\u4ee5\u5728\u201c\u7cfb\u7edfDSN\u201d\u4e2d\u89c1\u5230\u4f60\u521a\u624d\u6240\u521b\u5efa\u7684\u6570\u636e\u6e90\u3002
\u6307\u5b9a\u7684\u6570\u636e\u6e90\u65e0\u6548\uff1a\u4e00\u822c\u662f\u6307\u6570\u636e\u6e90\u4e0d\u5b58\u5728\uff0c\u8bf7\u5728\u63a7\u5236\u9762\u677f\u4e2d\u6dfb\u52a0\u5373\u53ef\u3002

\u4f60\u7684\u610f\u601d\u662f\u5728Datareport\u5185\u52a8\u6001\u6dfb\u52a0\u680f\u4f4d\u5417\uff1f\u597d\u8c61\u662f\u4e0d\u53ef\u4ee5\u7684\u5427\uff1f

首先介绍一下DataReport对象的几个常用属性。一是DataSource,用于设置一个数据源,通过该数

据源,数据使用者被绑定到一个数据库;二是DataMember,从DataSource提供的几个数据成员中设

置一个特定的数据成员;三是LeftMargin、RightMargin、TopMargin、BottomMargin等,用于指定

报表的左右上下的页边距;四是Sections,即DataReport的报表标头、页标头、细节、页脚注、报

表脚注5个区域,如果加上分组(可以有多层分组),则增加一对区域,即分组标头、分组脚注。其

中DataSource一般是一个数据环境或是ADODB.Connection类型的变量,而DataMember则对应数据环

境中的Command或是ADODB.RecordSet类型的变量,推荐使用数据环境及Command,页边界大家肯定

都很清楚,下面我主要介绍以下Sections,这也是DataReport的精髓所在。

Sections是一个集合,您可以为每一个Section指定名称,也可以用其缺省的索引,从上到下

依次为1、2…。每个Section均有Height和Visible属性,您可以在一定条件下使一个Section不可

见。在Section中可以放置各种报表控件,其中RptLabel、RptImage、RptShape和RptLine可以放在

任意的Section中,用于输出各种文字、图形及表格线;RptTextBox只能放在细节中,一般用于绑

定输出DataMemeber提供的数据字段;RptFunction只能被放置在分组注脚中,用于输出使用各种内

置函数计算出的合计、最大值、最小值、平均值、记数等等。上述报表控件中常用公共属性有用于

控制位置及高度宽度的Top、Left、Height、Width和控制可见性的Visible;其中RptTextBox还有

DataField、DataMember、DataFormat及Font属性;其他属性不再多说。

然后介绍一下我的使用经验。一是对想控制的报表控件按类型有规律的命名;二是用RptShape

的矩形框做表格线框,比用RptLine画框省事多了,只有斜线才使用RptLine;三是报表标题及报表

中的表头文字、日期及页码用RptLabel,其中Caption属性支持转义字符,%D为长格式日期,%d为

短格式日期,%P为总页数,%p为当前页码;四是对固定报表在设计窗口直接将报表控件摆放到位,

对于活报表,应首先考虑报表最大的情形,将足够的控件分别放置在不同区域,位置大小可以不必

深究,然后在报表输出前用VBA代码对所有控件的属性进行调整,包括位置、高度、宽度、字体、

对齐方式、显示格式、可见性等等,相应的对Section也应根据情况调整其高度和可见性。

最后用一个实例模板来说明其使用方法。

连接数据库

With 数据环境.rsCommand名
If .State = adStateOpen Then .Close
.Source = SQL语句
.Open 打开想输出的数据库数据项以便输出
End With
With 报表名
.DataSource=数据环境
.DataMember=Command名 这两行也可固定设好而不必每次设置
设置页表头部分(RpttLabel…为报表控件名)
.Sections(2).Controls("RptLabelPage").Caption = "共%P页第%p页"
.Sections(2).Controls("RptLabelDate").Caption = "打印日期:%D"
.Sections(3).Controls("RptLabel1").Left=…

设置细节部分(RptShapeX、RptTextBoxX为报表控件名)
.Sections(3).Controls("RptShape1").Left=…
.Sections(3).Controls("RptShape1").Top=…
.Sections(3).Controls("RptShape1").Height=…
.Sections(3).Controls("RptShape1").Width=…
.Sections(3).Controls("RptTextBox1").DataMember=Command名
.Sections(3).Controls("RptTextBox1").DataField=字段1
.Sections(3).Controls("RptTextBox1").Font.Name=…

.Sections(3).Controls("RptShapeN").Visible=False
.Sections(3).Controls("RptTextBoxN").Visible=False

. Sections(3).Height=计算出的或固定的细节高度
动态调整报表标题(RptLabelTitle为报表标签控件名)
.Sections(2). Controls("RptLabelTitle").Left=…

.Sections(2). Controls("RptLabelTitle").Alignment=…

调整完毕后
.Show 或 .PrintReport
End With

这样做的优点是报表设计时简单,调整方便、随意,只需更改一点代码,而不必为了一点点的

修改而费神的在设计窗口调整半天。
以上代码要写在 DataReport 窗体里的Load事件。
rsCommand名 是DataReport数据环境里设置的命令名。就是Command。

2.

我们在数据库的编程中经常会用到报表的打印,
其中datareport就是一个一个打印报表的控件,
如果想要比较好的打印效果那么就要用到水晶报表了。
那么首先datareport是怎么打印出报表来的呢?
(一)首先在引用中选择mocrosoft data report designet v6.0
然后在设计器里添加控件。
(二)在窗体里调用设计器进行打印。
例子代码如下:
dim ff as instorereport
Set ff.DataSource = rs
If Cmbstore.Text <> "" Or Cmbstore.Text <> Null Then

ff.Sections("section2").Controls.Item("lostore").Caption = Cmbstore.Text
Else
ff.Sections("section2").Controls.Item("lostore").Caption = ""
End If
If Cmbistore.Text <> "" Or Cmbistore.Text <> Null Then
ff.Sections("section2").Controls.Item("listore").Caption = Cmbistore.Text
Else
ff.Sections("section2").Controls.Item("listore").Caption = ""
End If

If Tdjh.Text <> "" Or Tdjh.Text <> Null Then
ff.Sections("section2").Controls.Item("ldjh").Caption = Tdjh.Text
Else
ff.Sections("section2").Controls.Item("ldjh").Caption = ""
End If

temp.Open "select * from CompanyInfo ", cn, 3, 2
If temp.EOF = False Then
ff.Sections("section2").Controls.Item("LCompany").Caption = Trim(temp.Fields

(0)) '公司名称
End If
ff.Sections("section2").Controls.Item("LTitle").Caption = "单据"
ff.Caption = "打印"
temp.Close

  • VB涓鐢DataReport鍋氭姤琛ㄧ殑鍑犱釜闂,鎴戠殑鍒嗗叏缁欎粬
    绛旓細DataReport閲岄潰鏈塋abel涔熸湁Text锛屼綘鎷栨斁鍦ㄦ姤琛ㄤ笂锛屽湪浠栧睘鎬ч噷鐩存帴娣诲啓鏁版嵁婧愬拰鍛戒护鍚嶇О锛屾妸鎶ヨ〃鍏堣璁″ソ锛屾槸鎵撳嵃鏁版嵁杩炴帴鎺т欢閲岀殑鏁版嵁锛屼笉鏄墦鍗癉ataGrid,鎵撳嵃DataGrid鏈変笓涓氱殑宸ュ叿锛屽鐜板湪鐨刅SPrint銆備粠鍑哄彂鐐规潵璁睤ataReport鏄嚜宸辩敾鎶ヨ〃锛岀粰鏂囨湰鏁版嵁婧愰亶鍘嗘暟鎹簱銆侱ataEnvironment鏁版嵁婧愭槸涓嶆庝箞濂芥帶鍒剁殑锛屼粬...
  • vb涓鎬庢牱鐢Data Report璁捐涓涓姤琛,鏈汉涓嶆噦缂栫▼,鑿滈笩涓涓,姹傞珮鎵...
    绛旓細DataEnvironment1.Connection1.Open '鎵撳紑杩炴帴 FindStr = Str1 '鏌ヨ瀛楃涓 Call DataEnvironment1.rsCommand1.Open(FindStr, DataEnvironment1.Connection1, adOpenKeyset, adLockOptimistic) '鎵ц鏌ヨ DataReport1.Show '鎵撳紑鎶ヨ〃缂栬緫鍣紝涔嬪悗灏辫兘鎵撳嵃浜 杩欐槸鎴戠殑浠ュ墠鍋氱殑涓涓▼搴忥紝灏辨槸鍦...
  • VB 鎶ヨ〃鍒朵綔 DataReport
    绛旓細鎶婃潯浠剁粦瀹氬埌鎺т欢锛屾牸寮忔槸FORMS锛佺獥浣撳悕锛佹帶浠跺悕涓鏍蜂綔涓烘潯浠惰緭鍑恒備袱涓〃涔嬮棿瑕佸彇鐩稿悓鏌愬瓧娈电殑鍊硷紝閭e氨鐢ㄨ仈鍚堟煡璇紝鎵句笉涓鏍风殑灏辩洿鎺ヤ笉鍖归厤鏌ヨ锛孉CCESS鎴戣涓烘槸鏈濂界殑鎶ヨ〃璁捐鍣ㄣ備粬鎶婃煡璇㈠拰鎶ヨ〃寰堝浘褰㈠寲鍦版樉绀虹粰璇昏呫VB灏变笉涓鏍蜂簡锛岀敤璋冪敤REPORT鎺т欢锛岀粦瀹氬埌鏁版嵁婧愶紝闅句互缁存姢銆侱LEPH鎴戝湪瀛︼紝鎰熻...
  • vb6.0-浣跨敤Data Report鎵撳嵃鏌ヨ缁撴灉
    绛旓細瑕佸仛涓涓叏灞鍙橀噺锛岀▼搴忕骇鐨勩傞鍏堝缓涓涓被锛屽湪绫婚噷瀹氫箟鍙橀噺 PUBLIC 鍙橀噺鍚 AS 鍙橀噺绫诲瀷 鍦ㄧ獥浣1閲屾妸鏁版嵁瀛樺埌鍏ㄥ眬鍙橀噺閲岋紝鐒跺悗鎬庝箞鍦DATA REPORT閲鐢ㄥ氨闅忎究鐢ㄤ簡銆
  • VB DataReport鎵撳嵃鎶ヨ〃鏈夊昂瀵搁檺鍒跺悧?
    绛旓細鎻愪緵涓濊矾锛屼綘鍦ㄨ缃〃鏍肩殑鏃跺欙紝瑕佸皢浠栫殑闀垮璁剧疆鍜屾墦鍗版満鐨勭焊寮犲昂瀵镐竴鏍凤紝涓嶇劧鍙兘浼氬嚭閿欍備綘涓嶈鐩存帴璺戝幓鎵撳嵃鏈鸿缃閲岄潰璁剧疆锛岃屽簲璇ュ湪鎶ヨ〃璁捐涓紝鏌ユ壘椤甸潰璁剧疆锛屾垨鑰呯浉鍏崇殑閫夐」鏉ヨ缃備粠浣犱紶杩囨潵鐨勭敾闈㈡潵鐪嬶紝鏄剧劧reportwidth 鏄缃姤琛ㄥ搴︼紝鐩稿簲鐨勫簲璇ユ湁涓涓猺eportheight鏉ヨ缃姤琛ㄩ珮搴︺備綘瑕侀棶闂...
  • VB 涓濡備綍鐢datareport 鎵撳嵃datagrit褰撳墠鏁版嵁
    绛旓細鎶datareport 鐨刣atasource璁剧疆鎴愬拰datagrid涓鏍风殑adodc灏辫 鎸夐挳鍛戒护 set datareport1.datasource=adodc1
  • VB6.0 (DataReport)璋冪敤鏃舵彁绀衡滄棤鏁堟暟鎹簮鈥 ?
    绛旓細寤虹珛鏁版嵁婧愶細閫氳繃鎺у埗闈㈡澘---绠$悊宸ュ叿---鏁版嵁婧(ODBC)锛岄夋嫨鈥滅敤鎴稤SN鈥濇垨鈥滅郴缁烡SN鈥濓紝濡傛灉甯屾湜鍒汉涔熻兘璁块棶鏁版嵁搴擄紝鍙互閫夋嫨绯荤粺DSN锛岀劧鍚庢寜涓嬧滄坊鍔犫濇寜閽苟閫夋嫨涓涓笌浣犳暟鎹簱鐩哥鍚堢殑鏁版嵁搴撶被鍨嬶紝鍐嶆寜涓嬧滃畬鎴愨濇寜閽紝鍦ㄥ脊鍑虹殑ODBC瀹夎绐楀彛锛岀粰鈥滄暟鎹簮鍚嶁濊捣涓涓敮涓鐨勫悕绉帮紙褰撳墠鍦ㄧ郴缁烡SN涓病...
  • vb鍦ㄨ〃鍗曚腑濉殑鏁版嵁鎬庝箞鍦╠atareport涓墦鍗
    绛旓細棣栧厛鍦╲b涓娣诲姞涓涓懡浠ゆ寜閽甤ommand1锛岀劧鍚庝负杩欎釜鎸夐挳缂栧啓濡備笅浠g爜锛歝ommand1.click锛堬級datareport1锛堣繖涓槸浣犵殑鎶ヨ〃鐨勫悕绉).show
  • vb6.0 宸ョ▼鑿滃崟涓壘涓嶅埌銆愭坊鍔dataReport銆
    绛旓細1涓嶆槸鍦ㄥ伐绋-閮ㄤ欢閲锛岃屾槸鍦ㄥ伐绋嬩笅闈紝鍜岄儴浠朵竴鏍锋槸宸ョ▼鐨勫瓙鍛戒护銆傝屼笖datareport涓嶄竴瀹氶潪瑕乨ata environment鐨勫彲浠ヨ劚绂绘暟鎹幆澧冨崟鐙娇鐢ㄧ殑 鍏蜂綋鏂规硶鏄妸涓涓猺ecordset瀵硅薄浣滀负鏁版嵁婧 2鏂板缓宸ョ▼ 閫夋暟鎹伐绋 3濡傛灉浣犲畨瑁呯殑鏄疺B6鐨勪紒涓氱増,浣犲彲鏂板缓鏁版嵁宸ョ▼,瀹冧細鑷姩鍔犺浇data environment 甯屾湜鑳藉府鍔╀綘 ...
  • vb鐨刣atareport鍔ㄦ佺粦瀹氭暟鎹簮
    绛旓細鏀逛竴涓嬶細stropen = "select * from 鍏ㄩ儴淇℃伅鎯呭喌 where 濮撳悕=" & '"'&Text1.Text&'"'濡傛灉TEXT1.TEXT=鏉庡洓锛岃繖鍙ョ殑鎵ц缁撴灉灏辨槸锛歴tropen = "select * from 鍏ㄩ儴淇℃伅鎯呭喌 where 濮撳悕="鏉庡洓" " 杩欐潯璇彞鍙槸涓涓VB涓殑甯搁噺瀛楃涓插拰鍙橀噺瀛楃涓茶繛鎺ヨ繍绠,杩欐潯璇彞搴旇瀹屾垚鍥涗釜瀛楃涓茬殑鐩稿姞锛1...
  • 扩展阅读:在线免费高清logo ... xbox series x ... www.sony.com.cn ... java windowbuilder ... xboxone欧版 ... 直接观看mv ... 韩国macbookpro ... paperpass免费入口 ... chrome free download ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网