Вопрос По Папкам

Тема в разделе "Lotus - Программирование", создана пользователем Antigo, 24 фев 2014.

  1. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    Всем привет!
    Вот такой вопрос:
    Есть у меня такая папка "Общая, личная при открытии". То есть при первом использовании этой папки создается ее личная копия. Все бы вроде хорошо, работает, документы туда попадают, много пользователей ей пользуются, у каждого, соответственно, своя копия. Но понадобилось мне изменить дизайн этой папки. Например, добавить столбец. И нужно мне, чтобы у всех пользователей этот столбец в их личные копии папки пронаследовался. Но не тут то было. Дизайн не наследуется, если только эту папке не пересоздать.
    Вот что написано в справкеЖ "После создания пользователем личной копии представление или папка не может наследовать изменения структуры, как остальное приложение. Для обновления изменений структуры общего или личного представления следует удалить личную копию представления и заменить ее обновленным представлением."
    Как быть? кто-то сталкивался с такой проблемой? Как-то можно обойтись без пересоздания личной копии?
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Без пересоздания можно обойтись, но зависит от параметров папки, так что далеко не всегда.
    С такой проблемой сталкивались все, да и на форуме было много обсуждений.

    Я бы не создавал папки, которые должны часто меняться. В чем смысл?
    Отчетную часть строить? Да проще в Excel по параметрам выгрузить.
     
  3. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    Папка не меняется, просто нужно исправить небольшую ошибку, и чтоб изменения пронаследовались в личные папки пользователей.
    Папка используется для показа списка отобранных документов в ws.picklistcollection
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    В любом случае папку надо будет пересоздавать
    Для разового удаления можно сделать агента, повесить его на кнопку.

    1. Агент получает папку
    2. Собирает все документы из этой папки в коллекцию
    3. Удаляет эту папку
    4. Открывает её же (но новую уже) и тут же закрывает (чтобы она создалась)
    5. Помещает коллекцию документов в эту папку.

    Можно обойтись без коллекции и пересоздания, просто папку снести, но тогда документы надо будет заново отбирать.

    Открыть и закрыть папку можно так, вариант для Windows:
    Код (LotusScript):
    ' В (Declarations)
    Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long
    Declare Function NEMStopSubprogramWindow Lib "nnotesws.dll" (ByVal wHandle As Long) As Integer

    ' В коде агента
    Call uidb.OpenView( <Имя папки>,"",True )
    wHandle = NEMGetCurrentSubprogramWindow
    Call NEMStopSubprogramWindow(wHandle)
     
  5. Domino-Designer

    Domino-Designer Lotus team
    Lotus team

    Регистрация:
    6 дек 2011
    Сообщения:
    117
    Симпатии:
    4
    Код (Text):
    @UpdateViewDesign("viewPersonal";"viewPersonalTemplate");
    @Prompt([Ok];"";"Перезайдите в БД");
    @Command([CloseWindow]);
    @All
    Не?
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Domino-Designer
    Прикольно, не знал о ней.
    Действительно пишут, что работает.
     
  7. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    у меня каждый раз при нажатии на кнопку собирается коллекция документов и кидается в папку.
    при нажатии на кнопку, я пытаюсь взять папку по имени через db.getview(<имя папки>). Если папку не нахожу, то открываю ее первый раз в БД через ws.OpenDatabase, закрываю БД вывожу сообщение, что произошла инициализация папки и нужно еще раз нажать кнопку. Ну а дальше папка уже создана и я собирю документы и кидаю в папку. затем вывожу ее для пользователя через picklistcollection, затем удаляю все документы из нее.
    Можно ли как-то открыть и закрыть папку первый раз незаметно для пользователя для любой ОС?
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Antigo
    Про обновление: Постом вышке предложили более простое решение, попробуй его.

    А про первое обращение к папке:
    незаметно открыть это как сказать. либо во фрейме размером 2 пикселя, либо моргнет, если на LS как я предложил.
     
Загрузка...
Похожие Темы - Вопрос По Папкам
  1. ApplePen
    Ответов:
    0
    Просмотров:
    55
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    91
  3. kartaman
    Ответов:
    0
    Просмотров:
    126
  4. Peter
    Ответов:
    4
    Просмотров:
    519
  5. di0d_
    Ответов:
    1
    Просмотров:
    433

Поделиться этой страницей