Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Как из скрипта изменить свойство CardControl.ReadOnly (C# DocsVision 5.4)

С ответом

Комментарии

Комментариев: 3

  • Официальный комментарий

    Можно в справочнике видов у задания выставить режим открытия вложенной карточки Задание / По умолчанию отображать вложенную карточку / Редактирования. После этого все задания данного вида будут открываться с изменяемым документом.

    А программно официально это сделать нельзя. Соответствующее свойство только для чтения, изменить его не получится, тем более в данном подчиненном фрейме.

    Неофициально - через reflection вызвать у контрола задания внутренний метод
    private void itemEditMode_Click(object sender, ItemClickEventArgs e)
    (и первый и второй параметр можно передать как null).
    Это будет полностью равнозначно нажатию на данную кнопку.

    Действия с комментариями Постоянная ссылка
  • Avatar
    Иван Сагин

    Спасибо, Евгений.

    Проходит вызов через reflector успешно если выполняться после события CardActivaed Основного документа.

    Логично повесить выполнение на событие CardActivated Основного документа. Но тогда имеем побочный эффект, т.е. успешное выполнение повторно генерирует событие CardActivated.

    System.Windows.Forms.Control TypeTask = null;
    System.Windows.Forms.Control TypePControl = (sender as System.Windows.Forms.Control).Parent;
    while (TypeTask == null & TypePControl != null)
    {
    if (TypePControl.GetType().FullName == "DocsVision.BackOffice.Cards.CardTask.MainControl")
    TypeTask = TypePControl;
    else
    TypePControl = TypePControl.Parent;
    }
    if (TypeTask != null)
    {
    MethodInfo CardTaskMethodForce = TypeTask.GetType().GetMethod("itemEditMode_ItemClick", BindingFlags.NonPublic | BindingFlags.Instance);
    if (CardTaskMethodForce != null)
    {
    CardTaskMethodForce.Invoke(TypeTask, new object[] { null, null});
    }
    }

     

    0
    Действия с комментариями Постоянная ссылка
  • Все так, там полностью перегружается фрейм с документом.

    Лучше делать этот скрипт не в документе, а в самом задании.

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.