Принтер с надписью начинает печатать пустые страницы на больших рабочих местах
Я сталкиваюсь с чрезвычайно странной проблемой, о которой сообщает мой пользователь:
Отчет Crystal Reports печатает пустые страницы за определенную точку. Мое устранение неполадок несколько сократилось, но в то же время показало некоторые непоследовательные результаты.
Здесь низкий уровень:
- Приложение представляет собой приложение VB.NET, используя .NET 4.
- В решении есть несколько отчетов Crystal Report, и для отображения и печати любого отчета используется одна форма.
- Какой отчет для отображения обрабатывается через бэкэнд кода и назначается объекту формы CrystalReportViewer перед тем, как показывать форму.
- Для отчета о проблеме источник данных поступает из SQL-запроса, запускаемого в коде, а затем назначается в качестве источника данных отчета, а затем отчет присваивается как источник отчетов для объекта CRV в форме.
- Принтер этикеток подключается через USB к соответствующему компьютеру, а установщик используется для предоставления драйверов.
- Если это имеет значение, это принтер для этикеток Citizen CLP-7201e.
Код, который присваивает источнику данных отчету, следующий:
myCommand = New SqlClient.SqlCommand(strSQL, conPlanning)
myCommand.ExecuteNonQuery()
Da = New SqlClient.SqlDataAdapter(myCommand)
Da.Fill(dsData, "TempPrintLabels")
rptPrintLabels.SetDataSource(dsData.Tables(0))
rptPrintLabels.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
frmReports.rptViewer.ReportSource = rptPrintLabels
frmReports.Show()
strSQL
- это базовый оператор SQL, основанный на том, какой отчет выбран из этой конкретной формы. SQL-запрос отчета - SELECT * FROM TempPrintLabels
.
Вот основная информация. Отчет генерируется отлично, а для отчетов с ~ 100 ярлыками он отлично печатает. Странность возникает, когда отчет превышает этот предел; это где-то в диапазоне этикеток 95-120. Кажется, что это непротиворечиво. Отчет будет печататься, пока он не достигнет определенного момента. В то время для остальной части отчета он ничего не будет печатать, кроме пробелов. Там будет столько пробелов, сколько должно быть оставшихся страниц. Если вы снова запустите задание в том месте, где начались пробелы, он отлично отпечатывается.
Когда я смотрю на этот отчет в CrystalReportViewer, он выглядит хорошо; все ярлыки отображаются правильно. Когда я печатаю его в PDF или текстовом файле, все страницы есть. Таким образом, отчет и генерация печати, похоже, работают со мной.
Я думал, что это принтер. Чтобы проверить это, я напечатал 185-страничное задание в формате PDF, а затем распечатал его на принтере. Это напечатано абсолютно нормально.
Я затрудняюсь объяснить это или даже диагностировать это дальше. В форме для печати нет кода; он использует объект CrystalReportViewer для обработки всего. Если бы это был объект CRV, печать в PDF должна была дать мне пустые страницы. Это не так. Если это был принтер, он должен был начать печатать пробелы из PDF прямо в том же месте, что и печать непосредственно с объекта CRV. Это не так.
Что еще я могу найти?
Ответы
Ответ 1
Для этого вопроса у меня есть некоторые мысли, которые вызывают это поведение во время печати.
-
Может ли длина ширины вашей метки превышать размер страницы. Таким образом, вы можете проверить, что все ярлыки и страницы не пустые, когда вы сокращаете ширину меток (даже метки не отображаются должным образом, мы можем обрабатывать отдельно). Если он не показывает (как в данный момент вы получаете), тогда вы просто обрабатываете ширину меток с помощью параметра "Может вырасти" до значения true для всех меток.
-
Если все в порядке, то я думаю, что вы можете проверить настройки/поля страницы на вашем принтере.
-
Если выше не работает, то либо создайте новый отчет, либо существующий отчет, просто добавив статические метки и значения, а затем сначала просмотрите, а затем вызовите из кода. Что-то вы найдете с этим.
В соответствии с моим опытом (возможно, я ошибаюсь в этом случае), всякий раз, когда пустая страница приходит в отчет о кристалле, когда ваши столбцы будут увеличиваться, ширина отчета создает проблему. Таким образом, либо установить ширину отчета, либо уменьшить страницу принтера. Так что печатайте, другие мудрые это не бросают ошибку, а дают пустые страницы.