以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]专业报表预览时能否加入背景图片  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119550)

--  作者:天一生水
--  发布时间:2018/5/27 9:01:00
--  [求助]专业报表预览时能否加入背景图片
在专业报表预览时加入背景图片,但是提示“未将对象引用设置到对象的实例。”
能否加入背景图,每页都有?
请指教,谢谢!

图1:当前的预览

图片点击可在新窗口打开查看此主题相关图片如下:image 2.jpg
图片点击可在新窗口打开查看


预览代码如下:
e.Form.ResumeRedraw
e.Form.StopRedraw
Dim doc As New PrintDoc \'定义一个报表

doc.PageSetting.Width = 230 \'纸张宽度为100毫米
doc.PageSetting.Height = 127 \'纸张高度为120毫米
Dim rx As prt.RenderText \'定义一个文本对象
Doc.PageSetting.LeftMargin = 19 \'设置左边距
Doc.PageSetting.RightMargin = 20 \'设置右边距
Doc.PageSetting.TopMargin = 24 \'设置上边距
Doc.PageSetting.BottomMargin = 12 \'设置下边距

Dim x As Integer = val(e.Form.Controls("TextBox01").Value) \'定义水平偏移参数
Dim y As Integer = val(e.Form.Controls("TextBox02").Value) \'定义垂直偏移参数
Dim rm As prt.RenderImage \'定义一个图形队形

rm.Image = getImage("EMS套打.jpg")
rm.Width = "100%Parent" \'设置尺寸为容器(页面)尺寸
rm.Height = "100%Parent" 
rm.Style.ImageAlign.KeepAspectRatio = True \'保持比例
doc.Body.Children.Add(rm) \'将图片对象加入报表

With Tables("EMS编辑_table1")
    For Each Currow As Row In .GetCheckedRows
        
        Dim rep As New prt.RenderEmpty \'定义一个新的空对象
        rep.BreakBefore = prt.BreakEnum.Page \'打印前换页
        doc.Body.Children.Add(rep ) \'加入到报表中
        
        rx = new prt.RenderText
        rx.Text = CurRow("年")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 70 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
        
        rx = new prt.RenderText
        rx.Text = CurRow("月")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 82 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
        
        ......(中间省略)
        
        rx = new prt.RenderText
        rx.Text = CurRow("收件人邮政编码_6")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 204 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 68 + y
        doc.body.Children.Add(rx)
    Next
End With

_MyDoc = Doc

_MyRDL.Document = _MyDoc
Dim p As WinForm.Panel = e.Form.controls("Panel1")
If p.basecontrol.controls.count = 0 Then
    _MyRDL.Dock = 5
    p.BaseControl.Controls.Add(_MyRDL)
    _MyRDL.Toolbars.File.Visible = False
End If

_MyDoc.Generate()  \'这句替代 doc.Preview() \'预览
e.Form.ResumeRedraw


[此贴子已经被作者于2018/5/27 10:42:39编辑过]

--  作者:有点甜
--  发布时间:2018/5/27 15:17:00
--  

试试水印

 

http://www.foxtable.com/webhelp/scr/1198.htm

 


--  作者:天一生水
--  发布时间:2018/5/27 20:56:00
--  
谢谢甜老师!
可以作为背景了,但是没有居中充满。
请帮忙看一下加黑的代码,

图片点击可在新窗口打开查看此主题相关图片如下:image 1.png
图片点击可在新窗口打开查看

e.Form.ResumeRedraw
e.Form.StopRedraw
Dim doc As New PrintDoc \'定义一个报表

doc.PageSetting.Width = 230 \'纸张宽度为100毫米
doc.PageSetting.Height = 127 \'纸张高度为120毫米
Dim rx As prt.RenderText \'定义一个文本对象
Doc.PageSetting.LeftMargin = 19 \'设置左边距
Doc.PageSetting.RightMargin = 20 \'设置右边距
Doc.PageSetting.TopMargin = 24 \'设置上边距
Doc.PageSetting.BottomMargin = 12 \'设置下边距

Dim x As Integer = val(e.Form.Controls("TextBox01").Value) \'定义水平偏移参数
Dim y As Integer = val(e.Form.Controls("TextBox02").Value) \'定义垂直偏移参数

Dim rm As prt.RenderImage \'定义一个图形队形
rm.Image = getImage("EMS套打.jpg")
rm.Width = 230 \'宽度等于页面宽度
rm.Height = 127 \'高度等于页面高度
Doc.WaterMark = rm \'作为水印使用


With Tables("EMS编辑_table1")
    For Each Currow As Row In .GetCheckedRows
        
        Dim rep As New prt.RenderEmpty \'定义一个新的空对象
        rep.BreakBefore = prt.BreakEnum.Page \'打印前换页
        doc.Body.Children.Add(rep ) \'加入到报表中
        
        rx = new prt.RenderText
        rx.Text = CurRow("年")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 70 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
        
        rx = new prt.RenderText
        rx.Text = CurRow("月")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 82 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
        
        ......
        
        rx = new prt.RenderText
        rx.Text = CurRow("收件人邮政编码_6")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 204 + x \'设置坐标的时候,注意加上偏移参数
        rx.y = 68 + y
        doc.body.Children.Add(rx)
    Next
End With

_MyDoc = Doc

_MyRDL.Document = _MyDoc
Dim p As WinForm.Panel = e.Form.controls("Panel1")
If p.basecontrol.controls.count = 0 Then
    _MyRDL.Dock = 5
    p.BaseControl.Controls.Add(_MyRDL)
    _MyRDL.Toolbars.File.Visible = False
End If

_MyDoc.Generate()  \'这句替代 doc.Preview() \'预览
e.Form.ResumeRedraw

--  作者:有点甜
--  发布时间:2018/5/27 22:40:00
--  

参考

 

Dim doc As New PrintDoc \'定义一个报表对象
Dim rm As New prt.RenderImage \'定义一个图片对象
rm.Image = GetImage("d:\\test.jpg") \'设置图片
rm.Width = 230 \'宽度等于页面宽度
rm.Height = 127 \'高度等于页面高度
rm.x = 0
rm.y = 0

\'rm.Style.ImageAlign.StretchHorz = False \'禁止图片水平拉伸
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'居中显示
Doc.WaterMark = rm \'作为水印使用
Doc.Preview() \'预览