Неофициальный сайт автоматизаторов ИС-Банк
Сайт Индустриального Сберегательного Банка
Обновлена: 04.05.2006
Главная
RS-Bank
RSL
Pervasive/BTrieve
OpenOffice.org
О нас

Использование GetCmdLineParm

Наверное многие озадачивались, но не все знают, как получить в макрос Параметры выполнения установленные для данного модуля в соответствующем поле при настройке меню пользователя. Оказывается совсем несложно. И для этого надо использовать процедуру GetCmdLineParm.

С помощью этой же процедуры можно получить параметры запуска макроса из командной строки, как в 2х-, так и в 3х-звенной архитектуре.

GetCmdLineParm(pParmName:string, pParmValue:variant) : bool - Возвращает параметр выполнения с именем заданным в pParmName во второй параметр процедуры pParmValue. В случае, если параметр с заданным именем не найдет, процедура возвращает FALSE, в случае успеха - TRUE.

1. Получение параметров выполнения макромодуля:

Рисуем макрос С.MAC

import BankInter;
var prm, res;
if (GetCmdLineParm("prm1",prm))
  Msgbox(prm);
  exit(1);
end;


При этом строка параметров должна выглядеть примерно так

"-prm1:123 -prm2:SET"

Иногда бывает необходимо один и тотже макрофайл вызывать из меню и импортировать в другие макромодули. Это весьма проблематично, т.к. при вызове макромодуля из меню необходимо, чтобы сразу стартовался какой либо код, а вот при импорте - это наоборот недопустимо. Ниже приведен пример, как это можно обойти, используя GetCmdLineParm.

import BankInter;

MACRO Main(pMode)
 msgbox(pMode);
END;

var prm, res;
if (GetCmdLineParm("Mode",prm))
  Main(int(prm));
  exit(1);
end;


При наличии параметра Mode в строке параметров выполнения пункта меню для данного макроса, при выборе данного пункта меню, сразу запустится процедура Main(pMode). При импорте модуля в другой макромодуль, параметр не будет получен и процедура Main не запустится.

2. Получение параметров из командной строки:

Воспользуемся макросом C.MAC из предыдущего примера.

Рисуем файлик C.BAT следующего вида:

rslbmv32.exe 9999 parol ..\mac\c.mac -prm1:%1

Стартуем батник

C.BAT ПРЕВЕД!!!


Получаем на экранчике MsgBox с ПРЕВЕДОМ!

Для трехзвенки содержимое C.BAT должно выглядеть следующим образом:

term.exe -p"rslbmv32.exe 9999 parol ..\mac\c.mac -prm1:%1



(C) Хондожко И.В., 2006 г.


E-mail : ilya_hondo@mail.ru
Hosted by uCoz