Ta dokumentacja odnosi sie do "nowych" uzytkownikow
z serii v0.8.x
Jesli chcesz uzywac v0.9.x jako nowy uzytkownik instalacja
jest podobna
Jesli natomiast migrujesz z v0.8.x do 0.9.x KONIECZNIE
przeczytaj wszystkie pliki README w pakiecie xdefactor-0.9.x.tar.gz!!!!
Jesli bedziesz mial jakies problemy, czy to z instalacja,
czy tez uzytkowaniem pakietu po prostu wyslij do mnie mail z opisem problemu,
spróbuje pomoc.Moj adres:
<armadillo (at) wp pl >
Charakterystyka ogólna
Program jest napisany całkowicie w języku C. Interfejs stworzony jest
w gtk+. Rolę serwera baz danych pełni serwer PostgreSQL. Główne
okno tworzy notebook z pionowymi zakładkami. Każda zakładka to oddzielny
moduł, np. zakładka fakturowanie oznacza chęc stworzenia i wydrukowania
faktury, zakładka towary pozwala nam na operacje związane z towarami itd.
Nie pozostaje więc nic, jak tylko zainstalować program i sprawdzić, jak
działa faktycznie.
Instalacja i konfiguracja
Instalacja którą opiszę odnosi się do Debiana 2.2, ale z relacji osób korzystających z programu na RedHacie jest podobnie, oczywiście po zrobieniu kilku symlinków. A więc zaczynamy. Najpierw należy nagrać w systemie takie oto pakiety:
- PostgreSQL (wersja najlepiej
7.1.x)
- postgresql-dev
- libgtk1.2,
libgtk1.2-dev
- libglib1.2,
libglib1.2-dev
- apsfilter (do konfiguracji
drukarki)
- a2ps (do
drukowania)
- enscript (opcjonalnie - do
druku logo)
Aby zainstalować serwer PostgreSQL należy:
$ tar zxvf postgresql-7.1.x.tar.gz
$ cd postgresql-7.1.x
$ ./configure --prefix=/usr --with-tcl
--enable-locale
$ make
# make install
Q: Dlaczego akurat ze żródeł, a nie z paczki??
A: Dlatego, że w Debianie stabilna wersja PostgreSQL'a
to 6.5.x, który jest o wiele wolniejszy od wersji 7.x
Pozostałe pakiety instalujemy w sposób następujący:
#apt-get install nazwa_pakietu
Aby faktury drukowane były poprawnie należy do pliku /etc/a2ps-site.cfg dopisać lub zmienić istniejące opcje:
Options:
--encoding=latin2 # zmiana kodowania
znaków na latin2
Options:
--medium=a4 #
zmiana rozmiaru kartki na A4
Options:
--borders=no
# wyłączenie drukowanego z boku każdego wydruku obramowania
Teraz czas na instalację programu XdeFactor.Najświeższa wersja to 0.8.5 .Jest ona stabilna i nie wykryłem w niej żadnego błedu, a należałoby wspomnieć, że cały program działa w dwóch firmach od maja 2001r, i wszystkie znalezione do tej pory błędy zostały juz poprawione!.
$ tar zxvf xdefactor-0.8.5.tar.gz
$ cd xdefactor-0.8.5
$ make
# make install
Program zainstalował w ten sposób następujące pliki i katalogi:
- /usr/local/bin/xdefactor
- /usr/local/bin/logo
- jest to zwykły skrypt w shellu, który za pomocą enscripta
wykonuje na wydrukowanej już fakturze półprzeźroczysty napis np. nazwa
firmy (dla nazwy firmy, gdzie ilość liter wynosi 7 odpowiednia wielkość
czcionki to 160), od wersji v0.8.7 mozliwośc drukowania logo dostępna jest
w zakładce sprzedawca
- /etc/xdefactor
db.conf
- ustawienia dotyczące połaczenia z bazą danych
autor
- autor, nazwa programu i jego wersja - to co wydrukuje
się na końcu każdego dokumentu
sprzedawca.conf
- ustawienia sprzedawcy
archiwum/
- tu składowane są wszystkie drukowane dokumenty
Najepiej sprawdzić, czy tak samo sytuacja wygląda u nas, bo jeśli nie, to radziłbym skopiować powyższe pliki ręcznie.Teraz zostało jeszcze kilka ważnych rzeczy do zrobienia, nie będę pisał jak je wykonać, gdyż mijałoby się to z celem:
-
dodaj użytkownika np. księgowy
-
ustaw id jego grupy na 113
-
ustaw właścicielem katalogu /etc/xdefactor użytkownika np. xdefactor
-
# chmod 700 /etc/xdefactor
-
skopiuj pliki environment do /etc
- wstaw
do pliku /etc/profile: LC_ALL=pl_PL i export pl_PL
(jeżeli jeszcze tego nie zrobiłeś!! )
- ustaw
klawiaturę w /etc/X11/XF86Config na pl
Teraz czas na bazę danych:
-
logujemy się jako administrator serwera PostgreSQL
-
$ cd /usr/src/xdefactor-0.8.5/db
-
$ createdb nazwa_bazy np. xdefactor
-
$ psql xdefactor
- $ \i xdefactor.sql
- $ \dt (sprawdzamy, czy
tabele zostały poprawnie utworzone)
- $ \quit
-
$ postmaster -i -p 5432&
I to juz wszystko, zainstalowaliśmy
cały XdeFactor wraz ze wszystkimi niezbędnymi programami:))
Mój pierwszy raz -- użytkowanie
Program uruchamiamy poleceniem:
$ xdefactor
Po jego wykonaniu na konsoli mozemy spodziewać się jednego z trzech napisów, oto one:
- Twój
identyfikator grupy to .... - nie
zmieniłeś id grupy do której należy użytkownik np. ksiegowy, zrób to poleceniem:
#
groupmod -i 113 nazwa_grupy np. ksiegowy
-
Połączenie z bazą danych nie powiodło się - sprawdź
czy poprawnie wpisałeś dane w /etc/xdefactor/db.conf,
pozwól twojemu hostowi łączyć się z utworzoną wcześniej bazą (odpowiednie
wpis do pliku pg_hba.conf
-
Połączenie z bazą danych powiodło się - nie
musisz nic robić wszystko jest w porządku
Teraz naszym oczom ukazało się główne okno programu z zakładkami ( rysunek
nr 1).Postaram się po krótce omówić każdą z nich(same konkrety):
![]()
Rysunek nr.1 (główne okno programu)
- pierwsza zakładka jest to fakturowanie.
- jeśli mamy zamiar wydrukować pierwszą fakturę
w XdeFactor to musimy w polu numer faktury wpisać jej numer w postaci
nr_faktury/rok
np. 221/01, potem przy drukowaniu następnych faktur
pole tego nie uzupełniamy
- druga zakładka to sprzedawca, od wersji 0.8.7 można z jej poziomu drukować logo, automatyczny wpis w okienku nazwy jest pobierany z pliku konfiguracyjnego sprzedawca.conf - parametr logo
- trzecia zakładka to nabywcy, pola których opis oznaczony został gwiazdką(*) należy koniecznie wypełnić!!
- czwarta zakładka to towary; mamy dwie możliwości wyszukiwania towarów, pierwszy to numer identyfikacyjny, drugi to ciąg znaków zawarty w nazwie szukanego przez nas towaru
- w piątej zakładce ujrzymy nie tylko wszystkie możliwe informacje
o opakowaniach zwrotnych, ale również możliwość wydruku ich obrotu w dowolnym
odstępie czasu, tzn. od zadanego terminu1 do zadanego terminu2
włącznie.
Chcę zrobić moduł
Chcąc napisać jakiś moduł do programu, musimy najpierw stworzyć interfejs do niego. Najprościej zrobić to z użyciem programu Glade(Rysunek nr2), który służy do budowania interfejsów. Przy projektowaniu musimy pamiętać, aby rozłożenie głównych komponentów było stałe z ang.fixed. Teraz należy podać mu nazwę: nazwa_modułu.c i doprowadzić do takiej postaci jak poniżej:
#include ....
....
....
void nazwa_modułu(GtkWidget *window1,
GtkWidget *fixed1)
{
....
....
}
Rysunek nr2 (Główne okno programu Glade)
I mamy gotowy moduł, teraz należy go tylko połączyć z projektem XdeFactor. A więc zaczynamy.Najpierw skopiuj Twój plik, który prawdopodobnie ma postać nazwa_modułu.c do katalogu xdefactor-0.8.5/src. Teraz otwórz plik main.c w swoim ulubionym edytorze np. VIM (ten akurat nie jest konieczny, ale Xdefactor bardzo lubi pliki zmieniane przy jego pomocy :))) ) Dodaj do niego w odpowiednich miejscach następujące linie kodu:
...
...
/* przyjmujemy, że jest to szósty
komponent w systemie */
GtkWidget *fixed6, *label6;
...
...
label6 = gtk_label_new("To
co znajdzie się na zakładce");
...
...
fixed6 = gtk_fixed_new();
nazwa_modułu(window,
fixed6);
...
...
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
fixed6, label6);
gtk_widget_show(fixed6);
gtk_widget_show(label6);
...
...
Teraz zostało nam tylko zmodyfikować
plik Makefile i uruchomić XdeFactor.Otwieramy plik Makefile
i
do OBJECTS dodajemy na końcu postać obiektową naszego pliku
nazwa_modułu.o.
Zostało
nam jeszcze dopisać coś takiego :
...
...
nazwa_modułu.o: $(SOURCE) nazwa_modułu.c
$(COMPILE)
...
...
To już koniec, teraz tylko make i miłej zabawy!!! Prawda, że prosto dodać własny moduł, wystarczy tylko znać C i mieć trochę wolnego czasu, co w moim przypadku jest dość dużym problemem. Aby nasz moduł mógł wspólpracować z innymi oraz z bazą danych, warto opisać kilka plików za co są odpowiedzialne:
- conn_db.c
- połączenie z bazą danych
- fak.c
- zakładka fakturowanie
- drukuj.c
- drukowanie faktury
- main.c
- główny plik, w nim dokładamy moduły
- fix5.h
- odpowiada za poprawne zaokrąglanie liczb
- szukaj.c
- szuka w pliku konfiguracyjnym odpowiedniego wpisu dla szukanej zmiennej
itp. reszta plików, a jest ich
około 35 to części odpowiednich im komponentów.To chyba wszystko co
można powiedzieć o stronie developerskiej programu.Teraz czas na
to co przewiduję na przyszłość.
Co dalej??
W najbliższej przyszłości zamierzam
dodać jeszcze minimum dwa moduły tj. przychody-rozchody oraz drukowanie
przelewów. Program ogólnie rzecz biorąc jest dobrym rozwiązaniem tylko
dla małych firm, ale myślę, że wkrótce ulegnie to zmianie.Przykładowy wydruk
faktury widzimy na Rysunku nr3.
Rysunek nr3 (Przykładowy wygląd faktury)
Jak włączyć się do projektu?
Jeśli jesteś zainteresowany dołączeniem się do projektu, wyślij mail'a na mój adres: armadillo@wp.pl i napisz co potrafisz oraz do czego mógłbyś się przydać.
Źródła:
Program można ściągnąć ze stron: xdefactor.republika.pl
O Autorze:
Michał Ociepka
Autor jest uczniem czwartej klasy LO
w Kłobucku k/Częstochowy . Ma pod opieką trzy serwery Linuksowe,
jego zainteresowania to przede wszystkim programowanie w C, bazy
danych oraz bezpieczeństwo. Kontakt: armadillo@wp.pl