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

Статус
Закрыто для дальнейших ответов.

azzza

Green Team
26.04.2011
68
3
BIT
20
Добрый день !

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

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

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

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

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
У меня странное чувство, что RTF не существует на форме... не знаю откуда :)

По твоей теменашел 2 ссылки, но на английском:

1) Аналогичная ситуация + как избежать:

2) Как передалать V2 аттачи в RichTextField:
 

azzza

Green Team
26.04.2011
68
3
BIT
20
У меня странное чувство, что RTF не существует на форме... не знаю откуда :)

По твоей теменашел 2 ссылки, но на английском:

1) Аналогичная ситуация + как избежать:

2) Как передалать V2 аттачи в RichTextField:

Прочел по ссылкам, после переделки V2 остались файлики типа ATTxxx как их убрать?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
детали:
- РТ поле будет указанного типа тока после сохранения (если по дизайну)
- если файлы одинакового названия - могут быть разные фокусы
- убрать файлы - полностью покилять РТ + пробежать по всем объектам документа (а не РТ) и тоже - покилять
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
Прочел по ссылкам, после переделки V2 остались файлики типа ATTxxx как их убрать?

ммм... У меня было похожее, решал удалением всех упоминаний об аттачах в документе, как и сказал 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)", но все равно проверять есть ли уже такой файл в этой папке.

Код:
fileExists = (Dir$ (strPath) <> "" )
 

azzza

Green Team
26.04.2011
68
3
BIT
20
$File и само RT удалил, но чудит что-то после выхода из формы наблюдал восстановление файлов, делал все вчера, хм седня зашел а форма типа чиста все воспринялось, бр-д. ;)

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

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

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

morpheus

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

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

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

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

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

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

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

azzza

Green Team
26.04.2011
68
3
BIT
20
поделюсь своим опытом. Не буду утверждать что идеальное решение.
Принципы :
- есть виртуальная папка (лотус-документ)
- есть в папке файлы (аттачи в документе)
- всё это в отдельное базе.
- любые действия с файлами только в бэк-енд режиме.

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

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

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

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

Спасибо, очень интересно (особено ДАОС заманивает), но минусы надо обдумать, последний полюбому сложно, как реализовать так и отследить.

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

Kee_Keekkenen

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

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

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
вот только на клиенте - локально ДАОС еще не работает
так что если стоит задача именно локально то стоит просто повременить, так как ДАОС локально "обещают"
 
M

morpheus

Скорее фейк доки под каждое вложение во EmView в диалоге? может скриншотик интерфейсы?
не, не стал делать с внедрённым видом. У меня задача была не cтолько добавлять пользовательские "папки" - сколько генерировать списки папок сразу, чтобы пользователь только вкладывал нужные ему документы в соответствующие(предложенные системой автоматически) папки.

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

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

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

azzza

Green Team
26.04.2011
68
3
BIT
20
не, не стал делать с внедрённым видом. У меня задача была не cтолько добавлять пользовательские "папки" - сколько генерировать списки папок сразу, чтобы пользователь только вкладывал нужные ему документы в соответствующие(предложенные системой автоматически) папки.

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

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

Диалог работы с папками\файлами показан ниже
Посмотреть вложение 5054

Благодарю всех, есть направление - полетел думать, тему закрываю...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!