以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表 根据图片信息表中的ID查找文件附件中ID下的所有图片,为什么不能全部显示出来呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159748) |
-- 作者:李孝春 -- 发布时间:2021/1/7 9:50:00 -- 专业报表 根据图片信息表中的ID查找文件附件中ID下的所有图片,为什么不能全部显示出来呢? 专业报表 根据图片信息表中的ID查找文件附件中ID下的所有图片,为什么不能全部显示出来呢? Dim doc As New PrintDoc \'定义一个报表 Dim tbl As Table = Tables("图片信息") Dim Rows As List(Of DataRow) For i As Integer = tbl.TopRow To tbl.BottomRow output.Show(i) Dim rw As Row = tbl.Rows(i) output.Show(rw("主题")) Dim rm As New prt.RenderImage \'定义一个图片对象 Dim rt00 As New prt.RenderTable() \'定义一个表格对象 Dim ra As New prt.RenderArea \'定义一个容器 Dim drs As List(Of DataRow) drs = DataTables("文件附件").Select("文件编号= \'" & rw("ID") & "\'") For Each dr As DataRow In drs output.Show("1") ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 If dr IsNot Nothing Then rm.Image = dr.SQlLoadImage("附件") output.Show("2") Else rm.Image = getImage("") output.Show("3") End If rm.y = 50 \'指定垂直位置 rm.x = 25 \'指定垂直位置 rm.Width = 160 rm.Height = 90 rm.Style.ImageAlign.TileHorz=True rm.Style.ImageAlign.TileVert=True rm.Style.ImageAlign.StretchHorz = True \'禁止图片水平拉伸 rm.Style.ImageAlign.StretchVert = True \'禁止图片水平拉伸 rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 Next doc.Body.Children.Add(rm) \'将图片对象加入报表 \'ra.Children.Add(rm) \'加入到容器中 rt00.x=25 rt00.y=120 rt00.Width = 140 \'表宽为150毫米 rt00.Height = 20 \'表高为150毫米 rt00.Rows.Count = 4 \'设置行数 rt00.Cols.Count = 2 \'设置列数 rt00.Cols(0).Width = 10 rt00.Cols(1).Width = 90 rt00.Cells(0,0).Text="拍摄对象" rt00.Cells(0,0).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt00.Cells(0,0).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(0,0).Style.TextColor = Color.red \'字符颜色设为红色 rt00.Cells(0,1).Text=rw("对象") rt00.Cells(0,1).Style.TextColor = Color.red \'字符颜色设为红 rt00.Cells(0,1).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(0,1).Style.TextAlignHorz = prt.AlignHorzEnum.left \'水平居中 rt00.Cells(0,1).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 \'doc.Body.Children.Add(rt00) \'将表格对象加入到报表中 ra.Children.Add(rt00) \'加入到容器中 Doc.Body.ChildRen.Add(ra) Next doc.Preview() \'预览 |
-- 作者:有点蓝 -- 发布时间:2021/1/7 9:58:00 -- rm.Style.ImageAlign.StretchVert = True \'禁止图片水平拉伸 rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 doc.Body.Children.Add(rm) \'将图片对象加入报表 \'ra.Children.Add(rm) \'加入到容器中 Next rt00.x=25 rt00.y=120 rt00.Width = 140 \'表宽为150毫米
|
-- 作者:李孝春 -- 发布时间:2021/1/7 10:34:00 -- 回复:(有点蓝) rm.Sty... 这个地方 按照这个提示 代码运行会报错 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:窗口,图片管理,报表预览,Click 详细错误信息: 添加的项目已经有所有者了。 所以才将其更改在了next后面 还得麻烦老师继续指导一下 昨天折腾了一晚上 都没有搞定 不知道错误在哪 以下内容是专门发给有点蓝浏览 |
-- 作者:有点蓝 -- 发布时间:2021/1/7 10:35:00 -- For Each dr As DataRow In drs rm = New prt.RenderImage output.Show("1") ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割
|
-- 作者:李孝春 -- 发布时间:2021/1/7 12:37:00 -- 回复:(有点蓝)For Each dr As DataRow In drsrm = ... 按老师方式完善后 还是只有一张图生成 例子已经上传 还得麻烦老师在例子的基础上帮忙看看问题出现在什么地方 谢谢 |
-- 作者:有点蓝 -- 发布时间:2021/1/7 14:13:00 -- 图片使用的是同一个位置,都重叠到一起了 Dim drs As List(Of DataRow) drs = DataTables("文件附件").Select("文件编号= \'" & rw("ID") & "\'") Dim idx As Integer = 0 For Each dr As DataRow In drs rm = New prt.RenderImage msgbox("1") ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 rm.Image = dr.SQlLoadImage("附件") rm.y = 50 + idx * 90 \'指定垂直位置 idx += 1 rm.x = 25 \'指定垂直位置 rm.Width = 160 rm.Height = 90 |
-- 作者:李孝春 -- 发布时间:2021/1/7 15:08:00 -- 回复:(有点蓝)图片使用的是同一个位置,都重叠到一... 老师 确实是存在了这个问题 当前可以显示多个图片了 但是图片没有显示完整 不知道是不是又被叠加了 能不能在帮忙看看 怎么设置每页只能打印两个图片 两个之后就换页打印呢? 当前代码如下:
Dim doc As New PrintDoc \'定义一个报表 Dim tbl As Table = Tables("图片信息") Dim Rows As List(Of DataRow) For i As Integer = tbl.TopRow To tbl.BottomRow output.Show(i) Dim rw As Row = tbl.Rows(i) output.Show(rw("主题")) Dim rm As New prt.RenderImage \'定义一个图片对象 Dim rt00 As New prt.RenderTable() \'定义一个表格对象 Dim ra As New prt.RenderArea \'定义一个容器 Dim drs As List(Of DataRow) drs = DataTables("文件附件").Select("文件编号= \'" & rw("ID") & "\'") Dim idx As Integer = 0 For Each dr As DataRow In drs rm = New prt.RenderImage rm.BreakBefore = prt.BreakEnum.Page output.Show("1") ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 rm.Image = dr.SQlLoadImage("附件") rm.y = 20 + idx * 90 \'指定垂直位置 idx += 1 rm.x = 25 \'指定垂直位置 rm.Width = 160 rm.Height = 90 rm.Style.ImageAlign.TileHorz=True rm.Style.ImageAlign.TileVert=True rm.Style.ImageAlign.StretchHorz = True \'禁止图片水平拉伸 rm.Style.ImageAlign.StretchVert = True \'禁止图片水平拉伸 rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 doc.Body.Children.Add(rm) \'将图片对象加入报表 \'ra.Children.Add(rm) \'加入到容器中 Next doc.Body.Children.Add(rt00) \'将表格对象加入到报表中 \'ra.Children.Add(rt00) \'加入到容器中 \'Doc.Body.ChildRen.Add(ra) Next \'doc.Preview() \'预览 运行效果如下: [此贴子已经被作者于2021/1/7 15:21:21编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/1/7 15:29:00 -- 去掉xy的设置,增加Spacing.Bottom设置,类似:http://www.foxtable.com/webhelp/topics/1182.htm |
-- 作者:李孝春 -- 发布时间:2021/1/7 16:07:00 -- 回复:(有点蓝)去掉xy的设置,增加Spacing.Bottom设... 想麻烦老师再辛苦一下 就是每个页面我要显示两个图 只显示两个 当前代码运行后每个页面只有一个图 当前代码为: Dim doc As New PrintDoc \'定义一个报表 Dim tbl As Table = Tables("图片信息") Dim Rows As List(Of DataRow) For i As Integer = tbl.TopRow To tbl.BottomRow Dim rw As Row = tbl.Rows(i) Dim rm As New prt.RenderImage \'定义一个图片对象 Dim drs As List(Of DataRow) drs = DataTables("文件附件").Select("文件编号= \'" & rw("ID") & "\'") For Each dr As DataRow In drs rm = New prt.RenderImage rm.BreakBefore = prt.BreakEnum.Page rm.Image = dr.SQlLoadImage("附件") rm.Width = 160 rm.Height = 90 rm.Style.ImageAlign.TileHorz=True rm.Style.ImageAlign.TileVert=True rm.Style.ImageAlign.StretchHorz = True \'禁止图片水平拉伸 rm.Style.ImageAlign.StretchVert = True \'禁止图片水平拉伸 rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.Spacing.Bottom = 5 doc.Body.Children.Add(rm) \'将图片对象加入报表 Next Next \'doc.Preview() \'预览 运行效果为:
|
-- 作者:有点蓝 -- 发布时间:2021/1/7 16:11:00 -- rm.BreakBefore = prt.BreakEnum.Page去掉 |