没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论















1 '*************************************************************************
2 '**模块名:CR_DynLoadPics
3 '**说明:Facesun.cn版权所有 2005-2006(C)
4 '**创建人:Babyt(阿泰)http://www.cnblogs.com/babyt
5 '**日期:2005-04-21
6 '**修改人:
7 '**日期:
8 '**描述:从本地磁盘获取图片文件进行显示
9 '本程序为原型程序,未进行完整保护
10 '**版本:V1.0.0
11 '*************************************************************************
12
13 ImportsSystem.Data
14 '注意此处 IO 的加入是为了读取图片文件
15 ImportsSystem.IO
16 PublicClassForm1
17 InheritsSystem.Windows.Forms.Form
18
19 #Region"Windows窗体设计器生成的代码"
20
21 PublicSubNew()
22 MyBase.New()
23
24 '该调用是Windows窗体设计器所必需的。
25 InitializeComponent()
26
27 '在InitializeComponent()调用之后添加任何初始化
28
29 EndSub
30
31 '窗体重写dispose以清理组件列表。
32 ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)
33 IfdisposingThen
34 IfNot(componentsIsNothing)Then
35 components.Dispose()
36 EndIf
37 EndIf
38 MyBase.Dispose(disposing)
39 EndSub
40
41 'Windows窗体设计器所必需的
42 PrivatecomponentsAsSystem.ComponentModel.IContainer
43
44 '注意:以下过程是Windows窗体设计器所必需的

45 '可以使用Windows窗体设计器修改此过程。
46 '不要使用代码编辑器修改它。
47 FriendWithEventsButton1AsSystem.Windows.Forms.Button
48 FriendWithEventsTextBox1AsSystem.Windows.Forms.TextBox
49 FriendWithEventsCrystalReportViewer1AsCrystalDecisions.Windows.For
ms.CrystalReportViewer
50 FriendWithEventsLabel1AsSystem.Windows.Forms.Label
51 <System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComp
onent()
52 Me.Button1=NewSystem.Windows.Forms.Button
53 Me.TextBox1=NewSystem.Windows.Forms.TextBox
54 Me.CrystalReportViewer1=NewCrystalDecisions.Windows.Forms.Cryst
alReportViewer
55 Me.Label1=NewSystem.Windows.Forms.Label
56 Me.SuspendLayout()
57 '
58 'Button1
59 '
60 Me.Button1.Location=NewSystem.Drawing.Point(520,40)
61 Me.Button1.Name="Button1"
62 Me.Button1.TabIndex=0
63 Me.Button1.Text="生成报表"
64 '
65 'TextBox1
66 '
67 Me.TextBox1.Location=NewSystem.Drawing.Point(40,40)
68 Me.TextBox1.Name="TextBox1"
69 Me.TextBox1.Size=NewSystem.Drawing.Size(392,21)
70 Me.TextBox1.TabIndex=1
71 Me.TextBox1.Text="E:\myNet\CR_DynLoadPics\Pics"
72 '
73 'CrystalReportViewer1
74 '
75 Me.CrystalReportViewer1.ActiveViewIndex=-1
76 Me.CrystalReportViewer1.AutoScroll=True
77 Me.CrystalReportViewer1.DisplayBackgroundEdge=False
78 Me.CrystalReportViewer1.DisplayGroupTree=False
79 Me.CrystalReportViewer1.Location=NewSystem.Drawing.Point(24,80)
80 Me.CrystalReportViewer1.Name="CrystalReportViewer1"
81 Me.CrystalReportViewer1.ReportSource=Nothing
82 Me.CrystalReportViewer1.Size=NewSystem.Drawing.Size(616,320)
83 Me.CrystalReportViewer1.TabIndex=2
84 '
85 'Label1

86 '
87 Me.Label1.Location=NewSystem.Drawing.Point(40,8)
88 Me.Label1.Name="Label1"
89 Me.Label1.Size=NewSystem.Drawing.Size(432,23)
90 Me.Label1.TabIndex=3
91 Me.Label1.Text="请正确输入图片文件所在的目录,最后面不要带\,此处未进
行校验!"
92 '
93 'Form1
94 '
95 Me.AutoScaleBaseSize=NewSystem.Drawing.Size(6,14)
96 Me.ClientSize=NewSystem.Drawing.Size(664,429)
97 Me.Controls.Add(Me.Label1)
98 Me.Controls.Add(Me.CrystalReportViewer1)
99 Me.Controls.Add(Me.TextBox1)
100 Me.Controls.Add(Me.Button1)
101 Me.Name="Form1"
102 Me.Text="Form1"
103 Me.ResumeLayout(False)
104
105 EndSub
106
107 #EndRegion
108
109 PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSyst
em.EventArgs)HandlesButton1.Click
110 '查看 CrystalReport1 的定义可以查看对应的报表类
111 DimcrReportDocumentAsNewCrystalReport1
112 DimmyDataSetAsNewDataSet
113 DimPicPathAsString
114 DimmyColumeAsSystem.Data.DataColumn
115 DimmyRowAsDataRow
116
117 '---------------------------------------------------------------------
118 '构造一个表,对应 xsd 文件
119 myDataSet.Tables.Add("雇员")
120 '构造表结构,可以只构造部分字段
121 myDataSet.Tables(0).Columns.Add(" 姓 ",System.Type.GetType("System.
String"))
122 myDataSet.Tables(0).Columns.Add(" 名 ",System.Type.GetType("System.
String"))
123 myDataSet.Tables(0).Columns.Add(" 雇 员 照 片 ",
System.Type.GetType("System.Byte[]"))
124

125 '---------------------------------------------------------------------
126 '写入数据
127 '注意此处没有进行校验
128 PicPath=TextBox1.Text&"\"
129 '写数据行(分别用了 3 种图片格式)
130 '提示:
131 '在这里你就可以使用你的数据库中保存的文件路径了
132 '用你的 DataSet 来填充这个将推给报表的 DataSet
133 '如:
134 AddOneRow(myDataSet.Tables(0),"Babyt","JPG 文 件 ",
PicPath&"BBT_042105_04.jpg")
135 AddOneRow(myDataSet.Tables(0),"FaceSun","Gif 文 件 ",
PicPath&"Image49.gif")
136 AddOneRow(myDataSet.Tables(0)," 张 ","Gif 文 件 ",
PicPath&"Image5.gif")
137 AddOneRow(myDataSet.Tables(0),"王","JPG 文件",PicPath&"1.jpg")
138 AddOneRow(myDataSet.Tables(0),"燕子","JPG 文件",PicPath&"2.jpg")
139 AddOneRow(myDataSet.Tables(0),"Cnblogs.com/babyt","BMP 文 件 ",
PicPath&"Coup30.bmp")
140
141 '将这个 DataSet 推给报表
142 crReportDocument.SetDataSource(myDataSet)
143
144 ''将报表传递给浏览器
145 CrystalReportViewer1.ReportSource=crReportDocument
146 EndSub
147 '*************************************************************************
148 '**函数名:AddOneRow
149 '**输入:
150 'ByReftblAsDataTable要操作的表,注意是 Byref
151 'ByValc1AsString第一个字段的值
152 'ByValc1AsString第二个字段的值
153 'ByValc1AsString第三个字段的值,注意传入的是完整的图片文件名
154 '**输出:无
155 '**功能描述:在 DataTable 中增加一个数据行
156 '该过程的主要是封装根据文件名提取本地文件写入到 DataSet 中
157 '**全局变量:
158 '**调用模块:
159 '**作者:Babyt(阿泰)
160 '**日期:2005-04-21
161 '**修改人:
162 '**日期:
163 '**版本:V2.0.0
164 '*************************************************************************

165 PublicSubAddOneRow(ByReftblAsDataTable,ByValc1AsString,ByValc
2AsString,ByValc3AsString)
166 DimfsAsNewFileStream(c3,FileMode.Open)'获取文本流
167 DimbrAsNewBinaryReader(fs)'创建 BinaryReader
168 DimrowAsDataRow
169
170 '创建一个新行
171 row=tbl.NewRow()
172
173 '赋值
174 row(0)=c1
175 row(1)=c2
176 '注意此处的写入方式
177 row(2)=br.ReadBytes(br.BaseStream.Length)
178
179 '将该行增加到目标表
180 tbl.Rows.Add(row)
181
182 '释放
183 br=Nothing
184 fs=Nothing
185 EndSub
186
187 PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSyste
m.EventArgs)HandlesMyBase.Load
188 TextBox1.Text=Directory.GetCurrentDirectory()&"\Pics"
189 EndSub
190 EndClass
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
首先创建水晶报表 rpt 文件,方法还是采用 xsd 数据集的方式,简便容易操作,记得将数
据集中的相关字段设为你想要在报表中呈现的字段。比如说在内容左边加入一个图片,就
将相应的图片字段拖放过去。能不能直接在水晶报表上添加一个图片然后修改?我做了几
次实验,好像都不得要领,所以还是放弃,走最老式的方式,先在数据库中创建一个准备
在水晶报表中使用到的字段的表,然后再通过这张表创建数据集 xsd 文件,再通过数据集
创建水晶报表。虽然方法绕了路,但是绝对是可行的。
通过数据集创建 dataset
DataSet1.pictureTabDataTable pt = new DataSet1.pictureTabDataTable();
DataSet1TableAdapters.pictureTabTableAdapter da =
new DataSet1TableAdapters.pictureTabTableAdapter();
da.Fill(pt);
剩余21页未读,继续阅读

碧海涟漪
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
前往页