Как Организовать Хранилище Файлов

Тема в разделе "Lotus - Программирование", создана пользователем azzza, 5 апр 2012.

Статус темы:
Закрыта.
  1. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Добрый день !

    Прошу помощи и совета. Поставлена задача на "клиенте" сделать хранилище файлов (разных типов) с возможностью выгрузки на носитель и изменения как внутренностей файлов , так и самого списка файлов (добавление, удаление)

    Создал профильный документ сервера и в нем рассмотрел реализации:
    1.простоt RTFLIte
    2.решение RTF +кнопки на собаках
    3.RTF+Lotusscript кнопки

    Есть определенные недопанимание: начинаю добавлять файлы - на определеном файле все уходит в подвал (под черную черту) и потом нет возможности вычистить attach-и (пробовал удалять само поле, чистить через Внедренные объекты, встроенными средствами RTFLite) встроенные удалить вариации не срабатывают, по сему кинулся к в 2. и 3. та же песня.
    Почему вложения опускаются в подвальчик, как избежать этого, есть ли другие возможности реализации?

    Designer 8.5.2 может что не так делаю, посоветуйте как реализовать, может есть примеры. Ранее поднимаемые темы по этому вопросу здесь читал, но не увидел ответа.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
  3. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Прочел по ссылкам, после переделки V2 остались файлики типа ATTxxx как их убрать?
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.075
    Симпатии:
    300
    детали:
    - РТ поле будет указанного типа тока после сохранения (если по дизайну)
    - если файлы одинакового названия - могут быть разные фокусы
    - убрать файлы - полностью покилять РТ + пробежать по всем объектам документа (а не РТ) и тоже - покилять
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    ммм... У меня было похожее, решал удалением всех упоминаний об аттачах в документе, как и сказал lmike.
    Удалял поля $File и само RTF поле, в котором должны были храниться аттачи. После этого добавлял документны в новое RTF поле:

    1. Экспортируем аттачи во временную папку, как вообще из документа, так и из поля RTF.
    Пути к файлам сохранять в массив, так как потом будем использывать их для загрузки обратно.
    2. Удаляем $Files и RTF поле из документа (пусть будет поле Body, call doc.RemoveItem("Body"))
    3. Создаем новое RTF поле Set newrti = New NotesRichTextItem(doc,"Body")
    4. Запихиваем в это RTF все наши аттачи из временной папки, используя массив путей.

    Мне тогда помогло, элегантностью не блещет, но вполне...
    Если RTF полей несколько и в каждом есть файлы, то надо сначала из всех полей выгрузить файлы, а потом удалять $File.
    и да, имена файлов у меня не совпадали. Если будут совпадать, то надо сделать постфикс файлу какой-нибудь, типа "новая папка(1)", но все равно проверять есть ли уже такой файл в этой папке.

    Код (LotusScript):
    fileExists = (Dir$ (strPath) <> "" )
     
  6. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    $File и само RT удалил, но чудит что-то после выхода из формы наблюдал восстановление файлов, делал все вчера, хм седня зашел а форма типа чиста все воспринялось, бр-д. ;)

    Одно могу сказати не подходит все это для хранилища файлов, как видят се задаче датели :)

    Может лучшие способы сможете предложить уважаемые скриптеры ?

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    поделюсь своим опытом. Не буду утверждать что идеальное решение.
    Принципы :
    - есть виртуальная папка (лотус-документ)
    - есть в папке файлы (аттачи в документе)
    - всё это в отдельное базе.
    - любые действия с файлами только в бэк-енд режиме.

    Делаеться отдельная база для аттачей. Доступ к базе напрямую максимально ограничен
    Функции работы с файлами - только через диалоговое окно с кнопками действие (сами файлы не видны - с ними работает система в бэк-енд режиме).

    в карточках обычных документов отображаеться только список папок (или папок\файлов).
    что имеем:
    + в других базах нет необходимости в РТ-Полях
    + Централизованная база вложений (+ДАОС реально спасает)
    + все действия с файлом четко регламентированны
    - всё время надо удалять файлы полностью, хотя это не так критично.
    - предпросмотр получилось сделать только с выгрузкой аттача на диск пользователя
    - сложно реализовать функционал "открыл файл - отредактировал - сохранил".

    Если что то не понятно - спрашивайте.

    з.ы. я не претендую на "правильность". Всё приведённое ИМХО стабильно работает более 2х лет
     
  8. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Спасибо, очень интересно (особено ДАОС заманивает), но минусы надо обдумать, последний полюбому сложно, как реализовать так и отследить.

    Как интерфейсно отображаете список папок\файлов (EmView, boxes, lists, другое) ?
    Скорее фейк доки под каждое вложение во EmView в диалоге? :) может скриншотик интерфейсы?
     
  9. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    у нас сейчас идет переход на даос.. изначально был интерфейс для работы через ком с эксченчем, а теперь даос..
    в основе базы с аттачами, только одна форма и пару видов (удаленные и по юниду)..
    архитектурно у нас повелось все ссылки на внешние ресурсы делать через ответный документ к основному, т.е. прикрепляешь файл, создается респонс, в котором прописывается вся нужная информация о документе, который создается в базе аттачей, в который собственно крепится сам файл..
    ну и реализован общий функционал: добавление, извлечение, удаление, добавление новых версий, прописывание обновление доступа, шифрование, подпись и т.п.

    основные манипуляций производятся через менюшку которая на win api делается, типа как контекстное меню мыши..

    в общем все реализовано как написал выше морфиус..
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    вот только на клиенте - локально ДАОС еще не работает
    так что если стоит задача именно локально то стоит просто повременить, так как ДАОС локально "обещают"
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    не, не стал делать с внедрённым видом. У меня задача была не cтолько добавлять пользовательские "папки" - сколько генерировать списки папок сразу, чтобы пользователь только вкладывал нужные ему документы в соответствующие(предложенные системой автоматически) папки.

    для этого у меня есть отдельное поле, которое в TAG'гах содержиться инфа в виде, очень похожем на XML
    Вот пример готовых "папок" пустышек для нового проекта ПРИКАЗА.
    Attachments.png

    как видно и скрина, папки деляться на "обязательные", "дополнительные" и "другие". Деление конечно абстрактно.
    так же есть колонки "принят", "согласован", "добавлен в систему", что фактически означает:
    "принят" - бумажный документ у "владельца" уже есть (фактически это регистрация файла без вкладывания).
    "согласован" - тут вроде понятно - прошли некий процес согласования
    "добавлен в систему" - означает, что есть хотябы один файл в "папке"

    Диалог работы с папками\файлами показан ниже
    AttachmentsDialog.png
     
  12. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Благодарю всех, есть направление - полетел думать, тему закрываю...
     
Загрузка...
Статус темы:
Закрыта.

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