Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как сделать динамическое присвоение значений

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык
Предыдущая тема :: Следующая тема  
Автор Сообщение
Arbuz



Зарегистрирован: 23.04.2018
Сообщения: 4

СообщениеДобавлено: Чт Июн 29, 2023 19:11    Заголовок сообщения: Как сделать динамическое присвоение значений Ответить с цитатой

Доброго времени суток всем форумчанам!
Возникла необходимость оптимизировать работу функционала формы диалога со множеством галочек "включающих" дату (если нажата галка) и блока даты со сбросом её значения в '1900-01-01' (если снята галка).

Основной принцип работы этой схемы такой:
Код:

IF @[запрос]:galka = 0
THEN {
           LET @[запрос]:Date1 = '1900-01-01';
           DRAWFIELD @[запрос], Date1;
           DISFIELD @[запрос], Date1;
         };


Моя задумка в том, чтобы запускать такой код в цикле WHILE через переменную счётчик. Но при формировании строки-кода (что описан выше), я никак не могу записать строку с LET как мне нужно.
Я могу определить название нужного мне поля для присвоения даты, но только, когда я формирую строку кода вроде:
Код:
 SELECT 'LET ' + DLGNAME[''] + ':' + _locNameDate_[''] + ' = ' + '''' + '1900-01-01' + '''' + '; ' INTO :aaa;

где _locNameDate_ - это поле с датой и пытаюсь её запустить на выполнение, как получаю ошибку.
Ошибка появляется, т.к. при выполнении, Босс-Кадровик автоматически представляет эту конструкцию переменной в подобном ключе:
Код:
 LET '1900-01-01' = '1900-01-01';

Естественно, в таком случае будет ошибка.
Как заставить Босс не заменять конструкцию @[запрос]:Date1 сразу на значение, а оставить её в виде текста @[запрос]:[Имя_поля]?

Помогите, пожалуйста, решить данную проблему.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Spartak



Зарегистрирован: 18.03.2010
Сообщения: 180

СообщениеДобавлено: Сб Июл 01, 2023 19:49    Заголовок сообщения: Ответить с цитатой

возможно break поможет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arbuz



Зарегистрирован: 23.04.2018
Сообщения: 4

СообщениеДобавлено: Сб Июл 01, 2023 19:53    Заголовок сообщения: Ответить с цитатой

Spartak писал(а):
возможно break поможет


Поясните, пожалуйста, как мне необходимо прописать этот BREAK?

Просто в таком виде?
Код:

BREAK @[имя_запроса]:Date1;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arbuz



Зарегистрирован: 23.04.2018
Сообщения: 4

СообщениеДобавлено: Вс Июл 02, 2023 13:40    Заголовок сообщения: Ответить с цитатой

Всё! Нашёл решение проблемы сам. Yahoo!
Спасибо Вам, "Spartak", что подали идею с командой BREAK.
Она, увы, не помогла, но надоумила меня, из любопытства, попробовать команду: xSql()
И она помогла!

Вот как выглядит решение моей проблемы:
Код:

SELECT 'LET DLGNAME:' + Имя_Нужного_Поля[''] + '''' + '1900-01-01' + '''' + '; '
+ 'DRAWFIELD ' + DLGNAME[''] + ', ' + Имя_Нужного_Поля[''] + ';'
INTO :_strSQL;
Execute xSql(:_strSQL);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU