AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.05.2020, 10:03   #1  
Metrofun is offline
Metrofun
Участник
 
58 / 10 (1) +
Регистрация: 27.04.2020
? Изменение в отчёте размера шрифта, высоты и ширины поля в зависимости от длины строки в поле.
Здравствуйте.
Axapta 3.0. Отчёт (аксаптовский) Report.
Есть поле в отчёте типа String.
Строка в поле может быть разной длины, например в диапазоне от 7 до 11 символов. В зависимости от количества символов нужно менять размер шрифта и размеры поля. Как поменять значения данных свойств, проблемы нет. Проблема как корректно рассчитать исходя из размера шрифта дельту изменения ширины и высоты поля?
Или может, есть метод (свойство) где можно 'отловить' вписалась ли строка текущей длины в поле с определённым шрифтом и размерами?
Старый 28.05.2020, 13:44   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
751 / 544 (20) +++++++
Регистрация: 14.10.2004
Не совсем точный ответ на ваш вопрос, но вот таким способом можно сделать, чтобы в отчете динамически все поля имели одинаковую высоту, и при этом весь текст отображался. Т.е. этот метод перебирает все поля в секции, и вычисляет для каждого поля высоту по его содержимому. Берет максимальную высоту и устанавливает ее для всех полей в секции.
Этот метод надо добавить на нужную секцию отчета.

X++:
public void executeSection()
{
    ReportControl       rc;
    int                 i;
    int                 height;
    int                 h;
    ;

    for (i=1;i<=this.controlCount();i++)
    {
        rc = this.controlNo(i);

        if (rc)
        {
            height = Address_Address.heightOfWordWrappedString100mm("Моя строка, для которой надо измерить высоту");
            h = max(h, height);
        }
    }

    this.height100mm(h);

    for (i=1;i<=this.controlCount();i++)
    {
        rc = this.controlNo(i);

        if (rc)
        {
            rc.height100mm(h);
        }
    }

    super();
}
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/
Старый 29.05.2020, 11:06   #3  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
853 / 353 (13) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Проблема вписываемости текстовки в поле отчета таким способами, как аптоподбор ширины и размера шрифтов в поле, не решается. Ширина поля и размер шрифта, как правило, фиксируются в дизайне отчета и далее не трогаются, а игрища контрольно-расчетные идут только в части высоты. Полю активируется свойство автоподбора высоты и в зависимости от определенных в дизайне отчета размера шрифта и ширины поля по переданному текстовому значению системой автоматически рассчитывается кол-во переносов и изменение вертикального размера поля и, при необходимости, секции отчета, где это поле живет. Остается лишь при генерации секции проверить, вписывается ли генерируемая сейчас секция в размеры страницы с учетом уже попавших ранее на эту страницу сформируванных секций.

Хотя если есть желание за систему поработать - флаг в руки
__________________
Мы летаем, кружимся, нагоняем ужасы ...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Текстовые поля в отчете Management reporter zelen DAX: Прочие вопросы 1 04.08.2016 09:52
изменение LookUp поле на форме SHiSHok DAX: Программирование 15 25.02.2013 13:26
Параметр ком.строки crosscompany и место поля dataareaid в индексах gl00mie DAX: Программирование 6 18.02.2013 13:28
Изменение Label поля группы neys DAX: Программирование 2 24.03.2006 09:24
Изменение высоты в executeSection при печати LCh DAX: Программирование 2 19.05.2003 14:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.