Как ограничить отчет о RDLC для одной страницы в PDF?

** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки SQL-инъекции не только полагаются на возможность вставлять X=Y. **

Если злоумышленники пытаются взломать форму с помощью переменной PHP $_GET или с помощью строки запроса URL, вы сможете поймать их, если они не защищены.

RewriteCond %{QUERY_STRING} ([0-9]+)=([0-9]+)
RewriteRule ^(.*) ^/track.php

Поскольку 1=1, 2=2, 1=2, 2=1, 1+1=2 и т. д. ... являются распространенными вопросами к базе данных SQL злоумышленника. Возможно, он также используется многими хакерскими приложениями.

Но вы должны быть осторожны, чтобы не переписывать безопасный запрос с вашего сайта. Вышеупомянутый код дает вам возможность переписать или перенаправить (зависит от вас) эту динамическую строку запроса, зависящую от хакерства, на страницу, в которой будет храниться IP-адрес злоумышленника или EVEN THEIR COOKIES, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.

28
задан Ryan Gates 8 February 2013 в 15:57
поделиться

3 ответа

В случае, если кто-либо еще сталкивается с этой проблемой и заканчивает здесь, это наиболее вероятно проблема с Вашими полями. Если поля будут установлены неправильно, то Вы будете часто получать "дополнительные" страницы, которые появляются, когда Вы пытаетесь распечатать, тогда как при просмотре документа, все прекрасно.

2
ответ дан Dugan 28 November 2019 в 02:32
поделиться

Ответ очень похож на то, что сказал Дуган, но это не всегда только поля. Однако это довольно просто:

Когда вы редактируете файл rdlc в режиме дизайна, сначала щелкните пустую часть области BODY вашего дизайна. Нажмите F4, чтобы увидеть вкладку свойств. Здесь вы увидите свойство «Размер». Его можно расширить по ширине и высоте. Ширина, которую вы видите здесь, представляет собой ширину, которая требуется для текста вашего отчета как области печати. Даже если у вас есть пустое пространство повсюду, страница знает, что она должна сохранить его как область для печати. В каком-то смысле он резервирует пространство. Что касается высоты, система обычно знает, что она может увеличиваться или уменьшаться по мере необходимости, если вы не указали иное в своих элементах управления. Таким образом, ширина - это то, что обычно играет наиболее важную роль.

Затем щелкните пустую область отчета (за пределами верхнего, основного и нижнего колонтитула; в основном серая область вокруг дизайна), затем нажмите F4, чтобы просмотреть панель свойств. В категории свойств «Макет» вы увидите 3 различных варианта: InteractiveSize, Поля, Размер страницы. Каждый из этих атрибутов размера можно развернуть, чтобы отобразить ширину и высоту. Атрибут Margins может быть расширен для левого / правого / верхнего / нижнего.

В основном, экспорт в pdf работает вне PageSize (хотя я обычно стараюсь сохранять интерактивность и размер страницы одинаковыми). Когда PDF-файл отображается с помощью встроенной функции экспорта ReportViewer, ширина и высота каждой «страницы» в PDF-файле будут определяться шириной и высотой в атрибуте PageSize отчета (вы можете переопределить это, если использовали свой собственный собственный код для рендеринга pdf). Что касается полей, они определяют, сколько места ДОЛЖНО быть оставлено пустым и непечатаемым между областью печати, зарезервированной для вашего отчета, и краем страницы.

Другими словами: Ширина тела вашего отчета плюс левое поле отчета плюс правое поле отчета ДОЛЖНЫ быть меньше или равны ширине PageSize отчета!

Итак ... если ваши поля слишком широкие, или если тело вашего отчета слишком широкий, или если ширина PageSize слишком узкая, обработанный результат будет вынужден разбить на несколько страниц, чтобы уместить его!

Например: если тело моего отчета имеет ширину 7,75 дюйма, мое левое поле составляет 0,5 дюйма, мое правое поле - 0,5 дюйма, а ширина, указанная в параметре PageSize, - 8,5 дюйма, в моем отчете всегда будет использоваться 2 страницы на каждую 1 страницу данных. Ширина основного текста 7,75 дюйма плюс 0,5 дюйма +0,5 дюйма для полей в сумме дает 8,75 дюйма, что больше, чем 8,5 дюйма, доступное на моей странице. Таким образом, первые 7,5 дюйма (или около того) каждой страницы моего отчета ' Тело s будет показано на первой странице, а остальная часть будет разделена на следующую страницу. Это не будет выполняться в средстве просмотра отчетов, так как это позволяет расширить отчет за пределы размера страницы, просто добавив полосу прокрутки, но это будет раздражающе заметно при экспорте в PDF. Чтобы уместить мой пример отчета на 1 страницу, я могу либо попытаться уменьшить текст отчета до 7,5 дюймов или меньше, либо уменьшить левое и правое поля в общей сложности на 0,25 дюйма или более (например, установите их на 0,3 дюйма, чтобы получить общее уменьшение на 0,4 дюйма), или я могу увеличить размер страницы до значения больше 8,75 дюйма. Примечание. Acrobat Reader довольно умен и знает о различных размерах бумаги. Следовательно, хотя произвольные размеры страниц будут работать, обычно лучше использовать реальные размеры страниц. Таким образом, в моем последнем примере я бы предпочел установить для PageSize значение Width = 11 "и Height = 8,5", что является настоящим размером буквы в альбомной ориентации! Adobe обычно понимает это и правильно печатает. Также обратите внимание: на некоторых принтерах, особенно старых, возникают проблемы с печатью с полями менее 0,3 дюйма. Если вы хотите быть вежливым со своими пользователями, вам лучше оставить поля достаточно большими для старых принтеров;)

Я надеюсь, что это помогает.

72
ответ дан 28 November 2019 в 02:32
поделиться

Всегда поддерживайте ширину тела: 7,5 или меньше

Ширина левого, правого поля меньше 0,5 Сначала установите ширину поля -> перейдите в главное меню Отчеты-> Свойства отчета-> Макет-> измените левое и правое поля

Общая ширина страницы: 8,5

Рамана

6
ответ дан 28 November 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: