powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Размер выражения в Expession Bilder
13 сообщений из 13, страница 1 из 1
Размер выражения в Expession Bilder
    #39451023
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем добрым людям.

Такой вопрос возник при создании отчета - в одном месте выводится куча полей и это выражение не влазит в Expession Bilder, т.е. до 255 символов можно туда только записать, что свыше - обрезается при сохранении. А ведь еще сверх того хотелось всяких IIF туда понавставлять для красивости, что еще больше удлиняет код.

При этом в хелпе четко указано:

You can enter more than 255 characters ... и т.д.

Может кто сталкивался с такой проблемой и как победить?
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39451097
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно в таких случаях делается UDF-функция, ей передаешь как параметры все что надо учесть, а внутри нормальным кодом прописываешь всю логику.
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39451181
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К предыдущему ответу добавлю, что писать код внутри отчета - это путь в никуда. Слишком сложно и не очевидно становится поддерживать такой отчет.

Оптимальное решение для отчетов FoxPro - это до выполнения отчета сформировать и наполнить курсор (временную таблицу) нужной структуры с таким расчетом, чтобы собственно отчет представлял из себя максимально простой "гладкий" вывод информации по этому курсору

В этом случае весь код подготовки данных будет сосредоточен в процедуре создания и наполнения этого курсора. Как следствие, в случае необходимости, можно будет легко внести изменения.
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39451328
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaT, ВладимирМ - спасибо.

В отчете формируется строка с данными заказчика, а это и название, и адрес, и тел., и банки, и e-mail и т.д., и перед каждым значением имеется поясняющий текст, например 'Тел./факс: ' или 'e-mail: ' , который нужно выводить, если есть содержимое поля. А разделять на строки - не очень гармонично, поскольку не известна заранее длина записи, например, наименования, или адреса, или того же банка и т.п. Поэтому в одну строку или вернее, в один ReportControl и удобнее, и код растягивается.

Буду готовить выборку заранее.

Но это решение конкретного случая, а все-таки, можно больше 255 символов добавлять в билдер, как хэлпе пишут, или нельзя?
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39451343
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKnНо это решение конкретного случая, а все-таки, можно больше 255 символов добавлять в билдер, как хэлпе пишут, или нельзя?
Попробовал - у меня тоже обрезает.
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39451633
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выбрал данные заранее в переменную, потом ее в отчет. Так даже намного удобнее, в смысле возможного редактирования, не нужно тесниться в билдере.

Наверное поэтому разработчики и не заморачивались по поводу вместительности билдера - для полей и коротких выражений достаточно, а длинное кто, кроме таких как я, в билдер писать будет? ))
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39452624
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKnDimaT, ВладимирМ - спасибо.

В отчете формируется строка с данными заказчика, а это и название, и адрес, и тел., и банки, и e-mail и т.д., и перед каждым значением имеется поясняющий текст, например 'Тел./факс: ' или 'e-mail: ' , который нужно выводить, если есть содержимое поля. А разделять на строки - не очень гармонично, поскольку не известна заранее длина записи, например, наименования, или адреса, или того же банка и т.п. Поэтому в одну строку или вернее, в один ReportControl и удобнее, и код растягивается.

Буду готовить выборку заранее.

Но это решение конкретного случая, а все-таки, можно больше 255 символов добавлять в билдер, как хэлпе пишут, или нельзя?
Если данные могут быть > 255 символов, я их в курсоре в поле memo вывожу. А memo, он ведь как резиновый, его отчет без ограничений выводит.
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453285
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_pЕсли данные могут быть > 255 символов, я их в курсоре в поле memo вывожу. А memo, он ведь как резиновый, его отчет без ограничений выводит.

В вопросе речь идет не о длине самих данных, а о длине выражения, вычисляющего эти самые данные. Длина команды
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453289
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKnНо это решение конкретного случая, а все-таки, можно больше 255 символов добавлять в билдер, как хэлпе пишут, или нельзя?
255 символов - это ограничение именно билдера. Т.е. некоего встроенного построителя. Длина команды может быть до 8К. Вопрос только в том, как эту самую команду вставить в указанное место отчета.

"В принципе" побороть можно, но уж больно "кривыми" способами. Там постоянно придется "пальцем придерживать". В смысле, всегда "помнить", что вот здесь, в этом отчете, было сделано вот так, чтобы обойти ограничение на 255 символов. Соответственно, редактирование отчета превратится в постоянное мучение. Поэтому даже нет смысла описывать как этого добиться
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453397
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМDmitryKnНо это решение конкретного случая, а все-таки, можно больше 255 символов добавлять в билдер, как хэлпе пишут, или нельзя?
255 символов - это ограничение именно билдера. Т.е. некоего встроенного построителя. Длина команды может быть до 8К. Вопрос только в том, как эту самую команду вставить в указанное место отчета.

"В принципе" побороть можно, но уж больно "кривыми" способами. Там постоянно придется "пальцем придерживать". В смысле, всегда "помнить", что вот здесь, в этом отчете, было сделано вот так, чтобы обойти ограничение на 255 символов. Соответственно, редактирование отчета превратится в постоянное мучение. Поэтому даже нет смысла описывать как этого добиться

Добрый день,

целиком и полностью тут согласен, отличное решение команду записать в переменную и ее подставить.

Но все же, как для неопытного, хорошо бы явно где-то писать - команда в билдере не может быть длиннее 255 символов, а тем более, если в хелпе прямо указывается - вы можете помещать более 255 символов. Это немного путает. И это не только для билдера в отчете.

Например, если мы хотим записать длинную команду , например, селект в row source комбо - та же выйдет история, команда не влезет. 18115038

Т.е. теперь понятно, что символов в построителе команд или в специальном окне контрола (простите, не знаю, как его назвать правильно) , куда мы пишем эти команды, не может быть больше 255.

Но новичек, к примеру я, убъет на это не один час, а то и день, пока поймет в чем дело. И это еще огромная удача, что существует этот форум, иначе проблема может перерасти в разряд мистических - окно есть, скрол у окна есть, что подразумевает возможность длинного текста, в хелпе пищут - you can! - а она, падла, команда, то есть, ни в какую не лезет и переустановка фокса, в том числе полученного из разных источников, ничего не дает.
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453485
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну через это все прошли. Да с годами еще и забывается многое.

Посмотри в ROWSOURCETYPE
Там много возможностей.
А можно и по-простому (ограничений у меня не встречалось):
**************************************************** В Init Combobox
This.AddItem("Классический - голубой")
This.AddItem("Темно - зеленый")
This.AddItem("Темно - синий")
This.AddItem("Разноцветный")

This.ListIndex=1
****************************************************
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453496
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понял, все это решается с помощью простых команд обычной кнопки:
*****************************************************
&& 1
SELECT DISTINCT Oic.N_BS_KZ, Oic.NAZV_POL_L , Oic.NAZV_POL_R ;
FROM ;
OICR04!Oic;
WHERE Oic.N_BS_KZ = 3;
ORDER BY Oic.NAZV_POL_L;
INTO CURSOR red

THISFORM.L1.Clear()
THISFORM.L1.ROWSOURCETYPE = 6
THISFORM.L1.ROWSOURCE = "red.NAZV_POL_L"
THISFORM.L1.CONTROLSOURCE = "red.NAZV_POL_L"
THISFORM.L1.REQUERY()
THISFORM.L1.REFRESH()
*****************************************************
&& 2
PUBLIC ARR1(1,100)
SELECT DISTINCT Oic.NAZV_POL_R ;
FROM ;
OICR04!Oic;
WHERE Oic.N_BS_KZ = 3;
ORDER BY Oic.NAZV_POL_R;
INTO ARRAY ARR1

THISFORM.L2.Clear()
THISFORM.L2.ROWSOURCETYPE = 5
THISFORM.L2.ROWSOURCE = ARR1
THISFORM.L2.REQUERY()
THISFORM.L2.REFRESH()
*****************************************************
...
Рейтинг: 0 / 0
Размер выражения в Expession Bilder
    #39453498
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L1 и L2 - это Listbox или Combobox
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Размер выражения в Expession Bilder
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]