[janosik-devel] Re: leniuszki

Marek Pętlicki marpet at linuxpl.org
Fri Aug 22 15:47:00 CEST 2003


W liście z śro, 02-01-2002, godz. 22:21, Zbigniew Chyla pisze: 

> W czasie obliczania wyrażenia zaimportowane są moduły (tutaj lista modułów),
> dostępne pod ich nazwami, dodatkowo zaś wszystkie moduły dostępne są za
> pośrednictwem obiektu MOD (w lokalnej przestrzeni nazw). Oznacza to
> oczywiście, że pozostałe moduły importowane są "automagicznie". Tak więc
> jeśli wśród domyślnie zaimportowanych modułów nie ma fnmatch, ale my
> koniecznie chcemy użyć funkcji fnmatch, to możemy napisać:
> ... check_expression="MOD.fnmatch.fnmatch(VALUE, '*.doc')" ...

ciągle umyka jedna sprawa: niektóre dokumenty zawierają pola będące
wyliczeniem wartości odpowiednich pól z _innych dokumentów_. Co z tym
robimy? Definicja tego wyliczenia też musi znaleźć się w schemacie. Co
więcej wartość tego wyliczenia musi pojawiać się w formularzu (ja znów o
tym GUI ;) dla kontroli bez możliwości edycji (Pani Józia Od Płac
sprawdza sobie szybciuteńko na takim kalkulatorku z drukareczką, czy
wszystko się zgadza ;-)

Dlatego trzeba też zdefiniować pola wyliczeniowe, być może znów za
pomocą wyrażenia Pythona.

	default_value="MOD.calcu.calculate_it()"

Pola też powinny mieć atrybut:

	read_only="FALSE"

(wartość domyślna tego atrybutu dla wszystkich pól) aby móc zdefiniować
pola tylko do wglądu, żeby Pani Józia nie poprawiała statystyk ;-)

Otwarcie dokumentu danego typu może również spowodować załadowanie
odpowiedniego modułu definiującego funkcje specyficzne dla tego
dokumentu. Dzięki temu możemy ominąć zależność Janosika od konkretnych
typów dokumentów a ludziki będą mogły same definiować sobie nowe
formularze bez ingerowania w kod programu. Co Wy na to?
Wtedy przykładowy wiersz zmieniłby się na:

	default_value="MOD.doc_specific.calculate_it()"

czy cóś ;->

Dodatkowo aby to wszystko działało musimy zdefiniować strukturę p.t.
zestaw dokumentów (jak ma to miejsce w Płatniku). Ta struktura powinna
również rezydować w lokalnej przestrzeni nazw aby funkcje wyliczeniowe
miały łatwy dostęp do innych dokumentów zestawu.

Inna rzecz, że wysyłka danych do ZUS również odbywa się zestawami, więc
istnienie takiego pojęcia w naszym programie wydaje się zasadne.

W tej sytuacji zapewne jednym z argumentów większości funkcji
wyliczeniowych powinien być obiekt zestawu, na którym należy wykonać
wyliczenia (co również umożliwi korzystanie z wielu zestawów dokumentów
jednocześnie):

	default_value="MOD.doc_specific.calculate_it(DOC_SET)"

Sprawa się komplikuje, ponieważ takie zagłebianie (zestawy zestawów,
zestawy zestawów zestawów itp.) może nie mieć końca bo nikt nam nie
zagwarantuje, że nie będzie trzeba sporządzać zestawienia
rocznego/dekadowego (na przestrzeni 10 lat) itp., gdzie w rachubę będą
wchodzić zestawy miesięczne czy też roczne zestawy miesięcznych
zestawów... uff...

Można pójść na łatwiznę i grupować po prostu na podstawie kalendarza
(miesięcznie, rocznie itd), ale bywają też zestawienia kwartalne,
pięciolatki, kadencje (4 lata ;) i sam Minister wie co jeszcze ;-)

Coś trzebaby tu wymyślić. Sądzę, że teraz jest najlepszy moment na
zdefiniowanie takich rzeczy jak powiązania pomiędzy dokumentami itp.

pozdrawiam

-- 
Marek Pętlicki <marpet at linuxpl.org>
Linux User ID=162988



-- 
Aby sie wypisac z listy, wyslij maila o treści 'unsubscribe janosik-devel'
na adres listar at 7thGuard.net



More information about the janosik-devel mailing list