wtorek, 15 lipca 2008

Otwarty Umysł






Witajcie - Tak naprawdę myślenie nie boli. I mam nadzieję iż Ci którzy chcą i użyczą swój otwarty umysł innym, przyłączą się do inicjatywy, o której piszę na swoim blogu Inzynieria. Stwórzmy czy to zawodowo- Informatycznie, czy międzyludzko strefę, która stale będzie się powiększać. W jedności siła. Bo aby zmienić świat trzeba chcieć i działać.
W ramach zmieniania świata i pomocy innym postanowiłem upublicznić to co udało mi się wypracować z moim nauczycielem z pracy. Zrobiłem to aby inni też się otworzyli.

Poniżej przedstawiam efekty mojej pracy:

  • Ujarzmione tabele w XSL`u przy użyciu CSS`a w ALEPH 16.
Poniżej postaram się Państwu przedstawić instrukcje jak zmienić pliki XSL tak aby nasze tabele nie składały się z "podwójnych linii".

Dla przypomnienia i celem wprowadzenia – w systemie Aleph 16 mechanizm drukowania oparty jest o standard:
    - XML (eXtensible Markup Language)
    - XSL (eXtensible Style Language)
    - HTML (HyperText Markup Language)
Mechanizm wydruku w Alephie działa w ten sposób iż z chwilą jego uruchomienia tworzony jest plik danych zawartych w formacie XML, następnie jest on przetwarzany przez zdefiniowany formularz wydruku zawarty w pliku XSL, który generuje stronę HTML jako nasz wynik drukowania.

Należy przy tym pamiętać iż plik XSL zawiera minimalna ilość informacji o stylach, a dodatkowo posiada swoje ograniczenia. (Przykładem jest tu kwestia formatowania tabeli.)

Zagłębiając się w XSL`a należy wspomnieć iż istnieją trzy podstawowe układy, w których nasze dane mogą być wyświetlone:
    - Free
    - Grid
    - Split
W kręgu naszego zainteresowania jest oczywiście układ Grid, który prezentuje dane w formie tabeli wykorzystując do tego znacznik BORDER.

Przeszukując katalog /exlibris/aleph/u16_1/wasza_baza50/form_pol (gdzie znajdują się nasze formularze wydruków XSL) w poszukiwaniu znacznika BORDER znajdziemy go tylko w pliku funcs-table.xsl.

Poniżej przedstawiam fragment kodu:







Ograniczenia o jakich wspomniałem wcześniej przy formatowaniu powodują iż przy pomocy XSL`a nie jesteśmy w stanie zmienić wyglądu naszej tabeli na wydruku – składa się ona z "dwóch linii". Przy wydrukach gdzie jest mała ilość wierszy i kolumn taki format tabeli może nie stanowić problemu. Lecz w przypadku gdy mamy do czynienia z dużym wydrukiem staje się on poprzez takie formatowanie mało czytelny.

Optymalne rozwiązanie to zbudowanie takiej tabeli do której jesteśmy przyzwyczajeni czyli składającej się z "jednej linii".

Na pomoc w rozwiązaniu takiego problemu przychodzi nam CSS (Cascading Style Sheets).
Dzięki tzw. kaskadowym arkuszom stylów jesteśmy w stanie „przeformatować” naszą tabelę.
(CSS może nam również posłużyć do ożywienia wyglądu innych elementów naszego wydruku.)

Chcąc włączyć CSS`a w naszego XSL`a należy:

1. Utworzyć nową funkcję np. grid-ramka i dodać ją np. w pliku funcs-table.xsl:


















2. W funkcji grid-open (w pliku funcs-table.xsl) należy dodać w elemencie TABLE atrybut ID o nazwie grid w następujący sposób:









3. W formularzu wydruku wywołujemy zdefiniowaną wcześniej funkcję grid-ramka w następujący sposób:






Przemysław Bielecki

BIBLIOGRAFIA (linki):

  • Mechanizm translacji – pliki trn (Aleph16).
Pracując nad formularzami wydruku w XSL`u w tym przypadku „cash-summary” powstał problem jak „pozbyć” się znaków „+ - ( )”.

Szukając rozwiązania (znane polecenie grep) naszym oczom ukazał się plik translate_readme.txt (/exlibris/aleph/u16_1/wasza_baza_50/form_pol)

A tutaj dużo ciekawych informacji odnośnie interesujących nas parametrów w pliku cash-summary.trn np.:

Kod:
ADD-SIGN
adds "-" or "+" depending on the credit-debit value ("C", "D").
put in the param-column the relevant "*-credit-debit".

SIGN1

Accounting notation for signed numbers:
-number translated to "(number)"
+number translated "number"

SIGN2

-number kept as "-number"
+number translated "number"

DEL-SIGN

removes + or - from prefix

CREDIT-TXT

Add text specified in param for sums proceeded by "+"

DEBIT-TXT

Add text specified in param for sums proceeded by "-"

I to co nas interesuje:

Kod:
NONE
returns the original-value.
no parameter required.

Oczywiście podane też są przykłady zastosowania wymienianych parametrów.

Informacja ta powstała dzięki pracy Bożeny Guziuk-Dąbrowskej.

Przemysław Bielecki

BIBLIOGRAFIA (linki):

1. Modyfikacja Wydruków (XML i XSL)

  • „Obrazki” w wydrukach XSL w ALEPH 16
Poniżej postaram się omówić to zagadnienie na przykładzie gdzie mamy jeden obrazek (np. logo), który powinien się znaleźć np. na wszystkich naszych wydrukach.

Do tego celu wykorzystamy funcs.xsl, w którym zbudujemy naszą funkcję, którą w plikach wydruków XSL będziemy wywoływali.

Uwaga - jeżeli planujemy stworzyć wiele funkcji dobrze by było, aby siedziały one w innym pliku niż globalny funcs.xsl.
Takie działanie pozwoli nam zachować przejrzystość kodu, a w razie pojawienia się problemu przyspieszy jego rozwiązanie.

W tym celu należy:

1. Utworzyć nową funkcję np. „header-obrazek” w nowym pliku np. funcs-nasze.xsl :














Istotę tej funkcji stanowi poniższy zapis:





Prezentowana składnia nie jest przypadkowa i poświecę jej tu chwilę.
Jak widzimy nasz obrazek jest pobierany z katalogu dzięki znanemu z HTML`a elementowi img z atrybutem src (które może być [ścieżką lub URL`em]). Pamiętajmy iż w XSL`u w przeciwieństwie do HTML`a nasz element zamykamy „/>”.
(Informację o tym w jaki sposób położyć obrazek na serwerze dla zainteresowanych prześlę emailem)

2. W pliku globalnym np. funcs.xsl dodajemy linię wywołującą naszą funkcję np.:









3. Teraz edytując nasz plik wydruku XSL w miejscu, które jest przewidziane na nasz obrazek wpisujemy:







Przedstawiony powyżej sposób ma jeszcze tę zaletę iż w plikach wydruków XSL wywołujemy tylko funkcję zamiast za każdym razem przepisywać kod.

Informacja ta powstała dzięki pracy Iwony Sikory i Bożeny Guziuk-Dąbrowskej.

Przemysław Bielecki
(email w profilu)


Oczywiście wszystkie te nasze prace są widoczne pod adresem http://www.aleph.pl/forum/viewforum.php?f=1

Poza tymi informacjami mamy małą porcję ze świata:

- Profesjonalna animacja w domu...
- Jądro 2.6.26 - kolejne możliwości
- Windows Vista Compatibility CenterBETA

Pozdrawiam
Miłego Dnia :)

Brak komentarzy:

Zapraszam wszystkich czytelników do wymiany informacji - dyskusji.

Mój e-mail to sniegen@tlen.pl