Найти - Пользователи
Полная версия: Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.
Начало » Python для новичков » Разработка приложения средствами Python и PyQt с использованием СУБД sqlite.
1 2
rick
Доброго времени суток!
Нужна помощь гуру Питона. В общем задача у меня такая. Недавно начал осваивать этот язык и надо написать приложение с интерфейсом, решил делать его с помощью PyQT. Суть программы в том, чтобы упростить бумажную волокиту, а именно: должна быть создана БД(выбрал для этого СУБД sqlite), в которой будует храниться личная информация клиентов, форма для заполнения этой БД и должна быть реализована форма, где будет выбор документов типа Word(готовые шаблоны с пропусками для заполнения). Открывая документ, в местах с пропусками должны вставляться данные из базы, после чего документ должен быть сохранен в каком нибудь формате готовым для печати.
В приоритете меня интересует часть с шаблонами документов, как запилить этот шаблон? и как корректно выдергивать данные из БД в его пробелы для заполнения.
Подскажите пожалуйста как это реализовать?
Заранее спасибо!
doza_and
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 лучше делать в виде файлов уже отработанного формата, а не совать все сразу в субд. Так проще отлаживать и поддерживать систему.

Shaman
По-быстрому я делал шаблон из документа созданного в Libre и сохранённого в html.
doza_and
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, но не пошло. Проще обычным текстовым редактором пользоваться.
rick
doza_and
Спасибо за оперативный и развернутый ответ!
doza_and
У вас слишком много форм. Зачем вам одновременно шаблон в Ворде и форма для заполнения СУБД?
Записей в таблицах БД будет много, из одной формы мы заполняем ее, на другой форме список шаблонов, сделано это для упрощения работы, т.е. в шаблоне выбираем в первом поле данные(например ФИО), остальные поля заполняются автоматом. Т.е. моя цель и состоит в том, чтобы в какой то степени автоматизировать заполнение документов, чтобы люди не заполняли все поля от руки, при этом документов много, и постоянно одно и то же писать-утомительно.
Если вам не сложно, хотелось бы подробнее узнать
doza_and
делайте ее в формате который для этого приспособлен. Могу рекомендовать html или pdf
как это будет происходить? как я понимаю, так же скрипт на питоне, но GUI будет идти через браузер?
Shaman
doza_and
Но инструмент лучше брать специализированный, поскольку создание форм в html совсем не та деятельность что написание документов.
В моём случае это было бы стрельбой из пушки по воробьям. Достаточно было возможности задать конкретный размер элементов печатаемого документа, а что код избыточный и не красивый - так я не сайт писал.
rick
Shaman
Shaman
Достаточно было возможности задать конкретный размер элементов печатаемого документа, а что код избыточный и не красивый - так я не сайт писал.
в том то и дело, мне надо чтоб было красиво, документы важные, тетеньки работают не молодые, криво сделаю-“добрым” словом будут долго вспоминать
Rodegast
В общем ты хочешь сделать генератор отчётов для него нужно разрабатывать свой формат шаблонов + графический редактор. Иначе он никому не будет нужен. Вот тут чувачёк про это рассказывает: https://www.youtube.com/watch?v=dajoJbb8-0Y То что у него получилось мне не нравится, сам бы я этим занялся, но вот только времени нет

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

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

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

HTML для печати плохо подходит.
doza_and
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 для проверки полей + СУБД для хранения данных. Наверное для новичка это перебор.

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

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

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

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

Что будет с тётками, которые так и не дождутся от тебя программы, упрощающей им жизнь? Они подумают “хороший мальчик, пытается нам помочь, но не умеет он нифига, потому что для этого нужны профессионалы”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB