Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Инструмент таблица. Возможности?  (Прочитано 8032 раз)

godygadu

  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
Здравствуйте. Меня интересует, как работать с таблицей? Как в ячейки установить, например, динамическое время или дату? Как вставлять значения из БД в таблицу? Как обращаться к таблице из скрипта? Спасибо.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Инструмент таблица. Возможности?
« Ответ #1 : 07 Марта 2017, 14:09:02 »
Здравствуйте.

Цитировать
Как в ячейки установить, например, динамическое время или дату?
Для этого сначала создается переменная, например vrMyTime c типом данных DateTime. (или можно импортировать DateTime переменную с OPC-сервера). Затем ставим в проект новую таблицу и выделяем ячейку в которой нужно отобразить дату/время. Связываем эту ячейку с переменной vrMyTime. Готово. Теперь если запустить проект, то в ячейке отобразится дата/время из переменной vrMyTime.

Цитировать
Как вставлять значения из БД в таблицу?
Сейчас это невозможно. В следующих обновлениях мы добавим методы для работы таблицы с БД.

Цитировать
Как обращаться к таблице из скрипта?
Сейчас у таблицы свойства доступны только для чтения. Вот список всех свойств таблицы. Обращаться например так: Table1.Title;

godygadu

  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
Re: Инструмент таблица. Возможности?
« Ответ #2 : 09 Марта 2017, 08:28:38 »
Насчет времени. Если в ячейке указать переменную с типом DateTime, то в ней действительно, будет отображаться время, но оно не обновляется совсем. Ваш способ не подходит.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Инструмент таблица. Возможности?
« Ответ #3 : 09 Марта 2017, 09:23:18 »
Цитировать
то в ней действительно, будет отображаться время, но оно не обновляется совсем.
Если оно не обновляется, значит переменная даты/времени не меняется. Если Вы создали виртуальную переменную, то добавьте новый скрипт с типом события "Прошла секунда" и напишите такой код:

Код
begin
  // записываем текущее время в vrMyTime
  vrMyTime.Value := Now;
end;

А если Вы используете внешнюю переменную дату/времени с какого-либо устройства, то сделайте обновление времени в программе устройства.

godygadu

  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
Re: Инструмент таблица. Возможности?
« Ответ #4 : 09 Марта 2017, 09:39:17 »
Работает. Спасибо.

TeNQ

  • Постоялец
  • ***
  • Сообщений: 200
    • Просмотр профиля
Re: Инструмент таблица. Возможности?
« Ответ #5 : 09 Марта 2017, 09:44:02 »
Цитировать
Как вставлять значения из БД в таблицу?
Сейчас это невозможно. В следующих обновлениях мы добавим методы для работы таблицы с БД.

А я вставляю)
Вот запрос из скрипта стартующего с клиентом
Код
 { Формируем запрос к БД }
  aQuery := 'SELECT `TRM1_ProgramDuration`, `TRM2_ProgramDuration` '+
            'FROM `program_table` WHERE ID = 1;';

  { Отправляем запрос на выполнение и помечаем его тегом = 77 }
  RunSQL(aQuery, nil, 77);
А вот вставка в таблицу в скрипте с ответом на запрос
Код
begin
  { Если это результат нашего запроса с тегом = 77, то обрабатываем его }
  if DataSet.Tag = 77 then
  begin
    vrTRM1_ProgramDuration.Value := DataSet[0].AsDateTime;
    vrTRM2_ProgramDuration.Value := DataSet[1].AsDateTime;
    Table1.Columns[3].Cells[1].Variable.Value := TimeToStr(vrTRM1_ProgramDuration.AsDateTime);
    Table1.Columns[3].Cells[2].Variable.Value := TimeToStr(vrTRM2_ProgramDuration.AsDateTime);
  end;
end.     
Хотя тут я и перемудрил. К ячейкам таблицы привязаны виртуальные переменные. Можно было просто присваивать переменной напрямую.
« Изменён: 09 Марта 2017, 09:47:08 от TeNQ »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Инструмент таблица. Возможности?
« Ответ #6 : 09 Марта 2017, 09:46:24 »
TeNQ, через переменные всё возможно :). И ещё не получится добавить новые строки, так как они не связаны с переменными. И можно использовать только те, которые связали в редакторе. Но это ведь не очень удобно и лучше бы скада делала это сама, без пользовательских скриптов и переменных.
« Изменён: 09 Марта 2017, 09:48:17 от Simple-Scada »

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Инструмент таблица. Возможности?
« Ответ #7 : 15 Марта 2017, 12:27:42 »
...и лучше бы скада делала это сама, без пользовательских скриптов и переменных.
За неимением горничных... ;D Это лучше чем никак.