export_to_dialogcontrol_by_extended_filter_table
Записать содержимое таблицы в табличный элемент диалога с использованием расширенного фильтра, переданного в виде таблицы.
Удобно когда необходимо задавать условия фильтров по ходу выполнения программы.
На примере показано как скопировать из таблицы iTable в табличный элемент диалога (iListBox) все записи от начала до конца таблицы с учетом фильтра - в колонке с названием "Колонка1" значение "СТЕНА", значение в колонке "Колонка2" - содержит "3", в колонке "Колонка3" содержится в любом месте "В22" или "В22" (В - или на русском или на английском) и в колонке "Колонка 4" число больше или равное 2.
int startrow = 0;
bool stoponfirstnoteq = false;
int maxrows = -1;
int iTableFilter;
object("create", "ts_table", iTableFilter);
ts_table(iTableFilter, "create_structure_for_filter_table");
ts_table(iTableFilter, "add_row_to_filter_table", "(", "ANY", "Колонка1", "=", "СТЕНА", "", "AND");
ts_table(iTableFilter, "add_row_to_filter_table", "", "ANY", "Колонка2", "CONTAINS", "3", "", "AND");
ts_table(iTableFilter, "add_row_to_filter_table", "", "ANY", "Колонка3", "REGEXMACH", ".*[BВ]22.*", "", "AND");
ts_table(iTableFilter, "add_row_to_filter_table", "", "ANY", "Колонка4", ">=", 2, ")", "");
ts_table(iTable, "add_rows_from_eq_table_by_extended_filter", iListBox, startrow, stoponfirstnoteq, maxrows, iTableFilter);
Здесь
iTable - дескриптор таблицы, из которой будут копироваться строки в табличный элемент диалога;
int startrow - индекс строки, с которой начинать копирование;
int maxrows - количество строк (-1 - все строки до конца таблицы);
bool bstoponfirstnoteq - остановиться при первом несоответствии строки условию фильтра.