мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
special_params_in_scripts [15.10.2021 08:04]
Lingri создано
special_params_in_scripts [15.10.2021 09:40]
Lingri
Строка 11: Строка 11:
 ===== Техническая часть ===== ===== Техническая часть =====
 Чтобы подобное реализовать,​ нужно доработать модуль **ScriptFunctions.pas**:​ Чтобы подобное реализовать,​ нужно доработать модуль **ScriptFunctions.pas**:​
-  - В тип TExtScriptResInfo добавляем нужное поле;+  - В тип TExtScriptResInfo добавляем нужное поле; ​{{:​pasted:​20211015-075714.png}} 
 +  - В процедуре **TScriptExecutor.PSScriptCompile** регистрируем название новой переменной:​ //​Sender.AddRegisteredPTRVariable('​scriptItogSum',​ '​double'​);//​ 
 +  - В процедуре **TScriptExecutor.PSScriptExecute** связываем переменную с полем записи **ExtScriptResInfo**:​ //​PSScript.SetPointerToData('​scriptItogSum',​ @ExtScriptResInfo.scriptItogSum,​ PSScript.FindBaseType(btDouble));//​ 
 +  - В процедуре **TScriptExecutor.PSScriptAfterExecute** делаем вывод этой переменных в запись **ExtScriptResInfo**:​ //​ExtScriptResInfo.scriptPercent := VGetInt(PSScript.GetVariable('​scriptPercent'​));//​
  
-{{:pasted:20211015-075714.png}}+==== Базовые типы переменных в скриптах ==== 
 +^Базовый тип в скриптере ​  ​^Соответствующий тип Delphi ​  ^ 
 +|btU8|Byte| 
 +|btS8|ShortInt| 
 + 
 +==== Функции получения данных ==== 
 + 
 +Весь список возможных функций получения данных: 
 +  * function VGetUInt(const SrcPIFVariant):​ Cardinal; 
 +  * function VGetInt64(const Src: PIFVariant):​ Int64; 
 +  * function VGetReal(const Src: PIFVariant):​ Extended; 
 +  * function VGetCurrency(const Src: PIFVariant):​ Currency; 
 +  * function VGetInt(const Src: PIFVariant):​ Longint; 
 +  * function VGetString(const Src: PIFVariant):​ String; 
 +  * function VGetAnsiString(const Src: PIFVariant):​ tbtString;​ 
 +  * function VGetWideString(const Src: PIFVariant):​ tbtWideString;​ 
 +  * function VGetUnicodeString(const Src: PIFVariant):​ tbtunicodestring;​
  
-  - В процедуре TScriptExecutor.PSScriptCompile регистрируем название новой переменной:​ Sender.AddRegisteredPTRVariable('​scriptItogSum',​ '​double'​);​ 
-  - В процедуре TScriptExecutor.PSScriptExecute связываем переменную с полем записи ExtScriptResInfo:​ PSScript.SetPointerToData('​scriptItogSum',​ @ExtScriptResInfo.scriptItogSum,​ PSScript.FindBaseType(btDouble));​ 
  
-В качестве типа здесь нужно указывать именно базовые типы, одни из следующих:​ 
  
  
-  - В процедуре TScriptExecutor.PSScriptAfterExecute делаем вывод этой переменных в запись ExtScriptResInfo:​ ExtScriptResInfo.scriptPercent := VGetInt(PSScript.GetVariable('​scriptPercent'​));​