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

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

Автор Тема: Таблица  (Прочитано 3817 раз)

MMRoman

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Таблица
« : 30 Января 2025, 10:10:45 »
Здравствуйте, подскажите в таблицу нужно выводить значения из плк их около 400, не разобрался как бы сделать это попроще, или есть выделение всего столбца разом.
И почему в таблице нету горизонтального скролла ?
« Изменён: 30 Января 2025, 11:10:27 от MMRoman »

ARV

  • Постоялец
  • ***
  • Сообщений: 117
    • Просмотр профиля
Re: Таблица
« Ответ #1 : 30 Января 2025, 13:37:03 »
Сделать из таблицы запрос к базе данных (выборка из таблицы variables) , который вернет все нужные переменные и затем по событию таблицы OnDoneSQL перебрать все строки и присвоить нужным ячейкам переменные из базы - таблица сама будет показывать значения все переменных.

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 288
    • Просмотр профиля
    • Simple-Scada
Re: Таблица
« Ответ #2 : 30 Января 2025, 20:27:56 »
Здравствуйте.

Цитировать
подскажите в таблицу нужно выводить значения из плк их около 400, не разобрался как бы сделать это попроще, или есть выделение всего столбца разом.
Привязать переменные можно либо вручную отдельно к каждой ячейке таблицы, либо с помощью скриптов, используя свойство "Variable". Например, если все переменные имеют однотипные имена (например "MyVar1" .. "MyVar400" – привести имена переменных к однотипному наименованию можно с помощью группового переименования), то в скрипте с типом события "Запуск проекта" можно пройти по всем ячейкам таблицы и связать их с переменными (предварительно необходимо создать таблицу с нужным количеством ячеек):
Код: (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.
Цитировать
И почему в таблице нету горизонтального скролла ?
Добавление горизонтального скролла у компонента "Таблица" есть в планах, но не в ближайшем будущем.