Синтаксис:
function AddWhere( const Condition: WideString): Integer; |
Параметры:
Condition – условие ограничения выборки. Условие следует задавать в формате where-условия SQL-запроса:
{(<Условие1>) [and/or/xor (<Условие2>)]}[,...n]
Условие1, Условие2 – простые условия, формируемые по следующему формату:
[not ]<Имя поля> {<Оператор> <Значение>}|{is null}|{like <Значение>}|[between <Значение1> and <Значение2>}|{in ({<Значение>}[,...n])}
где
· | Имя поля – имя или псеводним поля набора данных. Если для поля не указан псеводним и имя поля неуникально то перед именем поля следует указывать имя или псевдоним таблицы в формате <Имя таблицы>.<Имя поля>. В условии можно использовать поля таблиц, указанных в разделе from. Имена и псевдонимы полей и таблиц можно получить с помощью следующих свойств: |
· | Псевдоним поля - IRequisite.FieldName; |
· | Имя поля - IField.SQLFieldName, IRequisite.SQLFieldName; |
· | Псевдоним таблицы - TableName, IDataSet.TableName; |
· | Имя таблицы - SQLTableName, IDataSet.SQLTableName; |
· | Оператор - один из следующих операторов: =, <, >, <=, >=, <>; |
· | Значение - значение соответсвующего типа. |
Для формирования параметра удобно использовать функцию Format.
Возвращаемое значение:
Идентификатор условия в запросе.
Описание:
Метод добавляет условие в раздел where SQL-запроса набора данных. Добавляемое условие объединяется с уже имеющимися условиями при помощи операции and. Идентификатор условия в запросе следует использовать в качестве параметра метода DelWhere для удаления условия из запроса.
Примечание. При вызове метода не из 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 Метод AddFrom Метод DelWhere Свойство TableName Свойство SQLTableName Свойство IDataSet.SQLTableName Свойство IDataSet.TableName Свойство IRequisite.FieldName Свойство IRequisite.SQLFieldName |