Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать чтобы поле было обязательным для ввода / 12 сообщений из 12, страница 1 из 1
26.10.2005, 09:25:42
    #33344082
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
Доброе утро!

Мне нужно доделать программу, чтобы при добавлении записи в справочник клиентов невозможно было её добавить не введя телефон клиента.
С Фокспро к сожалению никогда не работал.
Открыл проект, открыл нужный Screen Set, но куда и что добавить - не могу понять.

Пожалуйста, направьте меня на правильный путь.
...
Рейтинг: 0 / 0
26.10.2005, 10:06:02
    #33344191
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
В методе, котрый заносит информацию в таблицу (скорее всего это кнопка Save или Сохранить) перед запоминанием проверить на непустоту телефоный номер. И если он пуст выдать сообщение и вернуть управление на соответсвующий контрол
...
Рейтинг: 0 / 0
26.10.2005, 10:08:11
    #33344199
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
Есть разные нюансы - смотря какая версия фокса, будет ли работа в сети или только на одном компьютере и т.д. - в вопросе всегда лучше сразу эти дела уточнять.
А в данном случае - можно делать двумя способами:
1) добавить пустую запись в таблицу и вводить данные сразу в поля - если нужное не введено - после выхода из формы ввода удалять эту запись;
2) в форме ввода данных вводить данные в переменные памяти типа - m.tel, m.nomer и т.п. - тогда после проверки, если не введено нужное - просто не делать добавление записи в таблицу, если же все введено верно - то вставить эти данные в свою таблицу командой INSERT INTO MyTabl (m.tel, m.nomer...) VALUE(tel, nomer,...)
(ну понятно, что название MyTabl - свое, как и названия полей tel, nomer и .т.д.)

Второй вариант наверно все же лучше - тем, что меньше движений с таблицей.
...
Рейтинг: 0 / 0
26.10.2005, 10:19:10
    #33344231
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
BurnВ методе, котрый заносит информацию в таблицу (скорее всего это кнопка Save или Сохранить) перед запоминанием проверить на непустоту телефоный номер. И если он пуст выдать сообщение и вернуть управление на соответсвующий контрол

Дело в том что там есть две кнопки "Новый" и "Выход".
При нажатии на Новый происходит вот что :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
IF ALERT(CHR( 13 )+"Вставить нового клиента?")
	*
	DO WHILE .T.
		IF FLOCK("Nsipok")
	      
		       
 			   SELECT Nsipok
			   DIMENSION x_kpok[ 1 ]
			   x_kpok[ 1 ] =  0 
			   SELECT MAX(Nsipok.kpok) FROM Nsipok INTO ARRAY x_kpok
			   *
			   INSERT INTO Nsipok (kfil, kpok, npok, ktab, dat_izm) VALUES     (Title.kfil, x_kpok[ 1 ]+ 1 , "? ? ?", work_ktab, Ret_dat())
			   EXIT
		  
		ELSE
			
			IF NOT ALERT("Невозможно вставить запись."+CHR( 13 );
								+"Попробовать еще?")
				EXIT
			ENDIF
		ENDIF
	ENDDO
	*
	UNLOCK ALL
	*
ENDIF
*
SHOW GETS
*
IF WEXIST(brw_title)
	SHOW WINDOW (brw_title) REFRESH
ELSE		
	DO View_pok WITH "NORM"
ENDIF

Не могу понять куда мне и что вставлять :(

А может возможно это сделать при помощи свойств (WHEN, VALID,MESSAGE,ERROR) поля для ввода?
...
Рейтинг: 0 / 0
26.10.2005, 10:47:17
    #33344317
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
я вот подумал, а может быть просто в свойство VALID поля ввода поместить нечто подобное на текст ниже:

Код: plaintext
1.
2.
3.
4.
IIF (EMPTY(ALLTRIM(nsipok.ctel1)))
  * Вывод окна-сообщения о необходимости ввода (тока я пока незнаю как выводить окошко)
ELSE
  UNLOCK ALL * Это я добавил сюда, т.к. оно стоит в свойстве VALID
ENDIF
...
Рейтинг: 0 / 0
26.10.2005, 12:48:56
    #33344713
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
Подскажите, пожалуйста, как установить фокус на поле ввода?
Я делаю так :
Код: plaintext
1.
2.
3.
4.
5.
if Empty(Nsipok.ctel1)
  wait window "Введите телефон!"
  activate Nsipok.ctel1
else
....
endif
но мне при компиляции проекта выдается ошибка:
Compiling c:\agro_my\sklad\screen\nsipok.spr
activate Nsipok.ctel1
Error in line 1003: Syntax error.
...
Рейтинг: 0 / 0
26.10.2005, 12:55:39
    #33344740
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
А какая версия FoxPro?
Для 2.x пойдет так:

Код: plaintext
_CUROBJ = OBJNUM("Nsipok.ctel1")

(если не напутал чего).

А проверка текущего контрола - по VARREAD() (действует и в BROWSE-окнах).
...
Рейтинг: 0 / 0
26.10.2005, 13:06:42
    #33344780
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
UrriА какая версия FoxPro?
Для 2.x пойдет так:

Код: plaintext
_CUROBJ = OBJNUM("Nsipok.ctel1")

(если не напутал чего).

А проверка текущего контрола - по VARREAD() (действует и в BROWSE-окнах).

не получается :(
может быть иззза того что у меня в скринсете три окошка, в одном из них есть кнопка при нажатии которой выполняется
Код: plaintext
1.
2.
3.
4.
5.
if Empty(Nsipok.ctel1)
  wait window "Введите телефон!"
  ]_CUROBJ = OBJNUM("Nsipok.ctel1")
else
....
endif
а само поле для ввода Nsipok.ctel1 находится в другом окошке....
а может быть это изза wait window "...."
...
Рейтинг: 0 / 0
26.10.2005, 13:10:17
    #33344791
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
[quot Urri]А какая версия FoxPro?[quot]
FoxPro 2.6 for Windows
...
Рейтинг: 0 / 0
26.10.2005, 14:39:40
    #33345136
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
Может, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
if Empty(как_этот_контрол_точно_называется_(имя_переменной,_сопоставленной_контролу))
  activate window окно_где_этот_контрол_находится
  _CUROBJ = OBJNUM("как_этот_контрол_точно_называется_(имя_переменной,_сопоставленной_контролу)")
  wait window "Введите телефон!"
else
....
  *** здесь где-нибудь еще ***
  clear read
  ****************************
endif

Еще важно, откуда этот скрипт вызывается. Хорошо, если из функции valid кнопки "Сохранить изменения" - при этом сама эта кнопка не терминирует read, которым скринсет подперт (галка terminate read должна быть сброшена).
...
Рейтинг: 0 / 0
26.10.2005, 15:01:54
    #33345208
Brother_2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
UrriМожет, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
if Empty(как_этот_контрол_точно_называется_(имя_переменной,_сопоставленной_контролу))
  activate window окно_где_этот_контрол_находится
  _CUROBJ = OBJNUM("как_этот_контрол_точно_называется_(имя_переменной,_сопоставленной_контролу)")
  wait window "Введите телефон!"
else
....
  *** здесь где-нибудь еще ***
  clear read
  ****************************
endif

Еще важно, откуда этот скрипт вызывается. Хорошо, если из функции valid кнопки "Сохранить изменения" - при этом сама эта кнопка не терминирует read, которым скринсет подперт (галка terminate read должна быть сброшена).
чтото выдает ошибку - пишет не найдено такое окно :
у меня в скринсете nsipok 3 окна - nsipok.scx,nsipok2.scx,nsipok3.scx :
поэтому я пишу так
Код: plaintext
activate window nsipok3
- но выдается ошибка
...
Рейтинг: 0 / 0
26.10.2005, 15:23:00
    #33345317
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы поле было обязательным для ввода
Имя окна не обязательно совпадает с именем файла окна. Смотрите в опциях окна.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать чтобы поле было обязательным для ввода / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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