Вопрос

Property or global variable

Здравствуйте!

При определенном действии(отправка визы для заявки), надо открыть для редактирования конкретное поле всех поручителей(Физ. лица), находящихся в данной заявке. 

Это поле по умолчанию "только для чтения".

Т.е. пользователь должен открыть карточку Физ.лица и редактировать конкретное поле.



Поэтому, в событии OnPrepare(Window) Физ.лица

пишу: 

При "некотором условии"

{

    var ContactDataset = dlContact.Dataset;

    ContactDataset.DataFields('поле').IsReadOnly = false;

}



Но, чтобы получить это "условиие", я пробегаю по всем поручителям заявки, оттуда открываю датасет Физ.лица

while (!warrantorsDataset.IsEOF)

{

    var ContactDataset = GetSingleItemByCode('ds_Contact');

    ContactDataset.Close();

    ApplyDatasetFilter(ContactDataset, 'ID',warrantorsDataFields.ItemsByName('ContactID').Value, true);

    ContactDataset.Open();

    И здесь надо добавить какое-то свойство(Property) на ContactDataset, или глобальную переменную, чтобы она существовала также в скрипте "Физ. лиц"

}

Как можно добавить Property или глобальную переменную ?

Спасибо.

 

Нравится

3 комментария

Обычно для глобальных переменных используют Connector.Attributes('какой-то текст'). Например, см., как в конфигурации заполняют и считывают Connector.Attributes('MainWindow').

Но сам подход решения изначального вопроса довольно странный. Зачем перебирать в цикле и кучу раз закрывать, фильтровать и открывать датасет, если можно создать сервис sq, который получает на вход параметры и одним SQL-запросом получает нужный результат. Или даже без sq, а просто в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода или вызов хранимки и получать ответ.

 

Конечно Вы правы, Александр.

Датасет открываю в надежде добавить какое-то свойство для конкретного физ лица.

Но так не получилось.

А что можно в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода, и получить несколько строк ответа ?

Для нескольких строк можно работать с помощью sq и ds, созданных специально под Ваш запрос.

Показать все комментарии