export_to_ac_object_parameter
Выгрузить таблицу в параметр GDL типа массив.
Размерность массива изменяется у конкретного экземпляра библиотечного элемента, в который происходит выгрузка.
Вызов:
int ires = ts_table(int iTable, "export_to_ac_object_parameter", string sParameterName);
Здесь:
iTable - дескриптор таблицы,
sParameterName - имя GDL параметра (массив).
Пример.
У отобранных в список №1 GDL элементов имеется текстовый табличный параметр sMyParameters.
Имя |
Значение |
Тип |
Мой параметр 1 |
8 |
число |
Мой параметр 2 |
значение параметра 2 |
текст |
Требуется у элемента с индексом 0 в списке №1 :
1. считать значение Мой параметр 1
2. если надо, то создать и записать новый параметр с именем "Мой новый текстовый параметр" и записать туда значение "значение 3"
int iTable;
object("create", "ts_table", iTable);
int ires = ac_request("set_current_element_from_list", 1, 0);
ac_request_special("get_element_value", "GDL","sMyParameters", iTable); // считать содержимое и структуру GDL параметра в таблицу iTable
string str;
ts_table(iTable, "print_to_str", str);
coutvar << str;
//считаем значение Мой параметр 1 в svalue;
ires = ts_table(iTable,"search",0,"Мой параметр 1");
string svalue;
if(ires >=0) {
ts_table(iTable, "select_row", ires);
ts_table(iTable, "get_value_of", 0, svalue);
}
//добавим, если такого еще нет нужно, считаем значение Мой параметр 1 в svalue;
ires = ts_table(iTable,"search",0,"Мой новый текстовый параметр");
if(ires < 0) {
ts_table(Table,"add_row", 0, "Мой новый текстовый параметр", 1, "значение 3", 2, "строка");
}
else
{
ts_table(iTable, "select_row", ires);
ts_table(iTable, "set_value_of", 1, "значение 3");
}
// Записать таблицу назад в параметр текущего элемента. Размер таблицы-параметра GDL - изменить с учетом размера таблицы iTable.
ires = ts_table(iTable, "export_to_ac_object_parameter", "sMyParameters");