MS Access Нарисуйте линию вокруг детализации, которая может расти - PullRequest
0 голосов
/ 09 апреля 2010

Это действительно не должно быть сложно, я просто не могу понять, как это сделать.

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

Я использовал отчеты Crystal и уверен, что Microsoft узнает несколько вещей о написании отчетов MS Access!

Мне очень комфортно с VBA, поэтому я не боюсь.

Ответы [ 5 ]

1 голос
/ 11 апреля 2010

Еще один метод, о котором никто не упомянул, - это метод отчета с использованием строки, описанный в Статья базы знаний 210321 . Я использовал его в течение многих лет, и он может быть использован для рисования как линий, так и прямоугольников. Это очень удобно для счетов-фактур, которые имеют подотчета переменной высоты для деталей счета-фактуры, но нуждаются в вертикальных линиях для изменения в соответствии с высотой детализации основного отчета.

1 голос
/ 09 апреля 2010

Вы были правы, это не так сложно. Хитрость заключается в том, чтобы использовать 2 переменные, верхнюю и нижнюю. В событии PageHeader_Format вы устанавливаете верхнюю часть на Me.Height, а в событии PageFooter_Format задаете нижнюю часть на Me.Top - correction, где коррекция - это фиксированное значение, которое вы используете для фиксации правильной длины. Я не уверен, откуда взялась эта сумма, вам просто нужно немного попробовать.

В событии Report_Page вы можете нарисовать линию сверху вниз.

0 голосов
/ 24 января 2014

используйте событие страницы вместе с me.line и scaleheight / scalewidth. Я рисую рамку вокруг всей страницы со следующим. Поиграйте с ним и посмотрите, где вы окажетесь. Это очень удобно для составления профессиональных отчетов. Если вам нужна строка в определенном месте отчета, вы можете использовать элементы управления координатами. как

me.line(Mycontrol.left,mycontrol.top) - (myothercontrol.left+myothercontrol.width, myother control.top + myothercontrol.height)

Private Sub Report_Page()

Me.Line (0, 0)-(scalewidth -30, scaleheight-30), 0, B

End Sub
0 голосов
/ 09 апреля 2010

Попробуйте это.

Щелкните правой кнопкой мыши на панели сведений и выберите свойства. Установите специальный эффект «Sunken». Это создаст некоторую границу вокруг подробного раздела, который изменяется с подробным разделом.

Я пытался получить строку для динамического изменения размера, но ее ловушка 22, к тому времени, когда вы знаете высоту раздела (в событии «При печати»), вы не можете вносить никаких изменений!

0 голосов
/ 09 апреля 2010

VBA не требуется.

  1. Создайте фиктивную группировку, уникальную для каждой детали. Для этой группировки установите для нижнего колонтитула значение yes.
  2. В новой секции нижнего колонтитула группы, которую вы только что создали, добавьте свою строку.
  3. В подробном разделе выберите все соответствующие поля, которые можно увеличить, и установите Может расти = Да
  4. Готово!

Редактировать

Не по теме, я согласен, что отчеты о доступе могут извлечь урок или два из Crystal. Но Кристалл тоже не идеален. [/ Flamewar]

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