Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: как вы храните в БД форматированный текст?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3798
мы у себя в базе сохраняем и читаем RVF, это формат TRichView. он бинарный, то есть база не расползается. всё работает отлично в обе стороны, чтение, сохранение, отображение, редактирование.
если нужно, то можно этим же набором компонент сделать RTF/Txt/Html с частиным урезанием везде фич до возможностей формата.
23 фев 21, 10:53    [22285045]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Мудроглюков
Member

Откуда:
Сообщений: 8319
GrigoriyFomin
Сабж, собббственно. Как простейший вариант - это хранить в RTF, но это тяжелый формат, хоть и универсальный. Какие тогда компоненты для его отображения/отчетности использовать? Его вроде просто так конкатенировать нельзя? И как хранить картинки в тексте? Зависит от версии RTF? Или есть более красивый способ? Хранил одно время в MHT, но нужно хранить именно как редактируемый текст. MHT - это уже "скомпилированный".


Если сам текст не нужно редактировать из приложения (из Delphi), то почему бы
не хранить в БД файл с этим текстом?
PS Если это отчеты, сделанные в к.-л. генераторе отчетов, то, например, реализовать выдачу отчета через параметры отчета.
23 фев 21, 11:05    [22285049]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
alekcvp
Member

Откуда:
Сообщений: 2736
asviridenkov
И да, закопайте уже стюардессу. В смысле HtmlViewer.

У него аналогов нет, так что он будет долго жить.
За 350 баксов - это не аналог.
23 фев 21, 12:46    [22285084]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
asviridenkov
Member

Откуда:
Сообщений: 4028
alekcvp
asviridenkov
И да, закопайте уже стюардессу. В смысле HtmlViewer.

У него аналогов нет, так что он будет долго жить.
За 350 баксов - это не аналог.


350 баксов это зарплата нормального разаботчика за полтора дня. То есть влияния практически не оказывает.
23 фев 21, 12:51    [22285085]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6697
GrigoriyFomin,

В одном проекте использовал TJvRichEdit из JEDI VCL. Он и вставку/хранение/печать изображений поддерживает, в отличие от стандартного TRichEdit.
Плюс там еще 2 компонента TJvRichEditToHTML для экспорта в HTML и TJvPreviewRenderJvRichEdit для превью перед печатью есть, я правда ими не пользовался.
23 фев 21, 13:06    [22285094]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
alekcvp
Member

Откуда:
Сообщений: 2736
asviridenkov
alekcvp
пропущено...
У него аналогов нет, так что он будет долго жить.
За 350 баксов - это не аналог.

350 баксов это зарплата нормального разаботчика за полтора дня. То есть влияния практически не оказывает.

Ну вот нафига мне работать полтора дня бесплатно, если я могу сделать то же самое с HtmlViewer?.. А вот когда его будет не хватать - тогда и будем думать.
К тому же я что-то не видел тонну вакансий на делфи где платят 350к в месяц.

Сообщение было отредактировано: 23 фев 21, 14:20
23 фев 21, 14:26    [22285137]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
asviridenkov
Member

Откуда:
Сообщений: 4028
alekcvp,

Зарплата зависит не от языка а от уровня.
А в плане "то же самое" - это от требований зависит. У HtmlViewer возможностей на порядок меньше. Но основной момент это то что проект мертвый, и закладываться на него чревато проблемами в будущем.
23 фев 21, 14:32    [22285139]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
zeon11
Member

Откуда: Сибирь, Кемерово
Сообщений: 1259
GrigoriyFomin,
Много лет пользуюсь TRichView, использую и как хранилище документов, приходящих по почте, и как генератор отчетов из БД.
Обучил нескольких врачей "шлёпать" шаблоны документов, они обучили остальных. Редко-редко обратятся сгенерить какой-нибудь новый тег из БД, а так всё сами.
23 фев 21, 14:54    [22285150]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
zeon11> Обучил нескольких врачей "шлёпать" шаблоны документов

Поподробнее можно (своя самописка для шаблонизатора
или чужое, только плоские с 1 таблицей или несколько,
или не только плоские и т.д.) ?

Posted via ActualForum NNTP Server 1.5

23 фев 21, 15:00    [22285156]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
zeon11
Member

Откуда: Сибирь, Кемерово
Сообщений: 1259
Гаджимурадов Рустам,
Своя самописка, сделал, когда понял, что ни FR2.56, ни FR5.56 (у меня на них лицензии) не позволяют сделать полноценные медицинские документы. Смотрел, как сделано в других МИС (медицинских инф. системах). Но там, как правило, кроме внесения голого текста от врачей не требуется. Под голым текстом подразумевается внесение врукопашную врачом фактически всей истории болезни исходя из личного опыта врача, его загруженности и т.п. У врачей естественно были свои наработки в вордовских документах, но это всё не стандартизованно, и достаточно убого. Короче, сделал так. Вся история болезни раскидана по таблицам, справочникам. Для формирования печатного документа автоматически делаются запросы, результаты запросов оформляются как теги, далее врач выбирает нужный ему шаблон документа, автоматически заменяются теги шаблона на результаты запросов, сформированный окончательный документ сохраняется в БД. Его уже может просмотреть другой врач, можно распечатать. Документ изменить может только автор документа, но можно и запретить ему это делать.
Тут шаблон документа, врачу показывается по умолчанию только левая часть, где дерево. При желании может открыть и левую часть, подредактировать текст. Не автор шаблона может только использовать этот шаблон, при желании на основе авторского шаблона может сделать и свой собственный шаблон. Автор может закрыть видимость шаблона другим врачам и пользоваться им единолично, такое тоже распространено. Теги - текст в квадратных скобках.

К сообщению приложен файл. Размер - 72Kb
23 фев 21, 18:22    [22285265]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
zeon11
Member

Откуда: Сибирь, Кемерово
Сообщений: 1259
Гаджимурадов Рустам,
По поводу запросов. Запросы нисходящие, т.е. в корне дерева может быть несколько запросов, результаты запросов распространяются на подчинённые отчёты. Т.е. на закладке "Запросы" никаких запросов может и не быть, если результаты запросов верхнего уровня обслуживают нижние шаблоны. Если запросов недостаточно, то для конкретного шаблона можно дописать дополнительные запросы.
Помимо запросов, в теги могут попадать и константы, как-то главный врач, бухгалтер ИНН и прочее.

К сообщению приложен файл. Размер - 41Kb
23 фев 21, 18:31    [22285276]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 744
zeon11,

нет желания выложить свою разработку на тот же гитхаб? выглядит достаточно интересно...
23 фев 21, 18:42    [22285281]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
zeon11
Запросы нисходящие, т.е. в корне дерева может быть несколько запросов, результаты запросов распространяются на подчинённые отчёты.
Т.е. на закладке "Запросы" никаких запросов может и не быть, если результаты запросов верхнего уровня обслуживают нижние шаблоны.


Это необычная архитектура. Ну т.е. вон в подузле
"Справки" доступны все запросы (и датасеты) из
узла "Педиатрия", я правильно понял?

Тут возникает пара вопросов - собсно, "наверху"
может быть 4 запроса, плюс 3 своих. Когда они
"выполняются", и все или только "затронутые"
в нижнем (текущем) отчёте?

"Композитные" отчеты поддерживаются?



zeon11> для конкретного шаблона можно дописать дополнительные запросы.

Никакой построитель запросов не используется?
А-то мне как-то слабо верится во врачей, пишущих
запросы к БД. Ну, я знаю двух, но это исключения.


asutp2> нет желания выложить свою разработку на
asutp2> тот же гитхаб? выглядит достаточно интересно...

Присоединяюсь. Если лень/стыдно на гитхаб -
можете просто куда-нибудь архивом (хоть сюда).

Posted via ActualForum NNTP Server 1.5

23 фев 21, 18:58    [22285287]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1815
zeon11,

а как обрабатываешь списки? Например, в документе нужно отобразить таблицу с переменным числом строк или столбцов.
23 фев 21, 19:06    [22285293]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
Кстати, да. Плюс всякие итоги и кроссы, шахматки.

Posted via ActualForum NNTP Server 1.5

23 фев 21, 20:10    [22285327]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
zeon11
Member

Откуда: Сибирь, Кемерово
Сообщений: 1259
Гаджимурадов Рустам

..... в подузле
"Справки" доступны все запросы (и датасеты) из
узла "Педиатрия", я правильно понял?

Тут возникает пара вопросов - собсно, "наверху"
может быть 4 запроса, плюс 3 своих. Когда они
"выполняются", и все или только "затронутые"
в нижнем (текущем) отчёте?



Перед формированием отчета будут формироваться все семь dataset'ов сверху вниз. Если по каким-то причинам (по невнимательности) будут формироваться одинаковые теги, то значения тегов будут переписываться более свежими.
Это сделано для того, чтобы врачей не смущала закладка "Запросы", как правило она пустая. При создании своих документов им достаточно в дереве документов создать свой "листочек", дать ему название и в правой части в редакторе копипастом "воткнуть"
или чужой шаблон документов с тегами, а затем его подредактировать под себя, либо также копипастом воткнуть свой доковский документ и расставить теги где нужно. Такая иерархия запросов и получилась из-за осознания того, что скопировать текст документа врачи ещё могут, а вот плюсом скопировать закладку "запросы" у них уже возникают проблемы. Так что запросы врачи не пишут, их может написать сисадмин, если немного понимает в SQL, то по образцу что-то может и написать. Построитель запросов есть (на закладке кнопка "SQL Строитель"), но на самом деле это никому не нужная лажа, которой никто не пользуется. Не то, что плохо написана, просто сама идея таких "Строителей" изжила себя.


Гаджимурадов Рустам

"Композитные" отчеты поддерживаются?


Да. На закладке "Запросы к БД" можно увидеть блок {Композит}
Если туда записать через точку с запятой коды отчетов, то больше ничего писать не надо, программа соберёт один документ из перечисленных документов.
В дереве документов можно выделить несколько документов, тогда по одному клику пациенту создастся пакет документов.

Запросы возвращают как правило одну запись, так что нагрузки на БД не наблюдал.
По таблицам. TRichView позволяет делать таблицы, но что-то серьезное, проблематично.
Проблематично не столько для меня, сколько для конечных пользователей, так что лучше им эти горизонты не показывать. Серьезные табличные документы проще сделать в FastReport, шахматки там-же делаю. В рамках той-же МИС есть "Меню-раскладка для приготовления питания" на FR256 с динамичным количеством колонок (столы, режимы питания и т.д.) форма 44-МЗ, формат листа A3.

Для врачей, кто по-продвинутей, есть OLAP-отчеты (FastCube, лицензии на 1.* и 2.*), там они считают свою нагрузку, делают годовые отчёты и т.п. Есть мысль закидывать OLAP-отчеты в RichView документ, но пока никто этой фичи не заказал, а самому лениво.

По выкладке. Причесать надо, если что конкретное, спрашивайте, поясню. В принципе каких-то особых фишек тут нет, все из картинок видно, а как на уровне БД устроено, поясню.
24 фев 21, 06:48    [22285454]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1815
Таким образом, мы приходим к неожиданным выводам: пользователь не может создать запросы, пользователь не может создать отчет сколько-нибудь сложной структуры.
Коллеги, делайте отчеты в виде плагинов. В них нетрудно разместить логику любого уровня сложности. Причем, логика будет написана на любимом Delphi, а не на колченогом FastScript.
24 фев 21, 09:20    [22285470]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
zeon11> По таблицам. Серьезные табличные документы
zeon11> проще сделать в FastReport, шахматки там-же делаю.

Тогда это сильно упрощает дело.

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

Posted via ActualForum NNTP Server 1.5

24 фев 21, 12:28    [22285584]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32001

давайте вернёмся к тому, чего начался топик.
мне вот реально интересно, с чего вдруг Гриша решил объявить нам, что RTF - "тяжелый формат"?

или это игра в четыре руки со Свириденковым?

Posted via ActualForum NNTP Server 1.5

24 фев 21, 12:40    [22285596]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
zeon11
Member

Откуда: Сибирь, Кемерово
Сообщений: 1259
ъъъъъ
Таким образом, мы приходим к неожиданным выводам: пользователь не может создать запросы, пользователь не может создать отчет сколько-нибудь сложной структуры.
Коллеги, делайте отчеты в виде плагинов. В них нетрудно разместить логику любого уровня сложности. Причем, логика будет написана на любимом Delphi, а не на колченогом FastScript.


Пользователь никогда и не умел делать отчеты. Эта тема тянется ещё с односекундной жёлтой программы, когда для гипотетического бухгалтера был даже придуман русифицированный язык. За 20 лет я так и не встретил бухгалтера, которому это-бы понадобилось. Наверное, и на всём этом форуме таких счастливчиков не найдётся.
По поводу плагинов - тема хорошая, но всё-таки для отчетов слишком громоздкая. И даже с самой изощренной логикой в плагине, в конце концов встанет вопрос - куда выводить результат? Если не в FastReport, то Word & Excel? Недорогих "печаталок"-то и нет, а скоро и совсем не будет.
24 фев 21, 12:46    [22285602]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
МП> с чего вдруг ... RTF - "тяжелый формат"?

Ну, нужно для начало определиться с термином "тяжёлый".
Заполнять (формировать) RTF вручную и правда муторно...
Хотя если набросать свои функции на всё про всё - можно
свой WordPad написать и привыкнуть, наверное...

Posted via ActualForum NNTP Server 1.5

24 фев 21, 13:02    [22285617]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1815
zeon11
По поводу плагинов - тема хорошая, но всё-таки для отчетов слишком громоздкая. И даже с самой изощренной логикой в плагине, в конце концов встанет вопрос - куда выводить результат? Если не в FastReport, то Word & Excel? Недорогих "печаталок"-то и нет, а скоро и совсем не будет.


С плагинами сие просто: куда хочешь, туда и выводи.
Хоть превью в окошке FR.
Хоть вызывай ассоциированное с заданным расширением файла приложение, например, .XLSX -> MS Excel | OpenOffice Calc | и т.д.

Главное - соблюсти интерфейс вызова плагина.
24 фев 21, 13:02    [22285618]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62423
ъъъъъ> С плагинами сие просто: куда хочешь, туда и выводи.

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

Posted via ActualForum NNTP Server 1.5

24 фев 21, 13:05    [22285622]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32001

24.02.2021 13:02, Гаджимурадов Рустам пишет:
> Ну, нужно для начало определиться с термином "тяжёлый".
> Заполнять (формировать) RTF вручную и правда муторно...
> Хотя если набросать свои функции на всё про всё - можно
> свой WordPad написать и привыкнуть, наверное...

сильно подозреваю, что документ создаётся в Word'е,
а в "мегапрограмме" только отображается/сохраняется в БД.

зы: в поставке Делфи (в сэмплах) идёт уже готовый простенький RTF-редактор.

Posted via ActualForum NNTP Server 1.5

24 фев 21, 13:09    [22285631]     Ответить | Цитировать Сообщить модератору
 Re: как вы храните в БД форматированный текст?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1815
Гаджимурадов Рустам
код формирования
отчётов (включая шаблонизирование, запросы и т.д.)
всё равно придётся писать (или искать готовый).

Я про то, что рассчитывать, что этот код напишет юзер - архитектурная ошибка.
24 фев 21, 13:17    [22285638]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Delphi Ответить