Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

"DX Хранилище файлов" - модуль работы с файлами

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

"DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Вт ноя 14, 2017 4:07 pm

"DX Хранилище файлов" - это комплекс, состоящий из взаимодействующих и программно связанных друг с другом форм и модуля расширений, в совокупности предназначенный для организации системы загрузки/выгрузки, хранения и манипуляций с одним или группой файлов.

МОДУЛЬ
Destiny is a very convenient word for those who never take decisions.

cordek
Опытный
Сообщения: 341
Зарегистрирован: Вс май 14, 2017 2:53 pm
Благодарил (а): 37 раз
Поблагодарили: 1 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение cordek » Сб мар 23, 2019 12:41 pm

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

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

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Сб мар 23, 2019 2:04 pm

cordek писал(а):Ещё возник вопрос замены хранения файла с папки на базу

В таблице 'file' в поле "Файл" можно изменить способ хранения.
cordek писал(а):Так меньше будет база тормозить при хранении файлов в базе.

За счёт чего? А сейчас тормозит?
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Сб мар 23, 2019 2:23 pm

cordek писал(а):Еще не доделано действие "печать с сохранением". А было бы удобно, когда делаешь счёт, сохранить распечатываемый вариант в базе.

Опция "Сохранить новый документ в 'DX Хранилище файлов'" то что нужно.
Destiny is a very convenient word for those who never take decisions.

cordek
Опытный
Сообщения: 341
Зарегистрирован: Вс май 14, 2017 2:53 pm
Благодарил (а): 37 раз
Поблагодарили: 1 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение cordek » Сб мар 23, 2019 7:45 pm

jurist23rus писал(а):
cordek писал(а):Ещё возник вопрос замены хранения файла с папки на базу

В таблице 'file' в поле "Файл" можно изменить способ хранения.
Так там файлов за полтора года поднакопилось, они же не загрузятся в базу автоматически?

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Сб мар 23, 2019 9:46 pm

Не загрузятся
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

"DX Хранилище файлов" - модуль работы с файлами для сетевого использования на гугл диск OneDrive под Windows

Сообщение Иван » Вс мар 24, 2019 1:55 am

Хотел поделиться опытом как прикручивал этот модуль для возможности сетевого использования на гугл диск OneDrive под Windows Server и клиентов на Windows 10.

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

Это обошел созданием на форме file поля где получаем выражением Путь к реальному пути в папку хранения на диск OneDrive из полей на этой же форме. Файл в папке хранилища

Код: Выделить всё

concat([Путь к папке],'\','"',[Имя файла],'"')


Заранее оговорюсь что двойные скобки слева и справа от имени файла “ нужны для следующего использования открытия файлов актуальными для конкретного ПК программ по умолчанию с использованием cmd.

На форме FileStore создан запрос (Запрос путь к файлу в хранилище) в котором получаем путь, наше новое поле Файл в папке хранилища из формы file и уже ранее существующее поле Имя файла. Запрос с фильтром по id записи.

2. Использование выражений для имени отпадает сразу, раз через раз выдавало ошибки. Как альтернатива было проверено что работает при желании такая тема через запуск кнопкой по cmd

Код: Выделить всё

rename Y:\оригинальное имя.pdf   новое имя из выражения уже после копирования.pdf


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

3. На каждом Пк что будет работать с базой несложными манипуляциями создает виртуальный диск с буквой, например S, и размером сколько не жалко. Я делал по 10 гб. И запускаем на них OneDrive под одну учетку на всех. К слову бесплатная версия с головой хватит на пару лет. Итого у нас на каждом Пк путь к файлу будет одинаковым.

4. Кнопку открыть делаем новую. С функцией

Код: Выделить всё

EX_EXEC_HIDE('cmd.exe',concat('/K start',' ',get('Запрос путь к файлу в хранилище','Файл в папке хранилища')))


Тут как раз те скобки что писал выше нужны. Без них файлы с пробелами в имени не откроем.
Использование cmd дает преимущество открывать файлы программами что на конкретном ПК выбраны как программы по умолчанию, а не назначать что то по умолчанию.

5. Кнопку сохранить так же создаем новую

Код: Выделить всё

DLGSAVEFILE('Скачать и сохранить', get('Запрос путь к файлу в хранилище' , 'Имя файла'), 'C:\', '')


Основные плюсы использования

1. Глюков не обнаружено в принципе, все гладко.

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

3. При копировании большого файла на удаленном ПК файл по умолчанию скачивает медленно, но если вы вдруг захотели просмотреть файл что еще не был докачан на втором ПК то запуск по команде cmd кнопки инициирует быструю докачку файла с показом окошка докачки. По сути задержка в доступе от момента создания записи к моменту доступности файла на второй машине максимум секунд 10-20 пока гугл диск создаст разметку для нового файла в гугл диске на удаленной машине.

4. В теории можно ограничить доступ к диску, но открыть доступ программе. То есть менеджер не будет лазать там где не просят. Пока не проверено. Как проверю допишу пост.

p.s. Отличный модуль, благодарность за реализацию автору программы. Но как всегда, нет пределов совершенству. Было б хорошо для любителей сетевых дисков прикрутить по умолчанию в следующих версиях такое поле с адресом файла в папке хранения и возможностью галочкой в настройках кнопки выбирать открывать файлы по пути на диске откуда был взят файл или по пути где он лежит в папке хранения.

И еще хотел спросить. Зачем при хранении в папке вообще проверять наличие файла по расположению там откуда его взяли, совсем не понял зачем это. Без этого все бы более менее работало и без моих манипуляций или я что то не понял в логике работы?
Вложения
Скриншот 2019-03-24 00.38.20.png
Скриншот 2019-03-24 00.38.20.png (44.63 КБ) 602 просмотра

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Вс мар 24, 2019 10:57 am

Чтобы что-то исправить и (или) доработать нужна база с конкретной ошибкой, чтобы я мог изучить проблему и подумать над её исправлением.
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение Иван » Вс мар 24, 2019 1:49 pm

jurist23rus писал(а):Чтобы что-то исправить и (или) доработать нужна база с конкретной ошибкой, чтобы я мог изучить проблему и подумать над её исправлением.


Чистая установка с одной формой и двумя кнопками. Все что делал это выбрал свойство Папка на file и прописал на кнопки Скачать и Смотреть Формы 1 локальный диск. В принципе уже можно ошибку поймать даже без сетевой работы. Прикрепил скрин.

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

Кстати, особенность, ошибка только на картинках... pdf, exe, word, rar все ок.
Вложения
DXTEST_FILE_M.rar
(78.89 КБ) 17 скачиваний
2019-03-34 тест 1.1.png
2019-03-34 тест 1.1.png (66.62 КБ) 582 просмотра
2019-03-24 тест 1.0.png
2019-03-24 тест 1.0.png (56.93 КБ) 582 просмотра

jurist23rus
Эксперт
Сообщения: 2624
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 10 раз

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение jurist23rus » Пн мар 25, 2019 6:55 pm

Иван писал(а):Кстати, особенность, ошибка только на картинках... pdf, exe, word, rar все ок.

Не знаю как воспроизвести ошибку. У меня работает.

Иван писал(а):Отличный модуль, благодарность за реализацию автору программы.

Спасибо, но я не очень понимаю зачем вам модуль. Судя по вашему описанию вам он не нужен. Вы сами создаёте кнопки что-то в них прописывает и это хорошо работает, по вашим словам. Какое это имеет отношение к модулю я так и не понял.
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: "DX Хранилище файлов" - модуль работы с файлами

Сообщение Иван » Пн мар 25, 2019 7:09 pm

jurist23rus писал(а):
Иван писал(а):Кстати, особенность, ошибка только на картинках... pdf, exe, word, rar все ок.

Не знаю как воспроизвести ошибку. У меня работает.

Иван писал(а):Отличный модуль, благодарность за реализацию автору программы.

Спасибо, но я не очень понимаю зачем вам модуль. Судя по вашему описанию вам он не нужен. Вы сами создаёте кнопки что-то в них прописывает и это хорошо работает, по вашим словам. Какое это имеет отношение к модулю я так и не понял.


То есть ошибка у вас не повторилась, очень странно.

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

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

Хотя был бы очень благодарен если б подсказали мультизахват как прописать корректно по кнопке (выбрать и записать в папку), с вашего модуля смотрел как сделать но в программировании я мягко говоря новичек и пока что ничего не получилось)


Вернуться в «Расширения и плагины»