activerepost2如何定义纸张大小。我想横打,16K。急

解决方案 »

  1.   

    先在打印机属性中设置好纸张大小,报表设计时就可以看到正确的打印区域了。
        With ActiveReport1
            '设置纸张方向为横向打印
            .Printer.Orientation = ddOLandscape
            '设置纸张边距
            '.PageLeftMargin = 1 / 2.54 * 1440   '1cm
            '.PageRightMargin = 1 / 2.54 * 1440  '1cm
            '.PageTopMargin = 1 / 2.54 * 1440    '1cm
            '.PageBottomMargin = 1 / 2.54 * 1440 '1cm
        End With
      

  2.   

    Printer.Orientation = ddOLandscape怎么还是纵向的呀。.pageleftmargin等是什么的属性,activereport2当中提示没有该属性呀。
    能讲具体些吗。帮帮忙。还有:表格的内容有些长有些短。长的就会自动移到第二行。这样就有了新的问题,内容长的就会把表格撑为两行高,而内容少的还是原来的一样的一行高。这样,同行中表格就不整齐。了,请问解决这个问题。
    跪拜了。急。
      

  3.   

    Private Sub ActiveReport_ReportStart()
        Me.Printer.Orientation = ddOLandscape
        
    End Sub
      

  4.   

    在Active Report 的设计器中找到
    file 菜单然后选择page setup 中设置就可以  了
      

  5.   

    .pageleftmargin等是什么的属性,activereport2当中提示没有该属性呀。
    能讲具体些吗。帮帮忙。
    上面的那些属性在page setup 中设置
      

  6.   

    with ar
      .pagesettings.pageheight=N
      .pagesettings.pagewidth=N
      
    end with
    其实上边的都差不多了,不过不是直接在那个属性里.是在Pagesetting里.
      

  7.   

    还有:表格的内容有些长有些短。长的就会自动移到第二行。这样就有了新的问题,内容长的就会把表格撑为两行高,而内容少的还是原来的一样的一行高。这样,同行中表格就不整齐。了,请问解决这个问题。
    跪拜了。急这个问题如果你用画线的方法,那基本没法解决.如果你用Frame的话可以解决.
      

  8.   

    我是用acitvereport2当中的textbox近件来完成的。
    frame如何使用,没有datafield属性呀。
    你上面的
    with ar
      .pagesettings.pageheight=N
      .pagesettings.pagewidth=N
      
    end with
    N值是如何取得的。
      

  9.   

    不是这个意思.我的N就是代数具体的数了.就是自定义纸张大小啦.Frame就是一相框架.把你的Field放在每个格子.然后设置Frame的各个边框就可以达到表格的效果了.不过Frame这个东西用起来也是很烦的.其实你的问题并没有什么好的解决办法.你理解吧?
    如果每个格子都很长,你的纸的宽度是有限的.再者.还有一种方法:就是不要画线,你用Field的边框,但时你输出的时候要先计算最高的那个,然后让Detail里的Field全为那个最高的控件的高度就可以了.可在Format事件里写吧.这个你试验吧.我也没具体写过.给你个思路.
      

  10.   


    还有:表格的内容有些长有些短。长的就会自动移到第二行。这样就有了新的问题,内容长的就会把表格撑为两行高,而内容少的还是原来的一样的一行高。这样,同行中表格就不整齐。了,请问解决这个问题。
    跪拜了。急------------------------
    detail的高度随着具体字段的内容变化(例如,如果数据比较多,就会换行,这样detail底高度也增加了)
    你画线的时候随着detail的高度变化就可以了,不过这样也很麻烦
    ---------------------------------------------------------
    下面是我程序中用到的,你可以参考以下
    例如
    Private Sub Detail_BeforePrint()
       '* 如果段的高度大于预先社定的值,则重新画下面的线.
       If Detail.Height > 290 Then
          Line34.Y1 = Detail.Height - 5           '* 横线.
          Line34.Y2 = Line34.Y1
          Linel1.Y2 = Detail.Height                 '* 纵线.
          Linel2.Y2 = Detail.Height
          Linel3.Y2 = Detail.Height
       End If
    End Sub
      

  11.   

    谁有比较实用的源程序。最好不要不得activereport当中的例子。
      

  12.   

    最好不是activereport当中的例子。
      

  13.   

    画线是必需的,这是这个打印控件最麻烦的地方了
    先在报表中拖出一个ADO控件,命名为adoRPT
    Private Sub ActiveReport_Initialize()
       
        '...定义纸张大小和方向
       Me.Printer.PaperSize = 9   '标准A4为默认纸张
       Me.Printer.Orientation = ddOPortrait   
        Set adoRPT.Recordset = RS    'RS是自己设置的结果集
        Field1.DataField = "字段1"
        Field2.DataField = "字段2"
        Field3.DataField = "字段3"
        .....
     
      
    End Sub