Объекты DIRECTUM

 

Объект IObject

 

Метод AddWhere – добавить условие ограничения в запрос набора данных

Синтаксис:

function AddWhere(

  const Condition: WideString): Integer;

Параметры:

Condition – условие ограничения выборки. Условие следует задавать в формате where-условия SQL-запроса. Имена полей, участвующих в условии, следует задавать в формате [<Имя таблицы>.]<Имя поля>. В условии можно использовать поля таблиц, указанных в разделе from. Имя таблицы и имя поля можно получить с помощью свойств SQLTableName, IDataSet.SQLTableName, IRequisite.SQLFieldName.

Если в разделе from указан алиас таблицы, то имена полей в условии следует задавать в формате: <Алиас таблицы>.<Имя поля>. Алиасы таблиц, используемые в SQL-запросе набора данных объекта, можно получить с помощью свойства TableName.

Если в разделе select указан алиас поля, то условие следует задавать в формате <Алиас поля>. Алиасы полей, используемые в SQL-запросе набора данных объекта, можно получить с помощью свойства IRequisite.FieldName.

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

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

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

Описание:

Метод добавляет условие в раздел where SQL-запроса набора данных. Добавляемое условие объединяется с уже имеющимися условиями при помощи операции and. Идентификатор условия в запросе следует использовать в качестве параметра метода DelWhere для удаления условия из запроса.

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

 

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

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;

·         метод AddFrom;

·         метод DelWhere;

·         свойство TableName;

·         свойство SQLTableName;

·         свойство IDataSet.SQLTableName;

·         свойство IRequisite.FieldName;

·         свойство IRequisite.SQLFieldName.