powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / list
11 сообщений из 11, страница 1 из 1
list
    #32312445
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
Помогите с listoм. у меня их два для выбора значений и добавления их в таблицу, событие поставлено на кнопку. Но дело в этом. Не получается определить были выделены пункты или нет, т.е. если не выбрано так вообще ничего добавлять-то и не надо. Заранее спасибо.
...
Рейтинг: 0 / 0
list
    #32312451
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример есть в хелпе.
Код: plaintext
HELP MultiSelect
...
Рейтинг: 0 / 0
list
    #32312453
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
у меня вопрос не в мультиселекте...а как определить, было ли нажатие на listbox..есть у него такое свойство или надо с помощью логической переменной перебирать все строки?
...
Рейтинг: 0 / 0
list
    #32312456
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, перебирать все строки в этом случае не нужно, достаточно посмотреть, что возвращает ListBox.Value.
Код: plaintext
1.
2.
3.
4.
IF EMPTY(thisform.ListBox.Value)
*!* Ничего не выбрано
ELSE
*!* В thisform.ListBox.Value будет значение выбранного пункта
ENDIF
...
Рейтинг: 0 / 0
list
    #32312703
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
Спасибо большое за помощь, но возникла новая проблема..))

в обработке ошибки.

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

Спасибо заранее.
...
Рейтинг: 0 / 0
list
    #32312714
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
34.
35.
36.
37.
38.
39.
*!* Свое сообщение об ошибке
#define MYERRORMESSAGE 'Ошибка. Попытка добавить неуникальное значение'
*!* Предварительные действия
CREATE CURSOR test (test i unique)
LOCAL lnValue
lnValue= 1 
*!* Вставка значения без ошибки
INSERT INTO test (test) VALUES (lnValue)
*!* Способ  1 
*!* Сначала ищем это значение и вставляем его только, если не находим.
IF INDEXSEEK(lnValue,.T.,'test','test')
	=MESSAGEBOX(MYERRORMESSAGE, 48 )
ELSE
	INSERT INTO test (test) VALUES (lnValue)
ENDIF
*!* Способ  2 
*!* Через обработку ошибок.
LOCAL onError 
onError=ON( "Error" )
ON ERROR do ErrorHandler
INSERT INTO test (test) VALUES (lnValue)
ON ERROR &onError
*!* Способ  3 
*!* Через структурную обработку исключений. Только VFP8.
LOCAL oErr AS Exception
TRY 
	INSERT INTO test (test) VALUES (lnValue)
CATCH TO oErr
	IF oErr.ErrorNo= 1884 
		=MESSAGEBOX(MYERRORMESSAGE, 48 )
	ELSE 
		=MESSAGEBOX(oErr.Message, 48 )
	ENDIF 	
ENDTRY 
*!* Последующие действия
BROWSE
USE 

PROCEDURE ErrorHandler
=MESSAGEBOX(MYERRORMESSAGE, 48 )
...
Рейтинг: 0 / 0
list
    #32312787
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
спасибо, был выбран второй способ,но тут ошибка file errorhandler does not exists.
т.е ON ERROR do ErrorHandler - он воспринимается как файл prg
что следует делать? может не подключена какая-то библиотека?

все действия были поставлены на нажатие клавиши
...
Рейтинг: 0 / 0
list
    #32312817
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура ErrorHandler (из примера) должна быть в области видимости, либо в отдельном программном файле, либо в файле указанном в SET PROCEDURE TO. Смотри подробности в хелпе по SET PROCEDURE.
В твоем случае можно не мучаться и использовать еще один вариант - метод Error кнопки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 *!* Command.Error
#define MYERRORMESSAGE 'Ошибка. Попытка добавить неуникальное значение'
LPARAMETERS nError, cMethod, nLine
IF nError= 1884 
	=MESSAGEBOX(MYERRORMESSAGE, 48 )
ELSE 
	=MESSAGEBOX(MESSAGE(), 48 )
ENDIF 	
...
Рейтинг: 0 / 0
list
    #32312939
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
Вы не могли бы уточнить, в программе у меня только способ, поставленный на событие error, все остальное было убрано, это верно?

сообщение выдается, программа не останавливает работу, но например при попытке добавить запись 4 4, которая не уникальна, выдается сообщение об неуникальности и добавляется запись 4 0. Вы не могли бы подсказать с чем это связано. Спасибо большое за ответы.
...
Рейтинг: 0 / 0
list
    #32313033
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2oma

> в программе у меня только способ, поставленный на событие error, все остальное было убрано, это верно?

Верно.

> выдается сообщение об неуникальности и добавляется запись 4 0.

Надо смотреть код, тут телепаты редко встречаются :)
...
Рейтинг: 0 / 0
list
    #32313718
oma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oma
Гость
Спасибо Вам большое за ответы, уже работает все, просто затесалась в код ошибка
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / list
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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