Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) на связке Python + Qt пишу для себя чтото... (число прочтений - 70373 )
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
на связке Python + Qt пишу для себя чтото...
21. Октября 2009 :: 22:41
Печать  
забрел случайно Улыбка
...цать лет работаю на FoxPro c бух и прочими учетными системами

сейчас на связке Python + Qt пишу для себя чтото... чтобы быстро гуи и отчеты строить

то есть как бы решаю те же проблемы, что здесь обсуждаются

гуи почти готов, но не кнопконакидательский, а скорее втаблицеописательский - хорошо ложится на layout-ы в Qt
на разные события гуи куски кода хранятся в БД, выполняются...
т.к.:
интерпретатор - изобретать не надо - python как есть

отчеты - умею по описанию строить из разных таблиц, динамически безразмерные таблицы, пока в html, и в Excel
для форм типа платежных документов использую шаблоны в RTF

ищу сейчас альтернативный формат, чтобы шаблоны хранить, и отчеты в него генерить  (поэтому и сюда занесло)


вопрос - в чем кайф like 1c?
работать с их конфигурацией?
или встроенный язык хорош?
или структура БД - супер?
или все дело в дизайнере форм?
« Последняя редакция: 22. Октября 2009 :: 14:25 - trdm »  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание кросплатформенной среды Like 1C.
Ответ #1 - 22. Октября 2009 :: 07:16
Печать  
villager писал(а) 21. Октября 2009 :: 22:41:
вопрос - в чем кайф like 1c?

Быстрая скорость разработки.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Создание кросплатформенной среды Like 1C.
Ответ #2 - 22. Октября 2009 :: 09:53
Печать  
villager писал(а) 21. Октября 2009 :: 22:41:
сейчас на связке Python + Qt пишу для себя чтото... чтобы быстро гуи и отчеты строить

Меня это оч. интересует. Можно посмотреть скриншоты? И возможности?

>или все дело в дизайнере форм?
И это тоже.
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: Создание кросплатформенной среды Like 1C.
Ответ #3 - 22. Октября 2009 :: 13:28
Печать  
общий вид такой
на переднем плане тестовый экран
под ним заголовки описаний экранов
еще глубже  - форма для правки справочника
далее - сам справочник
в пределах одной вкладки - окна модальны, т.е. перейти на глубже можно только  закрыв верхнее окно
но можно добавлять вкладки и на них открывать те же окна

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

22spp.jpg ( 140 KB | Загрузки )
22spp.jpg
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание кросплатформенной среды Like 1C.
Ответ #4 - 22. Октября 2009 :: 14:29
Печать  
villager писал(а) 22. Октября 2009 :: 13:28:
дизайнера форм нету - только описание, которое испльзуется для построения грида и формы, и условий выборки(выборка пока не сделана)

Смысл Like 1C в интегрированности компонент и через это более легкая и быстрая разработка, из которой выкинут всякий гемор.
Дизайнеры, построители и т.п.
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: Создание кросплатформенной среды Like 1C.
Ответ #5 - 22. Октября 2009 :: 15:14
Печать  
Цитата:
Дизайнеры, построители и т.п.

ясно
история развития - отсутствие гуи-ручное кодирование гуи -рисование гуи... - ???
сколько гуи не рисуй, все равно окна и гриды получаются Улыбка...
поэтому я отказался от дизайнера-
рисовать легко, но вот события кодировать - 100 раз одно и тоже...
поэтому написать проще:
Код
Выбрать все
    browser.addForm("Экран")

    browser.addLine("npp", u"№пп")
    browser.addLine("say", u"Текст")
    browser.addLine("mess", u"Подсказка")

    browser.addHorz()
    browser.addLine("disabled", u"",pic=u"C недоступно")
    browser.addLine("nobrowse", u"",pic=u"C Не показывать в списке")
    browser.addLine("noscreen", u"",pic=u"C Не показывать в экране")
    browser.addClose()
    browser.addLine("cods", u"Коды")

    browser.addClose()
    .............
 


а уж как это будет выглядеть на экране - может  WEB, может QT ...
зависит от browser.run()

такое описание легко хранить в БД
а вот результат - в таком виде пока храню описание элементов экрана
  

21s.jpg ( 78 KB | Загрузки )
21s.jpg
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #6 - 23. Октября 2009 :: 06:28
Печать  
Каждая форма имеет свой модуль? И контекст?

Здесь есть бесплатная прога для флэш презентаций:
http://www.debugmode.com/wink/

Можешь с помощью нее сделать обзор возможностей и работы с твоей "платформой"? Код открытый?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #7 - 23. Октября 2009 :: 13:30
Печать  
примерно так, куски кода на события, и ссылку на саму форму
при инициалализации можно определить свои функции и переменные, вписать их в форму, и в других событиях использовать...
на каждый элемент тоже есть куски кода

обзор пока рано. хочу сначала генератор отчетов дописать...

код открою. (когда все устаканитсяУлыбка )

в ближайшее время нарисую страничку (www.penta.by ; - пока там пустоУлыбка), и стану выкладывать собранную в EXE версию с тестовой БД
  

21s_002.jpg ( 89 KB | Загрузки )
21s_002.jpg
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #8 - 25. Октября 2009 :: 15:54
Печать  
villager писал(а) 23. Октября 2009 :: 13:30:
примерно так, куски кода на события, и ссылку на саму форму
при инициалализации можно определить свои функции и переменные, вписать их в форму, и в других событиях использовать...
на каждый элемент тоже есть куски кода

обзор пока рано. хочу сначала генератор отчетов дописать...

код открою. (когда все устаканитсяУлыбка )

в ближайшее время нарисую страничку (www.penta.by  - пока там пустоУлыбка), и стану выкладывать собранную в EXE версию с тестовой БД

Каковы сроки? А то тдрм свой отчетник уже нексолько лет пишет, Ананас - тоже мертвое царство...
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #9 - 25. Октября 2009 :: 16:22
Печать  
blindvic писал(а) 25. Октября 2009 :: 15:54:
А то тдрм свой отчетник уже нексолько лет пишет
гы, а ты думаешь все так просто Улыбка
каждую фьючу не один день обдумываешь, как бы сделать, так что-бы правильно было и не переделывать.
зарядка для мозгов классная Улыбка рекомендую всем. %)
« Последняя редакция: 25. Октября 2009 :: 22:01 - trdm »  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #10 - 25. Октября 2009 :: 17:05
Печать  
blindvic писал(а) 25. Октября 2009 :: 15:54:
Каковы сроки?


глянул в бэкапы - ровно год на днях - от "hello world"
сайт - в течении недели...
дальше - будет видно...
с отчетами заминка, видно пока замкнусь на word и excel...
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #11 - 25. Октября 2009 :: 19:11
Печать  
trdm писал(а) 25. Октября 2009 :: 16:22:
blindvic писал(а) 25. Октября 2009 :: 15:54:
А то тдрм свой отчетник уже нексолько лет пишет
гы, а ты думаешь все так просто Улыбка

а что я? и ничё...
знаю, что качественный продукт надо разрабатывать тщательно.
  
Наверх
 
IP записан
 
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #12 - 03. Ноября 2009 :: 09:40
Печать  
  
Наверх
ICQ  
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #13 - 03. Ноября 2009 :: 16:27
Печать  
спасибо
видимо да, скорее всего reportlab, но позже
хотелось бы html+css конвертировать в PDF
буду копать.
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #14 - 04. Ноября 2009 :: 08:09
Печать  
сегодня у себя на сайте www.penta.by
положил первую тестовую программу

сама "конфигурация" - в меню спец/экраны

  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #15 - 04. Ноября 2009 :: 15:54
Печать  
villager писал(а) 04. Ноября 2009 :: 08:09:
сегодня у себя на сайте www.penta.by
положил первую тестовую программу

сама "конфигурация" - в меню спец/экраны


Что-то я не нашел "меню спец/экраны"
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #16 - 04. Ноября 2009 :: 17:44
Печать  
должно выглядеть примерно так
  

sc.jpg ( 13 KB | Загрузки )
sc.jpg
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #17 - 07. Ноября 2009 :: 20:37
Печать  
Сделал виджет для чисел с сотыми, разделителями тысяч  - как в 1С 7.7.
Потестите

ЗЫ Аналог на Си++ хоть и быстрее намного, но занимал бы, пожалуй, намного больше строк
  

m_DecimalEdit.py ( 3 KB | Загрузки )
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #18 - 08. Ноября 2009 :: 08:05
Печать  
blindvic писал(а) 07. Ноября 2009 :: 20:37:
Сделал виджет для чисел с сотыми, разделителями тысяч  - как в 1С 7.7.
Потестите

ЗЫ Аналог на Си++ хоть и быстрее намного, но занимал бы, пожалуй, намного больше строк


работает
НО  -  нельзя задать начальное значение
чуть поправил
Код
Выбрать все
    def showEvent ( self, event ) :
	  #self.on_textEdited ( "" ) # show initital value
	  self.on_textEdited ( self.text() ) # show initital value
	  QLineEdit.showEvent ( self, event )
 



еще проблема - как задавать разделители
в фокспро это делается шаблоном - 999,999,999.99
на печать - также. Иногда для экономии места можно задать 99999,999.99 на печать
или делать ввод с шаблоном 99/99 для бух.счетов

кто другие варианты предложит?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #19 - 08. Ноября 2009 :: 08:41
Печать  
villager писал(а) 08. Ноября 2009 :: 08:05:
кто другие варианты предложит?

как насчет маски + валидатора?
http://www.doc.crossplatform.ru/qt/4.3.2/qlineedit.html#inputMask-prop
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #20 - 08. Ноября 2009 :: 11:03
Печать  
trdm писал(а) 08. Ноября 2009 :: 08:41:
как насчет маски + валидатора?

плохо там себя курсор ведет Улыбка
готового решения нет.
я себе такое тоже делал.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #21 - 08. Ноября 2009 :: 15:11
Печать  
villager писал(а) 08. Ноября 2009 :: 11:03:
trdm писал(а) 08. Ноября 2009 :: 08:41:
как насчет маски + валидатора?
плохо там себя курсор ведет Улыбка

А поподробнее, чего не устраивает?
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #22 - 08. Ноября 2009 :: 17:43
Печать  
при использовании маски и валидатора  курсор движется слева направо
в приведенном примере - курсор стоит на месте, а введенные цифры убегают влево  - сразу видно, сколько тысяч миллионов накапалоУлыбка
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #23 - 09. Ноября 2009 :: 10:55
Печать  
villager писал(а) 08. Ноября 2009 :: 08:05:
еще проблема - как задавать разделители
в фокспро это делается шаблоном - 999,999,999.99
на печать - также. Иногда для экономии места можно задать 99999,999.99 на печать
или делать ввод с шаблоном 99/99 для бух.счетов

чего-то не пойму...
как задавать разделители?
в том виджете разделитель либо есть, либо его нет. Разделяет тысячи.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #24 - 09. Ноября 2009 :: 12:36
Печать  
Хм. Ето не единственная проблема с точки зрения LIKE 1C c Qt.
Там нет простого многострочного редактора, а есть мощный на основе QTextEdit. Для целей LIKE 1C, он слегка избыточен.
Под ввод счетов нормальной пойдет макса думаю, а вот что-бы сделать поведение поля аля 1С при вводе цифирей, хм, тут надо хорошо подумать:
- либо инсталировать эвент фильтр и в нем обрабатывать,
- либо писать виджет с нуля, что было бы более перспективно (можно было бы кнопки добавить, вызов каленаря и т.п.)
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #25 - 09. Ноября 2009 :: 13:15
Печать  
trdm писал(а) 09. Ноября 2009 :: 12:36:
- либо писать виджет с нуля, что было бы более перспективно (можно было бы кнопки добавить, вызов каленаря и т.п.)

ЩАс пишу виджет для даты с вызовом календаря
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #26 - 09. Ноября 2009 :: 15:50
Печать  
blindvic писал(а) 09. Ноября 2009 :: 10:55:
чего-то не пойму...
как задавать разделители?
в том виджете разделитель либо есть, либо его нет. Разделяет тысячи.


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

а для даты QDateEdit - почти хорош.
Иногда только отказывается примать ввод,
когда стрелку вправо или влево нажмешь
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #27 - 09. Ноября 2009 :: 16:02
Печать  
blindvic писал(а) 09. Ноября 2009 :: 13:15:
trdm писал(а) 09. Ноября 2009 :: 12:36:
- либо писать виджет с нуля, что было бы более перспективно (можно было бы кнопки добавить, вызов каленаря и т.п.)

ЩАс пишу виджет для даты с вызовом календаря

Посмотри вот этот виджет:
http://code.google.com/p/unnstudioreport/source/browse/trunk/Report/uoColorChoos...
Может быть как заготовка подойдет.
А сам календарь какой возьмешь? Qt-шный?
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #28 - 09. Ноября 2009 :: 20:58
Печать  
trdm писал(а) 09. Ноября 2009 :: 16:02:
А сам календарь какой возьмешь? Qt-шный?

Ага
  

snapshot3.png ( 162 KB | Загрузки )
snapshot3.png
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #29 - 09. Ноября 2009 :: 21:04
Печать  
villager писал(а) 09. Ноября 2009 :: 15:50:
а для даты QDateEdit - почти хорош.
Иногда только отказывается примать ввод,
когда стрелку вправо или влево нажмешь

Мне не нравится вид выпадающего календаря, в том числе отсутствие кнопки "сегодня".
Потом сделаю выпадающий калькулятор да числовых полей.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #30 - 09. Ноября 2009 :: 22:46
Печать  
blindvic писал(а) 09. Ноября 2009 :: 21:04:
Мне не нравится вид выпадающего календаря, в том числе отсутствие кнопки "сегодня".

тоже кстати не нравится. ще не нравится то, что календать "одномесячный". Улыбка иногда, редко правда нужно больше.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #31 - 10. Ноября 2009 :: 07:27
Печать  
trdm писал(а) 09. Ноября 2009 :: 22:46:
blindvic писал(а) 09. Ноября 2009 :: 21:04:
Мне не нравится вид выпадающего календаря, в том числе отсутствие кнопки "сегодня".

тоже кстати не нравится. ще не нравится то, что календать "одномесячный". Улыбка иногда, редко правда нужно больше.

В будущем можно будет подправить - при изменении размера окна - пихать туда побольше месяцев
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #32 - 11. Ноября 2009 :: 09:27
Печать  
Сделал выпадающий календарь.
Запускать test_m_DateEdit.py
  

m_DateEdit.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #33 - 11. Ноября 2009 :: 10:57
Печать  
blindvic писал(а) 11. Ноября 2009 :: 09:27:
Сделал выпадающий календарь.
Запускать test_m_DateEdit.py

Тады давай колись, че помимо Qt и питона нужно в системе, что-бы эту хрень пощупать можно было.
И скрин прилепи, если можно.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #34 - 11. Ноября 2009 :: 12:25
Печать  
Я Кубунту установил - там все есть (вроде бы Python, PyQt 4.5 и Qt).
Чтобы запустить, набираешь в консоли
Код
Выбрать все
python test_m_DateEdit.py 



Под виндой - не знаю
  

12_001.PNG ( 46 KB | Загрузки )
12_001.PNG
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #35 - 11. Ноября 2009 :: 12:41
Печать  
Текущие фичи:
календарь выпадает по нажатию Инсерт или кнопки "..."
окно календаря подгоняется, чтобы не воходило за пределы экрана
PgDn, PgUp, колесико мышки - месяц вперед, назад
Дата выбирается мышкой или по вводу
По Еск и Инсерт - календарь закрывется
На окне календаря можно набирать (нажимать) цифры требуемой даты

Календарь позволяет выделать определенные даты нужным шрифтом.

Я только начинаю работать в кьют и питоне - так что буду рад услышать замечания и предложения по улучшению.

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

Ну и еще есть идеи по поводу самой платформы...
  

11_002.PNG ( 122 KB | Загрузки )
11_002.PNG
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #36 - 11. Ноября 2009 :: 13:16
Печать  
Я так понял что вы с автором ветки вместе будете работать Улыбка
Ну а у мну питона нет, прийдется чисто на Qt.
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #37 - 11. Ноября 2009 :: 16:47
Печать  
trdm писал(а) 11. Ноября 2009 :: 13:16:
Ну а у мну питона нет

от великого (с++)  до питона - один шаг Улыбка

пришлось мне начать писать полноразмерный отчеттер Улыбка
т.к. ничего готового не предвидится

пока вывожу в PDF (reportlab)

пользуюсь только примитивными вещами, типа линия, прямоугольник, прямоугольник с текстом,
поэтому легко будет переправить в HTML, да и на принтер отрисовать тоже...

основная идея - каждый фрагмент отчета представляет собой таблицу произвольных размеров
разрешено прямоугольное объединение клеток, ширина колонок задается либо точно, либо в % (как HTML)

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

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

если есть идеи, предложения, критика - давайте сюда

  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #38 - 11. Ноября 2009 :: 20:00
Печать  
villager писал(а) 11. Ноября 2009 :: 16:47:
trdm писал(а) 11. Ноября 2009 :: 13:16:
Ну а у мну питона нет
от великого (с++)  до питона - один шаг Улыбка
пофиг, останусь чисто на Qt/C++. Питон не нравится.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #39 - 14. Ноября 2009 :: 10:41
Печать  
trdm писал(а) 09. Ноября 2009 :: 12:36:
Хм. Ето не единственная проблема с точки зрения LIKE 1C c Qt.
Там нет простого многострочного редактора, а есть мощный на основе QTextEdit. Для целей LIKE 1C, он слегка избыточен.

http://doc.trolltech.com/qtjambi-4.5.2_01/com/trolltech/qt/gui/QPlainTextEdit.ht...
Цитата:
QPlainTextEdit is an advanced viewer/editor supporting plain text. It is optimized to handle large documents and to respond quickly to user input.
QPlainText uses very much the same technology and concepts as QTextEdit, but is optimized for plain text handling.

  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #40 - 14. Ноября 2009 :: 11:48
Печать  
blindvic писал(а) 14. Ноября 2009 :: 10:41:
trdm писал(а) 09. Ноября 2009 :: 12:36:
Хм. Ето не единственная проблема с точки зрения LIKE 1C c Qt.
Там нет простого многострочного редактора, а есть мощный на основе QTextEdit. Для целей LIKE 1C, он слегка избыточен.

http://doc.trolltech.com/qtjambi-4.5.2_01/com/trolltech/qt/gui/QPlainTextEdit.ht...

Ссылка на джамби Улыбка я пользуюсь чистым С++Qt.
Логичнее эта ссылка: http://doc.trolltech.com/4.5/qplaintextedit.html
ПС. Такой-же перегруженный контрол.
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #41 - 14. Ноября 2009 :: 19:28
Печать  
trdm писал(а) 14. Ноября 2009 :: 11:48:
ПС. Такой-же перегруженный контрол.

Озадачен
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #42 - 25. Ноября 2009 :: 18:27
Печать  
по отчетам кое что готово
строятся таблицы, суммируются итоги, выводится в PDF(результат прилагается)

вот код для формирования этого отчета
Код
Выбрать все
	  #откроем БД
	  db=pentadb.pentaBase(driver="QSQLITE", database="./tlw_test.sqlite")
	  #получим таблицу test
	  test=db.test
	  #откроем таблицу
	  test.refresh()
	  #создаем канву для вывода
	  r=zzPageReport ("zzr.pdf", format="border-width:1")
	  #заголовок страницы
	  ph=zzBaseGrid(2, 2, format="text-align:center;border-width:4;")
	  ph.setHeight("1;0.2")
	  ph.setData(1, 1, u"Программа Пента", format="font-size:25pt")
	  ph.setData(2, 1, u"Проба", format="font-size:25pt;text-align:right")
	  ph.span(1, 2, 2, 2)

	  pf=zzBaseGrid(3, 1, format="text-align:center;")
	  pf.setHeight("2")
	  pf.setData(1, 1, u"подвал страницы")
	  #грид с детальной информацией
	  dtl=zzBaseGrid(7, 1, format="text-align:right")
	  dtl.setWidth("20%")
	  dtl.setHeight("0.8;0.5")
	  dtl.setData(2, 1, "a")
	  dtl.setData(3, 1, "b")
	  dtl.setData(4, 1, "c")
	  dtl.setData(5, 1, "x")
	  dtl.setData(6, 1, "y")
	  dtl.setData(7, 1, "z")
	  #грид заголовка - делаем через копию детального, чтобы не повторять описание
	  th=deepcopy(dtl)
	  th.format="text-align:center;"
	  th.setHeight("1") #выставляем высоту строк - по сантиметру
	  th.setData(1, 1, u"Заголовок таблицы")
	  th.setFormat(1, 2, u"text-align:left;border-width:1 1 1 1")
	  #грид заголовка первого уровня группировки
	  g1h=zzBaseGrid(7, 1)
	  g1h.setWidth("20%")
	  g1h.span(1, 1, 7, 1)
	  g1h.setData(1, 1, 2*" "+u"заголовок 1", "text-align:left;")
	  #грид заголовка второго уровня группировки
	  g2h=zzBaseGrid(7, 1)
	  g2h.setWidth("20%")
	  g2h.span(1, 1, 7, 1)
	  g2h.setData(1, 1, 8*" "+u"заголовок 2", "text-align:left;")
	  #грид итога первого уровня группировки
	  g1f=deepcopy(dtl)
	  g1f.setData(1, 1, 2*" "+u"итог 1", "text-align:left;")
	  #грид итога второго уровня группировки
	  g2f=deepcopy(dtl)
	  g2f.setData(1, 1, 8*" "+u"итог 2", "text-align:left;")
	  #грид итога
	  tt=deepcopy(dtl)
	  tt.setData(1, 1, u"Общий итог")
	  tt.setHeight("0.5")
	  #грид итога по станице
	  pt=deepcopy(dtl)
	  pt.setData(1, 1, u"Итог по странице")
    ##############################
	  #привязываем к детальному гриду группировки поля a,b таблицы БД
	  dtl.addGroup("a", g1h, g1f)
	  dtl.addGroup("b", g2h, g2f)
	  #привязываем грид для заголовка таблицы, отображения итога,итога по станице
	  dtl.headGrid=th
	  dtl.totalGrid=tt
	  dtl.totalPageGrid=pt
    ##############################
	  #создаем документ для печати
	  dc=zzPrintDoc()
	  #добавим заголовок и подвал страницы
	  dc.append(ph, dc.PHEAD)
	  dc.append(pf, dc.PFOOT)
	  #добавим детальную таблицу
	  dc.append(dtl, dc.DETAIL, test)
	  #выведем документ на канву r
	  dc.go(r)
	  dc.go(r)
	  dc.onEndOfPage()
	  #сохраним канву
	  r.save()
	  #просмотрим отчет
	  os.system('zzr.pdf')
    ##############################################

 




сейчас начну копать в сторону RTF и HTML
RTF - страшен Улыбка

  

zzr.pdf ( 54 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #43 - 25. Ноября 2009 :: 22:05
Печать  
Ну ты монстр
А отредактировать отчет перед печатью или сжать с использованием масштаба или опции по ширине листа твоя супер-отчетная система сможет?  Моя вот может: )))))
а в пдф я легко выгоню Улыбка)))) Не мучай ##пу Улыбка лучше разберись Улыбка))
  

press.PNG ( 54 KB | Загрузки )
press.PNG
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #44 - 26. Ноября 2009 :: 07:48
Печать  
trdm писал(а) 25. Ноября 2009 :: 22:05:
Ну ты монстр
А отредактировать отчет перед печатью или сжать с использованием масштаба или опции по ширине листа твоя супер-отчетная система сможет?  Моя вот может: )))))
а в пдф я легко выгоню Улыбка)))) Не мучай ##пу Улыбка лучше разберись Улыбка))

Так нужны байндинги для питона к твоей компоненте

API - окончательный вариант?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #45 - 26. Ноября 2009 :: 08:20
Печать  
blindvic писал(а) 26. Ноября 2009 :: 07:48:
trdm писал(а) 25. Ноября 2009 :: 22:05:
Ну ты монстр
А отредактировать отчет перед печатью или сжать с использованием масштаба или опции по ширине листа твоя супер-отчетная система сможет?  Моя вот может: )))))
а в пдф я легко выгоню Улыбка)))) Не мучай ##пу Улыбка лучше разберись Улыбка))

Так нужны байндинги для питона к твоей компоненте

API - окончательный вариант?

Что значит "окончательный вариант"? Я планирую его развивать.
>>Так нужны байндинги для питона
ие.. не, пусть лучше и дальше с пдф ковыряется....
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #46 - 26. Ноября 2009 :: 08:32
Печать  
trdm писал(а) 26. Ноября 2009 :: 08:20:
Что значит "окончательный вариант"? Я планирую его развивать.

Ну, я имел в виду - не намечается значительных измнений в уже существующих способах обращения к функциям компоненты?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #47 - 26. Ноября 2009 :: 17:23
Печать  
trdm писал(а) 25. Ноября 2009 :: 22:05:
Ну ты монстр
А отредактировать отчет перед печатью или сжать с использованием масштаба или опции по ширине листа твоя супер-отчетная система сможет?  Моя вот может: )))))


для редактирования как раз и будет формат RTF
сжатие/масштабирование - как раз это и не нужно

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

в твоей системе привязки к БД нет
макета тоже не заметил Улыбка
(может плохо смотрел)

т.е. таблица (типа Excel)
а одной таблицей сложный макет не опишешь...

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

остальное все как обычно
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #48 - 26. Ноября 2009 :: 19:25
Печать  
villager писал(а) 26. Ноября 2009 :: 17:23:
для редактирования как раз и будет формат RTF
сжатие/масштабирование - как раз это и не нужно

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

в твоей системе привязки к БД нет
макета тоже не заметил Улыбка
(может плохо смотрел)

т.е. таблица (типа Excel)
а одной таблицей сложный макет не опишешь...

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

остальное все как обычно

Улыбка нас рассудит рынок и аудитория Улыбка посмотрим
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #49 - 27. Ноября 2009 :: 19:04
Печать  
trdm,
если волнует рынок и аудитория - держи совет:
сделай нормальную печать для html-таблиц - с разбиением на страницы по вертикали и горизонтали, с хедерами, футерами, с точными размерами и масштабированием. У  тебя уже почти все готово, надо только html прочитать,

куча народа будет благодарна

а то  отчеты в html строить легко, а печатать нечем Печаль

зы: была бы такая штука, я бы тут и не появился Улыбка
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #50 - 27. Ноября 2009 :: 20:27
Печать  
villager писал(а) 27. Ноября 2009 :: 19:04:
trdm,
если волнует рынок и аудитория - держи совет:
сделай нормальную печать для html-таблиц - с разбиением на страницы по вертикали и горизонтали, с хедерами, футерами, с точными размерами и масштабированием. У  тебя уже почти все готово, надо только html прочитать,
куча народа будет благодарна
а то  отчеты в html строить легко, а печатать нечем Печаль
зы: была бы такая штука, я бы тут и не появился Улыбка

Куда выслать счет, что-бы отблагодарили авансом?
Я на "дядю" только по предоплате работаю..
« Последняя редакция: 27. Ноября 2009 :: 23:56 - trdm »  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #51 - 09. Декабря 2009 :: 22:44
Печать  
не прошло и 3 недель - приручен формат RTF!!!
на пути к RTF были проверены и отброшены варианты ODF, HTML(Word)
ODT - один и тоже файл по разному выглядят в разных редакторах
HTML - нельзя задать точно высоту строки
RTF одинаково выглядит в OO и Word (2003, 2007)
только в OO страничка на 0,1 см короче, и футер на следующую переносится
надо будет запас делать



в начале очень выручила статья http://www.devx.com/asp/Article/17964/1954

потом просто сохранял файл из Worda, и смотрел как и что

в крайних случаях смотрел Rich Text Format (RTF) Specification Version 1.7

теперь можно заняться построением демки и шлифовкой

сделаю складской учет...
  

zzr.rtf ( 185 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #52 - 10. Декабря 2009 :: 07:45
Печать  
Титан Улыбка
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #53 - 06. Января 2010 :: 23:04
Печать  
Вот, над чем работал:
http://www.youtube.com/watch?v=jk7p_m1ZXY4

Чтобы запустить систему на винде (прикрепленная версия тестировалась только на винде), надо установить
python-2.6.4.msi (http://www.python.org/download/)
PyQt-Py2.6-gpl-4.7-rc2-1.exe (http://www.riverbankcomputing.co.uk/software/pyqt/download)
  

m-py.7z ( 26 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #54 - 07. Января 2010 :: 09:49
Печать  
blindvic писал(а) 06. Января 2010 :: 23:04:
Вот, над чем работал:
http://www.youtube.com/watch?v=jk7p_m1ZXY4

У меня огнелис почему-то не открывает такие ссылки,
а вот такие: http://www.youtube.com/v/jk7p_m1ZXY4
можно смотреть.
ПС. Шас посмотрю Улыбка интересно Улыбка
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #55 - 07. Января 2010 :: 12:52
Печать  
blindvic писал(а) 06. Января 2010 :: 23:04:
Вот, над чем работал:
http://www.youtube.com/watch?v=jk7p_m1ZXY4

Посмотрел видео, прикольно.
ОФФ Вопросы:
1. в какой среде работаешь, создаешь, отлаживаешь? какой редактор и т.д.?
2. увидел 2 формы, одновременно работающие в одном приложении. Это псевдопараллельность или вполне реальная?
ну т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #56 - 07. Января 2010 :: 13:52
Печать  
artbear писал(а) 07. Января 2010 :: 12:52:
1. в какой среде работаешь, создаешь, отлаживаешь? какой редактор и т.д.?
2. увидел 2 формы, одновременно работающие в одном приложении. Это псевдопараллельность или вполне реальная?
ну т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом?

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

>т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом
все автоматом. каждая форма ссылается на ее модуль. Модули - на языке Питон и работают в том же контексте что и оболочка (т.е. система). Это имеет и плюсы и минусы. Ну, над минусами можно поработать. Плюсы: Система работает вместе с пользовательскими модулями в одном потоке и контексте, на одном языке, под одной технологией - виджеты, модули, события. Т.е. из любого модуля можно обратится любой части системы - меню, главному окну, и т.д.
Код
Выбрать все
class Liss ( QWidget ) :
    def __init__ ( self, parent = None ) :
        QWidget.__init__ ( self, parent )

        self.timer = QTimer ()
        self.timer.timeout.connect ( self.NextStep )
        ...

    def start ( self ) :
        self.timer.start ( 40 )

    def stop ( self ) :
        self.timer.stop ()
 


Qt имеет таймеры, которые можно вешать на любую процедуру Питона. Каждый модуль создает свой таймер, который периодически вызывает процедуру отрисовки.

Питон поддерживает классы, множественное наследование, полиморфизм. Но все методы классов - виртуальные.
Цитата:
Любой метод можно переопределить, то есть повторно реализовать в подклассе, как в языке Java (за исключением методов со спецификатором final).
В терминологии языка C++ все методы классов в языке Python являются виртуальными.

Программирование на Python 3. Марк Саммерфилд.

Боюсь, что ничего особенного кроме простоты реализации в том, что я выложил, нет.

Я использую редактор Eric4, тоже написанный на Питон и Кьют.
http://eric-ide.python-projects.org/eric4-download.html
Установку (install.py) запустить после установки Python & PyQt4.
В принципе, ничто не мешает программировать хоть в блокноте.
На будущее, можно выбрать из него код и вставить в конфигуратор, к-й надо еще сделать.

Структура системы похоже на 1С. И питон во многом похож на встроенный язык 1С - динамические типы.

Теперь надо делать объекты (Метаданные, Справочник, Документ, ...). Пока что есть только несколько:
m_ - библиотека функций для пользовательских модулей (пока что там только аналог ОткрытьФорму())
Gm - глобальный модуль
m_.Message_Window - окно вывода сообщений ( с поддержкой HTML)
Благодаря стандартной библиотеке питона есть доступ к огромному количеству фич (сеть, сериализация данных, работа с архивами, юникод, работа с большими таблицами).
Там кстати есть модуль Decimal
Цитата:
Язык Python предоставляет три типа значений с плавающей точкой:  встроенные типы float и complex и тип decimal. Decimal в стандартной библиотеке. Все три типа данных относятся к категории неизменяемых. Тип float представляет числа с плавающей точкой двойной точности, диапазон значений которых зависит от компилятора языка С (или С# или Java), применявшегося для компиляции интерпретатора Python. Числа этого типа имеют ограниченную точность и не могут надежно сравниваться на равенство значений. Числа типа float  записываются с десятичной точкой или в экспоненциальной форме записи,
например, 0.0, 4., 5.7, -2.5, -2е9, 8.9е-4.
В машинном представлении числа с плавающей точкой хранятся как двоичные числа. Это означает, что одни дробные значения могут быть представлены точно (такие как 0.5), а другие - только приблизительно
(такие как 0.1 и 0.2). Кроме того, для представления используется фиксированное число битов, поэтому существует ограничение на  количество цифр в представлении таких чисел. Ниже приводится поясняющий пример, полученный в IDLE:
>» 0.0, 5.4, -2.5, 8.9е-4
(0.0, 5.4000000000000004, -2.5, 0.00088999999999999995)
Проблема потери точности - это не проблема, свойственная только языку Python; все языки программирования обнаруживают проблему с точным представлением чисел с плавающей точкой.
Если вам действительно необходимо обеспечить высокую точность, можно использовать числа типа decimal. Decimal. Эти числа  обеспечивают уровень точности, который вы укажете (по умолчанию 28 знаков после запятой), и могут точно представлять периодические числа,  такие как 0.11, но скорость работы с такими числами существенно ниже, чем с обычными числами типа float. Вследствие высокой точности числа типа decimal.Decimal прекрасно подходят для производства  финансовых вычислений.

Этот вопрос важен, чтобы иметь точность вычислений (http://ananas.su/forum/viewtopic.php?f=9&t=158). Наверное придется использовать Decimal  для этого. Хотелось бы услышать мнение других.
« Последняя редакция: 07. Января 2010 :: 18:33 - blindvic »  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #57 - 07. Января 2010 :: 13:56
Печать  
blindvic писал(а) 07. Января 2010 :: 13:52:
Этот вопрос важен, чтобы иметь точность вычислений (http://ananas.su/forum/viewtopic.php?f=9&t=158). Наверное придется использовать Decimal  для этого. Хотелось бы услышать мнение других.

Вопрос ОЧЕНЬ важный.
Decimal уже использовался в qt1L. И правильно использовался Улыбка жаль, что до финиша не добежали Улыбка
В этом вопросе поддержу тебя обеими руками, хоть я и против PyQt - большие зависимости и галимый по моему мнению синтаксис...
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #58 - 07. Января 2010 :: 13:57
Печать  
Вместе с ПайКьют устанавливается дизайнер и документация к Кьют - очень качественная.
Да и к Питону много документации и книг.
  

qt-assistant.PNG ( 61 KB | Загрузки )
qt-assistant.PNG
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #59 - 07. Января 2010 :: 14:04
Печать  
trdm писал(а) 07. Января 2010 :: 13:56:
...хоть я и против PyQt - ... и галимый по моему мнению синтаксис...

Цитата:
Язык Python является, пожалуй, самым простым в изучении и самым приятным в использовании из языков программирования, получивших широкое распространение. Программный код на языке Python легко читать и писать, и, будучи лаконичным, он не выглядит  загадочным. Python - очень выразительный язык, позволяющий уместить приложение в меньшее количество строк, чем на это потребовалось бы в других языках, таких как C++ или Java.

Цитата:
Unlike most other programming languages, Python uses indentation to signify its block structure.Some programmers don’t like this, at least at first, and some get quite emotional about the issue. But it takes just a few days to get used to, and after a few months, brace-free code seems much nicer and less cluttered to read than code that uses braces.


Как бы то ни было, на вкус и на цвет - товарищей нет.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #60 - 07. Января 2010 :: 14:11
Печать  
Меня в питоне больше всего прельщает - то, что это интерпретатор. Не надо заморачиваться на компиляции, да и сам язык мне нравится.

Скорее всего тебе он так никогда и не понравится. Мне кажется ты из тех людей, кто, однажды создав мнение или вкус, редко отступается от него.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #61 - 07. Января 2010 :: 14:45
Печать  
blindvic писал(а) 07. Января 2010 :: 14:04:
Цитата:
Язык Python является, пожалуй, самым простым в изучении и самым приятным в использовании из языков программирования, получивших широкое распространение.

чушь Улыбка самый простой в изучении это бейсик.
Что бы там не задвигали питоноиды, но это так. 1С тому доказательство: русифицированный бейсик изучается как 2 пальца об асфальт..
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #62 - 07. Января 2010 :: 18:11
Печать  
Кстати в питон встроены юнит-тесты (http://docs.python.org/library/unittest.html)
ЗЫ Правда, я не разбираюсь в этом, но видел, что в 1С++ используется.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #63 - 07. Января 2010 :: 18:15
Печать  
trdm писал(а) 07. Января 2010 :: 13:56:
blindvic писал(а) 07. Января 2010 :: 13:52:
Этот вопрос важен, чтобы иметь точность вычислений (http://ananas.su/forum/viewtopic.php?f=9&t=158). Наверное придется использовать Decimal  для этого. Хотелось бы услышать мнение других.

Вопрос ОЧЕНЬ важный.
Decimal уже использовался в qt1L. И правильно использовался Улыбка
...

А как он там использовался? В тексте модуля надо явно указывать что, допустим, a = Decimal ( '1.1' ) ?
Или по-другому?
Что известно по поводу имплементации этой точности в 1С? Как они это сделали?

А в Ананасе? Смотрел исходники модулей на Javascript - пишут a = ParseToFloat ( '1.1' ) - у них нет проблем с точностью?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #64 - 07. Января 2010 :: 18:21
Печать  
случайно наткнулся на программу типа EXCEL http://www.resolversystems.com/download/ на питоне
без наворотов, но из особенностей - возможность отображать содержимое таблицы в виде программы на питоне
можно дописывать свои функции, классы и использовать их в формулах
можно даже в ячейку записать экземляр класса и потом в формулах писать типа =А2.метод_класса()
можно программно заполнять ячейки

есть печать, но без предварительного просмотра

если попросить, дают исходники

наверное, хороша для научных расчетов
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #65 - 08. Января 2010 :: 07:51
Печать  
artbear писал(а) 07. Января 2010 :: 12:52:
...
2. увидел 2 формы, одновременно работающие в одном приложении. Это псевдопараллельность или вполне реальная?
ну т.е. ты в этих формах никакой код по параллельной работе не писал, все автоматом?
...

До меня только сейчас дошло, что ты имел в виду.
Ответ, еще раз повторюсь, - это не параллельность. Модули и и подокна - одно приложение, отрисовка идет по таймеру.
Что касается параллельности, в питоне есть встроенная библиотека thread и threading: http://docs.python.org/library/threading.html
Правда, я в этом не чего не смыслю.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #66 - 08. Января 2010 :: 15:46
Печать  
villager писал(а) 07. Января 2010 :: 18:21:
случайно наткнулся на программу типа EXCEL http://www.resolversystems.com/download/ на питоне
без наворотов, но из особенностей - возможность отображать содержимое таблицы в виде программы на питоне
можно дописывать свои функции, классы и использовать их в формулах
можно даже в ячейку записать экземляр класса и потом в формулах писать типа =А2.метод_класса()
можно программно заполнять ячейки

есть печать, но без предварительного просмотра

если попросить, дают исходники

наверное, хороша для научных расчетов

Скачал. Она на IronPython & .NET написана - не думаю, что адаптация с стандратному питону будет легкой. Она условно-бесплатная - как же тебе исходники дадут? А если и дадут - то на каких условиях?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #67 - 08. Января 2010 :: 19:41
Печать  
blindvic писал(а) 08. Января 2010 :: 15:46:
Скачал. Она на IronPython & .NET написана - не думаю, что адаптация с стандратному питону будет легкой. Она условно-бесплатная - как же тебе исходники дадут? А если и дадут - то на каких условиях?


где-то у них написано, что уважают опенсорс, и т.д., и могут выслать исходники, но не последней версии

да мне и не надо - просто хорошая идея и хороший пример интеграции языка в программу
ну и язык можно легко попробовать

похожее можно быстро накидать на базе QTableView, если понадобится (правда QTableView пока не умеет ячейки объединять)
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #68 - 11. Января 2010 :: 09:17
Печать  
blindvic писал(а) 07. Января 2010 :: 18:15:
trdm писал(а) 07. Января 2010 :: 13:56:
blindvic писал(а) 07. Января 2010 :: 13:52:
Этот вопрос важен, чтобы иметь точность вычислений (http://ananas.su/forum/viewtopic.php?f=9&t=158). Наверное придется использовать Decimal  для этого. Хотелось бы услышать мнение других.

Вопрос ОЧЕНЬ важный.
Decimal уже использовался в qt1L. И правильно использовался Улыбка
...

А как он там использовался? В тексте модуля надо явно указывать что, допустим, a = Decimal ( '1.1' ) ?
Или по-другому?
Что известно по поводу имплементации этой точности в 1С? Как они это сделали?

А в Ананасе? Смотрел исходники модулей на Javascript - пишут a = ParseToFloat ( '1.1' ) - у них нет проблем с точностью?

А какие комментарии по этому поводу?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #69 - 11. Января 2010 :: 10:21
Печать  
blindvic писал(а) 11. Января 2010 :: 09:17:
А какие комментарии по этому поводу?
Может спросить у Ананасоведов? ибо я не пользуюсь.
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #70 - 24. Января 2010 :: 21:28
Печать  
сделал небольшой примерчик учета ТМЦ
можно найти здесь http://www.penta.by/penta_sklad.html
« Последняя редакция: 24. Января 2010 :: 23:12 - villager »  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #71 - 24. Января 2010 :: 22:27
Печать  
villager писал(а) 24. Января 2010 :: 21:28:
сделал небольшой примерчик учета ТМЦ
можно найти здесь http://www.penta.by/

Лучше прямую ссылку.
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #72 - 02. Февраля 2010 :: 10:12
Печать  
выложил ролик - создание системы на 3 таблицы
http://www.penta.by/downloads/demo1.swf
ни одной строки дополнительного кода Подмигивание
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #73 - 02. Февраля 2010 :: 10:29
Печать  
Прикольно!
Можно поздравить с изобретением АксессаУлыбка))
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #74 - 10. Февраля 2010 :: 20:24
Печать  
Начал изобретать Улыбка дизайнер отчетов
  

zzrd.jpg ( 92 KB | Загрузки )
zzrd.jpg
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #75 - 11. Февраля 2010 :: 08:36
Печать  
С нуля?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #76 - 11. Февраля 2010 :: 16:02
Печать  
можно и так сказать
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #77 - 11. Февраля 2010 :: 17:54
Печать  
villager писал(а) 11. Февраля 2010 :: 16:02:
можно и так сказать

Велосипедостроение процветает? Улыбка шучу Улыбка
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #78 - 11. Февраля 2010 :: 19:14
Печать  
На Qt? Интересно посмотреть исходники.
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #79 - 11. Февраля 2010 :: 19:39
Печать  
там такая каша Улыбка вот наведу порядок ...
и ничего оригинального, QScrollArea, в ней QGridLayout, в нем QTableWidget(ы), в ячейках QLabel
все параметры отображения ячеек уже храняться в виде CSS и применяются к QLabel без изменения (setStyleSheet), кроме text-align (QT не поддерживает его для QLabel)

Улыбка Сейчас острый приступ лени, как пройдет буду дрессировать drag-and-drop, меню по правой клавише мышки (пока не умею)

  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #80 - 11. Февраля 2010 :: 20:37
Печать  
villager писал(а) 11. Февраля 2010 :: 19:39:
Улыбка Сейчас острый приступ лени, как пройдет буду дрессировать drag-and-drop, меню по правой клавише мышки (пока не умею)
Посмотри мой отчетник. Там меню по правой клавише..
ТОлько драг-дропа нету - лениво Улыбка
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #81 - 12. Февраля 2010 :: 07:50
Печать  
А как с печатью, точными размерами при печати?
Какова скорость при больших таблицах?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #82 - 12. Февраля 2010 :: 17:35
Печать  
точность есть
напомню, что печатаю не напрямую, а делаю файлы PDF/RTF - а там с этим все  ОК
но потом можно сделать непосредственную печать на QPrinter

до тестирования больших таблиц дело не дошло, но по крайней мере за RTF я спокоен- там все мое и тормозить нечему

собираюсь сделать такой тест - забить QScrollArea в QVBoxLayout c огромным кол-вом QTableView разных размерностей - интересно на каком объеме загнется.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #83 - 12. Февраля 2010 :: 21:21
Печать  
blindvic писал(а) 12. Февраля 2010 :: 07:50:
Какова скорость при больших таблицах?

Я имею в виду не скорость печати, а заполнение, объем памяти, скроллинг.
Есть/будет возможность объединять ячейки?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #84 - 13. Февраля 2010 :: 16:57
Печать  
объединение ячеек уже есть в qt
для нужд дизайнера отчетов всего хватает - памяти и скроллинга

вообще до 100 QTableWidget-ов - без проблем

вот тест

Код
Выбрать все
# -*- coding: utf-8 -*-
import os
import time
import random
from copy import copy,  deepcopy
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtXml import *
import re
import sys

class zzPage(QFrame):
    def __init__(self, pageWidth=210,pageHeight=297 ):
        QFrame.__init__(self)
        self.setLayout(zzVL())
        self.pageWidth=pageWidth
        self.layout().setMargin(3)
        self.pageHeight=pageHeight
        self.setLineWidth(1)
        self.setFrameShape(QFrame.Box)
class zzHL(QHBoxLayout):
    def __init__(self):
        QHBoxLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzVL(QVBoxLayout):
    def __init__(self):
        QVBoxLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzFL(QFormLayout):
    def __init__(self):
        QFormLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzGL(QGridLayout):
    def __init__(self, row, col):
        QGridLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)


class zzReportDesigner(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        
        self.aspect=3
        self.widthRowHeightGrid=30
        self.widthGridControl=100
        self.heightColWidhtGrid=20

        self.currentSectionControlPanel=None
        self.currentSection=None
        self.currentRow=None
        self.currentCol=None

        self.currentCellStyle="""background-color: #DDDDFF ; border:solid blue;border-width:1;selection-background-color: lightblue; selection-color: white"""
        self.defaultCellStyle="""background-color: #FFFFFF ; border:solid blue;border-width:1;selection-background-color: lightblue; selection-color: white"""

        self.defaultSectionControlPanelStyle="""background-color: #e4e9d8 ;border:solid black 1px;border-width:1 1 0 1;"""
        layout = zzHL()
        self.setLayout(layout)
        self.page=zzPage()
        self.pageScroll=QScrollArea()
        self.pageScroll.setLayout(zzVL())
        self.pageScroll
        layout.addWidget(self.pageScroll)
        self.propertiesFrame=QFrame()
        self.propertiesFrame.setMaximumWidth(200)
        self.propertiesFrame.setLayout(zzFL())

        self.rightFrame=QFrame()
        self.rightFrame.setLayout(zzVL())

        layout.addWidget(self.rightFrame)
        self.rightFrame.layout().addWidget(self.propertiesFrame)
        self.propertiesFrame.layout().setMargin(3)
        self.propertiesFrame.layout().setSpacing(3)
        self.propertiesFrame.layout().setLabelAlignment(Qt.AlignRight)

        self.propertiesFrame.fontFamily=QFontComboBox()
        self.propertiesFrame.layout().addRow("font-family", self.propertiesFrame.fontFamily)

        self.propertiesFrame.fontSize=QSpinBox()
        self.propertiesFrame.layout().addRow("font-size", self.propertiesFrame.fontSize)

        self.propertiesFrame.textAlign=QComboBox()
        self.propertiesFrame.textAlign.addItems(["left", "center", "justify", "right"])
        self.propertiesFrame.layout().addRow("text-align", self.propertiesFrame.textAlign)

        self.propertiesFrame.borderTopWidth=QSpinBox()
        self.propertiesFrame.borderRightWidth=QSpinBox()
        self.propertiesFrame.borderBottomWidth=QSpinBox()
        self.propertiesFrame.borderLeftWidth=QSpinBox()

        self.propertiesFrame.layout().addRow("border-top-width", self.propertiesFrame.borderTopWidth)
        self.propertiesFrame.layout().addRow("border-right-width", self.propertiesFrame.borderRightWidth)
       .borderBottomWidth)
        self.propertiesFrame.layout().addRow("border-left-width", self.propertiesFrame.borderLeftWidth)

        self.commandFrame=QFrame()
        self.rightFrame.layout().addWidget(self.commandFrame)
        self.commandFrame.setLayout(zzVL())
        self.commandFrame.previewButton=QPushButton (u"Просмотр")
        self.commandFrame.layout().addWidget(self.commandFrame.previewButton)
        self.commandFrame.layout().addStretch()
        
        self.pageScroll.setWidget(self.page)
        self.sections=[]
        d=time.time()
        for x in range(0, 100):
            self.page.layout().addWidget(QTableWidget(10, 10))
        print d-time.time()
        self.page.setFixedWidth(500)
        self.page.adjustSize()
        self.page.setStyleSheet(" border:solid blue;border-width:1")
        print d-time.time()
        


if __name__ == "__main__":
    app = QApplication(sys.argv)
    d=time.time()
    dd=zzReportDesigner()
    dd.show()
    print d-time.time()
    sys.exit(app.exec_())


 

  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #85 - 27. Февраля 2010 :: 20:03
Печать  
Процесс идет...
  

zzReport.png ( 42 KB | Загрузки )
zzReport.png
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #86 - 02. Марта 2010 :: 17:03
Печать  
Первый раз воспользовался дизайнером - понадобилась форма в RTF.
вот мегаскриншот Улыбка
  

zzReport2.png ( 245 KB | Загрузки )
zzReport2.png
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #87 - 03. Марта 2010 :: 07:45
Печать  
интересно Очень довольный
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #88 - 02. Сентября 2010 :: 07:20
Печать  
Давненько тут никого не было Улыбка... лето...
у меня наконец собрались все куски :
смотреть и пробовать здесь http://www.penta.by/penta_sklad_2.html

в течении месяца буду запускать простенький пробный проект
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #89 - 24. Сентября 2010 :: 20:07
Печать  
внедреж пошел Улыбка
сразу два мелких однопользовательских  (SQLite) проектика:

1)выписка документов на СТО автомобилей (5 справочников, 1 документ с тремя детальными таблицами, несколько отчетов)
2)выписка доверенностей в бухгалтерии (6 справочников, 1 док с одной детальной частью)

недоделки сразу поперлиУлыбка, но работает
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #90 - 26. Сентября 2010 :: 18:34
Печать  
villager писал(а) 24. Сентября 2010 :: 20:07:
внедреж пошел Улыбка

Поздравляю. Как клиенты тебя нашли? Или ты клиентов?
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #91 - 27. Сентября 2010 :: 07:18
Печать  
клиенты старые (б/у >10 лет Улыбка)
пока без денег
в планах -
тест перенос конфигурации и данных с SQLite на SQL сервер
тест на таблицах с миллионами записей

а потом можно и деньги просить Улыбка
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #92 - 15. Октября 2010 :: 18:49
Печать  
Пробная эксплуатация прошла успешно.

Выдрессировал перенос таблиц между БД (ODBC MySQl Postgre Sqlite - в любом сочетании)
правда не слишком быстро - 6млн строк из DBF в MySql копировалось более 4 часов
Появится время  - слеплю чтото вроде БД-коммандера Улыбка


Сейчас назвал все это дело платформой.
Можно скачать здесь: http://www.penta.by/penta_pump.html
После запуска можно скачать и запустить пару (покаУлыбка) демо-программ

в планах - многопользовательская работа - транзакции, права доступа, логи
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #93 - 05. Января 2011 :: 17:00
Печать  
в своей системе Пента, как ты работаешь с числами? для расчетов используешь Decimal? а в БД как их хранишь? как строку?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #94 - 06. Января 2011 :: 07:57
Печать  
Decimal
сделал функцию num(), и ее использую везде, где нужна арифметика

в базе храню как decimal или numeric
но в SQLite, например, типов нет - поэтому бывают некоторые проблемы

ps:
сделал уже разграничение прав доступа, логи, правда на сайте еще не выкладывал
сейчас делаю безразмерные отчеты (cross-tab report)
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #95 - 07. Января 2011 :: 10:36
Печать  
villager писал(а) 06. Января 2011 :: 07:57:
в базе храню как decimal или numeric
но в SQLite, например, типов нет - поэтому бывают некоторые проблемы

в sqlite хранишь как строку?
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #96 - 07. Января 2011 :: 10:39
Печать  
villager писал(а) 06. Января 2011 :: 07:57:
Decimal
сделал функцию num(), и ее использую везде, где нужна арифметика

кстати, в курсе про cdecimal?

при запуске системы я делаю:
Код
Выбрать все
# monkeypatch: use cdecimal if present instead of decimal = it is much faster
try: sys.modules['decimal'] = __import__('cdecimal') # http://www.bytereef.org/libmpdec-download.html
except ImportError: pass 


  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #97 - 07. Января 2011 :: 13:26
Печать  
blindvic писал(а) 07. Января 2011 :: 10:36:
в sqlite хранишь как строку?

получается что да
хотя при создании таблиц указываю типы полей
я стараюсь сделать под любую БД (из mysql, postgre,sqlite)
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #98 - 14. Января 2011 :: 10:58
Печать  
villager писал(а) 06. Января 2011 :: 07:57:
сейчас делаю безразмерные отчеты (cross-tab report)

Улыбка в процессе тестирования получился PDF шириной 140 дюймов =3,55метра Улыбка
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #99 - 16. Января 2011 :: 14:52
Печать  
ну вот почти готов cross-tab report
не знаю, как будет со скоростью обработки данных...
но делать такой отчет просто:
заголовок с group by по строкам
два столбца с group by по столбцам
время генерации PDF страницы (24см*40см) - 1 секунда
  

withoutsizereport.PDF ( 75 KB | Загрузки )
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #100 - 05. Февраля 2011 :: 09:11
Печать  
Решил попробовать программу "Пента", после создания первого экрана и двух-трех полей, когда пытаюсь сохранить изменения в БД (SQLite) - прогрессбар стоит на отметке 0% и не двигается. Закрыв открытые экраны (крестиком в верхнем правом углу) и выйдя из программы - в логе пишет такую ошибку:
Цитата:
Traceback (most recent call last):
  File "penta.py", line 838, in update_to_db
  File "pentadb.pyc", line 908, in checkAutoTable
  File "pentadb.pyc", line 375, in __getattr__
  File "pentadb.pyc", line 336, in getAttr
KeyError: 'FIELD_INDEX'
  
Наверх
ICQ  
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #101 - 06. Февраля 2011 :: 09:25
Печать  
Печаль
так и есть
было изменение структуры, и остался хвост
опять увлекся отчетами и забросил обновление на сайте
и сейчас все развалено и обновить не смогу быстро

могу посоветовать загрузить одну из демо-программ,
там все работает, и свои таблицы будет можно создавать
  

___3.swf ( 894 KB | Загрузки )
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #102 - 18. Февраля 2011 :: 16:23
Печать  
промежуточный финиш:
есть обычные отчеты
есть динамически генерируемые табличные(crosstab) отчеты - пока назвал просто: Таблицы
сделал просмотрщик отчетов с фиксацией заголовков-итогов

в итоге реализованы:
гуи
работа с БД
программные модули
отчеты
права доступа
протоколирование работы

обновил все на сайте
те кто уже ранее скачивал - нужно обновиться:

рекомендую загрузить складской учет - там есть все виды отчетов и при первом старте можно заполнить БД тестовыми данными

PS:
всего каких-то 2 года...

осталось протестировать на больших объемах
добавить красивости и удобств
оптимизировать и переписать все заново Улыбка

но первые 300 баксов уже заработаны Улыбка
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #103 - 18. Февраля 2011 :: 17:37
Печать  
браво! поздравляю
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #104 - 24. Февраля 2011 :: 22:51
Печать  
villager писал(а) 18. Февраля 2011 :: 16:23:
оптимизировать и переписать все заново Улыбка

Мне нравятся люди с чувством юмора Улыбка
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #105 - 22. Марта 2011 :: 23:27
Печать  
шоу продолжается
начал делать очередной тестовый проект
оказалось, что нужна пустая дата
стандартный QDateEdit не удалось заставить вести себя прилично, пришлось писать свой
результат прилагается
  

zzDateEdit.rar ( 2 KB | Загрузки )
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #106 - 12. Апреля 2011 :: 19:19
Печать  
продолжается ловля блох...оптимизация

еще научил отчеты в Excel выгружаться

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

есть еще проблема с терминологией:

есть "платформа" - exe-файл и библиотеки
есть "конфигурация" - хранится в БД

к слову платформа претензий нет, а вот конфигурация - не нравится (т.к. у 1це -конфигурация)
чем бы его заменить?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #107 - 22. Августа 2011 :: 08:54
Печать  
однако тихо тут летом Улыбка

за прошедшие полгода успешно внедрилось 3 системки
одна была связана с документооборотом отдела кадров,
что здорово продвинуло функциональность генератора отчетов

например - появилась возможность выполнять вложенные отчеты
возможность использования питоновских функций в выражениях здорово помогает отчеты рисовать

правда пока использую только две БД  - SQLite и MySQL
PostgreSQL слишком требователен к "чистоте" команд SQL и к данным

такие дела
  
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #108 - 10. Марта 2012 :: 11:42
Печать  
villager писал(а) 22. Августа 2011 :: 08:54:
однако тихо тут летом Улыбка

за прошедшие полгода успешно внедрилось 3 системки
одна была связана с документооборотом отдела кадров,
что здорово продвинуло функциональность генератора отчетов

например - появилась возможность выполнять вложенные отчеты
возможность использования питоновских функций в выражениях здорово помогает отчеты рисовать

правда пока использую только две БД  - SQLite и MySQL
PostgreSQL слишком требователен к "чистоте" команд SQL и к данным

такие дела


Молодец! Посмотрел, замечательный проект! Главное не бросать! Все-таки не перевелись еще настоящие романтики!
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #109 - 10. Марта 2012 :: 20:13
Печать  
пришла весна
Цитата:
Молодец! Посмотрел, замечательный проект! Главное не бросать! Все-таки не перевелись еще настоящие романтики!
о! свежий ветер подул Улыбка

прошло еще полгода
написалась и внедрилась (на удивление легко) система учета работы автотранспорта

заканчиваю перенос одного из разделов бухучета (учет ОС) из старой программы (фокспро дбф)
тиражная  штука (около 20 инсталляций)
сейчас как раз тестирую обновление с сайта

дошли руки до хранения и печати изображений - старая идея с печатью отсканированного бланка будет скоро работать

окончательно остановился на MySQL
ну SQLite тоже работает, но это только для демо (есть там проблемы с русским в sql-запросах)


чувствую скоро начну делать web-морду...
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #110 - 12. Марта 2012 :: 11:44
Печать  
Ради интереса, приведите код работы работы с объектами системы.
например что-то вроде модуля формы\обработки проведения.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #111 - 12. Марта 2012 :: 17:42
Печать  
все примитивно

вот например расчет износа по карточкам ОС
вся эта байда вызывается из из меню ДЕЙСТВИЯ грида к карточками
сам грид в том коде присутствует как переменная mem

таблица БД, отображаемая этим гридом, доступна через mem.t
в свою очередь объект таблица имеет:
методы навигации (last, first, next, prev)
объект r для доступа к текущей записи
т.е. строка zzMess(mem.t.r.name) выведет модальное окно с содержимым поля name

кусок в конце организует окно диалога с запросом даты и двумя кнопками
на кнопки прицеплены обработчики
внутри обработчика как раз видно, как можно обратиться к содержимому окна acnt.s.ed
в данном случае получаем текст даты
можно и присвоить acnt.s.ed='2012-01-08'
примерно так же получаем widget со всеми потрохами
acnt.w.ed
например acnt.w.ed.setFocus()

MyApp.myDataBase.setrow записывает запись в таблицу
MyApp.myDataBase знает все о ссылочной целостности и не допустит фигни
кстати, надо вписать обработчик неудачной записи ( MyApp.myDataBase.setrow вернет False)

Код
Выбрать все
def amcnt(mem,acnt):
	def realcnt():
		if int(acnt.s.ed[-2:])!=1:
			zzMess(u"Начисление амортизации производится только <b>первым</b> числом месяца!")
			return
		kuos=MyApp.myDataBase.kuos
		kuos.setFilter(mem.t.filter())
		kuos.refresh()
		pb=zzProgressBar(barText=u"Расчет амортизации",barMax=kuos.rowCount())
		pb.show()
		counted=0
		while not kuos.eof():
			if zzYearM(kuos.r.date_out)>=zzYearM(acnt.s.ed) or kuos.r.date_out=="" or \
					(kuos.r.year_acnt and zzYear(kuos.r.date_out)>zzYear(acnt.s.ed)):#не выбыло еще
				makeAcnt=False
				kuos_a=zzCursor("select * from kuos_a where os=%s order by date" % kuos.r.os)
				kuos_i=zzCursor("select * from kuos_i where os=%s and date<'%s' order by date" % (kuos.r.os,acnt.s.ed))
				kuos_i.last()
				if kuos_a.eof():#объект только что переступил, или это первый расчет
					if zzYearM(kuos.r.date_in)<zzYearM(acnt.s.ed):
						makeAcnt=True
						a_iznos=kuos.r.beg_amrt
						a_cost=kuos.r.beg_cost
				else:
					kuos_a.last()
					if kuos_a.r.date>=acnt.s.ed:#уже есть строки
						pass
					elif (int(zzMonth(acnt.s.ed))+int(zzYear(acnt.s.ed))*12)-  (int(zzMonth(kuos_a.r.date))+int(zzYear(kuos_a.r.date))*12) >1 \
							and not kuos.r.year_acnt:
						zzMess(u"""Нарушена последовательность расчета по карточке №<b>%s</b><br>
										Дата последней операции <b>%s</b><br>
										Расчет будет прерван!!!""" % \
							(kuos.r.os,dtoc(kuos_a.r.date)))
						break
					elif kuos.r.year_acnt and int(zzMonth(acnt.s.ed))!=12:#годовой расчет только в декабре
						pass
					elif (int(zzYear(acnt.s.ed))-int(zzYear(kuos_a.r.date))) >1 \
							and kuos.r.year_acnt and int(zzMonth(acnt.s.ed))==12:#годовой расчет
						zzMess(u"""Нарушена последовательность расчета по карточке №<b>%s</b><br>
										Дата последней операции <b>%s</b><br>
										Расчет будет прерван!!!""" % \
							(kuos.r.os,dtoc(kuos_a.r.date)))
						break
					else:
						makeAcnt=True
						a_iznos=kuos_a.r.amrt_sum
						a_cost=kuos_a.r.cost
				if makeAcnt:#сам расчет
					counted+=1
					if kuos.r.year_acnt:
						srok=int(kuos.r.srok_2012y)
						srok_rl=int(zzYear(acnt.s.ed))-(int(zzYear(kuos.r.date_vv)))
						iznos=round((num(a_cost)-num(a_iznos))/(srok-srok_rl),0)
						pass
					else:
						te_vv))*12+int(zzMonth(kuos.r.date_vv))))-1
						srok=int(kuos.r.srok_2012y)*12+int(kuos.r.srok_2012m)
						if srok-srok_rl>0:
							iznos=round((num(a_cost)-num(a_iznos))/(srok-srok_rl),0)
						else:
							iznos=0
					if num(iznos)!=0:#пробуем применить поправочный коэффициент
						kuos_ga=zzCursor("""select *
													from kuos_ga
													where os=%s and date1<='%s ' and (date2>'%s' or date2<='0000-00-00')
													order by date1""" % (kuos.r.os,acnt.s.ed,acnt.s.ed))
						if not kuos_ga.eof():
							if num(kuos_ga.r.amrt)!=0:
								iznos=kuos_ga.r.amrt
							else:
								iznos=num(round(num(iznos)*num(kuos_ga.r.kof),0))
					MyApp.myDataBase.setrow("kuos_a",\
															{'OS':kuos.r.os,
															'DATE':acnt.s.ed,
															'COST':a_cost,
															'AMRT_SUM':num(a_iznos)+num(iznos),
															'AMRT':num(iznos),
															'AMRT_DB':kuos_i.r.amrt_db,
															'AMRT_CR':kuos_i.r.amrt_cr,
															'RECTYPE':1,
															},append=True)
			kuos.next()
			pb.step()
		pb.close()
		zzMess(u"Расчитано карточек: <b>%s</b>" % counted)
		if counted:
			mem.refresh()
	return realcnt

def dmcnt(mem,acnt):
	def realcnt():
		kuos=MyApp.myDataBase.kuos
		kuos.setFilter(mem.t.filter())
		kuos.refresh()
		pb=zzProgressBar(barText=u"Удаление расчета",barMax=kuos.rowCount())
		pb.show()
		counted=0
		while not kuos.eof():
			pb.step()
			counted+=1
			zzCursor("delete from kuos_a where os=%s and date='%s' and rectype=1" % (kuos.r.os,acnt.s.ed))
			kuos.next()
		pb.close()
		zzMess(u"Обработано карточек: <b>%s</b>" % counted)
		mem.refresh()

	return realcnt

acnt=sc()
acnt.addLine("ed",u"Расчет на дату",type="DATE",value="%s-01" % today()[:7])
acnt.addClose()
acnt.addHorz()
acnt.addLine("<S")
acnt.addLine("go1",u"",pic=u"B Рассчитать",len=15,valid=amcnt(mem,acnt))
acnt.addLine("go1",u"",pic=u"B Удалить расчет",len=15,valid=dmcnt(mem,acnt))
acnt.addLine("<S")
acnt.addClose()
acnt.runForm(u"Расчет амортизации",buttons="!q") 

  

2_1cpp.png ( 54 KB | Загрузки )
2_1cpp.png
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #112 - 12. Марта 2012 :: 18:49
Печать  
Круто, я тоже хочу научиться программировать на Python.
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #113 - 13. Марта 2012 :: 06:33
Печать  
villager
спасибо )
А что мешает сделать класс оболочку для объектов метаданных? думаю такие там есть.

JavaIsJunk писал(а) 12. Марта 2012 :: 18:49:
Круто, я тоже хочу научиться программировать на Python.

Меня смущает зависимость работы скрипта от форматирования.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #114 - 13. Марта 2012 :: 11:19
Печать  
Цитата:
А что мешает сделать класс оболочку для объектов метаданных?

а что это? для чего?


Цитата:
Меня смущает зависимость работы скрипта от форматирования

отступы на любителя конечно
хотя это всего лишь узаконенный правильный стиль писания исходников
  
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #115 - 13. Марта 2012 :: 11:55
Печать  
villager писал(а) 12. Марта 2012 :: 17:42:
все примитивно

вот например расчет износа по карточкам ОС
вся эта байда вызывается из из меню ДЕЙСТВИЯ грида к ............


Связка Python + Qt  это PyQt  или отдельно Python  и отдельно Qt?

И еще вопрос, как печатаются документы, накладные, счета-фактуры? Какой-то свой редактор отчетов или готовый?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #116 - 13. Марта 2012 :: 12:34
Печать  
JavaIsJunk писал(а) 13. Марта 2012 :: 11:55:
Связка Python + Qt  это PyQt  или отдельно Python  и отдельно Qt?

И еще вопрос, как печатаются документы, накладные, счета-фактуры? Какой-то свой редактор отчетов или готовый?

python+PyQt
а фсю тему прочитать?
Улыбка
все свое
  
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #117 - 13. Марта 2012 :: 19:01
Печать  
villager писал(а) 13. Марта 2012 :: 12:34:
python+PyQt
а фсю тему прочитать?
Улыбка



Дык прочитал, но там сложно понять, в первом посте: "сейчас на связке Python + Qt" потом уже совсем трудно понять... ))))

villager писал(а) 13. Марта 2012 :: 12:34:
все свое


Т.е. есть какой-то табличный редактор типа как в 1С ? или скорее как FastReport в делфи?
Хотелось бы увидеть скрины редактора отчетов ))
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #118 - 13. Марта 2012 :: 19:20
Печать  
JavaIsJunk писал(а) 13. Марта 2012 :: 19:01:
Т.е. есть какой-то табличный редактор типа как в 1С ? или скорее как FastReport в делфи?
Хотелось бы увидеть скрины редактора отчетов ))

почти, но есть свои фишки

старые скрины есть на 5-6 стр этой темы
теперь это выглядит так
  

21_cpp.png ( 78 KB | Загрузки )
21_cpp.png
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #119 - 13. Марта 2012 :: 19:43
Печать  
villager писал(а) 13. Марта 2012 :: 19:20:
почти, но есть свои фишки

старые скрины есть на 5-6 стр этой темы
теперь это выглядит так


Круто )) и самое главное вдохновляет начинающих программистов. Можно делать хорошие проги, главное упорство, труд и желание.
  
Наверх
 
IP записан
 
JavaIsJunk
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 10. Марта 2012
Re: на связке Python + Qt пишу для себя чтото...
Ответ #120 - 13. Марта 2012 :: 19:52
Печать  
Как я понимаю, проект который начинался как хобби "для души" постепенно вырос на профессиональный уровень.
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #121 - 14. Марта 2012 :: 07:45
Печать  
Код
Выбрать все
if kuos_a.eof():#объект только что переступил, или это первый расчет
	if zzYearM(kuos.r.date_in)<zzYearM(acnt.s.ed):
		makeAcnt=True
		a_iznos=kuos.r.beg_amrt
		a_cost=kuos.r.beg_cost
 



и

Код
Выбрать все
if kuos_a.eof():#объект только что переступил, или это первый расчет
	if zzYearM(kuos.r.date_in)<zzYearM(acnt.s.ed):
		makeAcnt=True
	a_iznos=kuos.r.beg_amrt
a_cost=kuos.r.beg_cost
 



Насколько знаю Python, приведенные примеры делают разные вещи, во 2 случае присвоение a_iznos происходит в рамках 1 if, a_cost=kuos.r.beg_cost вообще минуя условие. Именно про это и говорил, что форматирование влияет на поведение.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #122 - 14. Марта 2012 :: 10:22
Печать  
про код все верно
но проблем с этим нет

вообще на удивление мало ошибок при наборе программ на питоне

Цитата:
Как я понимаю, проект который начинался как хобби "для души" постепенно вырос на профессиональный уровень.  
Отправил: JavaIsJunk

не совсем
ставилась конкретная задача, похоже что она выполнена
я сейчас уверенно берусь за любую задачу на питоне
пока в основном делаю апгрейд старым клиентам
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #123 - 08. Апреля 2012 :: 13:07
Печать  
Всем привет
начал собирать в кучу всю бухгалтерию
записал пару роликов на реальном примере
бухучет - ведение кассы
в первой части создание таблиц и форм
http://www.penta.by/downloads/cashdemo1_controller.swf
во второй - навешивание кода на событие
http://www.penta.by/downloads/cashdemo2_controller.swf
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #124 - 08. Апреля 2012 :: 21:21
Печать  
продолжение
создание печатной формы (с попутным редактированием структуры БД и экранов)
( Улыбка не для слабонервных  - в режиме реального времени - 27 минут)
http://www.penta.by/downloads/cashdemo3_controller.swf
привязка формы к меню
http://www.penta.by/downloads/cashdemo4_controller.swf
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #125 - 21. Июля 2012 :: 01:16
Печать  
решился вопрос с интерактивностью отчетов
т.е. отчеты остались только в виде печатной формы
а для просмотра информации в разных разрезах появилась витрина
короче по мотивам Qlikview
  

dashboard.PNG ( 63 KB | Загрузки )
dashboard.PNG
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #126 - 19. Октября 2012 :: 07:12
Печать  
освоил наконец кютешную графику
  

gantt.PNG ( 42 KB | Загрузки )
gantt.PNG
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #127 - 19. Октября 2012 :: 07:13
Печать  
и еще
  

dashboard_001.PNG ( 65 KB | Загрузки )
dashboard_001.PNG
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #128 - 19. Октября 2012 :: 18:29
Печать  
villager писал(а) 08. Апреля 2012 :: 21:21:
продолжение
создание печатной формы (с попутным редактированием структуры БД и экранов)
( Улыбка не для слабонервных  - в режиме реального времени - 27 минут)
http://www.penta.by/downloads/cashdemo3_controller.swf
привязка формы к меню
http://www.penta.by/downloads/cashdemo4_controller.swf

Долбатни многовато. А так весьма достойно.
В чем преимущество табличных отчетов, так это в том, что полотно перед тобой, не надо добавлять строки и колонки, они все там есть.

ПС. Копипаста в отчете из отчета не работает?
  
Наверх
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #129 - 20. Октября 2012 :: 07:23
Печать  
trdm писал(а) 19. Октября 2012 :: 18:29:
ПС. Копипаста в отчете из отчета не работает?

как то руки не дошли (за ненадобностью)
сделал сохранение в  файл и добавление из файла, и на этом остановился
лень писать не нужных мне (пока) 20 строк кода
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать