:: Архив конференции по VFP до 2005 года
Поля в VFP 7.0
Di_Mas
у меня на форме есть поля: Text1, Combo1, Combo2 и Теxt (формата дата).
1. как проверить пустые они или нет.
2. Как сделать так, чтобы они были пустыми?
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
YUriKireev

Сообщений: 17
Откуда: Нарьян-Мар
Дата регистрации: 21.02.2005
IF !EMPTY(THISFORM.TEXT1.VALUE)
THISFORM.TEXT1.VALUE = ''
THISFORM.TEXT1.Refresh
ENDIF
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Владимир Максимов
Автор

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
Пустая дата задается двумя фигурными скобками подряд

ThisForm.Text1.Value = {}

Если нужно пустой значения типа DateTime, тогда так

ThisForm.Text1.Value = DTOT({})

Проверка на пустое значение - это функция EMPTY(). Если объект может принимать значение NULL, то следует еще делать проверку IsNull() или объединив проверку IsNull() и EMPTY()

EMPTY(NVL(ThisForm.Text1.Value,{}))
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Di_Mas
А comboBox проверяется так же?

Что означает NVL?
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Владимир Максимов
Автор

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
А comboBox проверяется так же?
Да.

IF EMPTY(ThisForm.Combo1.Value) = .T.
* Нет значения
ENDIF

Цитата:
Что означает NVL?
А самому HELP почитать?

Эта функция принимает 2 значения и возвращает первое из них отличное от NULL.
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Di_Mas
1. Как узнать выбран ли хоть какой-нибудь элемент в ListBox?

2. Уменя есть поле Text1 (дата), нужно узнать введена ли дата или нет, пишу:
***********
IF EMPTY(CTOD(ThisForm.Pageframe1.Page1.Text2.Value)) THEN
MESSAGEBOX("Дата не введена")
ELSE
MESSAGEBOX("Дата введена!")
ENDIF
***********
При запуске хоть поле заполнено, хоть нет выдается ошибка:
Function argument value, type, or count is invalid.

3. При обновлении формы стоит:
***********
SELECT temp_obr IN 0 EXCLUSIVE
SELECT temp_obr
ZAP
***********
При закрытии окна процедуры выдает синтаксическую ошибку в первой строке... Почему?
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Mavy

Сообщений: 246
Дата регистрации: 04.08.2004
1.
Цитата:
1. Как узнать выбран ли хоть какой-нибудь элемент в ListBox?
listbox.listindex=0 - ничего не выбрано
2.
***********
IF EMPTY(ThisForm.Pageframe1.Page1.Text2.Value) THEN
MESSAGEBOX("Дата не введена")
ELSE
MESSAGEBOX("Дата введена!")
ENDIF
***********
3.
***********
use temp_obr IN 0 EXCLUSIVE
SELECT temp_obr
ZAP
***********
Ratings: 0 negative/0 positive
Re: Поля в VFP 7.0
Владимир Максимов
Автор

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
1. Как узнать выбран ли хоть какой-нибудь элемент в ListBox?
Свойство VALUE есть у всех элементов, которые так или иначе осуществляют ввод или выбор значения. В том числе и у ListBox.

Цитата:
Уменя есть поле Text1 (дата), нужно узнать введена ли дата или нет, пишу:
IF EMPTY(CTOD())
Если у тебя поле Text1 и так имеет тип Date, то попытка обратится к нему как к символьной строке и вызовет сообщение об ошибке. Ведь CTOD() предполагает, что в качестве аргумента указана именно символьная строка.

Цитата:
При обновлении формы стоит:
SELECT temp_obr IN 0 EXCLUSIVE
Опять некорректный синтаксис. Команда SELECT осуществляет переключение между рабочими областями. А ты пытаешься открыть таблицу. Т.е. здесь надо бы использовать команду USE.

Кроме того, использование команд физической очистки таблиц (PACK, ZAP) непосредственно в активных формах - заведомо порочная практика. У тебя будет еще масса проблем, если ты не изменишь логику работы

PS:
Большая просьба, читай HELP по командам, особенно если на команде возникает сообщение об ошибке. Это быстрее чем ждать ответ в конференции.
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика