Difference between revisions of "TempDB.LoadFrom"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
m (1 revision imported)
 
(2 intermediate revisions by 2 users not shown)
Line 24: Line 24:
 
** '''Объект базы данных''' -- принимаются объекты типа Справочник, Документ, Накопитель или Журнал.
 
** '''Объект базы данных''' -- принимаются объекты типа Справочник, Документ, Накопитель или Журнал.
 
** '''Строка''' -- задает путь объекта базы данных в виде <code><Тип данных БД>.<Вид данных БД></code>.
 
** '''Строка''' -- задает путь объекта базы данных в виде <code><Тип данных БД>.<Вид данных БД></code>.
** '''Другая временная таблица базы данных''' -- переменная, задающая другую временную таблицу базы данных, записи которой будут копировать в данную.
+
** '''Другая временная таблица базы данных''' -- переменная, задающая другую временную таблицу базы данных, записи которой будут копироваться в данную.
 
* <code>''<Формулы для вычисления столбцов (STRING)>''</code> - Аргумент задает способ вычисления столбцов текущей таблицы при добавлении записей из источника. Столбцы, не указанные в данном аргументе, при добавлении новой записи, будут заполнены пустыми значениями по умолчанию. Задание аргумента имеет следующий формат: <code>[Aggregate[:<Столбцы группировки через ":">],]<Выражение 1>-><Имя столбца 1>,<Выражение 2>-><Имя столбца 2>...</code>. При наличии зарезервированного слова ''Aggregate'' к источнику данных будет создан запрос агрегации с группировкой по указанным столбцам таблицы или реквизитам объекта {{Planned}}, при этом в выражениях для вычисления можно использовать функции агрегации. Выражения содержат весь возможный набор функций и операторов языка запросов (см. [[Временная таблица базы данных]], [[Объект запрос базы данных]]).
 
* <code>''<Формулы для вычисления столбцов (STRING)>''</code> - Аргумент задает способ вычисления столбцов текущей таблицы при добавлении записей из источника. Столбцы, не указанные в данном аргументе, при добавлении новой записи, будут заполнены пустыми значениями по умолчанию. Задание аргумента имеет следующий формат: <code>[Aggregate[:<Столбцы группировки через ":">],]<Выражение 1>-><Имя столбца 1>,<Выражение 2>-><Имя столбца 2>...</code>. При наличии зарезервированного слова ''Aggregate'' к источнику данных будет создан запрос агрегации с группировкой по указанным столбцам таблицы или реквизитам объекта {{Planned}}, при этом в выражениях для вычисления можно использовать функции агрегации. Выражения содержат весь возможный набор функций и операторов языка запросов (см. [[Временная таблица базы данных]], [[Объект запрос базы данных]]).
 
* <code>''<Стандартные фильтры>''</code> - {{Optional}} Стандартные фильтры отбора записей источника данных описаны в статье [[Стандартные фильтры]]. Важное отличие от фильтров функций объектов базы данных заключается в том, что стандартные фильтры всегда работают в сложном (расширенном) режиме, при этом отсутствует требование, что первая строка фильтра должна начинаться на знак '''~'''. Выражения фильтров содержат весь возможный набор функций и операторов языка запросов (см. [[Временная таблица базы данных]], [[Объект запрос базы данных]]), при указании наименование также применимы префиксы (типа ''':'''), как это описано в [[Временная таблица базы данных#Формулы при вычислении полей записей временной таблицы базы данных|статье по временной таблице базы данных]].
 
* <code>''<Стандартные фильтры>''</code> - {{Optional}} Стандартные фильтры отбора записей источника данных описаны в статье [[Стандартные фильтры]]. Важное отличие от фильтров функций объектов базы данных заключается в том, что стандартные фильтры всегда работают в сложном (расширенном) режиме, при этом отсутствует требование, что первая строка фильтра должна начинаться на знак '''~'''. Выражения фильтров содержат весь возможный набор функций и операторов языка запросов (см. [[Временная таблица базы данных]], [[Объект запрос базы данных]]), при указании наименование также применимы префиксы (типа ''':'''), как это описано в [[Временная таблица базы данных#Формулы при вычислении полей записей временной таблицы базы данных|статье по временной таблице базы данных]].

Latest revision as of 19:09, 20 November 2021

  LoadFrom (Загрузка данных во временную таблицу)
Объект:Временная таблица базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер и БД
Исключения:Невозможно превратить в строку, неверные аргументы, ошибка сервера
Визуальность:Нет

Функция выполняет загрузку записей из указанного источника данных (таблицы объекта проекта или другой временной таблицы базы данных), при этом указанные столбцы таблицы заполняются требуемым образом. Запрос к источнику базы данных может быть выполнен с использованием агрегации или без оной. Если выполняется запрос агрегации, для вычисления столбцов возможно применять функции агрегации. Предыдущие записи, находившиеся до этого момента в таблице не изменяются, операция только добавляет новые записи.

Синтаксис

TempDB.LoadFrom(<Источник данных (DB,STRING,TEMPDB)>,<Формулы для вычисления столбцов (STRING)>,<Стандартные фильтры>...)

Аргументы

  • <Источник данных (DB,STRING,TEMPDB)> - Источник данных для добавления записей может быть:
    • Объект базы данных -- принимаются объекты типа Справочник, Документ, Накопитель или Журнал.
    • Строка -- задает путь объекта базы данных в виде <Тип данных БД>.<Вид данных БД>.
    • Другая временная таблица базы данных -- переменная, задающая другую временную таблицу базы данных, записи которой будут копироваться в данную.
  • <Формулы для вычисления столбцов (STRING)> - Аргумент задает способ вычисления столбцов текущей таблицы при добавлении записей из источника. Столбцы, не указанные в данном аргументе, при добавлении новой записи, будут заполнены пустыми значениями по умолчанию. Задание аргумента имеет следующий формат: [Aggregate[:<Столбцы группировки через ":">],]<Выражение 1>-><Имя столбца 1>,<Выражение 2>-><Имя столбца 2>.... При наличии зарезервированного слова Aggregate к источнику данных будет создан запрос агрегации с группировкой по указанным столбцам таблицы или реквизитам объекта (планируется к реализации), при этом в выражениях для вычисления можно использовать функции агрегации. Выражения содержат весь возможный набор функций и операторов языка запросов (см. Временная таблица базы данных, Объект запрос базы данных).
  • <Стандартные фильтры> - (необязательный аргумент) Стандартные фильтры отбора записей источника данных описаны в статье Стандартные фильтры. Важное отличие от фильтров функций объектов базы данных заключается в том, что стандартные фильтры всегда работают в сложном (расширенном) режиме, при этом отсутствует требование, что первая строка фильтра должна начинаться на знак ~. Выражения фильтров содержат весь возможный набор функций и операторов языка запросов (см. Временная таблица базы данных, Объект запрос базы данных), при указании наименование также применимы префиксы (типа :), как это описано в статье по временной таблице базы данных.

Примеры

//Пример создает таблицу аТемп, и заполняет ее резервами документа ЗаказНаПроизводство, при этом в ней также заполнено поле документа ВыпускПродукции. 
//  Документ ВыпускПродукции подчинен документу ЗаказНаПроизводство. Выборка документов происходит за период с НачДата по КонДата.
//Таблица номенклатуры из резервов с выпусками и заданиями
аТемп:=TempDB.Create("зДок:DB,зЗад:DB,зН:DB:I,Количество:NUMBER.15.5");
//Заказы на производство
аТемп.LoadFrom("Stor.Резервы","@LINK->зЗад,Номенклатура->зН,?(@EXPENSE=1,-Количество,Количество)->Количество",
  "(BegOfDay(@DATE)>=НачДата)And(BegOfDay(@DATE)<=КонДата)","IsType(@LINK,Doc.ЗаказНаПроизводство)");
//Заполняем зДок (подчиненный документ -- ВыпускПродукции)
вТемп:=TempDB.Create("зДок2:DB,зЗад:DB");
//Выбираются только те документы выпусков, основания которых (ЗаказНаПроизводство) находятся в таблице аТемп
вТемп.LoadFrom("Doc.ВыпускПродукции","@ELEMENT->зДок2,@ELEMENT.ДокОснование->зЗад","@ELEMENT.ДокОснование IN аТемп.зЗад");
//Заполним столбец зДок оригинальной таблицы, объединение происходит по условию ":зЗад=зЗад".
аТемп.Update(вТемп,":зЗад=зЗад,зДок2->зДок");
//В дальнейшем таблицу аТемп можно выводить на экран или использовать в последующих запросах.