找回密码
 立即注册

QQ登录

只需一步,快速开始

walter

新手上路

1

主题

4

帖子

44

积分

新手上路

积分
44
  • 40

    金币

  • 主题

  • 帖子

最新发帖
walter
新手上路   /  发表于:2012-11-10 21:15  /   查看:8768  /  回复:5
ComponentOne你好:

        我在使用你们的vsprinter8插件的时候遇到一个小问题,描述如下:
        我的打印机设置成了 "adobe pdf"
        当运行到 "VSPrinter1.PrintDoc  这一句后系统会弹出来一个保存文件的对话框,请问这个对话框要怎样才能让它不出现?因为是批量生成pdf,我希望能直接保存到磁盘。
        我也用过你们的另一个插件 vsreport8,这个可以直接导出 PDF格式的文件,不过对汉字的支持不是很好,经常出现乱码,所以只能选择 adobe pdf 打印,如果乱码的问题你们可以解决,希望不吝赐教。
                     
        我是一个对计算机程序很感兴趣的分子生物学研究员,现在正在自学的语言是VB6.0,也许提的问题比较幼稚,也许我已经落后了这个世界10年,不过还是希望得到你们的一些指导。
        谢谢。

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-11-12 15:00:00
沙发
回复 1楼walter的帖子

walter 你好,
1.VS Printer 无法设置不弹出保存对话框。
可以直接导出到 RTF 文件。一定要生存 PDF 文件吗?下面是一段测试代码:

  1.      With vp
  2.    
  3.         .ExportFile = "E:\method1.rtf"
  4.         .ExportFormat = vpxRTF
  5.         
  6.    
  7.         .StartDoc
  8.    
  9.         .FontSize = 16
  10.         .FontBold = True
  11.         .Paragraph = "Text in tables exports to PLAIN RTF"
  12.         .Paragraph = ""
  13.         .FontBold = False
  14.         .FontSize = 11
  15.         
  16.         .StartTable
  17.         .AddTable "2000|^1300|>2000", "", ""
  18.         .TableCell(tcRows) = 10
  19.         For r = 1 To 10
  20.             For c = 1 To 3
  21.                 .TableCell(tcText, r, c) = "Cell " & r & " " & c
  22.                 If c Mod 2 <> r Mod 2 Then
  23.                     .TableCell(tcBackColor, r, c) = vbYellow
  24.                     .TableCell(tcForeColor, r, c) = vbBlue
  25.                     .TableCell(tcFontBold, r, c) = True
  26.                 End If
  27.             Next
  28.         Next
  29.         .EndTable
  30.    
  31.         .FontSize = 16
  32.         .FontBold = True
  33.         .Paragraph = ""
  34.         .Paragraph = ""
  35.         .Paragraph = ""
  36.         .Paragraph = "Or you can use tabs..."
  37.         .Paragraph = ""
  38.         .FontBold = False
  39.         .FontSize = 11
  40.         
  41.         For r = 1 To 5
  42.             .Text = String(r, Chr(9))
  43.             .Paragraph = "Margin now set to " &amp; .MarginLeft
  44.         Next
  45.         .MarginLeft = 1440
  46.         
  47.         .EndDoc
  48.         
  49.     End With
复制代码

2.关于 vsreport8 问题,我需要向开发人员核实,看是否能否解决。
3.请问使用的是正式版还是试用版?如果是试用版建议使用 C1 Winform 平台来实现该功能,使用相对 VB6 来说更加方便。
回复 使用道具 举报
walter
新手上路   /  发表于:2012-11-17 13:36:00
板凳
回复 2楼iceman的帖子

看见你的回复很惊喜,本来不报希望的,非常感谢你们,很专业。PDF生成是必须的,这是日常工作上的需求。这个问题我已经基本解决了。

再请教一个小问题:vsreport8怎么换页啊?也就是增加一页。
我做的vsreport8是使用模板的,也就是先画好一个.xml,里面留几个空text,生成报表的时候直接往里面填几个数据,现在的问题是一页数据填完后怎样增加新的一页重复原来的数据添加操作?
现在我的报表只能生成一页,也就是最后一次填入的数据。
一张纸大概只填写5个数据,写完就要换页,麻烦指教一下。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-11-20 16:30:00
地板
回复 3楼walter的帖子

walter 你好,
不用客气,没有帮到什么。
请问你的报表结构是?
XML 模板一共有几页呢?
回复 使用道具 举报
walter
新手上路   /  发表于:2012-11-20 21:19:00
5#
回复 4楼iceman的帖子

XML模板只有一页,报表没什么结构,就是vsflexgrid的一个数据表格做数据源,需要按照规定的格式每一行生成一页。
类似于小学生的填空题,填完一页要换下一页,但是我不会增加新的页面。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
walter
新手上路   /  发表于:2012-11-20 21:26:00
6#
哦,我没有用.DataSource,是一个格子一个格子填进去的,因为有需要计算的地方。
  1. With Form10.VSReport1
  2. For n = 1 To VSFlexGrid8.Rows - 1
  3.    .Load &quot;F:\编程VSFlexgrid\temp-COA\maxprep-for-qc.xml&quot;, &quot;maxprep-for-qc&quot;
  4.    .Fields.Item(&quot;ddh&quot;).Text = VSFlexGrid8.TextMatrix(n, 1)
  5. Next n
  6.    .Render Form10.VSPrinter1
  7.    Form10.Show 1, Me
  8. End With
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部