Foxtable(狐表)用户栏目专家坐堂 → [求助]求专业报表代码


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

主题:[求助]求专业报表代码

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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
[求助]求专业报表代码  发帖心情 Post By:2021/4/18 14:14:00 [只看该作者]

这是现有代码:
Dim doc As New PrintDoc '定义一个报表
Dim rx As new prt.RenderText '定义一个文本对象
Dim x As Integer = 0 '定义水平偏移参数
Dim y As Integer = 0 '定义垂直偏移参数
Dim CurRow As Row = Tables("基本信息").Current

rx = new prt.RenderText
rx.Text = CurRow("单位名称")
rx.x = 60 + x '设置坐标的时候,注意加上偏移参数
rx.y = 34 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("法人")
rx.x = 118 + x
rx.y = 44 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位地址")
rx.x = 60 + x
rx.y = 54 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '字体大小为16磅
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("邮政编码")
rx.x = 156 + x
rx.y = 54 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("联系电话")
rx.x = 70 + x
rx.y = 64 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
doc.body.Children.Add(rx)
'加入更多的打印对象....

Doc.PrinterName = e.Form.Controls("ComboBox1").text
doc.Print()

以下是纵向送入打印机的图片

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210418140437.jpg
图片点击可在新窗口打开查看
这样可以正常套打,可是横向送入打印机时,我应该如何修改代码?以下是横向送入打印机的图片:

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

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210418140355.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2021/4/18 14:16:58编辑过]

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/18 21:42:00 [只看该作者]

把文字旋转过来打印,具体细节自行调整

Dim doc As New PrintDoc '定义一个报表
doc.PageSetting.Landscape = True
Dim rx As new prt.RenderText '定义一个文本对象
Dim x As Integer = 0 '定义水平偏移参数
Dim y As Integer = 0 '定义垂直偏移参数
'Dim CurRow As Row = Tables("基本信息").Current

rx = new prt.RenderText
rx.Text = ("单位名称")
rx.x = 34 + x '设置坐标的时候,注意加上偏移参数
rx.y = "Parent.Height -  14" '34+ y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = ("法人")
rx.x = 44 + x
rx.y = "Parent.Height -  64" '44 + y
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = ("单位地址")
rx.x = 54 + x
rx.y = "Parent.Height -  14"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = ("邮政编码")
rx.x = 54 + x
rx.y = "Parent.Height -  114"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = ("联系电话")
rx.x = 64 + x
rx.y = "Parent.Height -  14"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)
'加入更多的打印对象....
    
doc.Preview


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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2021/4/19 11:03:00 [只看该作者]

 首先感谢,有点蓝老师的帮忙。这是我完善后的代码:
Dim doc As New PrintDoc '定义一个报表
Dim rx As new prt.RenderText '定义一个文本对象
Dim CurRow As Row = Tables("基本信息").Current

rx = new prt.RenderText
rx.Text = CurRow("单位名称")
rx.x = 34
rx.y = "Parent.Height -155"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("法人")
rx.x = 44
rx.y = "Parent.Height -170"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位地址")
rx.x = 54
rx.y = "Parent.Height -155"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("邮政编码")
rx.x = 54
rx.y = "Parent.Height -210"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("联系电话")
rx.x = 64
rx.y = "Parent.Height -145"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)
'加入更多的打印对象....
    
Doc.PrinterName = e.Form.Controls("ComboBox1").text
doc.Print()

其次,出现新问题请老师给予帮助。那就是文字旋转角度问题。下图是上述代码打印结果。

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
可是如果我需要下图打印结果,我应该如何修改代码呢?

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
其实就是文字的旋转90度与270度的问题。


[此贴子已经被作者于2021/4/19 11:04:21编辑过]

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 11:15:00 [只看该作者]

TextAngle设置文本旋转角度,负值为顺时钟,正值为逆时针。

rx = new prt.RenderText
rx.Text = ("单位名称")
rx.x = 150 ‘具体位置自己测试调整
rx.y = 14 
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 14 '字体大小为16磅
rx.Style.TextAngle = -90
doc.body.Children.Add(rx)

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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2021/4/21 21:27:00 [只看该作者]

感谢!有点蓝老师的帮助,可是在这里又遇到二个问题:
第一个问题是,日期时间只取年或月或日,我当如何修改:rx.Text = **********这句?
第二个问题是,rx.Text = CurRow("单位地址")只打印前六个汉字,其余的不打印或者另起一行打印,又或者只打印除前六个汉字之外的汉字,我又应该如何完善呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


[此贴子已经被作者于2021/4/21 21:31:20编辑过]

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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2021/4/21 22:32:00 [只看该作者]

第一个问题已经解决,代码是这样的:rx.Text = Format(CurRow("日期时间一"),"yyyy")
也不知道是否完善,还请各位老师指点。

现在就剩下第二问题了。


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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2021/4/21 23:00:00 [只看该作者]

第二个问题,下面的这个代码应当如何完善?

rx = new prt.RenderText
rx.Text = Output.Show(CurRow("地址").SubString(0,6))  ‘这句如何修改完善?
rx.x = 33
rx.y = "Parent.Height -155"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

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


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2021/4/21 23:06:00 [只看该作者]

问题好像解决了哦!
这个自己修改后的代码:

rx = new prt.RenderText
rx.Text = CurRow("地址").SubString(0,6)  '获得左边6个字符 
rx.x = 33
rx.y = "Parent.Height -155"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 12 '字体大小为16磅
rx.Style.TextAngle = 90
doc.body.Children.Add(rx)

不知道是否妥当,还请各位老师指点。

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/22 8:49:00 [只看该作者]

测试没有问题就行

 回到顶部