powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отмена операции
25 сообщений из 25, страница 1 из 1
отмена операции
    #38072549
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ситуация такая, эта программа ранее обсуждалась, в общем есть комбобокс, и есть условие такое если пользователь выбрал какую-то запись из комбобокс, происходит обновление записи в таблице, теперь мне надо сделать условие такое, если выбрал не правильное то не вносить изменения, ну что-то типа отмены. Есть такое в фокспро?
...
Рейтинг: 0 / 0
отмена операции
    #38072556
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

В том месте, где определяешь правильно или неправильно и делай UPDATE или что там у тебя.
...
Рейтинг: 0 / 0
отмена операции
    #38072563
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, update делается у меня. У меня идет так.. в другой теме обсуждался только что вопрос.. В комбобокс выводятся такие значения

05501
ПУСТО
05701

если человек выбрал 05501 или 05701 то делаются обновления, а мне надо сделать еще чтобы если выбрали строку ПУСТО то выводилось сообщение "ВВЕДЕНО НЕВЕРНО" и дальше не выполнялось обновление: вот кусок проги. Красным отметил то что я добавил сейчас.

Код: sql
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.
IF thisform.check1.Value=0
      [color=red]  IF thisform.grid1.column8.combo3.ListIndex=2
        MESSAGEBOX('Код СМО введен некорректно!!')
        ELSE  [/color]
        IF EMPTY(ALLTRIM(curs1gonsolt.smocod))
	       thisform.MousePointer= 11
	       wait window nowait noclear 'Пожалуйста подождите...'
	       SELECT curs1gonsolt
	       REPLACE smocod WITH smo.smocod
	       UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
	       thisform.grid1.refresh()
	       thisform.MousePointer= 0 
	       WAIT CLEAR 
	       ELSE
               IF !EMPTY(ALLTRIM(curs1gonsolt.smocod))
                  IF  MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)=6 && YES (ДА)
				      thisform.MousePointer= 11
				      wait window nowait noclear 'Пожалуйста подождите...'
				      SELECT curs1gonsolt
				      REPLACE smocod WITH smo.smocod
				      UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
				      thisform.grid1.refresh()
				      thisform.MousePointer= 0
				      WAIT CLEAR 
			          ELSE 
						MESSAGEBOX=7 
						thisform.grid1.column8.combo3.Value=curs1gonsolt.smocod
                   ENDIF 
               ENDIF  
        ENDIF 
   ENDIF 
...
Рейтинг: 0 / 0
отмена операции
    #38072565
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот кусок который я добавил

Код: sql
1.
2.
3.
 IF thisform.grid1.column8.combo3.ListIndex=2
        MESSAGEBOX('Код СМО введен некорректно!!')
        ELSE  
...
Рейтинг: 0 / 0
отмена операции
    #38072578
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

Ну, если этот код не работает, значит ПУСТО не ListIndex=2
...
Рейтинг: 0 / 0
отмена операции
    #38072587
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, Код работает :), просто после выполнения куска

IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE


идет дальнейшая проверка и далее выполняется обновление в таблице. В таблицу зановится "ПУСТО". Я имею ввиду после MESSAGEBOX('Код СМО введен некорректно!!') можно ли сделать какую-то оставновку чтобы дальнейший код не выполнялся, не выход из программы, а чтобы ELSE и все что после него не выполнилось пока не выбрали другую строку из комбобокс
...
Рейтинг: 0 / 0
отмена операции
    #38072621
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989IgorNG, Код работает :), просто после выполнения куска

IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE


идет дальнейшая проверка и далее выполняется обновление в таблице. В таблицу зановится "ПУСТО". Я имею ввиду после MESSAGEBOX('Код СМО введен некорректно!!') можно ли сделать какую-то оставновку чтобы дальнейший код не выполнялся, не выход из программы, а чтобы ELSE и все что после него не выполнилось пока не выбрали другую строку из комбобокс

Если попадает в этот IF, то дальше не должен попадать и, соответственно, не должен быть UPDATE.

А вообще этот код работать не должен - ENDIF не хватает.
...
Рейтинг: 0 / 0
отмена операции
    #38072675
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, без этого:

Код: sql
1.
2.
3.
IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE 


работает, где вы говорите не хватает?
...
Рейтинг: 0 / 0
отмена операции
    #38072694
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

IF thisform.check1.Value=0
IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE
IF EMPTY(ALLTRIM(curs1gonsolt.smocod))
thisform.MousePointer= 11
wait window nowait noclear 'Пожалуйста подождите...'
SELECT curs1gonsolt
REPLACE smocod WITH smo.smocod
UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient ;
WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
thisform.grid1.refresh()
thisform.MousePointer= 0
WAIT CLEAR
ELSE
IF !EMPTY(ALLTRIM(curs1gonsolt.smocod))
IF MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)=6 && YES (ДА)
thisform.MousePointer= 11
wait window nowait noclear 'Пожалуйста подождите...'
SELECT curs1gonsolt
REPLACE smocod WITH smo.smocod
UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient ;
WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
thisform.grid1.refresh()
thisform.MousePointer= 0
WAIT CLEAR
ELSE
MESSAGEBOX=7
thisform.grid1.column8.combo3.Value=curs1gonsolt.smocod
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
...
Рейтинг: 0 / 0
отмена операции
    #38072705
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, Нее там есть if в конце, я же вам просто кусок показываю, дальше идет ELSE и другой продолжение.
...
Рейтинг: 0 / 0
отмена операции
    #38072726
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989IgorNG, Нее там есть if в конце, я же вам просто кусок показываю, дальше идет ELSE и другой продолжение.

А там UPDATE есть?
...
Рейтинг: 0 / 0
отмена операции
    #38072733
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, Есть.. Я смотрю у меня после выполнения кода

IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE

в грид меняется значение на то которое я выбрал, а в таблице не меняется.. Мне и не нужно чтобы в таблице менялось, но не хорошо что в грид меняется.. когда повторно запускаю программу видно что значение не поменялось
...
Рейтинг: 0 / 0
отмена операции
    #38072838
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?Андрей8989
Код: plsql
1.
2.
3.
4.
IF thisform.grid1.column8.combo3.ListIndex=2
  MESSAGEBOX('Код СМО введен некорректно!!')
  RETURN
ELSE
...
Рейтинг: 0 / 0
отмена операции
    #38072855
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540, поставил Return такая же ситуация, в если выбираю пустую строку вот ту которая listindex=2 то в грид показывается что типа в это поле занесена пустая строка, а когда перезапускаю программу там как и положено нормальное значение. после masagebox() пишу обновление грид, не помогает
...
Рейтинг: 0 / 0
отмена операции
    #38072866
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

Значит до этого кода надо отмену делать - где-то в районе методов combo.
Или даже в районе методов grid... Подробнее сказать на основании данной информации сложно, телепатов нет.
...
Рейтинг: 0 / 0
отмена операции
    #38072872
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989IgorNG, Есть.. Я смотрю у меня после выполнения кода

IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!!')
ELSE

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

Что выбрал - то и показывается в grid. А в таблице нет потому что, видимо, update не прошел.
...
Рейтинг: 0 / 0
отмена операции
    #38072958
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, вот весь код метода interactivechange грид1, где вы имете ввиду отмену делать?

Код: sql
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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
cMessageTitle = 'Ввод кода СМО'
cMessageText = 'В поле "Код СМО" данного пациента уже введено другое значение, Вы уверены, что хотите изменить код СМО?'
nDialogType = 4 + 32 + 256

IF thisform.check1.Value=0

IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!')
ELSE 

        IF EMPTY(ALLTRIM(curs1gonsolt.smocod))
	       thisform.MousePointer= 11
	       wait window nowait noclear 'Пожалуйста подождите...'
	       SELECT curs1gonsolt
	       REPLACE smocod WITH smo.smocod
	       UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
	       thisform.grid1.refresh()
	       thisform.MousePointer= 0 
	       WAIT CLEAR 
	       ELSE
               IF !EMPTY(ALLTRIM(curs1gonsolt.smocod))
                  IF  MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)=6 && YES (ДА)
				      thisform.MousePointer= 11
				      wait window nowait noclear 'Пожалуйста подождите...'
				      SELECT curs1gonsolt
				      REPLACE smocod WITH smo.smocod
				      UPDATE pacient SET pacient.smocod=curs1gonsolt.smocod from pacient WHERE pacient.polis=curs1gonsolt.polis AND pacient.ser=curs1gonsolt.ser
				      thisform.grid1.refresh()
				      thisform.MousePointer= 0
				      WAIT CLEAR 
			          ELSE 
						MESSAGEBOX=7 
						thisform.grid1.column8.combo3.Value=curs1gonsolt.smocod
                   ENDIF 
               ENDIF  
        ENDIF 
    ENDIF 
 
ELSE

 
	IF thisform.check1.Value=1
	
IF thisform.grid1.column8.combo3.ListIndex=2
MESSAGEBOX('Код СМО введен некорректно!')
ELSE 
	
	    IF EMPTY(ALLTRIM(curs2gonsolt.smocod))
		    thisform.MousePointer= 11
		    wait window nowait noclear 'Пожалуйста подождите...'
		    SELECT curs2gonsolt
		    REPLACE smocod WITH smo.smocod
		    UPDATE pacient SET pacient.smocod=curs2gonsolt.smocod from pacient WHERE pacient.polis=curs2gonsolt.polis AND pacient.ser=curs2gonsolt.ser
		    thisform.grid1.refresh() 
		    thisform.MousePointer= 0
		    WAIT CLEAR 
	        ELSE
        IF !EMPTY(ALLTRIM(curs2gonsolt.smocod))
		    IF  MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)=6 
			    thisform.MousePointer= 11
			    wait window nowait noclear 'Пожалуйста подождите...'
			    SELECT curs2gonsolt
			    REPLACE smocod WITH smo.smocod
			    UPDATE pacient SET pacient.smocod=curs2gonsolt.smocod from pacient WHERE pacient.polis=curs2gonsolt.polis AND pacient.ser=curs2gonsolt.ser
			    thisform.grid1.refresh()
			    thisform.MousePointer= 0
			    WAIT CLEAR 
			    ELSE 
					 MESSAGEBOX=7 && YES (ДА)
					 thisform.grid1.column8.combo3.Value=curs2gonsolt.smocod
			ENDIF 
       ENDIF  
       ENDIF 
    ENDIF 
ENDIF 
...
Рейтинг: 0 / 0
отмена операции
    #38072971
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

И что?
При ListIndex=2 обновления не происходит.
...
Рейтинг: 0 / 0
отмена операции
    #38073001
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, Обновление не должно происхоить при Listindex=2 наоборот когда равно 2, т.е. это строка "ПУСТОТА" или просто пустая строка. при нажатии на эту строку должно просто вывестись сообщение что введен неверный код смо и больше ничего не должно происходить.
...
Рейтинг: 0 / 0
отмена операции
    #38073010
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А сейчас у меня при выборе этой записи "пустота" выводится сообщение что введен неверны код смо и в грид отображается пустота, если до этого там было какое-то значение. т.е. вместо значения отображается пустота в грид, я спрашиваю как сделать так чтобы если есть уже значение в комбобокс и если выбрали пустую строку т.е. listindex=2 вывести сообщение что введен неверный код смо и при этом чтобы в грид не отображалась пустота вместо значения которое было до выбора Пустой строки
...
Рейтинг: 0 / 0
отмена операции
    #38073016
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

Еще раз: по твоему коду при ListIndex = 2 update не происходит.
А то что grid тебе показывает - смотри к каким данным он привязан, к каким данным привязан твой combobox и т.д.
Смотри, что у тебя есть в коде combobox.
...
Рейтинг: 0 / 0
отмена операции
    #38073290
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, я знаю что обновление не происходит.. для комбобокс источником является таблица smo отфильтрованная, т.е. эти три значения. ну ладно, посмотрю как можно добиться желаемого
...
Рейтинг: 0 / 0
отмена операции
    #38073482
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,

В методе "interactivechange" грид1 не стоит это делать.

У тебя комбо8 внедрен в грид1 или отдельно на форме?
...
Рейтинг: 0 / 0
отмена операции
    #38073511
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989,
Jonny540У тебя комбо8 внедрен в грид1 или отдельно на форме?Ерунду спросил, код не посмотрел

Попробуй этот код перенести в метод Click() Combo3.
...
Рейтинг: 0 / 0
отмена операции
    #38073514
Андрей8989,
Делай проверку значения в событии Valid на комбике.
Если введено некорректное значение, то выдавай сообщение об ошибке и возвращай .f. (return .f.) ...
Если введено корректное значение, то возвращай .t. (return .t.)...
Если будет возвращено .f. то выхода из комбика не произойдет....
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отмена операции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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