BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Как записать в кодовом блоке несколько команд?

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как записать в кодовом блоке несколько команд?
 
Здравствуйте!
Можно ли в кодовом блоке сразу вызвать на выполнение несколько команд
Например:

function main()
Local aCol:={1,2,3}
aeval(aCol,{|x| if(x=4,sayandwait("Нет такого значения") return, )})
return

Бэст на строку aeval(aCol,{|x| if(x=4,sayandwait("Нет такого значения") return, )}) выдает ошибку.
Как иначе можно это выражение записать?
Заранее спасибо.
 
В блоке кода можно вызвать на исполнение функции и выражения, перечисляя их через запятую. Команды использовать нельзя (return, к примеру).

Вот пример. Вас это интересовало?
aeval(aProvs, {|x| addrec(), umain->nnoper:=nOper, umain->task:='05', umain->dataoper:=act->tek_data, f_dbunlock() }))

Если Вы хотите прервать обработку, то лучше сделать полноценный цикл и поставить там exit
Или можно описать sequence и вызвать break(), хотя с aeval(, {||}) я так не делаю и не знаю точно сработает или нет.

и на этом моменте я понял, о чём Вы спрашиваете. Надо заключить выражения в круглые скобки, вот так:

aeval(aCol, {|x| if(x=4,(sayandwait("Нет такого значения"), break()), nil) })
Изменено: Алексей Новиков - 24.07.2014 14:57:06
С уважением, Новиков Алексей.
 
Алексей,спасибо.
Вы правильно поняли мой Вопрос .
Кроме того еще остался один Вопрос .
Для принудительного завершения работы плагина в каких случаях надо применять break() , а в каких случаях - return ?
 
break - это команда, которая вызывает прерывание в пределах операторных скобок
begin sequence - end sequence
при вызове break управление передаётся за end sequence, а если есть recover, то за recover
скобки могут быть вложены друга в друга, поэтому если в плагине нет скобок, то break передаёт управление обратно в БЭСТ, где такие скобки скорей всего есть

если скобок нет совсем, то, возможно, завершается программа
но с этим я не экспериментировал и в описании этот пункт не читал

так что завершать лучше через return
С уважением, Новиков Алексей.
Страницы: 1
Читают тему (гостей: 1)