Система координат в Crystal Reports - PullRequest
0 голосов
/ 21 января 2020

Я работаю с версией CR 13.0.25 - я считаю, что самой последней версией на данный момент является 13.0.26, так что, в основном, последняя версия CR. Я работаю с динамическим размещением элементов в отчете из кода C#.

Есть несколько отчетов, где исходный rpt (рассчитанный на несколько лет go) охватывает несколько страниц. Это, в частности, вызывает у меня проблемы, но они не единственные. Проблема здесь сосредоточена на измерении y (вертикальном).

В документах CR используется система координат, которая основана в верхнем левом углу документа, а также на основе твипов (1440 твип / дюйм). Итак, теоретически, я должен иметь возможность установить значение Top для ReportObject на 1440, и этот элемент должен быть напечатан на расстоянии 1 "от некоторого эталона (либо в верхней части страницы, либо в нижней части поля - я довольно конечно, это нижняя часть поля).

Мои результаты, кажется, не отражают это - по крайней мере, не совсем.

Когда я устанавливаю значение Top, кажется, что с некоторыми из В документах размер y масштабируется. Фактически я могу применить постоянный коэффициент масштабирования (он варьируется в зависимости от документа), и я могу сделать так, чтобы поля отображались с относительным интервалом в 1 дюйм вплоть до нижней части страницы. Однако этот коэффициент масштабирования варьируется от документа к документу.

Итак, помимо экспериментов с нашим рабочим кодом, я также сделал следующее:

Я создал консольное приложение C#, которое открывает Файл rpt, захватывает некоторые элементы на нем и перемещает их, а затем отправляет на принтер. Я разработал новый rpt-файл с размерами колонтитулов, которые я мог бы получить, и поместил 10 текстовых полей в раздел подробностей. Я перебираю поля (через ReportDocument и ReportObjects и переставляю их в 0, 1440 (1 "), 2880 (2") и c.

Это прекрасно работает с документом поля по умолчанию (.167 дюймов по умолчанию с каждой стороны). Первый элемент имеет верхнюю часть напротив нижней части поля, второй элемент находится на расстоянии 1 "от вершины первого элемента до верхней части второго элемента и т. д. вниз по странице. Однако, если я уменьшу поля до нуля - либо программно, либо в дизайне, я получу этот эффект масштабирования. Все элементы теперь находятся на расстоянии примерно 7/8 "или около того, вместо 1 «Я бы ожидал.

Кто-нибудь знает какие-нибудь магические формулы или документацию (ы) о том, почему система координат, кажется, меняется? Я мог бы понять, что если я изменю поле, которое может сместить все на странице (при условии, что поле является нашей базовой линией), но мне кажется, что межэлементный интервал, равный 1440, должен по-прежнему отображаться при 1 ".

1 Ответ

0 голосов
/ 21 января 2020

Я считаю, что Y - это вертикальное расстояние от верхней части этого раздела, а не от верхней части страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...