2009-09-21 5 views
29

В редакторе Crystal Reports, который поставляется с Visual Studio (2008), можно ли выровнять текст по центру текстового поля, а не вверху?Вертикальное выравнивание текста в Crystal Reports?

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

ответ

21

Нет вертикального выравнивания для отчетов о кристаллах, которые я мог найти. Потенциальная работа - это программирование разрывов строк.

+0

Не для центрированного текста это не так. – Richard

+5

Какой позор ... –

-1

в хрустальном отчете 10 ярлык >> щелкните правой кнопкой мыши >> формат Текст >> Обычный >> поворот текста. выберите 90 градусов текст будет иметь вертикальное выравнивание же в поле или любого объекта, который вы добавляете в отчет надежде, что я помочь вам

сведению ответ (Формат текста> вкладка абзаца, выравнивание по горизонтали: по центру) является неверно

+7

Это не то, что вертикальное выравнивание означает билал. Вертикальное выравнивание означает, что если у меня есть ящик высотой 50 единиц, а текст, который составляет 10 единиц, то над текстом будет 20 единиц пространства и 20 единиц пространства ниже текста. Это базовая функция в любой макетной системе, о которой я могу думать. –

+5

Разговор о ненужных уровнях наказания за непонимание вопроса. Я поддержал, потому что искал неправильную вещь, и нашел ответ независимо. – VoronoiPotato

+0

+1 Ты прав ВоронойПотато. Неверный, но полезный ответ. Спасибо bilal :) – Mzn

1

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

horizontal guideline

+0

Какие вкладки треугольника? Это кажется правильным решением для моего дела – Mzn

0

Вертикальное выравнивание с перерывами программирования линии. Алгоритм для одной ячейки:

  1. Подсчитайте количество символов в данных (iTextLen).
  2. Найти количество текстовых строк в ячейке (iLineNum). Вычисляется эмпирически.
  3. Найдите длину строки в символах (iLineLen). Вычисляется эмпирически.
  4. Рассчитать количество всплесков по формуле (iLineNum — 1) — (iTextLen/iLineLen).

    @formula в синтаксисе кристалла:

    Local NumberVar iLineNum:= 5; 
    Local NumberVar iLineLen:= 30; 
    Local NumberVar iTextLen:= Length({DataSource}); 
    
    Local StringVar sRet:= ''; 
    Local NumberVar i; 
    Local NumberVar iLinesNum:= Truncate(iLineNum - 1) - Truncate(iTextLen/iLineLen); 
    For i:= 1 to iLinesNum Do (sRet:= sRet + chr(13)); 
    
    sRet 
    
  5. Добавить формулу в верхней и нижней части данных. Текстовые объекты будут выглядеть следующим образом:
    {@formula}{DataSource}{@formula}

    Размер шрифта @formula должен быть в два раза размер шрифта {DataSource}. Например, если размер шрифта {DataSource} равен 20, то @formula должен быть равен 10: formula-position-and-font-size

Алгоритм работает лучше с моноширинном шрифтом, но с пропорциональным шрифтом работает в большинстве случаев.

Алгоритм для нескольких ячеек отличается только тем, что iLineNum будет максимальным количеством символов в данных всех ячеек.

Смежные вопросы