Здравствуйте!
При определенном действии(отправка визы для заявки), надо открыть для редактирования конкретное поле всех поручителей(Физ. лица), находящихся в данной заявке.
Это поле по умолчанию "только для чтения".
Т.е. пользователь должен открыть карточку Физ.лица и редактировать конкретное поле.
Поэтому, в событии 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 или глобальную переменную ?
Спасибо.
Нравится
Обычно для глобальных переменных используют Connector.Attributes('какой-то текст'). Например, см., как в конфигурации заполняют и считывают Connector.Attributes('MainWindow').
Но сам подход решения изначального вопроса довольно странный. Зачем перебирать в цикле и кучу раз закрывать, фильтровать и открывать датасет, если можно создать сервис sq, который получает на вход параметры и одним SQL-запросом получает нужный результат. Или даже без sq, а просто в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода или вызов хранимки и получать ответ.
Конечно Вы правы, Александр.
Датасет открываю в надежде добавить какое-то свойство для конкретного физ лица.
Но так не получилось.
А что можно в скрипте при помощи Connector.DBEngine.ExecuteCustomSQL запускать кусок SQL-кода, и получить несколько строк ответа ?
Для нескольких строк можно работать с помощью sq и ds, созданных специально под Ваш запрос.