Объекты DIRECTUM > Базовые объекты > IObject – базовый объект >

Метод AddFrom – добавить таблицу в запрос набора данных

Предыдущий раздел В начало Следующий раздел

Синтаксис:

function AddFrom(

 const TableName: WideString): Integer;

Параметры:

TableName – имена таблиц. Можно использовать только временные таблицы текущего пользователя. Имена таблиц нужно указывать в следующем формате:

{<Имя таблицы> [as [<Псевдоним таблицы>]]} [,...n]

Имена таблиц можно получать с помощью свойств SQLTableName или IDataSet.SQLTableName. Псевдонимы таблиц могут быть произвольными, но должны совпадать с псевдонимами, указанными при вызове AddSelect.

Для формирования параметра удобно использовать функцию Format.

Возвращаемое значение:

Идентификатор таблиц в запросе.

Описание:

Метод добавляет таблицы в раздел from SQL-запроса набора данных. Если раздел from еще не был определен, то он создается. Если раздел from уже был определен, то новые таблицы добавляются в конец раздела.Идентификатор таблиц в запросе следует использовать при вызове DelFrom для удаления таблицы из запроса.

Примечание. При вызове метода не из ISBL-вычислений или из ISBL-вычислений с подключением к системе DIRECTUM, отличной от текущей, значение параметра должно строго соответствовать формату. В противном случае будет сгенерировано исключение.

Пример использования:

 

// Показать все справочники, в которых используется данный реквизит.

RequisiteCode = 'ISBEDocStrg'

Reference = References.SYSREF_REFERENCE_TYPES.GetComponent

Reference.ComponentForm.View.ViewMode = vmNavigation

RequisitesDataSet = Reference.DataSet.DetailDataSet(1)

ReferenceTable = Reference.TableName

RequisitesTable = RequisitesDataSet.TableName

 

AddFrom = Reference.AddFrom(RequisitesTable)

 

// Установить связь между реквизитами и справочниками,

// которые их используют.

AddWhere1 = Reference.AddWhere(Format("%0:s.%1:s = %2:s.%3:s";

 ArrayOf(ReferenceTable; Reference.Requisites(SYSREQ_ID).FieldName;

 RequisitesTable; RequisitesDataSet.Requisites(

 SYSREQ_MAIN_RECORD_ID).FieldName)))

 

// Задать реквизит.

AddWhere2 = Reference.AddWhere(Format("%0:s.%1:s = '%2:s'";

 ArrayOf(RequisitesTable; RequisitesDataSet.Requisites(

 SYSREQ_REF_TYPE_REQ_CODE).FieldName; RequisiteCode)))

 

// Исключить действия с кодом равным RequisiteCode,

// т.к. действия хранятся в той же таблице, что и реквизиты.

AddWhere3 = Reference.AddWhere(Format("%0:s.%1:s <> 'K'";

 ArrayOf(RequisitesTable; RequisitesDataSet.Requisites(

 SYSREQ_REF_TYPE_REQ_SECTION).FieldName)))

 

Reference.ComponentForm.Show

 

Reference.DelFrom(AddFrom)

Reference.DelWhere(AddWhere1)

Reference.DelWhere(AddWhere2)

Reference.DelWhere(AddWhere3)

См. также

Метод AddSelect

Метод AddWhere

Метод DelFrom

Свойство SQLTableName

Свойство IDataSet.SQLTableName