Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: ilnurikK от 29 Октября 2025, 10:01:01

Название: Временная таблица в скриптах
Отправлено: ilnurikK от 29 Октября 2025, 10:01:01
Добрый день!

Взял скрипт из  примера (чуток его изменил), который вызывается по клику кнопки:
Код: (delphi)
//
// Этот скрипт вызывается когда пользователь кликнул
// кнопку "ЗАДЕЙСТВОВАТЬ"
//

var
  aIndex: Integer;
  aQuery: string;
  tblTempRecipes: TM_Table;
begin
  aIndex := tblRecipes.RowIndex;  // получаем индекс выделенной строки в таблице рецептов
  if aIndex = -1 then             // если строка не выбрана
  begin
    ShowMessageClient(GetClientName, 'Рецепт не выбран!', 'Сначала выберите рецепт который нужно задействовать.');
    Exit;
  end;

  IDValue.Value := tblRecipes.GetCell(0, aIndex).Text;
  // формируем запрос из таблицы "recipes"
  aQuery := 'SELECT * FROM `recipes` WHERE `id`=' + QuotedStr(tblRecipes.GetCell(0, aIndex).Text);
  tblTempRecipes.RunSQL(aQuery, tsSaveFixRow);

  // записываем значения (из выделенной строки таблицы рецептов) в переменные
  txtRecipeName.Text := tblTempRecipes.GetCell(1, 1).Text;
  vrK1.Value := StrToInt(tblTempRecipes.GetCell(3, 1).Text);
  vrK2.Value := StrToInt(tblTempRecipes.GetCell(4, 1).Text);
  vrK3.Value := StrToInt(tblTempRecipes.GetCell(5, 1).Text);
  txtRecipeName.Hint := tblTempRecipes.GetCell(6, 1).Text;
end.
tblTempRecipes временная таблица, в которую хочу записать результат запроса, т потом вытащить из этой таблицы данные. В данном варианте скрипт не отрабатывает. Если же создаешь элемент Таблица на мнемосхеме с именем tblTempRecipesб то по клику в эту таблицу читаются данные. Почему при определении tblTempRecipes: TM_Table; не работает?
И еще, если же создаешь элемент Таблица на мнемосхеме, то данные   vrK1.Valu,  vrK2.Value,  vrK3.Value заполняются только после нескольких нажатий. То есть не с первого раза.
Название: Re: Временная таблица в скриптах
Отправлено: ilnurikK от 29 Октября 2025, 16:30:06
Решил проблему через DataSet