Иногда возникает потребность показать информационное сообщение, но ВСЕГО ОДИН РАЗ - каждому пользователю, а не при любом движении или обновлении экрана.
Это можно реализовать с помощью 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 вы не увидите

Комментариев нет:
Отправить комментарий