Как заполнить переменные значениями из БД?

отредактировано August 2009 Раздел: FastScript
Как заполнить их значениями?

в обработчике не могу получить список переменных.

procedure TFunctions1.F_InitdataOnDay(pDate: TdateTime);
Var i:Integer;
iVar : TfsCustomVariable;
iRet :Extended;
item: TObject;
begin

iVar := self.Script.Find( 'КА4_tau_к');// Не находит
iVar := fsGlobalUnit.Find( 'КА4_tau_к'); // Не находит

// for I := 0 to self.Script.progrunning.Count - 1 do // progrunning = nil
for I := 1 to self.Script.Count - 1 do
begin
item := self.Script. Items;
if ((item is TfsCustomVariable) // and (TfsCustomVariable(item).AddedBy <> TObject(1))
) then
begin

тут тоже не находит переменные, как получить список всех переменных которые выполняются
в данном скрипте и изменить их значения?

P.S. Как тут файл приаттачить?

Комментарии

  • отредактировано August 2009
    Как в пользовательской процедуре F_InitDataOnDay найти список
    всех переменных выполняемых в данном скрипте и в данном компоненте fsScript?


    Var A4_tau_1082 :Extended = 4;
    Var A3_tau_1082 :Extended = 4;

    Procedure InitDataOnDay;
    begin
    F_InitDataOnDay;
    end;

    Procedure test;
    begin
    ShowMessage(A4_tau_1082);
    InitDataOnDay;
    ShowMessage(A4_tau_1082);
    end;

    begin
    test;
    end.


    unit Unit3;
    
    interface
    
    
    uses SysUtils, Classes, fs_iinterpreter, fs_itools, Math ,frxClass ,frxVariables
        , MaskUtils, Variants, Windows, ComObj , forms , StdCtrls , Controls
    ;
    
    
    type
      TFunctions1 = class(TfsRTTIModule)
      private
        function CallMethod(Instance: TObject; ClassType: TClass;
          const MethodName: String; Caller: TfsMethodHelper): Variant;
        procedure F_InitdataOnDay;
      public
        constructor Create(AScript: TfsScript); override;
      end;
    
    
    implementation
    
    
    { TEleFunctions }
    
    function TFunctions1.CallMethod(Instance: TObject; ClassType: TClass;
      const MethodName: String; Caller: TfsMethodHelper): Variant;
    begin
      if MethodName = 'F_INITDATAONDAY' then
      begin
         F_InitDataOnDay;
      end
    ;
    end;
    
    constructor TFunctions1.Create(AScript: TfsScript);
    begin
      inherited Create(AScript);
      with AScript do
      begin
        AddMethod('procedure F_InitDataOnDay;', CallMethod, 'Proc');
      end;
    end;
    
    
    
    procedure TFunctions1.F_InitdataOnDay;
     Var i:Integer;
        iVar : TfsCustomVariable;
         item: TObject;
    begin
    
      iVar :=  self.Script.Find( 'КА4_tau_к');
      iVar :=  fsGlobalUnit.Find( 'КА4_tau_к');
      iVar :=  self.Script.Find( 'КА3_tau_к');
      iVar :=  fsGlobalUnit.Find( 'КА3_tau_к');
    
      //  for I := 0 to self.Script.progrunning.Count - 1 do
      for I := 1 to self.Script.Count - 1 do
      begin
        // iVar :=  self.Script.Items[i]; Variables
    
        item := self.Script. Items[i];
        if ((item is TfsCustomVariable)
       // and       (TfsCustomVariable(item).AddedBy <> TObject(1))
           ) then
        begin
         iVar := TfsCustomVariable(item);
         if iVar.Name = 'КА4_tau_к' then
            iVar.Value := 99;
        end;
    
    
      end;
    
    end;
    
    initialization
      fsRTTIModules.Add(TFunctions1);
    end.
    
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.