Подскажите, существует ли способ повесить на обработчик нажатия кнопки код, который откроет нужную мне произвольную страницу (которую я создал без привязки в объекту)? Но при этом мне ещё нужно передавать ИД выбранной записи на гриде. Нужна реализация именно кодом: объекты БП не предлагать!
См. действие БП «Открыть страницу» (OpenPageUserTask), там передаётся PageUId и PageParameters. Если нужно именно кодом, то можно посмотреть исходники этого действия.
Исходниками этого кода является нечто, что не имеет буквенного кода - как обычно... =( Сделал через элементы БП - всё работает (см. ниже), но получил другую проблему: не получается передать некоторый параметр, чтобы его принять на открываемой форме и там это записать в лукапное поле.
Это блок БП-са, который выполняется по нажатию на кнопку вызова нужного мне окна. В объекте "Подготовить параметры" находится след. код:
var PageSchemaId =(UserConnection.GetSchemaManager("PageSchemaManager").GetInstanceByName("MyPage111") as PageSchema).UId;
OpenPageUserTask111.PageUId= PageSchemaId;
var pageParameters =new Dictionary <string, string>();
pageParameters.Add("CampaignLookupEdit", SelectedNodePrimaryColumnValue.ToString());
OpenPageUserTask111.PageParameters= pageParameters;
В объекте "Действие процесса" выбрано действие "Открытие страницы".
Теперь мне надо как-то переданный параметр "CampaignLookupEdit" заполнить на открываемой форме значением этого параметра. Вопрос - как? В объекте "Заполнить поля на форме" попробовал в отладчике обратиться к "Page", но этой сущностью является не открываемая страница, а страница грида, откуда я вызываю открытие своей страницы, хотя "OpenPageUserTask111.PageParameters" у меня заполнено правильно. Подскажите, если не трудно...
Добрый день В карточке есть поле, к-ые заполняется произвольный значением (т.е. не берется из какого-либо справочника). Подскажите, как на С# написать условие если это поле не заполнено.
Допустим, есть некоторое значение в поле карточке.
Подскажите, пожалуйста, на C# как можно "вытащить" значения только тех символов в этом значении, к-ые третий и четвертый по порядку (слева направо). Заранее спасибо
Проблема может возникать из-за того, что у пользователя, под которым вы работаете, Read-Only лицензии. Установите нужному пользователю полноценную лицензию.
var length = Contact.ITNumber.ToString().Length;
if (length >10)
{
//то здесь выводится сообщение пользователю, и к закрытию карточки процесс не идет
}
else
{
//то здесь продолжается процесс закрытия карточки
}
точно, мне не нужно определение идентификатора. ITNumber- это обычное поле (целочисленное), к-ое заполняется (а не выбирается из справочника) пользователем.
Page.DataSource.ActiveRow.GetTypedColumnValue("ITNumber") - это значение поля.
string str = ?
int length = str.Length;
далее сравниваю кол-во символов if (length <>10)....else
string str = Page.ITNumberEdit.Value.ToString();
int length = str.Length;
if ((Page.ITNumberEdit.Value != null)&&(length != 10))
{
Page.BaseMessagePanel.AddMessage(Warning, "Количество символов в поле Внутр.инвент.номер (ИТ) должно быть равно 10.", MessageType.Warning);
Page.ITNumberEdit.Clear();
Page.ITNumberEdit.SetRequired(true);
return false;
}
else
{
....
Хочу сделать отчет (наподобие Досье Контакта), чтобы:
в этом же отчете еще распечатывались по определенному Контакту и его Записи (с детали Записи карточки Контакта).
Сравните у готового и у Вашего отчётов наполнение вкладки «Данные» правой панельки в дизайнере.
«List» означает, что выбирается не из датасетов, а из параметров.