Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / COMBOBOX & Format / 7 сообщений из 7, страница 1 из 1
11.12.2003, 11:57
    #32350431
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
не необходимо выводить в списке только часть строки - т.е. в dropdown list у меня выводятся значения поля "имя" - и если его длина более 50 то оно должно обрезаться и заканчиваться ...

Я написал в свойстве format
Код: plaintext
=IIF(LEN(tarif_type.имя)> 50 ,SUBSTR(tarif_type.имя, 1 , 50 )+'...',tarif_type.имя)


НО ничего не произошло - где моя ошибка?
...
Рейтинг: 0 / 0
11.12.2003, 12:22
    #32350481
TheBurn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
Поставь в RowSource='PadR(tarif_type.имя,50)' и не мучайся
...
Рейтинг: 0 / 0
11.12.2003, 12:23
    #32350482
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
funikovyuri:

Попробуй в RowType = 6 - Fields
в RowSource прописать:

RowSource = "Left(tarif_type.имя,50)"
...
Рейтинг: 0 / 0
11.12.2003, 12:34
    #32350501
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
А почему не работает format?

Потом сейчас у меня в RowSource=tarif_type.имя,id и RowSource=2

Как я это перепишу для RowSource=6???
...
Рейтинг: 0 / 0
11.12.2003, 12:42
    #32350516
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
RowType = 2 - Alias
RowSource = "Left(tarif_type.имя,50),tarif_type.id"

Прочитайте в хелпе для чего предназначен формат...{:-)}
...
Рейтинг: 0 / 0
11.12.2003, 12:50
    #32350533
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
Ты используешь функцию LEN() применительно к содержанию поля таблицы. Но в FoxPro длина поля таблицы всегда имеет фиксированную длину равную размерности поля. Недостающее добавляется пробелами справа.

Т.е. в твоем случае надо использовать функции отсечения концевых пробелов типа AllTrim(), LTrim(), RTrim() примерно так:

Код: plaintext
=IIF(LEN(AllTrim(tarif_type.имя))> 50 ,LEFT(AllTrim(tarif_type.имя, 50 ))+'...',tarif_type.имя)


Но это все будет иметь смысл, если это использовать непосредственно как источник данных.

Пропертя FORMAT имеет ограниченный набор символов, которые могут быть использованы (список допустимых символов-кодов смотри в описании к свойству FORMAT). Поэтому написанная функция просто не воспринимается как последовательность управляющих кодов и игнорируется. Собственно FORMAT (и InputMask) - это некий трафарет с использованием которого отображаются данные и описываешь ты не сами данные, а именно этот трафарет.
...
Рейтинг: 0 / 0
11.12.2003, 13:06
    #32350563
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COMBOBOX & Format
Так - теперь все нормально :)
Написал так

Код: plaintext
1.
RowType =  2  - Alias 
RowSource =  "Left(tarif_type.имя,50 ),id"


Иначе ошибка - т.н. не надо писать
Код: plaintext
1.
RowType =  2  - Alias 
RowSource =  "Left(tarif_type.имя,50 ),tarif_type.id"


А насчет format и help'а - читал - но меня смутило название аргумента cFunction и редактор этого свойства в котором можно писать функции! :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / COMBOBOX & Format / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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