17 февруари 2009

RD Suite през 2008-ма

През изминалата година не излезе версия на RD Suite и може би има някаква чудене какво става с проекта. Мога да успокоя всички заинтересувани, че проектът е все още жив. За справка да погледне svn хранилището. Причината да не излезе версия е свързана с фактът, че кодът, който се наблъска през 2008 година е относно нови модули към програмата, а именно неща свързани с бетонопроизводство и заготовка на арматура, които са доста специфични и не са чак толкова свързани с програмата за счетоводство. Доколкото промените в програмата за счетоводство са малки (основни изчистване на бъгове), а feedback-ът от хората, които са разглеждали програмата клони към двете нули, то някак си нямам стимул да компилирам версии, тъй като поне за мен това е времеемък процес. Който иска да гледа промените, да дърпа от хранилището и да компилира.

Положителното за проекта е, че през 2008 целият код се ползва на две места в production вариант, което от своя страна помогна да се изчистят доста дребни грешки. От гледна точка на нови функционалности няма нещо кой знае колко значително, освен много допълнения по справката по сметка, където вече може да се филтрира по нива на аналитичност и се добавиха колоните свързани с количество и цена на нивата на аналитичност към номенклатурата с артикули. Това от своя страна доведе и до написване на нови функции към потребителските справки, макар и за момента да не са закачени към парсера за формули. Именно този парсер ми спъва добавянето на нови функционалности, тъй като е желателно да го пренапиша. За съжаление това ще ми коства поне седмица в плътни занимания, а за момента не мога да я отделя. Зорът в цялата работа е свързан с интерфейса. Примерно в момента лесно може да се направи потребителска справка, в която разни елементи да са свързани с обороти и салда по сметки. Тънкият момент, е че тези справки ще са по-полезни, ако вместо да се гледа движението по цялата сметка, човек се ограничи до някои нива на аналитичност (ако сметките са такива). Принципно в момента формулата позволява да се прави това, но съществения недостатък е, че потребителят трябва да знае кодовете, с които са записани отделните обекти в базата данни. Това разбира се е доста неудобно и поради тази причина трябва интерфейса да го поеме по някакъв начин. В тази ситуация като се пише формулата, програмата трябва да съобрази от контекста, че трябва да се въвежда код и по триков начин да покаже падащ списък с възможности, във формулата да седи избрания текст, но във вътрешното представяне да стои кода. Всичко това не е чак толкова тривиално като решение. Част от нещата са направени, но с други все още имам чуденка как да ги реализирам. Така че, ако някой има опит с такъв тип задачи, ще ми е интересно да сподели.

Всъщност като се преборя с това нещо, мисля че доста ще дръпна по отношение на потребителските справки и съответно към template-тите ще мога да сложа повечето от стандартните отчети. Това от своя страна ще даде по-голяма завършеност на програмата. Другото нещо, което съм запланувал да направя през тази година е дефинирането на видовете документи със съпътстващите ги счетоводни операции, което ще даде възможност за развиване на функционалностите свързани с автоматично осчетоводяване. Живот и здраве се надявам да успея да реализирам и двете неща. Когато някое от тях стане готово, това ще е повод за официално пускане на версия. Разбира се, освен тези цели, всяка форсмажорна заявка от страна на хората, които в момента използват програмата ще се изпълнява с предимство. За момента има такива индикации, свързани с калкулирането на цените на материалите. Тънкия момент в тази област, че е много важно в каква последователност се осчетоводяват отделните записи. В тази връзка съм измислил един подход за автоматично изменение на цените по осчетоводяване, така че нещата да са консистентни, но тепърва трябва да го обсъдя с познатите си счетоводители, тъй като едва ли някой ще е доволен зад гърба му да се променят счетоводни записвания.

6 коментара:

Svetoslav80 каза...

Здравейте,
Работите ли все още по проекта. Има ли шанс скоро да има модул ДДС Дневници? Също ми е интересно как мога да го компилирам под windows. А освен това имам проблем с компилацията под линукс на последната версия. Тази която е в svn-a. Иначе 3.0 си се компилира. Пиша тук понеже форума не работи.

Поздрави,
Светослав Бацоев

D каза...

Привет,
Не знаех, че форумите не работят. Информирал съм администраторите на openfmi, така че се надявам скоро да се оправи проблемът. Така или иначе освен форум, проекта има и пощенски списъци, където също може да се води дискусия.

Сега по същество. Определено по проектът не са работи достатъчно и има нужда от свежа кръв. Най-вече от хора, които разбират от qt и c++. По отношение на ДДС дневниците, те са някъде по-надолу в списъка ми с приоритети. Може би аз грешно си представям нещата и затова се получава така. В тази връзка ще ми е интересно каква представа имат други хора за функционалността ДДС дневници.

За да коментирам компилацията под linux ми е необходимо да видя каква е грешката и под каква дистрибуция и версия се компилира. Компилацията под windows е малко по тегава. Изисква да има инсталирани header и lib файловете на postgresql (gcc компилатор и qt библиотеката се подразбират), както и да се направят ръчни интервенции project файла за postgresql plugin-а. Освен това се оказа, че с по-новите версии на gcc за windows изникват и някакви грешки с включването на някои header файлове на проекта и "може" да се наложи да се направят още няколко интервенции. Това го установих съвсем случайно пред 3 седмици, като правих компилация и още не съм сложил промените в хранилището.

Поздрави,
Митко

Svetoslav80 каза...

...
obj/fuseradd.o: In function `FUserAdd::btnOKClicked()':
fuseradd.cpp:(.text+0x8a): undefined reference to `WKontEdit::kontId() const'
obj/fdbbase.o: In function `FDbBase::btnOKClicked()':
fdbbase.cpp:(.text+0xaaa): undefined reference to `WKontEdit::kontId() const'
obj/fmoduleadd.o: In function `FModuleAdd::btnOKClicked()':
fmoduleadd.cpp:(.text+0x6a): undefined reference to `WObktEdit::obktId() const'
obj/wtempledit.o: In function `WTemplEdit::value() const':
wtempledit.cpp:(.text+0x745): undefined reference to `WMesrEdit::mesrId() const'
wtempledit.cpp:(.text+0x775): undefined reference to `WMateEdit::mateId() const'
obj/wtempledit.o: In function `WTemplEdit::isInputValid() const':
wtempledit.cpp:(.text+0xa0d): undefined reference to `WMateEdit::mateId() const'
wtempledit.cpp:(.text+0xa55): undefined reference to `WMesrEdit::mesrId() const'
obj/moc_odblistmodel.o:(.rodata._ZTV12ODbListModel[vtable for ODbListModel]+0x158): undefined reference to `ORepTableModel::printHeader(int&, QPainter&, int, int) const'
obj/moc_omodulelistmodel.o:(.rodata._ZTV16OModuleListModel[vtable for OModuleListModel]+0x158): undefined reference to `ORepTableModel::printHeader(int&, QPainter&, int, int) const'
collect2: ld returned 1 exit status
make[2]: *** [../../bin/rdadmin] Error 1
make[2]: Leaving directory `/home/svetoslav/development/rd-suite/trunk/src/admin'
make[1]: *** [sub-admin-make_default-ordered] Error 2
make[1]: Leaving directory `/home/svetoslav/development/rd-suite/trunk/src'
make: *** [sub-src-make_default-ordered] Error 2

Това са грешките които ми дава при компилация на revision 143 под Ubuntu 9.10
Да имаш идея къде може да е проблема ?

D каза...

В rdsuite приложенията share-ват общия код в една библиотека с името librdsuite.so. Тези грешки, които са се изплюли, са свързани с линкването към нея. Най-вероятно имаш инсталирана стара версия на rdsuite и съответно налична стара библиотека в /usr/lib. Поради някакви причини компилаторът се мъчи да линкне програмите към нея, а не към току що компилираната версия. Има два изхода от ситуацията:
1. Изтрий библиотеката от /usr/lib
2. Отиди в src/corelib и там дай sudo make install. След това стартирай отново компилацията.

go_fire каза...

Здравей, тъй като форума на програмата не работи за това тук. Според мен е добре да се направи портативна версия. На практика програмата е точно такава. Липсва само един елемент. Но открих решението:

http://greg.webhop.net/postgresql_portable/dl_postgresqlportable_1_2_0_english_paf_exe.php

Единствено трябва да се добави един аутостарт или направо да се добави в този съюествуващия на Грег. За съжаление не съм работил отдавна под Вин и Дос. Забравил съм как точно се кодираше за batch, а и честно не ща да си припомням. Единствен проблем е, че ако се пусне програмата преди да е заредил сървъра нещо яко се омазва. Иначе работи добре.

D каза...

@go_fire: Наистина не е лошо да има портативна версия. Не знам до колко този подход с postgresql е дуракоустойчив, но нищо не пречи да се ползват embeded sql сървъри. mysql и firebird са добри опции. Просто трябва да се направят няколко xml файла за тях и да се оправят plugin-ните на qt за работа със съответните sql сървъри.