
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Сообщ.
#1
,
|
|
|
Помогите пожалуйста осуществить данный замысел.
Имеется небольшая таблица товара накладной, у каждого товара свой сертификат (строка в 255 символов). Из неё необходимо взять поле типа String, поместить в "большой стринг"(?) и затем вывести абзацем текста(?) в FastRepot. С условием уменьшения/расширения Бэнда, при уменьшении/увеличении строки. Если не трудно, приведите пожалуйста примерный код. Спасибо за помощь ![]() |
![]() |
Сообщ.
#2
,
|
|
![]() ![]() Табличные отчеты с переменной шириной столбца В предыдущем примере подразумевалось, что все столбцы табличного отчета имеют одинаковую ширину. Однако на практике, в большинстве случаев, ширина каждого столбца определяется представляемыми им данными. Так если, например, имеется два столбца, один из которых содержит номера строк, а второй представляет данные из Memo-поля, то ясно, что первый столбец будет иметь ширину намного меньшую, чем тот, в котором выводится текст Memo-поля. В подкаталоге PRNTBL2 находится модифицированный пример. Этот пример полностью аналогичен предыдущему за тем лишь исключением, что ширина столбца отчета подбирается в зависимости от содержащихся в нем данных. В этом примере у объекта TfrReport появились два новых обработчика событий, которые и обеспечивают динамическое изменение ширины столбцов. Обработчик события OnPrintColumn объекта TfrReport отвечает за определение ширины столбца на основании представляемых им данных. В рассматриваемом примере ширина столбца для текстовых полей определяется как произведение размера поля на ширину буквы «W»; для полей «Дата и время» ширина столбца определяется аналогичным образом, но размер поля принимается равным 15; ширина всех остальных столбцов принимается равной 64 пикселя. Полный текст обработчика события OnPrintColumn приведен ниже: procedure TForm1.frReport1PrintColumn(ColNo: Integer; var Width: Integer); var Field: TField; begin Field := Table1.Fields[ColNo – 1]; if Field is TStringField then Width := Field.Size * Canvas.TextWidth('W') else if Field is TDateTimeField then Width := 15 * Canvas.TextWidth('W') else Width := 64; FWidth := Width; end; Обработчик события OnEnterRect реально устанавливает ширину столбца определенную в предыдущем обработчике события: procedure TForm1.frReport1EnterRect(Memo: TStringList; View: TfrView); begin View.dx := FWidth; end; Таким образом в этом примере достигается более эффективное заполнение места на листе при печати отчета. При этом каждый столбец имеет ширину, достаточную для вывода представляемых им данных. На этом принципе работают компоненты TfrPrintTable и TfrPrintGrid, которые печатают содержимое таблицы и компонента TDBGrid. |
Сообщ.
#3
,
|
|
|
если не ошибаюсь такм должно быть свойство AutoStretch
его нужно выставить в true |
Сообщ.
#4
,
|
|
|
Спасибо получилось
![]() Скачал с сайта документацию: DeveloperManual-ru.chm, EnterpriseRu.chm, fs_ru.pdf, ProgrammerManual-ru.chm, UserManual-ru.chm. Есть более полная версия? Потому как описания я "stretch" свойства не встретил. Последний вопрос, мне создавать динамический массив char для сложения всех string в одну строку? Спасибо. |