Difference between revisions of "Tab.CopyTo"
(→Синтаксис) |
m (1 revision imported) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Таблица]]}} | * [[Таблица]]}} | ||
− | Функция позволяет произвести копирование ячеек указанного столбца из текущей таблицы в заданный список, либо ячеек, указанных столбцов из текущей таблицы в заданную таблицу. Строки для копирования могут быть ограничены определенным диапазоном и выбраны с помощью заданного фильтра. | + | Функция позволяет произвести копирование ячеек указанного столбца из текущей таблицы в заданный список, либо ячеек, указанных столбцов из текущей таблицы в заданную таблицу. Строки для копирования могут быть ограничены определенным диапазоном и выбраны с помощью заданного фильтра. Существующие строки в таблице, в которую производится копирование, не изменяются, новые строки добавляются в конец таблицы. |
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
− | {{Grey|Tab.}}'''CopyTo'''({{ByRef|''<Объект в который происходит копирование>''}}{{Optional|,<Индекс начальной строки (INT)>,< | + | {{Grey|Tab.}}'''CopyTo'''({{ByRef|''<Объект в который происходит копирование>''}}{{Optional|,<Индекс начальной строки (INT)>,<Количество строк для копирования (INT)>,<Наименования столбцов копирования через запятую (STRING)>,<Наименования столбцов для фильтрации (STRING)>,<Фильтр столбца 1>,<Фильтр столбца 2>...}}) |
</code> | </code> | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
* <code>''<Объект в который происходит копирование>''</code> - {{ByRef}} Переменная, содержащая объект типа таблица или список для копирования значений ячеек текущей таблицы. Если переменная содержит объект любого другого вида, ее значение будет очищено и ей будет присвоена новая пустая таблица, в которую будет производиться копирование. Использование аргумента-переменной позволяет получить эту новую таблицу в переменной, как результат. Ниже дана разница при копировании в таблицу и копировании в список: | * <code>''<Объект в который происходит копирование>''</code> - {{ByRef}} Переменная, содержащая объект типа таблица или список для копирования значений ячеек текущей таблицы. Если переменная содержит объект любого другого вида, ее значение будет очищено и ей будет присвоена новая пустая таблица, в которую будет производиться копирование. Использование аргумента-переменной позволяет получить эту новую таблицу в переменной, как результат. Ниже дана разница при копировании в таблицу и копировании в список: | ||
− | ** При копировании в таблицу, столбцы для копирования с наименованиями, которые отсутствовали в столбцах таблицы, в которую происходит копирование, будут добавлены в эту таблицу. При копировании строки из таблицы копирования добавляются в конец таблицы, в которую происходит копирование, в каждой | + | ** При копировании в таблицу, столбцы для копирования с наименованиями, которые отсутствовали в столбцах таблицы, в которую происходит копирование, будут добавлены в эту таблицу. При копировании строки из таблицы копирования добавляются в конец таблицы, в которую происходит копирование, в каждой добавленной строке заполняются только ячейки с копируемыми столбцами. |
** При копировании в список, в него добавляются значения, последовательно из каждого копируемого столбца таблицы для каждой из копируемых строк таблицы. | ** При копировании в список, в него добавляются значения, последовательно из каждого копируемого столбца таблицы для каждой из копируемых строк таблицы. | ||
* <code>''<Индекс начальной строки (INT)>''</code> - {{Optional}} Индекс начальной строки диапазона копирования. Если аргумент опущен, будет использована первая строка исходной таблицы. | * <code>''<Индекс начальной строки (INT)>''</code> - {{Optional}} Индекс начальной строки диапазона копирования. Если аргумент опущен, будет использована первая строка исходной таблицы. | ||
− | * <code>''< | + | * <code>''<Количество строк для копирования (INT)>''</code> - {{Optional}} Количество строк для копирования. Если аргумент опущен, будет произведено копирование от начального идекса до конца исходной таблицы. |
* <code>''<Наименования столбцов копирования через запятую (STRING)>''</code> - {{Optional}} Аргумент перечисляет наименования столбцов через запятую, которые будут включены в процедуру копирования. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать в таблице. | * <code>''<Наименования столбцов копирования через запятую (STRING)>''</code> - {{Optional}} Аргумент перечисляет наименования столбцов через запятую, которые будут включены в процедуру копирования. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать в таблице. | ||
* <code>''<Наименования столбцов для фильтрации (STRING)>''</code> - {{Optional}} Аргумент перечисляет наименования столбцов фильтра через запятую. Количество таких столбцов должно соответствовать количеству аргументов-фильтров, заданных после этого аргумента. Для каждой из копируемых строк таблицы, значения находящиеся в столбцах фильтра сравниваются со значениями аргументов-фильтров, и строки, где значения всех столбцов фильтра равны, используются для копирования. | * <code>''<Наименования столбцов для фильтрации (STRING)>''</code> - {{Optional}} Аргумент перечисляет наименования столбцов фильтра через запятую. Количество таких столбцов должно соответствовать количеству аргументов-фильтров, заданных после этого аргумента. Для каждой из копируемых строк таблицы, значения находящиеся в столбцах фильтра сравниваются со значениями аргументов-фильтров, и строки, где значения всех столбцов фильтра равны, используются для копирования. |
Latest revision as of 09:04, 7 August 2023
CopyTo (Копирование ячеек) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция позволяет произвести копирование ячеек указанного столбца из текущей таблицы в заданный список, либо ячеек, указанных столбцов из текущей таблицы в заданную таблицу. Строки для копирования могут быть ограничены определенным диапазоном и выбраны с помощью заданного фильтра. Существующие строки в таблице, в которую производится копирование, не изменяются, новые строки добавляются в конец таблицы.
Синтаксис
Tab.CopyTo(<Объект в который происходит копирование>,<Индекс начальной строки (INT)>,<Количество строк для копирования (INT)>,<Наименования столбцов копирования через запятую (STRING)>,<Наименования столбцов для фильтрации (STRING)>,<Фильтр столбца 1>,<Фильтр столбца 2>...)
Аргументы
<Объект в который происходит копирование>
- (возможен аргумент-переменная (ByRef)) Переменная, содержащая объект типа таблица или список для копирования значений ячеек текущей таблицы. Если переменная содержит объект любого другого вида, ее значение будет очищено и ей будет присвоена новая пустая таблица, в которую будет производиться копирование. Использование аргумента-переменной позволяет получить эту новую таблицу в переменной, как результат. Ниже дана разница при копировании в таблицу и копировании в список:- При копировании в таблицу, столбцы для копирования с наименованиями, которые отсутствовали в столбцах таблицы, в которую происходит копирование, будут добавлены в эту таблицу. При копировании строки из таблицы копирования добавляются в конец таблицы, в которую происходит копирование, в каждой добавленной строке заполняются только ячейки с копируемыми столбцами.
- При копировании в список, в него добавляются значения, последовательно из каждого копируемого столбца таблицы для каждой из копируемых строк таблицы.
<Индекс начальной строки (INT)>
- (необязательный аргумент) Индекс начальной строки диапазона копирования. Если аргумент опущен, будет использована первая строка исходной таблицы.<Количество строк для копирования (INT)>
- (необязательный аргумент) Количество строк для копирования. Если аргумент опущен, будет произведено копирование от начального идекса до конца исходной таблицы.<Наименования столбцов копирования через запятую (STRING)>
- (необязательный аргумент) Аргумент перечисляет наименования столбцов через запятую, которые будут включены в процедуру копирования. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать в таблице.<Наименования столбцов для фильтрации (STRING)>
- (необязательный аргумент) Аргумент перечисляет наименования столбцов фильтра через запятую. Количество таких столбцов должно соответствовать количеству аргументов-фильтров, заданных после этого аргумента. Для каждой из копируемых строк таблицы, значения находящиеся в столбцах фильтра сравниваются со значениями аргументов-фильтров, и строки, где значения всех столбцов фильтра равны, используются для копирования.<Фильтр столбца ?>
- (необязательный аргумент) Произвольные значения фильтров столбцов. Количество таких аргументов должно совпадать с количеством столбцов-фильтров в предыдущем аргументе. Строка будет участвовать в копировании, если все значения фильтров совпадают с значениями соответствующих столбцов этой строки.
Примеры
//Создается и заполняется таблица значений aTab:=Tab.Create("b1,b2,b3,b4"); aTab.AddLine("b1,b2,b3,b4",1,2,3,4); aTab.AddLine("b1,b2,b3,b4",2,2,3,33); aTab.AddLine("b1,b2,b3,b4",3,5,5,4); aTab.AddLine("b1,b2,b3,b4",4,2,3,4); aTab.AddLine("b1,b2,b3,b4",4,2,3,77); aTab.AddLine("b1,b2,b3,b4",5,2,3,4); aList:=List.Create(); bTab:=Tab.Create(); //В список копируются значения двух столбцов, список будет содержать 12 значений. aTab.CopyTo(aList,1,aTab.Size(),"b1,b4"); //В таблицу копируются значения всех столбцов, строки которых имеют в столбце b2 число 2, и в столбце b3 число 3. aTab.CopyTo(bTab,1,aTab.Size(),,"b2,b3",2,3); For i:=1 To aList.Size() Do Message("Значение "+i+": "+aList.Get(i)); EndDo; bTab.Select(); While bTab.Next() Do Message(""+bTab.b1+"; "+bTab.b2+"; "+bTab.b3+"; "+bTab.b4); EndDo; //Будет выведено последовательно: //"Значение 1: 1" //"Значение 2: 4" //"Значение 3: 2" //"Значение 4: 33" //"Значение 5: 3" //"Значение 6: 4" //"Значение 7: 4" //"Значение 8: 4" //"Значение 9: 4" //"Значение 10: 77" //"Значение 11: 5" //"Значение 12: 4" //"1; 2; 3; 4" //"2; 2; 3; 33" //"4; 2; 3; 4" //"4; 2; 3; 77" //"5; 2; 3; 4"