Непонятное с PADR() | |
---|---|
Каратаев Автор Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Добрый день!
Из курсора нужно получить текстовую переменную со строками одинаковой длины. Для этого использую PADR()... Но результат корявый: [attachment 36582 padr.png] Вот тестовый код:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Непонятное с PADR() | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Результат ГДЕ корявый в messagebox?
Лечение - использовать моноширинный шрифт. forum.foxclub.ru ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Непонятное с PADR() | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Заинтересовало назначение TRANSFORM в этом коде. Какую задачу он решает? |
Re: Непонятное с PADR() | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Проблема в том, что MESSAGEBOX() не имеет параметров управления шрифтом выводимого текста. Те, кому это требовалось, уже давно написали замену этой стандартной функции (заодно расширив и прочую, достаточно ограниченную, её функциональность). Исправлено 1 раз(а). Последнее : akvvohinc, 29.05.23 16:26 |
Re: Непонятное с PADR() | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Преобразует числовой результат функции Len() в строку. ------------------ Лень - это неосознанная мудрость. |
Re: Непонятное с PADR() | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Но здесь нет функции Len(). |
Re: Непонятное с PADR() | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Уп-с, не туда глянул... ------------------ Лень - это неосознанная мудрость. |
Re: Непонятное с PADR() | |
---|---|
danton1973 Сообщений: 143 Откуда: Пермь Дата регистрации: 10.08.2020 |
К стати:
|
Re: Непонятное с PADR() | |
---|---|
Каратаев Автор Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Дело не в MESSAGEBOX(). Его я вставил только для наглядности проблемы. На самом деле это я пытаюсь в репорт вставить содержание отчёта. И в репорте такая же кривизна. Верное замечание. Осталось после нескольких экспериментов-манипуляций в демонстрационном коде - в одной из них действительно числовые данные преобразовывались в строку. В программе, естественно, этого нет. Да и суть вопроса была в другом. Проблема разрешилась изменением шрифта этой конкретной вставки на Courier... [attachment 36583 padr.png] Правда сама реализация мне не нравится, попробую вообще сделать по другому... Спасибо всем за советы! ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Непонятное с PADR() | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Если речь идет именно о выравнивании в рамках отчета, то есть следующие варианты 1. Примерный расчет через TXTWIDTH() и FontMetric(). Но это будет очень приблизительно и все-равно "криво" 2. Моноширинный шрифт типа Courier 3. Вместо одного объекта отчета использовать 2 объекта наложенных друг на друга. У одного выровнять по левому краю (text alignment = Left), у другого - по правому (text alignment = right). Такое сложно сопровождать, поскольку один объект становится "невидимым". Он целиком "под" другим 3.1. Можно два объекта расположить рядом (как 2 ячейки строки таблицы), если ширина каждого из них гарантированно достаточно для содержимого Исправлено 1 раз(а). Последнее : Владимир Максимов, 30.05.23 11:05 |
Re: Непонятное с PADR() | |
---|---|
Каратаев Автор Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
В данном случае имеет, так-как мне эти пунктиры от названия до номера надо проставить. А если alltrim() не использовать, то от названия до номера получается много пустого места. Владимир, спасибо. Я думал над такими вариантами, кроме TXTWIDTH() и FontMetric()... Проблему решил просто заменив шрифт в нужном месте:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Непонятное с PADR() | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Это замечание совсем некстати: 1) PADR() работает со строкой справа, а ALLTRIM() обрезает её с двух сторон. 2) ALLTRIM() здесь обрезает пробелы, а PADR() дополняет уже освобожденную от пробелов строку точками. |
© 2000-2024 Fox Club  |