Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2017 21:18:29

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

Доброго времени суток!
Нужна помощь гуру Питона. В общем задача у меня такая. Недавно начал осваивать этот язык и надо написать приложение с интерфейсом, решил делать его с помощью PyQT. Суть программы в том, чтобы упростить бумажную волокиту, а именно: должна быть создана БД(выбрал для этого СУБД sqlite), в которой будует храниться личная информация клиентов, форма для заполнения этой БД и должна быть реализована форма, где будет выбор документов типа Word(готовые шаблоны с пропусками для заполнения). Открывая документ, в местах с пропусками должны вставляться данные из базы, после чего документ должен быть сохранен в каком нибудь формате готовым для печати.
В приоритете меня интересует часть с шаблонами документов, как запилить этот шаблон? и как корректно выдергивать данные из БД в его пробелы для заполнения.
Подскажите пожалуйста как это реализовать?
Заранее спасибо!



Находчивый питон проглотил двух разнополых кроликов.

Отредактировано rick (Июнь 3, 2017 21:21:49)

Офлайн

#2 Июнь 3, 2017 21:51:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

rick
форма для заполнения этой БД
rick
выбор документов типа Word(готовые шаблоны с пропусками для заполнения)
У вас слишком много форм. Зачем вам одновременно шаблон в Ворде и форма для заполнения СУБД?

Вопросом создания шаблонов в Ворде занимались. Рассмотрели несколько вариантов. Работа шла несколько месяцев.
rick
Подскажите пожалуйста как это реализовать?

Короткий ответ никак.

Ворд знатное XXXXXXX с точки зрения автоматизации. Если интересно почему, могу пояснить.

Сейчас технология у нас “простая”. Если требуется выхлоп в виде docx то документ делаем в LaTeX потом исходные файлы TEX конвертируются при помощи pandoc в docx с использованием референсного документа от целевого ворда и потом текст допиливается скриптом под заданные стандарты при помощи python-docx + win32com. Скрипты большие, плод длительной работы и не думаю что новичок сходу сможет их сделать.

Т.е. если нужна форма для заполнения то делайте ее в формате который для этого приспособлен. Могу рекомендовать html или pdf. Документ очевидно будет в готовом для печати формате.

rick
и как корректно выдергивать данные из БД в его пробелы для заполнения.

Вот это как раз плевое дело если с офисом не связываться. HTML или TEX это просто текст, который может генерироваться любым шаблонизатором. http://www.makotemplates.org/ http://jinja.pocoo.org/docs/2.9/


p.s.

Если вам действительно надо работать а не изучать разные библиотеки то думаю проще вместо изготовления своего граф интерфейса на Qt поначалу научить народ вводить и редактировать данные текстовым редактором (например использовать csv,yaml форматы) или exel. (текстовый редактор очевидно более универсальное решение особенно если надо что-то формоподобное). Данные затаскивать из них гораздо проще. Qt нужен только если у вас требуется нетривиальная и немедленная проверка данных. (не забывайте в html и в pdf вы тоже можете вставить немедленную проверку при помощи javascript)

Когда отработаете бизнес процесс можно будет уже думать о Qt/Wxpython/TkInter/своем web сервере Причем как показывает практика выхлоп GUI лучше делать в виде файлов уже отработанного формата, а не совать все сразу в субд. Так проще отлаживать и поддерживать систему.



Отредактировано doza_and (Июнь 3, 2017 22:09:10)

Офлайн

#3 Июнь 4, 2017 00:06:20

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

По-быстрому я делал шаблон из документа созданного в Libre и сохранённого в html.

Офлайн

#4 Июнь 4, 2017 10:07:45

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

Shaman
в Libre и сохранённого в html.
html тем и хорош что можно черти в чем сделать. Но инструмент лучше брать специализированный, поскольку создание форм в html совсем не та деятельность что написание документов.
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_HTML
Dreamweaver у начинающих похоже лидер. Я пробовал его, Amaya, BlueGriffon, но не пошло. Проще обычным текстовым редактором пользоваться.



Офлайн

#5 Июнь 4, 2017 19:52:17

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

doza_and
Спасибо за оперативный и развернутый ответ!

doza_and
У вас слишком много форм. Зачем вам одновременно шаблон в Ворде и форма для заполнения СУБД?
Записей в таблицах БД будет много, из одной формы мы заполняем ее, на другой форме список шаблонов, сделано это для упрощения работы, т.е. в шаблоне выбираем в первом поле данные(например ФИО), остальные поля заполняются автоматом. Т.е. моя цель и состоит в том, чтобы в какой то степени автоматизировать заполнение документов, чтобы люди не заполняли все поля от руки, при этом документов много, и постоянно одно и то же писать-утомительно.
Если вам не сложно, хотелось бы подробнее узнать
doza_and
делайте ее в формате который для этого приспособлен. Могу рекомендовать html или pdf
как это будет происходить? как я понимаю, так же скрипт на питоне, но GUI будет идти через браузер?



Находчивый питон проглотил двух разнополых кроликов.

Отредактировано rick (Июнь 4, 2017 22:26:56)

Офлайн

#6 Июнь 4, 2017 21:58:40

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

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

Офлайн

#7 Июнь 4, 2017 22:24:14

rick
Зарегистрирован: 2017-06-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

Shaman

Shaman
Достаточно было возможности задать конкретный размер элементов печатаемого документа, а что код избыточный и не красивый - так я не сайт писал.
в том то и дело, мне надо чтоб было красиво, документы важные, тетеньки работают не молодые, криво сделаю-“добрым” словом будут долго вспоминать



Находчивый питон проглотил двух разнополых кроликов.

Отредактировано rick (Июнь 4, 2017 22:26:25)

Офлайн

#8 Июнь 5, 2017 11:23:52

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2842
Репутация: +  186  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

В общем ты хочешь сделать генератор отчётов для него нужно разрабатывать свой формат шаблонов + графический редактор. Иначе он никому не будет нужен. Вот тут чувачёк про это рассказывает: https://www.youtube.com/watch?v=dajoJbb8-0Y То что у него получилось мне не нравится, сам бы я этим занялся, но вот только времени нет

> проще вместо изготовления своего граф интерфейса на Qt поначалу научить народ вводить и редактировать данные текстовым редактором

А ты сам-то это пробовал?

> По-быстрому я делал шаблон из документа созданного в Libre и сохранённого в html.
> html тем и хорош что можно черти в чем сделать.

HTML для печати плохо подходит.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Июнь 5, 2017 11:25:13)

Офлайн

#9 Июнь 5, 2017 23:41:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

Rodegast
А ты сам-то это пробовал?
Да. Отлично работает, много лет. Ни за что не променяем yaml/cfg/namelist + нормальный текстовый редактор на дурацкие формочки, в которых ничего не найти и не сделать search/replace. Но у нас контингент не немолодые тетеньки, а немолодые дяденьки, привыкшие километрами листинги программ читать :).

rick
мне надо чтоб было красиво
Rodegast
HTML для печати плохо подходит.

Согласен. Вот поэтому мы использовали LaTeX.
Пример использования latex https://martin-thoma.com/creating-pdf-forms-with-latex/ Я не уверен что это хороший выход вводить данные прямо в формы в pdf. Формы ввода данных и формы для печати это чаще всего существенно разные штуки.

rick
остальные поля заполняются автоматом
Судя по этому вам не обязательно иметь возможность корректировать данные в файле предназначенном для печати?

Сами редактируем текстовые данные в yaml файлах, не знаю насколько удобно будет формы в pdf использовать. Может Qt и лучше, поскольку дает возможность проверить вводимые данные. А html это полный цикл. Сервер + генерация отчетов + javascript для проверки полей + СУБД для хранения данных. Наверное для новичка это перебор.



Отредактировано doza_and (Июнь 5, 2017 23:56:47)

Офлайн

#10 Июнь 6, 2017 03:28:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.

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

rick
в том то и дело, мне надо чтоб было красиво, документы важные, тетеньки работают не молодые, криво сделаю-“добрым” словом будут долго вспоминать

Займись лучше чем-нибудь полезным для себя самого. Так будет проще научиться что-то делать, так как хватит мотивации и сам для себя выбираешь направление. А когда научишься, уже будешь понимать примерный объём работ для решения той или иной задачи. Ты не можешь просто взять и наскоряк это написать, это планомерная работа изо дня в день. Иногда нужно несколько дней сидеть и переделывать полпрограммы, потому что ошибся в архитектуре где-то там, две недели назад. А не переделаешь, не сможешь писать дальше, потому что с каждой строчкой всё будет становиться всё хуже и хуже, пока не захлопнется вообще (коллапс). Иногда программу прямо целиком удаляют и пишут заново всё, но уже правильно и она быстрее получается, потому что ты уже знаешь, какая она.

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

Что будет с тётками, которые так и не дождутся от тебя программы, упрощающей им жизнь? Они подумают “хороший мальчик, пытается нам помочь, но не умеет он нифига, потому что для этого нужны профессионалы”.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version