我是在还未调出报表时就提出了错误哟,(即是在将Datagrid控件内的数据传给DataReport时,出来的报表是什么都没有的,包括打印和导出按扭都没有),那怎么设置打印机呢,必须要在我自己窗体上添加的COMMAND打印控件的CLICK事件中通过代码来写吧,那么请问具体怎么实现呢?

解决方案 »

  1.   

    1.连接datareport:
    2.设置dataenvironment建立command
    3.datareport的datasource连接dataenvironment,datamember连接command,command的数据源与datagrid数据要相同
    4.窗体的command_click,直接调用datareport.show
      

  2.   

    这些数据源连接问题我知道,我没用dataenvironment,我直接用ADODRECORDSET作为报表数据源的
    现在的问题是,在点击打印按扭时提示:报表宽度大于纸张宽度,然后弹出的报表就是空的,也不能进行任何操作。部分代码如下:
    private sub 打印_click ()
      datareport.show
    .........
    end sub
      

  3.   

    在DATAREPRT1。SHOW之前将打印机纸张设置为足过大
    你可以设置为自定仪纸张,根据field 的definedsize属性来确定报表需要的纸张的宽度
    dim |rptwidth as long
    rptwidth=600  
    for i=0 to rs.fields.count
          rptwidth=rptwidth+rs.fields(i).definedsize
    next i
      

  4.   

    你要注意datareport有一个width还有一个reportwidth,首先要保证width大于reportwidth,还有leftmargin以及rightmargin.因为你添加控件后还要加上leftmargin以及rightmargin,先把他们设为零试试。
      

  5.   

    我觉得VB自带的功能太弱了,因为楼上的朋友给出的答复不令人满意,太费神了,还是自编打印程序的好,用printer对象,再编程设置诸如:printer.papersize,printer.font等等。那不就OK啦。
      

  6.   

    gzqg(星野风流) 说的没错
    我昨天也碰到这个问题,把leftmargin以及rightmargin改小了就行了
      

  7.   

    把报表里面连接command1的属性药删除才行,只留field属性阿。
      

  8.   

    MarGo(Boll★★★) :我的原代码比较多,而且还有一些相关的窗体和数据库要一起调试才比较清楚问题的所在,所以我想把原代码直接发给你看看行吗?如果可以的话留个邮箱好吗?其他愿意赐教的朋友也可以跟我留一个邮箱,谢谢了!
      

  9.   

    把源码给我看看吧,我最近也在作datareport报表,碰到宽度过大的问题都解决了
    [email protected]
      

  10.   

    我也遇到过你的问题:
    我的方法是设置打印机的纸张,LQ1600K 的话你设置成 最大纸型A2纸,估计15个字段没问题了,不行调整TextBox宽度;
    注:我刚开始遇到这问题时设手工设置纸型为自定义(很大的纸型),但datareport不认,我在代码段设纸型也不认,没办法只能手工设置打印机提供的纸型。
      

  11.   

    同意 Athoncj(阿龙) 的说法
    直接设置打印机的纸张大小就可以了
      

  12.   

    你可以试试EtCell报表控件,或许能帮你解决这个问题!
    http://www.etcell.com/
    EtCell SDK文档地址:
    http://www.etcell.com/EtCell/
    是EtCell报表控件的详细SDK!
    去看看吧,真的不错!
      

  13.   

    我有17个字段,而且很多字段类型是TEXT(ACCESS数据库),所以字段内容可能比较长
    我是手工设置A2也不能全部打印出来,即使设置为自定义最大值也不能完全打印出来.我打印的是DATAGRID中的内容,唯一方法就是在打印前手动将DATAGRID中的列宽根据显示出来的字段宽适当缩小,经过这样的手工操作之后有时候可以勉强打印出来,但有时候也不行.
    谁有办法能动态调整DATAGRID的列宽呢?
      

  14.   

    gzqg(星野风流) ,谢谢你,第一次到论坛,就因为你的提示解决了我一个好久都没有解决的问题,真的好感谢你!,但是,我还想问:怎样消除报表右边灰色的那一部分呢?
      

  15.   

    jobsccnu(jobsccnu) 
    回复发到短消息上了!
      

  16.   

    [email protected]
    我给发两段程序
      

  17.   

    TO MarGo(Boll★★★) :我把原代码发给你了,麻烦你看看!