int shell_func(string directive, ...)

Осуществляет обращение к системным функциям.
Набор аргументов определяется в соответствии с директивой.
Возвращает 0 при успешном выполнении. Если что-то пошло не так возвращает -1.

ac_request("solaris_test")   проверить наличие и возможность получения данных из add-ons LabPP_Solaris:Квартирография
ac_request("get_flat_rooms",int ObjectDescrFlat, int listnum);   заполнить список элементов № listnum элементами комнат (зон) подключенных к маркеру квартиры (по данным Квартирографии LabPP_Solaris)

ac_request("projectinfo", valuename1, variablename1, valuename2, variablename2, ...)

В аргументах задаются имя параметра проекта, за ней через запятую - переменная программы, куда вернуть значение.
И так далее через запятую.
Возвращает 0 при успешном выполнении. Если что-то пошло не так возвращает -1.

"projectname"   название проекта
"client"   заказчик
"company"   компания
"street"   улица
"city"   город
"country"   страна
"architect"   архитектор
"projectstatus"   статус проекта
"date"   дата выпуска
"notes"   комментарии
"draftsmen"   исполнитель

int run_cpp(string directive, ...)

Осуществляет запуск другого скрипта из текущего.
При помощи этих функций можно создавать "на лету" скрипты любой сложности, а так же запускать с различными исходными значениями аргументов;
После выполнения другого скрипта выполнение текущего продолжается.
Возвращает значение, которое выдал запущенный скрипт в команде return (напримен 0, если это был return 0;).
Текст скрипта для выполнения можно создать непосредственно во время выполнения текущего скрипта и записать в переменную типа stging.
Затем его можно запустить на выполнение прямо из этой переменной.
При запуске можно пользоваться входящими параметрами - целое число, вещественное число и строка.
Директивы и их значения перечислены ниже.

run_from_file   запустить на выполнение текст скрипта из файла с аргументами
run_from_variable   запустить на выполнение текст скрипта из строковой переменной, с аргументами
get_args   получить аргументы, которые задавались при запуске скрипта

ac_request("dialog_get_filename",string Title, string Filter, string &FileNameAndPath);

 

Вызывает диалог чтобы выбрать существующий файл или задать новое имя файла.
Аргументы

Title - задает заголовок диалога
Filter - фильтр для имени и расширения файла (например если задать "*.txt" - то пользователь сможет выбрать только файл с расширением txt)
FileNameAndPath - имя и путь к файлу. При обращении к функции задает первоначальное значение имени файла и пути. По завершению работы диалога в эту переменную возвращается выбранный файл и путь к нему.

Возвращаемое значение.

При утвердительном выборе файла функция возвращает 0. Во всех других случаях -1.

Пример.

string FileNameAndPath;
int ires = ac_request("dialog_get_filename", "Задайте имя текстового файла для сохранения отчета", "*.txt",
FileNameAndPath);
if(ires == 0)
{
   cout << "Выбран файл "<<
FileNameAndPath
}
else
{
   cout << "Пользователь отказался от выбора файла";
}