LINUX.ORG.RU

Пишу между делом прогу для ведения бюджета предприятия

 , ,


0

0

Вот от нечего делать автоматизирую кусок документооборота предприятия. Программа позволяет создавать планы бюджетов на месяц и неделю, отслеживает счета, приходы, оплаты нал/безнал дабы заказавший позицию не терзал понапрасну телефон. Ведётся также учёт склада предприятия и склада отдела. Пишу всё на Python(PyQt, Sqlalchemy, Elixir), БД - Postgresql, отчёты html+javascript. Как допилю до вменяемого состояния выложу, авось кому ещё пригодится.

PS. Ш наверное Г, но я не фанат.

PS2. Пишу в Eclipse3.5 + PyDev 1.5, на компе Ubuntu 9.10 beta 64bit. Eclipse правда 32 ибо 64 это просто не функционален.

>>> Просмотр (1280x1024, 194 Kb)



Проверено: Shaman007 ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Нет слов. Овации!

bioreactor ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

>Как допилю до вменяемого состояния выложу, авось кому ещё пригодится.

Не пригодится. Хочешь адинэс затмить?

Karapuz ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

красиво.
п.с это компиз, или kwin научился делать shadow для окон?

opensuse ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Ты клёвый

tensai_cirno ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Мать перемать! "Строка документа". Вспоминаю ООП в универе.

Ian ★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Не пойму, зачем строку документа выводить в отдельное окно?

Magister2k7 ()

Re: Пишу между делом прогу для ведения бюджета предприятия

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

unisky ★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Sqlalchemy, Elixir

А зачем?

отчёты html+javascript

xlwt

кусок документооборота предприятия.

А тут мое: http://img199.imageshack.us/img199/7403/kaalinv.png http://img27.imageshack.us/img27/3010/kaawin.jpg http://img178.yfrog.com/img178/2204/emacspysession.png Описывается все примерно такими шаблонами

 {"tblTMPDEPPRECEIPT": { # Имя шаблона
        'ResTitle': 'Расход на склад ГП',  #То, что пишется на вкладке
        'Table' : 'TMPDEPPRECEIPT', #Наименование таблицы из СУБД
        'Fields': {'NDoc': ('N док-та', 3, 'inG', 'inP', 'SK'), #Описание полей из запроса. Формат ниже:
                   'Stamp': ('Дата', 11, 'inG', 'inP', 'SK'),  #'Поле': ('Наименование поля', длина, 'Показывать в таблице', 'И на панели', 'Сортировать или нет'),  
                   'SSum': ('Сумма', 7, 'inG', 'inP', 'SK'),
                   'Quantity': ('Кол-во', 5, 'inG', 'inP', 'nS'),
                   'LastName': ('OTK', 8, 'inG', 'inP', 'SK'),
                   'Sdal': ('Сдал', 8, 'inG', 'inP', 'SK'),
                   'Memo': ('Примечание', 15, 'noG', 'inP', 'SK'),
                   'TMPSTOREHOUSE': ('Пр.Скл.', 2, 'inG', 'inP', 'SK'),
                   'Pname': ('Изделие', 16, 'inG', 'inP', 'nS'),
                   'CtCode': ('ШВИ', 4, 'inG', 'inP', 'nS'),},
        'FieldPosition':('NDoc', 'Stamp', 'SSum', 'Quantity', 'Sdal',  'LastName', 'Pname', 'CtCode', 'Memo', 'TMPSTOREHOUSE'), #Порядок полей. Используется потому, что словари не держат порядка ввода, однако оказался очень полезен для контроля видимости их в рантайме
        'Query':'''select pr.* from v_deppreceipt pr
        join tmpdeppreceipt d on d.id=pr.id
        order by  pr.stamp desc, pr.ndoc desc''', Собственно запрос
        'FilterForm':'fltDepPreceipt', Форма для фильтра
        'ChildLink': ('resDBDepPreceipt', 'IDTMPDEPPRECEIPT',)  #Описание шаблона для связанной конструкции (реализация Master-Detail), которая ниже по вложенности. Текущая конструкция вызывается подобным образом.
    }},
    {'Tasks': ('tskMoveDepPreceipt', 'tskPrintTmpStorehouse', 'tskSeveralInvoices',)} #Перечень задач. Задачи это все то, что невписывается в забивку данных, для которых предназначена таблица.
    ]
#Описание диалога редактирования и фильтрации.:
    'tblTMPDEPPRECEIPT':
       {'NDoc' : ('edit', 'N док-та'), #поле ввода. Вводимые данные контролируются типом поля
        'Stamp' : ('date', 'Дата'), #поле ввода даты (календарик)
        'OTK' : ('combo', 'tblMWorkers1', 'ОТК'), #Поле для ввода данных из списка, видно на рисунке. 'tblMWorkers1' - таблица, с фамилиями, которую видно на рисунке. Ее описание, похоже на шаблон выше
        'ENTEREDBY' : ('combo', 'tblMWorkers', 'Сдал'),
        'TMPSTOREHOUSE' : ('checkbutton', 'Промежуточный склад'), #Есть еще радиобуттон и группа чекбоксов
        'Memo' : ('edit', 'Примечание'),
        'FieldPosition':('OTK', 'NDoc','Stamp', 'ENTEREDBY', 'TMPSTOREHOUSE', 'Memo'),
        '$Actions$':({'Распечатать накладную':'cmPintInvoiceFP'}, #Выполнение неких действий, кроме релактирования прямо на форме редактирования, реализуется командами типа 'cmCondirmRec'.
                     {'Подтвердить поступление на склад':'cmCondirmRec'}),},
На основе приведенного кода генерируется все ГУИ, все нужные SQL-запросы (на модификацию, поиск, сортировку, запросы для master-detail-связей и прочее). Основная задача - напейсать запрос :). Прога на Python. Для гуя используется tkinter+tile+свой биндинг к TableList - http://nemethi.de/ xlwt - для отчетов. СУБД - Firebird

cab ★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

интерпретатор таскать на венду

py2exe спасет отца русской демократии.

подтормаживать на офисных машинах...

То, что описал постом выше крутится на К62, 350, 64 МБ памяти. Быстрее, чем проги аналогичной направленности на плюсах (билдере)

cab ★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Глаза не вылетают?

jcd ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Нормуль

Deleted ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Sqlalchemy, Elixir

А зачем?

Мне важна скорость разработки, не хотелось лисапед выдумывать, хотя тормозилово еще то, но это пока прототип (хотя и уже используется), как обкатаю напишу более лёгкий вариант ORM.

отчёты html+javascript

xlwt

Ну я их просто в QWebView показываю и не парюсь.

Как ни странно, контора более чем на половину на Ubuntu, винда стоит только у тех кому нужны спец программы для налоговой, банка. 1С через терминальный сервер. В паре мест есть даже терминалы на LTSP.

LestorN ()

Re: Пишу между делом прогу для ведения бюджета предприятия

У, ё. А нормальный MDI интерфейс никак не сделать, а то интерфейсы в стиле 80-х годов это несерьезно.

Alex_A_V ★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

> Ед. изм

Такое ощущение, что это сокращение от слова "Едиотизм" :)

Почему после "Ед" точка стоит, а после "изм" её нет?

В остальном - респект.

P.S. Да, я буквоЕд.

UserUnknown ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

[quote] У, ё. А нормальный MDI интерфейс никак не сделать, а то интерфейсы в стиле 80-х годов это несерьезно. [/quote]

MDI? Нормальный? Позже будут табы.

LestorN ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Там ещё веселее встречается, надо вычитывать. А вот видел бы ты что нам в данных!!! Одних бензинов 3 штуки [АИ-80, Аи-80, АИ 80] :)))

LestorN ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Мне важна скорость разработки

А что, ORM дает существенный прирост в скорости разработки, выполнения, и, главное, простоты поддержки по сравнению с SQL? Никогда не мог понять выгоды от применения этого лишнего уровня абстакции, к тому же запрос в ОО виде оченно смахивает на тот же SQL но без читабельности и гибкости, присущих последнему. Очень, очень мало где оправдано применение ORM. А минусов как-то больше. ИМХО.

Ну я их просто в QWebView показываю и не парюсь.

Это тебе сложных отчетов не надо. С подбивкой разных итогов, группировкой и сложным оформлением. Тогда тебе понадобится инструмент типа генератора отчетов или xlwt. Последний, кстати, мне понравился больше, например, FastReport-а, хотя и не умеет некоторых вещей. Для печати очень классно получается, народ доволен немеряно.

cab ★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

А что, ORM дает существенный прирост в скорости разработки, выполнения, и, главное, простоты поддержки по сравнению с SQL?

Да, даёт. Всё перечисленное кроме скорости выполнения. Вот выполнение сливает.

Это тебе сложных отчетов не надо. С подбивкой разных итогов, группировкой и сложным оформлением. Тогда тебе понадобится инструмент типа генератора отчетов или xlwt. Последний, кстати, мне понравился больше, например, FastReport-а, хотя и не умеет некоторых вещей. Для печати очень классно получается, народ доволен немеряно.

Да, пока не надо. Спасибо за наводку, гляну. Если б он его ещё сам показывать мог...

LestorN ()

Re: Пишу между делом прогу для ведения бюджета предприятия

по поводу ORM - сколько ни пробовал как в Python (и алхимию и SQLObject) так и в других ЯП- не дает. Кода, примерно как на SQL, но без использования СУБД-специфичных фич. Поддержка тоже хуже - кроме самого SQL надо знать и фичи используемого ОРМ-ма. Плюс ORM ни фига не отменяет всякого внутреннего хозяйства СУБД типа триггеров, процедур и прочего.

Если б он его ещё сам показывать мог

UNIX-way рулит. В зависимости от показывать должна программа, которая лучше других подходит для выполнения задачи. Например, Gnumeric отлично открывает то, что нагенерировал xlwt. Причем быстро, приблизительно, как тот же Fast Report.

cab ★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

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

LestorN ()

Re: Пишу между делом прогу для ведения бюджета предприятия

[qoute]для таких задач больше всего подходил бы какой-нибудь декларативный спец язык. [/qoute] Давно использую. См. мой пост с кодом. У меня не поворачивается назвать мои шаблоны миниязыком, но общее направление то.

cab ★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

>Плюс ORM ни фига не отменяет всякого внутреннего хозяйства СУБД типа триггеров, процедур и прочего.

Что-то тут не так

Julio_Petrovich ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Душераздирающе.

Jayrome ★★★★★ ()

Re: Пишу между делом прогу для ведения бюджета предприятия

Отлично!!! Но рулят зачастую не те, кто лучше сделал а кто умеет бабло срубать. Хотя может в 1С есть Head Hunter, и пригласят Вас! Я за тех, кто своим умом пытается делать и создавать!

garik05 ()

Re: Пишу между делом прогу для ведения бюджета предприятия

>неправда, не всегда. я на компиз ушел где-то в 4.2.0, и тогда он еще не умел

В 4.2 точно умел. Только это было выключено по дефолту.

Pavval ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.