以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]专业报表打印设置有关问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=727)

--  作者:blny
--  发布时间:2008/9/28 10:04:00
--  [讨论]专业报表打印设置有关问题

1.专来报表打印设置不选自定纸张...请大家帮手测试一下
2.专业报表如何将表中某列的数值如:10000转换为¥10,000.00格式及“壹万元整”大写格式
         


--  作者:贺老六
--  发布时间:2008/9/28 10:10:00
--  
1、我测试可以,也许你的打印机不支持自定义纸张吧:
 

Dim doc As New PrintDoc() \'定义一个报表
Dim
rt As prt.RenderText \'定义一个文本对象
doc.PageSetting.Width =
100 \'纸张宽度为100毫米
doc.PageSetting.Height =
120 \'纸张高度为120毫米
doc.Preview()
\'预览



2、有专门的转换函数

CUMoney

将阿拉伯数字转换为中文货币格式。

语法

CUMoney(Value)

Value:要转换的阿拉伯数字。

例如:

Dim Currency as String
Currency = CUMoney(
12345.12
)
Output.Show(Currency)

输出为:壹万贰千叁佰肆拾伍圆壹角贰分


--  作者:blny
--  发布时间:2008/9/28 10:46:00
--  

Dim doc As New PrintDoc \'定义一个报表
Dim rx As prt.RenderText \'定义一个文本对象
Dim rm As prt.RenderImage \'定义一个图形队形
doc.PageSetting.Width = 195 \'纸张宽度为195毫米
doc.PageSetting.Height = 102 \'纸张高度为102毫米
Dim x As Integer = 0 \'定义水平偏移参数
Dim y As Integer = 0 \'定义垂直偏移参数
Dim CurRow As Row = Tables("农业").Current

rx = new prt.RenderText
rx.Text = CurRow("年度")
rx.Style.FontSize = 16 \'字体大小为16磅
rx.x = 38+ x
rx.y = 20+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("月份")
rx.x = 60+ x
rx.y = 20+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("日")
rx.x = 70+ x
rx.y = 20+ y
doc.body.Children.Add(rx)


rx = new prt.RenderText
rx.Text = "XXXXX"  \'拨款单位
rx.x = 46+ x
rx.y = 26+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = "123456"
rx.x = 46+ x
rx.y = 32+ y
doc.body.Children.Add(rx)


rx = new prt.RenderText
rx.Text = "XXXXXXXXXXXXXXX"
rx.x = 46+ x
rx.y = 40+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_名称")
rx.x = 125+ x
rx.y = 26+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_账号")
rx.x = 125+ x
rx.y = 32+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_开户行")
rx.x = 125+ x
rx.y = 40+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("摘要")
rx.x = 32+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("支出_小计")
rx.x = 125+ x
rx.y = 61+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("大写金额")
rx.x = 45+ x
rx.y = 61+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("科目编码")
rx.x = 125+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("科目名称")
rx.x = 145+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

Dim doc As New PrintDoc \'定义一个报表
Dim rx As prt.RenderText \'定义一个文本对象
Dim rm As prt.RenderImage \'定义一个图形队形
doc.PageSetting.Width = 195 \'纸张宽度为195毫米
doc.PageSetting.Height = 102 \'纸张高度为102毫米
Dim x As Integer = 0 \'定义水平偏移参数
Dim y As Integer = 0 \'定义垂直偏移参数
Dim CurRow As Row = Tables("农业").Current

rx = new prt.RenderText
rx.Text = CurRow("年度")
rx.Style.FontSize = 16 \'字体大小为16磅
rx.x = 38+ x
rx.y = 20+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("月份")
rx.x = 60+ x
rx.y = 20+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("日")
rx.x = 70+ x
rx.y = 20+ y
doc.body.Children.Add(rx)


rx = new prt.RenderText
rx.Text = "XXXXX"  \'拨款单位
rx.x = 46+ x
rx.y = 26+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = "123456"
rx.x = 46+ x
rx.y = 32+ y
doc.body.Children.Add(rx)


rx = new prt.RenderText
rx.Text = "XXXXXXXXXXXXXXX"
rx.x = 46+ x
rx.y = 40+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_名称")
rx.x = 125+ x
rx.y = 26+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_账号")
rx.x = 125+ x
rx.y = 32+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("单位_开户行")
rx.x = 125+ x
rx.y = 40+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("摘要")
rx.x = 32+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("支出_小计")
rx.x = 125+ x
rx.y = 61+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("大写金额")
rx.x = 45+ x
rx.y = 61+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("科目编码")
rx.x = 125+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

rx = new prt.RenderText
rx.Text = CurRow("科目名称")
rx.x = 145+ x
rx.y = 65+ y
doc.body.Children.Add(rx)

doc.Preview() \'预览



自定义纸张。。我用易表设置的套打单据一直在用 
现想将易表的改为狐表  不想自定义纸张不能用 打印机是EPSON LQ635K
一选我原自定义纸张格式就变成其他格式纸张

 

大写转换
 

Dim Currency as String

Dim dx as String=Tables("农业").Current("支出_小计")  ’260,111.00

Currency = CUMoney(dx)

e.DataRow("大写金额") = currency


可在命令窗口正常反映
 但不知怎么在另一列"大写金额"显示出 不会弄事件请解说一下


 


--  作者:blny
--  发布时间:2008/9/28 10:52:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:一先自定义z纸张时出错图.jpg
图片点击可在新窗口打开查看

--  作者:贺老六
--  发布时间:2008/9/28 10:56:00
--  

如果是为了打印的需要,根本没需要增加一个大写金额列,只需在打印报表的时候:

rx.Text = CUMoney(CurRow("金额"))

如果一定要这么一列,请参考帮助文件“开发指南 - foxtable编程 - 计算代码”


关于自定义纸张,尝试一下:

Dim doc As New PrintDoc() \'定义一个报表
Dim rt As prt.RenderText \'定义一个文本对象
doc.Pagesetting.Paperkind = 0
doc.PageSetting.Width = 100 \'纸张宽度为100毫米
doc.PageSetting.Height = 120 \'纸张高度为120毫米
doc.Preview() \'预览

对于关键的问题,应该先单独测试,然后再整体编写代码。

[此贴子已经被作者于2008-9-28 10:56:17编辑过]

--  作者:blny
--  发布时间:2008/9/28 11:06:00
--  
另一种情况是:
图片点击可在新窗口打开查看此主题相关图片如下:自定义1.jpg
图片点击可在新窗口打开查看


选择"申请书"自定义格式纸张  按确定后自动变成"Letter"格式的纸张

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