以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]专业报表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68968)

--  作者:pcxjxjhkw
--  发布时间:2015/5/28 11:51:00
--  [求助]专业报表问题
1、专业报表打印前,如何设置从?页打印至?页。
如:从2页打印至第3页
2、如何获取指定纸张的宽和高?



谢谢

--  作者:Bin
--  发布时间:2015/5/28 11:54:00
--  
1.参考http://www.foxtable.com/help/topics/1221.htm
--  作者:pcxjxjhkw
--  发布时间:2015/5/28 11:56:00
--  
未得到解决。


--  作者:Bin
--  发布时间:2015/5/28 11:58:00
--  
参考2楼.搞不定就上例子.并且描述清楚具体问题.
--  作者:大红袍
--  发布时间:2015/5/28 11:59:00
--  

 1、试试

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
rt.Text = "Hello Foxtable" \'设置文本对象的内容
doc.Body.Children.Add(rt) \'将文本对象加入到报表
Doc.PageSetting.ToPageSettings.PrinterSettings.FromPage = 1
Doc.PageSetting.ToPageSettings.PrinterSettings.ToPage = 2

\'Doc.PageSetting.ToPageSettings.PrinterSettings.Copies = 50
Doc.Print

 


--  作者:大红袍
--  发布时间:2015/5/28 12:03:00
--  

2、

 

Dim prtdoc As new Printing.PrintDocument()
prtdoc.PrinterSettings.PrinterName = DefaultPrinter
For Each ps As System.Drawing.Printing.PaperSize In prtdoc.PrinterSettings.PaperSizes  \'生成打印机的纸张下拉列表
    output.show(ps.PaperName)
Next


--  作者:pcxjxjhkw
--  发布时间:2015/5/28 15:33:00
--  
问题2还未理解。
我再将问题描述详细一点。

有一ComboBox,其列表值为打印机支持的各类纸张。
选择不同的纸张时,在文本框中显示该纸张的高度和宽度。

谢谢

--  作者:pcxjxjhkw
--  发布时间:2015/5/28 15:35:00
--  
问题3:如何获得当前打印机的状态:就绪还是脱机

[此贴子已经被作者于2015/5/28 15:40:57编辑过]

--  作者:大红袍
--  发布时间:2015/5/28 15:44:00
--  
以下是引用pcxjxjhkw在2015/5/28 15:33:00的发言:
问题2还未理解。
我再将问题描述详细一点。

有一ComboBox,其列表值为打印机支持的各类纸张。
选择不同的纸张时,在文本框中显示该纸张的高度和宽度。

谢谢

 

看6楼,红色代码改成你自己计算机的名字。

 

循环的,就是计算机的所有纸张。

 

要获取某纸张的宽度和高度,就用属性 width和height


--  作者:大红袍
--  发布时间:2015/5/28 15:56:00
--  
以下是引用pcxjxjhkw在2015/5/28 15:35:00的发言:
问题3:如何获得当前打印机的状态:就绪还是脱机

[此贴子已经被作者于2015/5/28 15:40:57编辑过]

 

1、状态值

 

 其他状态= 1,
 未知,
 空闲,
 正在打印,
 预热,
 停止打印,
 打印中,
 离线

 

2、代码

 

Dim pname As String = DefaultPrinter

Dim printer = New System.Management.ManagementObject("win32_printer.DeviceId=\'" & pname & "\'")
printer.Get()
Dim result = val(printer.Properties("PrinterStatus").Value)
msgbox(result)