以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表套打问题:绑定了表 数据和二进制图片数据没有显示出来 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159741) |
-- 作者:李孝春 -- 发布时间:2021/1/6 16:20:00 -- 专业报表套打问题:绑定了表 数据和二进制图片数据没有显示出来 当前有两个表 一个是图片信息表 一个是文件附件表 两个表以ID字段为关联 图片信息表中 有 ID 作者 单位 主题等字段 文件附表中 有 ID 文件名称 附件(二进制列) ocr值等字段 在图片信息表中增加了一条id为112233的数据 同时在文件附表中增加了id为112233的 名称为1.jpg 2.jpg 3.jpg 4.jpg的图片文件 怎么实现专业报表中对应的打印文件呢? 当前专业报表代码如下:运行效果显示一片空白 没有任何数据显示 【绑定数据表,代码怎么优化实现根据图片信息表中当前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 Dim rw As Row = tbl.Rows(i) \'Dim rt As prt.RenderText \'定义一个文本对象 Dim rm As New prt.RenderImage \'定义一个图片对象 Dim rt00 As New prt.RenderTable() \'定义一个表格对象 Dim ra As New prt.RenderArea \'定义一个容器 Rows = Tables("图片信息").Rows(i).DataRow.GetChildRows("ID") For r As Integer = 0 To Rows.Count - 1 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 rm.Image = Tables("文件附件").Current.DataRow.SQlLoadImage("附件") 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.KeepAspectRatio=True rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 doc.Body.Children.Add(rm) \'将图片对象加入报表 Next rt00.x=25 rt00.y=120 rt00.Width = 160 \'表宽为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.white \'字符颜色设为红色 rt00.Cells(0,1).Text=rw("对象") rt00.Cells(0,1).Style.TextColor = Color.white \'字符颜色设为红 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 \'垂直居中 rt00.Cells(1,0).Text="拍摄作者" rt00.Cells(1,0).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt00.Cells(1,0).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(1,0).Style.TextColor = Color.white \'字符颜色设为红色 rt00.Cells(1,1).Text=rw("作者") rt00.Cells(1,1).Style.TextColor = Color.white \'字符颜色设为红 rt00.Cells(1,1).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(1,1).Style.TextAlignHorz = prt.AlignHorzEnum.left \'水平居中 rt00.Cells(1,1).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(2,0).Text="拍摄时间" rt00.Cells(2,0).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(2,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt00.Cells(2,0).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(2,0).Style.TextColor = Color.white \'字符颜色设为红色 rt00.Cells(2,1).Text=rw("时间") rt00.Cells(2,1).Style.TextColor = Color.white \'字符颜色设为红 rt00.Cells(2,1).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(2,1).Style.TextAlignHorz = prt.AlignHorzEnum.left \'水平居中 rt00.Cells(2,1).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(3,0).Text="拍摄主题" rt00.Cells(3,0).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(3,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt00.Cells(3,0).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(3,0).Style.TextColor = Color.white \'字符颜色设为红色 rt00.Rows(3).Height = 8 \' rt00.Rows(1).Height = 4 rt00.Rows(2).Height = 4 rt00.Rows(0).Height = 4 rt00.Cells(3,1).Text=rw("主题") rt00.Cells(3,1).Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体 rt00.Cells(3,1).Style.TextAlignHorz = prt.AlignHorzEnum.left \'水平居中 rt00.Cells(3,1).Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt00.Cells(3,1).Style.TextColor = Color.white \'字符颜色设为红色 doc.Body.Children.Add(rt00) \'将表格对象加入到报表中 \'ra.Children.Add(rt00) \'加入到容器中 Doc.Body.ChildRen.Add(ra) Next doc.Preview() \'预览 |
-- 作者:有点蓝 -- 发布时间:2021/1/6 16:24:00 -- 使find查询获取附件表对应的行 |
-- 作者:李孝春 -- 发布时间:2021/1/6 16:44:00 -- 回复:(有点蓝)使find查询获取附件表对应的行 试了一下还是没有能够解决 还得麻烦老师指导下 当前有两个问题: 1个是怎么查找数据并显示出来 专业报表代码没有显示任何数据 2个是二进制图片在专业报表中怎么直接引用? rm.Image = Tables("文件附件").Current.DataRow.SQlLoadImage("附件")
|
-- 作者:有点蓝 -- 发布时间:2021/1/6 16:46:00 -- http://www.foxtable.com/webhelp/topics/0396.htm |
-- 作者:有点蓝 -- 发布时间:2021/1/6 16:48:00 -- Dim dr As DataRow dr = DataTables("文件附件").Find("id = \'" & rw("id") & "\'") if dr isnot nothing then rm.Image = dr.SQlLoadImage("附件") en dif
|
-- 作者:李孝春 -- 发布时间:2021/1/6 17:25:00 -- 回复:(有点蓝)Dim dr As DataRowdr... 有点蓝老师 在你的指导下 目前可以实现单张图片加载了 但是同一个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 rt As prt.RenderText \'定义一个文本对象 Dim rm As New prt.RenderImage \'定义一个图片对象 Dim rt00 As New prt.RenderTable() \'定义一个表格对象 Dim ra As New prt.RenderArea \'定义一个容器 With DataTables("文件附件") Dim dr As DataRow dr = .Find("文件编号= \'" & rw("ID") & "\'") ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 If dr IsNot Nothing Then rm.Image = dr.SQlLoadImage("附件") Else rm.Image = getImage("") 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.KeepAspectRatio=True rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center \'居中显示 rm.Style.ImageAlign.AlignVert = prt.ImageAlignHorzEnum.center \'居中显示 End With doc.Body.Children.Add(rm) \'将图片对象加入报表 rt00.x=25 rt00.y=120 rt00.Width = 160 \'表宽为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/6 17:29:00 -- http://www.foxtable.com/webhelp/topics/0400.htm |
-- 作者:李孝春 -- 发布时间:2021/1/6 17:49:00 -- 回复:(有点蓝)http://www.foxtable.com/webhelp/to... 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 以下内容是专门发给有点蓝浏览 代码进一步到这里 能够提示2这个检测结果 但是当前还是只显示了一张图片
[此贴子已经被作者于2021/1/6 18:09:01编辑过]
|