Difference between revisions of "Tab.CopyTo"
m (1 revision imported) |
1>Admin |
||
| Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Таблица]]}} | * [[Таблица]]}} | ||
| − | Функция позволяет произвести копирование ячеек указанного столбца из текущей таблицы в заданный список, либо ячеек, указанных столбцов из текущей таблицы в заданную таблицу. Строки для копирования могут быть ограничены определенным диапазоном и выбраны с помощью заданного фильтра. | + | Функция позволяет произвести копирование ячеек указанного столбца из текущей таблицы в заданный список, либо ячеек, указанных столбцов из текущей таблицы в заданную таблицу. Строки для копирования могут быть ограничены определенным диапазоном и выбраны с помощью заданного фильтра. Существующие строки в таблице, в которую производится копирование, не изменяются, новые строки добавляются в конец таблицы. |
== Синтаксис == | == Синтаксис == | ||
| Line 22: | Line 22: | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
* <code>''<Объект в который происходит копирование>''</code> - {{ByRef}} Переменная, содержащая объект типа таблица или список для копирования значений ячеек текущей таблицы. Если переменная содержит объект любого другого вида, ее значение будет очищено и ей будет присвоена новая пустая таблица, в которую будет производиться копирование. Использование аргумента-переменной позволяет получить эту новую таблицу в переменной, как результат. Ниже дана разница при копировании в таблицу и копировании в список: | * <code>''<Объект в который происходит копирование>''</code> - {{ByRef}} Переменная, содержащая объект типа таблица или список для копирования значений ячеек текущей таблицы. Если переменная содержит объект любого другого вида, ее значение будет очищено и ей будет присвоена новая пустая таблица, в которую будет производиться копирование. Использование аргумента-переменной позволяет получить эту новую таблицу в переменной, как результат. Ниже дана разница при копировании в таблицу и копировании в список: | ||
| − | ** При копировании в таблицу, столбцы для копирования с наименованиями, которые отсутствовали в столбцах таблицы, в которую происходит копирование, будут добавлены в эту таблицу. При копировании строки из таблицы копирования добавляются в конец таблицы, в которую происходит копирование, в каждой | + | ** При копировании в таблицу, столбцы для копирования с наименованиями, которые отсутствовали в столбцах таблицы, в которую происходит копирование, будут добавлены в эту таблицу. При копировании строки из таблицы копирования добавляются в конец таблицы, в которую происходит копирование, в каждой добавленной строке заполняются только ячейки с копируемыми столбцами. |
** При копировании в список, в него добавляются значения, последовательно из каждого копируемого столбца таблицы для каждой из копируемых строк таблицы. | ** При копировании в список, в него добавляются значения, последовательно из каждого копируемого столбца таблицы для каждой из копируемых строк таблицы. | ||
* <code>''<Индекс начальной строки (INT)>''</code> - {{Optional}} Индекс начальной строки диапазона копирования. Если аргумент опущен, будет использована первая строка исходной таблицы. | * <code>''<Индекс начальной строки (INT)>''</code> - {{Optional}} Индекс начальной строки диапазона копирования. Если аргумент опущен, будет использована первая строка исходной таблицы. | ||
Revision as of 13:59, 6 April 2021
| 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"