以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 用画板画好的印章图片能否放入专业报表的table里面? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132400) |
-- 作者:ljh29206 -- 发布时间:2019/3/21 9:31:00 -- 用画板画好的印章图片能否放入专业报表的table里面? \'印章的图片大小为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 请教以上是 在画板里面画印章 ,请问如何放入到 报表里面?
|
-- 作者:有点蓝 -- 发布时间:2019/3/21 10:30:00 -- Painter Painter表示绘图板,我们可以通过代码在其中绘制图形。 属性
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 -- 发布时间:2019/3/21 10:55:00 -- 蓝版 ,问下能否 虚拟一个控件出来,先放着图片,再生成报表? 调用内部函数先在虚拟控件生成图片 Functions.Execute("印章","放置的控件","姓名","日期") 这个虚拟的控件怎么定义? ,就是直接在命令窗口怎么调试,直接获取结果? [此贴子已经被作者于2019/3/21 10:57:53编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/21 11:10:00 -- 无法虚拟,Foxtable的控件必须有一个窗口才能活。 专业报表不需要控件也可以画图的,参考:http://www.foxtable.com/webhelp/scr/1232.htm
|
-- 作者:ljh29206 -- 发布时间: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)
|
-- 作者:有点蓝 -- 发布时间:2019/3/21 12:04:00 -- 参考:http://www.foxtable.com/webhelp/scr/1208.htm |