Адрес этой странички : http://spcalc.narod.ru/spcalc_axf_common.htm
spCalc_des_axf.ocx
Простая ActiveX-форма.
Общая информация.
Назначение ActiveX-формы :
Интерпретатор (синтаксис object-pascal), позволяющий разрабатывать и выполнять скрипты, реализующие достаточно сложные алгоритмы расчетов и информационного обмена с другими системами (например, Excel(OLE), Базы Данных (BDE-5)).
Есть возможность прочитать значения переменных выполненного скрипта из приложения (где используется эта ActiveX-форма).
Для доступа к таблицам баз данных используется пакет
BDE-5.
Ниже представлен внешний вид ActiveX-формы
:
Регистрация ActiveX-формы в Windows :
RegSvr32 spCalc_des_axf.ocx
Методы и свойства :
Свойство :
Visible : boolean;
Визуализация формы (по умолчанию = true).
Чтение/Запись
Метод :
function Version: WideString;
Возвращаемое значение: Версия ActiveX формы.
Свойство :
WorkDir : WideString;
Рабочий каталог (в этом каталоге находится файл spCalc_Consts.txt).
Чтение/Запись
Свойство :
Script_Text: WideString;
Текст скрипта.
Чтение/Запись (при записи старый текст будет стерт без предупреждения, даже если он был модифицирован Пользователем).
Свойство :
Script_Modified: integer;
Признак того, что скрипт был изменен Пользователем.
Если =true – текст скрипта был модифицирован, но не сохранен.
Только Чтение.
Свойство :
Script_FileName: WideString;
Имя файла скрипта (если он был заружен из файла или сохранен в файл).
Только Чтение.
Свойство :
Script_CountLines: integer;
Кол-во строк в скрипте.
Только Чтение.
Метод :
procedure Script_New;
Новый скрипт (старый текст будет стерт без предупреждения, даже если он был модифицирован Пользователем).
Метод :
function Script_LoadFromFile (const FileName: WideString): Integer;
Загрузить скрипт из файла FileName (старый текст будет стерт без предупреждения, даже если он был модифицирован Пользователем)
Возвращает кол-во строк загруженного скрипта.
Метод :
function Script_SaveToFile (const FileName: WideString): Integer;
Сохранить скрипт в файл FileName
Возвращает кол-во строк сохраненного скрипта.
Метод :
function Script_LoadFromClipboard: Integer;
Загрузить скрипт из Clipboard (старый текст будет стерт без предупреждения, даже если он был модифицирован Пользователем).
Возвращает кол-во строк загруженного скрипта.
Метод :
function Script_SaveToClipboard: Integer;
Сохранить скрипт в Clipboard.
Возвращает кол-во строк сохраненного скрипта.
Метод :
function Script_Compile(var sErr: WideString): Integer;
Компиляция скрипта (контроль синтаксических ошибок).
Возвращаемое функцией значение :
=1 – нет ошибок
=0 – есть ошибки (расшифровка в переменной sErr)
Метод :
function Script_Run: Integer;
Компиляция и выполнение скрипта.
Возвращаемое значение: =1 – в случае успеха ( =0 в противном случае)
Метод :
function Script_GetVal(const VarName: WideString): OleVariant;
Получить значение переменной VarName после выполнения скрипта.
Возвращаемое значение: VARIANT.
Метод :
function Script_GetVal_AsString( const VarName: WideString): WideString;
Получить значение переменной VarName после выполнения скрипта.
Возвращаемое значение: String (строка).
Метод :
function Script_GetVal_AsInteger(const VarName: WideString): Integer;
Получить значение переменной VarName после выполнения скрипта.
Возвращаемое значение: Integer (целое число).
Метод :
function Script_GetVal_AsFloat(const VarName: WideString): Double;
Получить значение переменной VarName после выполнения скрипта.
Возвращаемое значение: Double (вещественное число).
Метод :
function Script_GetVal_AsBoolean(const VarName: WideString): WordBool;
Получить значение переменной VarName после выполнения скрипта.
Возвращаемое значение: BOOLEAN;
Метод :
function DeleteCharsFromString(const Sx: WideString; CodeChar: Integer): WideString;
Удалить из заданной строки символы с ascii-кодом CodeChar
Возвращаемое значение – исходная строка без символов CodeChar.
Полезно (например), если из строки (или текста скрипта) нужно убрать символы CR (ascii-код = 13) или другие спец.символы.
Ниже – пример использования (внешняя обработка в системе 1С:Предприятие версии 8).
Имя файла обработки : spCalc_test.epf.
Чтобы внедрить ActiveX-форму в форму обработки, нужно выбрать меню «Вставить ActiveX» :
Затем, выбрать spCalc_design из списка :
Ниже – вид формы внешней обработки spCalc_test.epf :
Ниже – обработчики соответствующих событий на форме :
Ниже – результат тестирования внешней обработки.
Запустим программу 1С:Предприятие (v 8) , откроем внешнюю обработку spCalc_test.epf и введем текст скрипта :
Var
Sx : string;
i : integer;
BEGIN
for i := 1 to 3 do
begin
Sx:='Привет-'+IntToStr(i)+', как дела ?';
ShowMessage(Sx);
end;
END.
и нажмем на кнопку «Выполнить скрипт».
На экране появится сообщение :
По окончанию действия скрипта (на экране трижды появится наше сообщение) ,
введите имя переменной Sx в соответствующее поле :
и нажмите на кнопку «Получить значение переменной».
Результат приведен ниже :
Т.е., метод Script_GetVal_AsString (ActiveX-формы) вернул последнее значение переменной Sx.
Теперь модифицируем вышеприведенный скрипт следующим образом :
Результат выполнения представлен ниже :
Теперь, попробуем такой пример :
Var
R : string;
begin
//Конвертировать десятичное целое число 5 в двоичное представление
R := Int10_to_Another(5, 2);
end.
Этот скрипт можно записать и в одну строку :
var R:string;begin R:=Int10_to_Another(5,2);end.
После выполнения скрипта прочитаем значение переменной R.
Оно будет равно 101 (представление числа 5 в двоичной системе).
Возможности ActiveX-формы, как
интерпретатора скриптов, в основном
соответствуют возможностям программы
spCalc.exe.
Т.е., с перечнем и описанием процедур,
функций и возможностей интерпретатора
можно ознакомиться здесь.
Нюансы и отличия : описания пока что нет ...
©
Sergey Popov, Usinsk, Komi, 2007