2016-08-31 108 views
0

我在报告中添加了VBA以在发票中包含空白行,从here得到此代码。打印预览显示我想要的空白行,但是当我想将其导出为PDF或打印报告时,它会向我显示不可见的文本(而不是仅在空白行中)。我编辑了原始代码来重置增量编号,但这只适用于从报告视图切换到打印预览时的问题(这里的问题也很原始,我想在打印或导出它时也会重新查询报告并因此解决问题,但无济于事)。打印预览中显示缺少访问报告打印输出(或PDF)

这是给我的空行的代码:

Option Compare Database 
Option Explicit 
Const iLines As Integer = 15 
Private iTotal As Integer 

     ' code added to make count able to reset on report load 
     Private iLine As Integer 

Private Sub Report_Open(Cancel As Integer) 
    ' get total record count 
    iTotal = DCount("*", "OrderLine", "fkOrderID = " & TempVars!tempOrderID) 

     ' code added to reset count 
     iLine = 0 

End Sub 
Private Sub Details_Format(Cancel As Integer, _ 
          FormatCount As Integer) 

     ' code added to reset visibility 
     Me!Item.Visible = True 
     Me!qty.Visible = True 
     Me!CalcPrijs.Visible = True 
     Me!TotPrijs.Visible = True 

    ' increment iLine on each detail format 
    iLine = iLine + 1 
    If iLine < iTotal Then 
    ' do nothing ... print as usual 
    ElseIf iLine = iTotal Then 
    ' if there are more lines to print, set the 
    ' NextRecord property to false, preventing 
    ' the report from exiting prematurely 
    If iLine < iLines Then Me.NextRecord = False 
    Else 
    ' changed this to make text invisible instead of white 
    Me!Item.Visible = False 
    Me!qty.Visible = False 
    Me!CalcPrijs.Visible = False 
    Me!TotPrijs.Visible = False 
    ' prevent report from advancing past last row 
    ' until all of blank lines has have printed 
    If iLine < iLines Then Me.NextRecord = False 
    End If 
End Sub 

我在这里失去了一些东西?我希望一个好看的打印预览会给我一个很好的打印输出。有没有一种方法可以在不损失打印输出的情况下获得额外的空白行?我添加了几张照片来澄清我想要的内容。

打印预览 Print Preview

PDF输出 PDF output

+0

我也尝试过[这里](http://windowssecrets.com/forums/showthread.php/93448-Adding-extra-lines-at-e- end-of-Access-report-(Access-2003)) ,但我得到同样的问题。 –

+0

嘿,你可以在'Details_Format'子目录的顶部添加一个debug.print“我要去这里”并再次尝试打印操作吗?当打印操作被调用时,它似乎不会被调用,只有在Open事件触发时。您可能需要在要打印的小组中手动调用“Details_Format”子集。 –

+0

我试过你的建议。当我尝试将其保存为PDF时,我在report_open中重置iLine所做的更改不会触发。是否有我可以打电话来确定印刷或出口报告的新一代? –

回答

0

找到了解决办法。当报告格式化为打印时,必须致电pageHeaderSection_Print sub 重置iLine变量,现在所有事情都按我的意愿工作。