Foxtable(狐表)用户栏目专家坐堂 → 用画板画好的印章图片能否放入专业报表的table里面?


  共有2318人关注过本帖树形打印复制链接

主题:用画板画好的印章图片能否放入专业报表的table里面?

帅哥哟,离线,有人找我吗?
ljh29206
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
用画板画好的印章图片能否放入专业报表的table里面?  发帖心情 Post By:2019/3/21 9:31:00 [只看该作者]

'印章的图片大小为60*60  Functions.Execute("印章","放置的控件","姓名","日期")
Dim x,y As Integer
Dim p1 As WinForm.Painter = Args(0)  '第一个参数是控件
Dim xingming As String = Args(1)  '第二个参数是姓名
Dim riqi As Date = Args(2)   '第三个参数是日期
Dim pn As New Pen(Color.Red,3)
Dim fnt2 As New Font("宋体",12)  '姓名字体10号
Dim fnt1 As New Font("宋体",10)  '姓名字体10号
Dim fnt As New Font("宋体",8)  '日期字体7号
Dim g1 As Graphics = p1.Graphics
Dim rqistr As String  = format(riqi,"yy.MM.dd")
If riqi > #01/01/2015# Then
g1.Clear(SystemColors.Control)
g1.DrawString(rqistr,fnt,Brushes.Red,6,25) '日期在中间
'g1.DrawRectangle(Pens.red,3,22,53,13)   '画个方框
g1.DrawLine(Pens.Red,3,23,56,23)
g1.DrawLine(Pens.Red,3,36,56,36)
If xingming.Length =1 Then
g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)   
ElseIf xingming.Length =2 Then
    g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)   
    g1.DrawString(xingming.SubString(1,1) ,fnt2,Brushes.Red,19,38)   '上下各1个字
ElseIf xingming.Length =3 Then
    g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)   
    g1.DrawString(xingming.SubString(1,2) ,fnt1,Brushes.Red,14,38)   '上1个字下2个字
ElseIf xingming.Length = 4 Then
    g1.DrawString(xingming.SubString(0,2) ,fnt1,Brushes.Red,14,8)   
    g1.DrawString(xingming.SubString(2,2) ,fnt1,Brushes.Red,14,38)   '上下各2个字
End If
g1.DrawEllipse(Pens.red,2,2,55,55)  '画个圆圈
p1.Repaint()
Else
g1.Clear(SystemColors.Control)
p1.Repaint()
End If

请教以上是 在画板里面画印章  ,请问如何放入到 报表里面?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/21 10:30:00 [只看该作者]

Painter

Painter表示绘图板,我们可以通过代码在其中绘制图形。
Painter采用GDI+绘制图形,GDI+的内容很多,可以写成一本厚厚的书,我们不可能在这里详细地介绍GDI+,但是会介绍其中最基础的部分。

属性

  • Graphics

    返回一个Graphics对象,我们所有的图形绘都是通过这个对象来完成的。
     
  • Image

    返回绘制好的图形。
Dim doc As New PrintDoc '定义一个报表对象
Dim
 rm As New prt.RenderImage '定义一个图片对象
rm.Image = 
p1.Image '设置图片
rm.Style.Borders.All = New prt.Linedef(1, Color.Red) '设置边框
doc.Body.Children.Add(rm) 
'将图片对象加入报表
Doc.Preview() 
'预览


 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2019/3/21 10:55:00 [只看该作者]

蓝版 ,问下能否 虚拟一个控件出来,先放着图片,再生成报表?


调用内部函数先在虚拟控件生成图片 
Functions.Execute("印章","放置的控件","姓名","日期")

这个虚拟的控件怎么定义? ,就是直接在命令窗口怎么调试,直接获取结果?

[此贴子已经被作者于2019/3/21 10:57:53编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/21 11:10:00 [只看该作者]

无法虚拟,Foxtable的控件必须有一个窗口才能活。

专业报表不需要控件也可以画图的,参考:http://www.foxtable.com/webhelp/scr/1232.htm

 回到顶部
帅哥哟,离线,有人找我吗?
ljh29206
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2019/3/21 11:53:00 [只看该作者]

Dim x,y As Integer
Dim p1 As New prt.RenderGraphics()
Dim xingming As String  = "周润发"  '第二个参数是姓名
Dim riqi As Date    '第三个参数是日期
riqi = #01/01/2019#
Dim pn As New Pen(Color.Red,3)
Dim fnt2 As New Font("宋体",12)  '姓名字体10号
Dim fnt1 As New Font("宋体",10)  '姓名字体10号
Dim fnt As New Font("宋体",8)  '日期字体7号
Dim g1 As Graphics = p1.Graphics
Dim rqistr As String  = format(riqi,"yy.MM.dd")
If riqi > #01/01/2015# Then
    g1.DrawString(rqistr,fnt,Brushes.Red,6,25) '日期在中间
    'g1.DrawRectangle(Pens.red,3,22,53,13)   '画个方框
    g1.DrawLine(Pens.Red,3,23,56,23)
    g1.DrawLine(Pens.Red,3,36,56,36)
    If xingming.Length =1 Then
        g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)
    ElseIf xingming.Length =2 Then
        g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)
        g1.DrawString(xingming.SubString(1,1) ,fnt2,Brushes.Red,19,38)   '上下各1个字
    ElseIf xingming.Length =3 Then
        g1.DrawString(xingming.SubString(0,1) ,fnt2,Brushes.Red,19,5)
        g1.DrawString(xingming.SubString(1,2) ,fnt1,Brushes.Red,14,38)   '上1个字下2个字
    ElseIf xingming.Length = 4 Then
        g1.DrawString(xingming.SubString(0,2) ,fnt1,Brushes.Red,14,8)
        g1.DrawString(xingming.SubString(2,2) ,fnt1,Brushes.Red,14,38)   '上下各2个字
    End If
    g1.DrawEllipse(Pens.red,2,2,55,55)  '画个圆圈
End If

doc.Body.Children.Add(p1)

蓝版 ,再请教下  
以上代码是OK


如果我 在报表里面  画了 一个table  怎么把P1赋值 进入 table 里面  我下边的写法错误,求指点
rt.Cells(0,0).Image = GetImage(p1)

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/21 12:04:00 [只看该作者]


 回到顶部