Синтаксис:
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 |
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |