Иногда возникает потребность показать информационное сообщение, но ВСЕГО ОДИН РАЗ - каждому пользователю, а не при любом движении или обновлении экрана.
Это можно реализовать с помощью Live Fields.
Концепт реализации прост. Мы просто будем записывать во временный файл тех, кому мы сообщение показывали.
Если смысл ясен - можете попробовать сделать его сами, а ниже решение.
Реализация
Для начала создадим нужный файл.
У меня есть папка, в корне: silprograms\infoMsg
Можно внутри этой папки разбить сообщения по папкам проектов. В текущем примере, их нет.
Создаем temp.sil для создания файла.
Теперь мы создали файл. И записали первой строкой его "структуру".
Для самой простой реализации, все что нам надо - это имя пользователя. Файл temp.sil нам больше не потребуется Можно удалить.
Далее отправляемся писать LiveFields для вывода сообщения
struct
uname
{
string user;
}
uname
[] fileContent = readFromCSVFile(
"infoMsg/helloMsg.csv"
,
true
);
if
(!elementExists(fileContent, currentUser())){
lfDialogMessage(
"ОДУМАЙСЯ и УДОЛИ!"
,
"SUCCESS"
);
printInFile(
"infoMsg/helloMsg.csv"
, currentUser());
}
Данный код легко можно обернуть в какое-то дополнительное условие. Например показывать это только на экране просмотра или на экране создания. Т.е. так, как вам это будет необходимо.
Собственно всё. Если опробовать в действии - перейти на страницу с сообщением, а затем посмотреть в csv файл - можно увидеть, что там добавится новая запись, ваше имя пользователя. И больше сообщение от live fields вы не увидите
Комментариев нет:
Отправить комментарий