我初学 data report
比如有一个学生表student,内有字段 name,sex ,age等信息,现须打印学生证,要求连续打印,即一页上只显示一个学生的信息,有多少学生就显示多少页,怎么通过编程的方式解决?即要求在窗体上放一按钮,一点击它后就把记录集传到data report中,出来所有页的预览。

解决方案 »

  1.   

    虽然我不知道怎么强制分页,但是要实现你说的样子,我想办法还是有的。首先你打学生证,还希望连续走纸,那么首先得知道你需要用什么样的纸来打印了。你得把纸张定义成实际的纸张大小,才能实现预定效果。第二,如果要一页只显示一个学生的信息,那么你可以通过设置纸张、data report
    的页边距,使得一页只能显示一条记录,那么打印来就是一个学生的信息了。三,至于把记录集传到data report,出来所有页的预览。:
    If Rec.State <> 0 Then Rec.Close
    Rec.Open "select * from student", Conn, 1, 3
    Set datareport1.DataSource = Rec
    datareport1.Show================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================
      

  2.   

    to dent828(柳絮) :您说“设置纸张、data report的页边距”,我就是不知道怎么设置纸张及data report的页边距.请问怎么设置它们啊?我初学data report.to :: Fanks(铁面人  默认页面很大,而学生证很小,把细节部分拉大就对不上了。我不知怎么设置纸张大小,请指教。
      

  3.   

    1.打印学生证,那么打印的纸张是不是  不是A4的?应该是比A4小的多的纸张吧?那么你得让打印机的纸张是你要打的纸张大小,才能实现连续打印呀。向来代码里是能实现的,我一直没有调出来。用了很笨的办法:开始-设置-打印机-文件(菜单)-服务器属性(菜单项)-创建新格式。
    自定义好你打印学生正的纸张后(用尺子量好你的纸的长和宽),保存。
    然后把你用的打印机的纸张类型选为自定义的纸张。2.data report的页边距可以在代码里控制,也可以在属性页改变。说属性页的吧。data report的属性里,leftmagin是控制左页边距,rightmagin右页边距,topmagin顶边距。buttonmagin底部页边距。如果你只有两行的东西,要占满一页肯定是不可能的,那么,在纸张大小定好的情况下,我用上下页边距来占位置,实质是缩小纸张放文字的空间的大小。你觉得可以不?
    ================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================
      

  4.   

    按学生代号、名称分组,然后分组标头强制分页:在属性窗口设置ForcePageBreak = 1
      

  5.   

    谢谢 vbman2003(家人) ,在属性窗口设置ForcePageBreak = 1,已可实现一页只显示一个学生证,但页面大小不合适,会导致打印时走纸错误,请问怎么把data report的页面设置为我的学生证的大小呢?
      

  6.   

    简单直观的办法是设计前先在打印机中设置好你的纸张,如果打印机中没有你的纸张,可以在打印机目录下的“文件/服务器属性”中添加你的纸张。然后在“打印首选项”和“打印设置”中同时将你的纸张设置为默认纸张(不同打印机可能设置方法会有不同)。这样你在设计时打开DataReport就是你实际纸张的大小。
      

  7.   

    to: vbman2003(家人) ,因为程序不定在哪台机器上用,所以最好是在设计时就能定好纸张大小以后不用变就好了。用您的方法设计好纸张大小后,在别的机器上运行时还须在那台机器上也增加一个自定义纸张吧?另外“打印首选项”我倒是找到了,但“打印设置”在哪里?