2016-08-31 1 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-end-of-Access-report- (Access-2003)) , но у меня такая же проблема. –

+0

Эй, можете ли вы поместить debug.print «Я пойду сюда» в верхней части подстановки «Details_Format» и повторить попытку печати? Кажется, что этот суб не вызывается, когда вызывается действие печати, только когда запускается событие Open. Возможно, вам придется вручную вызывать юзер 'Details_Format' вручную в Sub, где вы печатаете. –

+0

Я попробовал ваше предложение. Изменения, которые я сделал для сброса iLine в report_open, не срабатывают, когда я пытаюсь сохранить его в формате PDF. Есть ли подпункт, который я могу вызвать, чтобы определить новое поколение отчета по печати или экспорту? –

ответ

0

Найдено решение. Пришлось вызвать pageHeaderSection_Print под , чтобы сбросить переменную iLine, когда отчет отформатирован для печати, теперь все работает так, как я хотел.