Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: MMRoman от 30 Января 2025, 10:10:45

Название: Таблица
Отправлено: MMRoman от 30 Января 2025, 10:10:45
Здравствуйте, подскажите в таблицу нужно выводить значения из плк их около 400, не разобрался как бы сделать это попроще, или есть выделение всего столбца разом.
И почему в таблице нету горизонтального скролла ?
Название: Re: Таблица
Отправлено: ARV от 30 Января 2025, 13:37:03
Сделать из таблицы запрос к базе данных (выборка из таблицы variables) , который вернет все нужные переменные и затем по событию таблицы OnDoneSQL перебрать все строки и присвоить нужным ячейкам переменные из базы - таблица сама будет показывать значения все переменных.
Название: Re: Таблица
Отправлено: Simple Scada от 30 Января 2025, 20:27:56
Здравствуйте.

Цитировать
подскажите в таблицу нужно выводить значения из плк их около 400, не разобрался как бы сделать это попроще, или есть выделение всего столбца разом.
Привязать переменные можно либо вручную отдельно к каждой ячейке таблицы (https://clck.ru/3G5EbG), либо с помощью скриптов (https://simple-scada.com/help/script/index.html), используя свойство "Variable (https://simple-scada.com/help/script/variable.html)". Например, если все переменные имеют однотипные имена (например "MyVar1" .. "MyVar400" – привести имена переменных к однотипному наименованию можно с помощью группового переименования (https://simple-scada.com/help/manual/variable-editor.html?anchor=bulkren)), то в скрипте с типом события "Запуск проекта (https://simple-scada.com/help/script/launch-project.html)" можно пройти по всем ячейкам таблицы и связать их с переменными (предварительно необходимо создать таблицу с нужным количеством ячеек):
Код: (delphi)
var
  aVar: TM_Variable;
  aCell: TM_TableCell;
  iRow, iCol, aNum: Integer;
begin
  aNum := 1;
  for iCol := 0 to Table1.ColumnsCount - 1 do    // проходим по всем столбцам таблицы Table1
    for iRow := 0 to Table1.RowCount - 1 do      // проходим по всем строкам текущего столбца
    begin
      aVar := GetVariableByName('MyVar ' + IntToStr(aNum));  // выполняем поиск переменной MyVarN
      if aVar <> nil then                        // если переменная существует
      begin
        aCell := Table1.GetCell(iCol, iRow);     // получаем ячейку на пересечении текущего столбца и строки
        aCell.Variable := aVar;                  // связываем найденную ячейку с переменной
        aNum := aNum + 1;
      end;
    end;
end.
Цитировать
И почему в таблице нету горизонтального скролла ?
Добавление горизонтального скролла у компонента "Таблица (https://simple-scada.com/help/manual/table.html)" есть в планах, но не в ближайшем будущем.