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

Проблемы определения текущей папки в скрипте на карточку

Комментарии

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

  • Проще выложить весь скрипт:)

    private void командаСохранитьИСоздать_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
    {

    //Сохраним документ
    bool result = SaveCard();

    if (!result)
    return;

    //Получаем карточку папок

    //Создаем карточку по шаблону
    CardData templateCard = Session.CardManager.GetCardData(BudgetCardTemplateID);

    CardData copyCard = templateCard.Copy();
    copyCard.IsTemplate = false;

    MessageBox.Show(CardControl.FolderId.ToString());
    FolderRef.CreateShortcut(CardControl.FolderId, copyCard.Id, false);

     

    //Получим строки данных
    RowData mainInfoNew = copyCard.Sections[copyCard.Type.Sections["MainInfo"].Id].FirstRow;
    RowData budgetNew = copyCard.Sections[copyCard.Type.Sections["Budget"].Id].FirstRow;/
    RowData budgetCurrent = this.CardData.Sections[this.CardData.Type.Sections["Budget"].Id].FirstRow;

    copyCard.BeginUpdate();

    //Очистим некоторые поля

    budgetNew.SetValue("NameExpense", budgetCurrent.GetString("NameExpense"), FieldType.Unistring);

    budgetNew.SetValue("Content", budgetCurrent.GetString("Content"), FieldType.Unistring);
    budgetNew.SetValue("Statya", budgetCurrent.GetGuid("Statya"), FieldType.RefId);

    //Заполним некоторые поля
    mainInfoNew.SetValue("Author", MyContext.GetObjectRef<StaffEmployee>(StaffService.GetCurrentEmployee()).Id, FieldType.RefCardId);
    mainInfoNew.SetValue("RegDate", DateTime.Now, FieldType.DateTime);
    budgetNew.SetGuid("Department", this.GetDepratmentUser(MyContext.GetObjectRef<StaffEmployee>(CurrentUser).Id));
    budgetNew.SetInt32("Year", DateTime.Now.Year);

    copyCard.EndUpdate();

    //Закрываем текущую карточку и обновляем содержимое папки

    this.CardFrame.CardHost.Refresh(false);

    CardFrame.Commit(ActionFlags.CommittedData | ActionFlags.ContinueAction);
    this.CardFrame.Close();
    //Показываем новую карточку
    this.CardControl.CardHost.ShowCard(copyCard.Id, ActivateMode.Edit);

    }

    0
    Действия с комментариями Постоянная ссылка
  • FolderId в CardControl устанавливается только, если в методе показа карточки этот folderId был заполнен (что, н-р, и делает навигатор).

    void ShowCard(System.Guid cardId, System.Guid modeId, DocsVision.Platform.CardHost.ActivateMode activateMode, DocsVision.Platform.CardHost.ActivateFlags activateFlags, object activateParams, System.Guid folderId)

    - полный вариант метода, folderId - самый последний параметр.

    0
    Действия с комментариями Постоянная ссылка
  • Спасибо, работает!

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

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