以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表生成的二维码怎么放入指定的表格单元格里面呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169247) |
-- 作者:cnsjroom -- 发布时间:2021/6/8 17:46:00 -- 专业报表生成的二维码怎么放入指定的表格单元格里面呢? 专业报表生成的二维码怎么放入指定的表格单元格里面呢? 代码如下: Dim doc As New PrintDoc \'定义一个报表 Dim tbl As Table = Tables("待办事项") Dim rg As prt.RenderGraphics Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight For i As Integer = tbl.TopRow To tbl.BottomRow Dim rw As Row = tbl.Rows(i) Dim ra As New prt.RenderArea \'定义一个容器 Dim rt As New prt.RenderTable() \'定义一个表格对象 doc.Body.Children.Add(rt) \'将表格对象加入到报表中 rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型 rt.Width = 150 \'表宽为150毫米 rt.Height = 150 \'表高为150毫米 rt.Rows.Count = 3 \'设置行数 rt.Cols.Count = 3 \'设置列数 Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 bar.Code = rw("uuid") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) Doc.Body.Children.Add(rg) Next Doc.Preview() \'预览报表 生成效果如下:
|
-- 作者:有点蓝 -- 发布时间:2021/6/8 20:05:00 -- http://www.foxtable.com/webhelp/topics/1208.htm |
-- 作者:cnsjroom -- 发布时间:2021/6/9 1:42:00 -- 回复:(有点蓝)http://www.foxtable.com/webhelp/to... 老师 现在是生成二维码并保存图片 然后调用图片 然后删除图片 有没有办法实现 生成二维码直接就显示图片在指定的单元格内 不需要先保存图片然后调用然后删除图片…… 当前代码如下: Dim doc As New PrintDoc Dim rt As New prt.RenderTable Dim ra As prt.RenderArea Dim rm As prt.RenderImage Dim rx As prt.RenderText Dim tbl As Table = Tables("待办事项") Dim rg As prt.RenderGraphics Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight For i As Integer = tbl.TopRow To tbl.BottomRow Dim rw As Row = tbl.Rows(i) bar.Code = "我就是我" rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) Bar.SaveImage("d:\\123.bmp") \'Doc.Body.Children.Add(rg) Next rt.Style.GridLines.All = New prt.LineDef rt.CellStyle.Spacing.All = 1 \'单元格内容和网格线距离1毫米 rt.Cols.Count = 3 \'总列数为3 ra = rt.Cells(1,0).Area \'引用单元格的容器 rm = New prt.RenderImage \'创建一个图片 ra.Stacking = prt.StackingRulesEnum.BlockLeftToRight \'排列方式改为从左到右 \'设置图片对象 rm.Image = GetImage("d:\\123.bmp") rm.Style.Spacing.Right = 2 \'距离右边的对象2毫米 \'设置文本对象 \'设置RenderArea,并将文本和图片加入到RenderArea ra.Children.Add(rm) \'加入图片到RenderArea中 doc.Body.Children.Add(rt) If FileSys.FileExists("d:\\123.bmp") Then \'如果指定的文件存在 FileSys.DeleteFile("d:\\123.bmp",2,2) \'则彻底删除之 End If Doc.Preview() |
-- 作者:有点蓝 -- 发布时间:2021/6/9 8:37:00 -- http://www.foxtable.com/webhelp/topics/2093.htm |
-- 作者:cnsjroom -- 发布时间:2021/6/9 14:48:00 -- 回复:(有点蓝)http://www.foxtable.com/webhelp/to... 还是得麻烦老师指导下了 学习研究了下 没有成功实现 谢谢! |
-- 作者:有点蓝 -- 发布时间:2021/6/9 15:02:00 -- Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode bar.Code = "我就是我" rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) ra = rt.Cells(1,0).Area \'引用单元格的容器 ra.Children.Add(rg) \' Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode bar.Code = "我就是我" rm = New prt.RenderImage rm.Image = bar.GetImage ra = rt.Cells(1,0).Area \'引用单元格的容器 ra.Children.Add(rm) \' |
-- 作者:cnsjroom -- 发布时间:2021/6/9 17:40:00 -- 回复:(有点蓝)Dim Bar As New BarCodeBuilderBar.S... 老师 要继续麻烦你一下 怎么解决这个错误呢?让二维码图片到指定的单元格里面显示出来。 红色部分代码启用的时候提示错误: 当前代码如下: \'\'\' Dim rg As prt.RenderGraphics Dim i1 As Integer Dim doc As New PrintDoc \'定义一个报表 Dim tbl As Table = Tables("待办事项") For i As Integer = tbl.TopRow To tbl.BottomRow Dim rw As Row = tbl.Rows(i) For i1 = 1 To 2 Dim ra As New prt.RenderArea \'定义一个容器 Dim rt As New prt.RenderTable() \'定义一个表格对象 Dim rx As New prt.RenderText \'定义一个文本对象 ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割 \'加入标题 rx.text = rw("单位") rx.Style.FontBold = True \'字体加粗 rx.Style.FontSize = 18 \'大体大小为16磅 rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 rx.Style.Spacing.Top = 3 \'和下面的对象(表格)距离3毫米 ra.Children.Add(rx) \'加入到容器中 Dim rx1 As New prt.RenderText \'定义一个文本对象 rx1.text = "党史学习教育和""牢记殷切嘱托、" rx1.Style.FontBold = True \'字体加粗 rx1.Style.FontSize = 18 \'大体大小为16磅 rx1.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 \'rx1.Style.Spacing.Bottom = 1 \'和下面的对象(表格)距离3毫米 ra.Children.Add(rx1) \'加入到容器中 Dim rx11 As New prt.RenderText \'定义一个文本对象 rx11.text = "忠诚干净担当、喜迎建党百年""专题教育 " rx11.Style.FontBold = True \'字体加粗 rx11.Style.FontSize = 18 \'大体大小为16磅 rx11.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 \'rx11.Style.Spacing.Bottom = 5 \'和下面的对象(表格)距离3毫米 ra.Children.Add(rx11) \'加入到容器中 Dim rx2 As New prt.RenderText \'定义一个文本对象 rx2.text = "工作提示单" rx2.Style.FontBold = True \'字体加粗 rx2.Style.FontSize = 18 \'大体大小为16磅 rx2.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 rx2.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米 ra.Children.Add(rx2) \'加入到容器中 \'指定行数?列数?列宽?行高 rt.Rows.Count = 6 \'设置总行数 rt.Height = 85 \'设置表格的高度 rt.Rows(0).Height = 10 \'设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行 rt.Rows(1).Height = 50 \'设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行 rt.Rows(2).Height = 10 \'设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行 rt.Rows(3).Height = 10 \'设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行 rt.Rows(4).Height = 5 \'设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行 \'设置合并单元格 rt.Cells(4,0).SpanCols = 5 \'第5行第2个单元格向右合并3列(用于显示uuid) rt.Cells(0,0).SpanCols = 5 \'第5行第2个单元格向右合并3列(用于显示uuid) rt.Cells(1,0).SpanCols = 5 \'第7行第1个单元格向右合并5列(用于显示备注) rt.Cells(2,1).SpanCols = 4 \'第7行第1个单元格向右合并5列(用于显示备注) rt.Cells(3,2).SpanCols = 3 \'第7行第1个单元格向右合并5列(用于显示备注) rt.Cells(2,0).SpanRows = 2 rt.Cells(2,1).SpanRows = 1 \'设置表格样式 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 rt.Style.GridLines.All = New prt.Linedef \'设置网格线 \'下面很简单,指定每一个单元格的内容 rt.Cells(0,0).Text= rw("待办人") & ":" rt.Cells(0,0).Style.TextAlignHorz=prt.AlignHorzEnum.Left rt.Cells(0,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) rt.Cells(1,0).Text= " 根据" & rw("事项名称") & "工作安排,您应于" & Format(rw("应办时间"),"yyyy年M月d日") & "提交" & rw("事项内容") & "。经查,您至今未完成。请于" & Format(rw("到期时间"),"yyyy年M月d日") & "前将电子档资料和纸质资料交到院B201办公室汇总归档。" rt.Cells(1,0).Style.TextIndent = 100 rt.Cells(1,0).Style.TextAlignVert=prt.AlignVertEnum.top rt.Cells(1,0).Style.LineSpacing=150 rt.Cells(1,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) rt.Cells(2,1).Text= rw("单位") & "党史学习教育领导小组" rt.Cells(2,1).Style.TextAlignHorz=prt.AlignHorzEnum.Center rt.Cells(2,1).Style.Font = New Font("宋体", 16, FontStyle.Bold) rt.Cells(3,2).Text= Format(Date.Today,"yyyy年M月d日") rt.Cells(3,2).Style.Font = New Font("宋体", 16, FontStyle.Bold) rt.Cells(3,2).Style.TextAlignHorz=prt.AlignHorzEnum.Center rt.Cells(3,2).Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米 rt.Cells(4,0).text="扫我在线提交" rt.Cells(4,0).Style.TextAlignVert=prt.AlignVertEnum.Bottom rt.Cells(4,0).Style.Font = New Font("黑体", 8, FontStyle.Bold) ra.Children.Add(rt) \'加入到容器中 Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode bar.Code ="http://127.0.0.1:9090/smrenwu.htm?a="& rw("待办人") & "&b=" & rw("事项名称") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) ra = rt.Cells(2,0).Area \'引用单元格的容器 \' ra.Children.Add(rg) \' If i1= 1 Dim rt2 As New prt.RenderText \'定义一个文本对象 rt2.Text = ".............................................................................................................................................................." \'设置文本对象的内容 ra.Children.Add(rt2) End If Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中 Next Next Doc.Preview() \'预览报表 如果将代码更换为 …… rt.Cells(4,0).Style.Font = New Font("黑体", 8, FontStyle.Bold) Doc.Body.ChildRen.Add(ra) Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode bar.Code ="http://127.0.0.1:9090/smrenwu.htm?a="& rw("待办人") & "&b=" & rw("事项名称") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) ra = rt.Cells(2,0).Area \'引用单元格的容器 \' ra.Children.Add(rg) \' If i1= 1 Dim rt2 As New prt.RenderText \'定义一个文本对象 rt2.Text = ".............................................................................................................................................................." \'设置文本对象的内容 ra.Children.Add(rt2) End If Doc.Body.ChildRen.Add(rt) \'将容器加入到报表中 [此贴子已经被作者于2021/6/10 1:06:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/6/10 8:38:00 -- dim ra2 = rt.Cells(2,0).Area \'引用单元格的容器 \' ra2.Children.Add(rg)
|
-- 作者:cnsjroom -- 发布时间:2021/6/10 9:22:00 -- 回复:(有点蓝) dim&nb... 麻烦老师继续指导下,我还是没有弄成功rt2……这个虚线的正确位置 …… rt.Cells(4,0).Style.Font = New Font("黑体", 8, FontStyle.Bold) Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.QRCode bar.Code ="http://127.0.0.1:9090/smrenwu.htm?a="& rw("待办人") & "&b=" & rw("事项名称") rg = new prt.RenderGraphics bar.DrawOnCanvas(rg.Graphics,0,0,0.5) Dim ra2 = rt.Cells(2,0).Area \'引用单元格的容器 \' ra2.Children.Add(rg) If i1= 1 Dim rt2 As New prt.RenderText \'定义一个文本对象 rt2.Text = ".............................................................................................................................................................." \'设置文本对象的内容 ra.Children.Add(rt2) End If Doc.Body.ChildRen.Add(ra) Doc.Body.ChildRen.Add(ra2) ‘提示添加的项目已经有所有者了’ Doc.Body.ChildRen.Add(rt) \'将容器加入到报表中 Next Next Doc.Preview() \'预览报表 运行效果如下:
|
-- 作者:有点蓝 -- 发布时间:2021/6/10 9:26:00 -- 文本对象的内容 ra.Children.Add(rt2) End If Doc.Body.ChildRen.Add(ra) Next Next Doc.Preview() \'预览报表
|