INFORMACJE DLA ZAAWANSOWANYCH UŻYTKOWNIKÓW

UWAGA: Zawartość tego rozdziału jest przeznaczona dla użytkowników Systemu MaFi dobrze znających system operacyjny DOS oraz zasady tworzenia plików i manipulowania plikami.

KONSTRUKCJA FORMATEK EKRANOWYCH i DRUKÓW

Zasady gospodarowania formularzami w programach

  1. Ekran jest tworzony na podstawie pliku tekstowego o nazwie z rozszerzeniem .FEK.
  2. Druk jest tworzony na podstawie formatki o nazwie identycznej z formatką ekranu i rozszerzeniu .FDR lub .WZR
  3. Jeśli brak formatki druku, to druk jest tworzony według formatki ekranu.

Zasady tworzenia formularzy

  1. Pierwszy wiersz jest pomijany przez analizator formatek, jest używany do wybierania formatek.
  2. Pozostałe wiersze dzieli się na podstawie pierwszego znaku:

; - komentarz; ten wiersz jest pomijany na ekranie i druku,

~ - wiersz z rozkazem, znakiem rozpoznawczym rozkazu jest pierwsza litera rozkazu np.: a - adres i opis adresu (opis niżej),

inny znak - tekst formularza.

W tekście formularza wyróżnia się pola z formułami postaci:

@EDnnnOPISY@

gdzie:

obszary ograniczone mogą nie występować,

@ - znacznik początku, obszaru i końca pola,

E - typ pola na ekranie, określa znaki dopuszczalne do wpisania, sposób przeliczania i wypisania pola na ekranie,

D - sposób umieszczenia napisu w polu na wydruku,

nnn - numer pola lub + oznaczający numer następny po ostatnio użytym

Opisy - inne opisy w formacie \Topis (opis niżej).

Opis szczegółowy

E = typ pola na ekranie:

n: napis

c: liczba całkowita (maks. 18 cyfr)

r: liczba rzeczywista (maks 26 cyfr)

C,R -jak c, r ale zakaz wpisania znaku “-”

s: pola o wartości wyliczanej jako suma kolumny powyżej.

w: pole waluta (złote z groszami)

v: pole złote słownie

d: data w formacie DD-MM-RR

p: parking - umożliwia zatrzymanie kursora

i : iloczyn pól o numerach aktualny-1 i aktualny-2

g: pole z formułą umieszczoną w wierszu z rozkazem

f : formuła - wartość wyrażenia jest liczona na podstawie formuły zawartej w opisie pola. w opisie formuły analizowany jest tekst postaci:

\fE=formula

gdzie:

\f -znacznik opisu formuły.

E -sposób wypisania:

s - wypisz słownie (tylko całkowite),

v - złote słownie

c - całkowite,

r - rzeczywiste,

= - znacznik początku formuły

formuła - wyrażenie matematyczne, w którym pole jest reprezentowane przez napis Wnnn.

Przykłady:

@fp12\s10\fc=(w10+w11)/2@

rozpoznaje formułę (w10+w11)/2 i jeśli w polu w10 jest napis 2,000, a w11- -3,000, to analizator przekształca formułę pola na napis (2000+(-3000))/2 i przekazuje ten tekst do obliczenia przez procedury kalkulatora. Jeśli obliczenia zakończą się błędem, to wypisywany jest ciąg “_______”.

UWAGA: Obliczenia wykonywane są na liczbach typu “real” (zakres do 1E38, (11-12 dokładnych), ale poprawnie są wypisywane w zależności od typu pola:

s - (słownie) do bilionów,

r - 1E25, 11-12 cyfr dokładnych,

c - 9.2E18, 11-12 cyfr dokładnych.

D = format pola na druku: (jest analizowane przez procedurę drukującą)

1. Umieszczanie napisów w polach:

d,D - (dynamiczna) pole na wydruku ma długość tekstu,

l,L - (lewo) dosuń do lewej strony pola,

p,P - (prawo) dosuń do prawej,

c,C - (centruj) umieszczenie napisu w środku pola,

o,O - (odetnij/uzupełnij) pole na wydruku ma szerokość pola na formularzu zbyt długie napisy sa obcinane,

Duża litera oznacza odcięcie ewentualnych zbędnych spacji od strony dosunięcia napisu przed jego dosunięciem i dopiero następnie dosunięcie do lewej lub prawej strony.

Przykłady:

Tekst w węźle 1 na ekranie:

12.345.678

Opis pola wraz z jego otoczeniem:

AAA@c?1@@@@@@@@@@@@@@@@BBB

Tekst na wydruku przy umieszczeniu zamiast ? znaku:

d AAA 12.345.678BBB

D AAA12.345.678BBB

l , o AAA 12.345.678 BBB

L, o AAA12.345.678 BBB

p, P AAA 12.345.678BBB

c, C AAA 12.345.678 BBB

Tekst w węźle 1 na ekranie:

Program Druki umieszcza tekst w polu

Opis pola:

AAA@n?1@@@@@@@@@@@@@@@@BBB

Tekst na wydruku przy umieszczeniu zamiast ? znaku:

d, D AAAProgram Druki umieszcza tekst w poluBBB

o, o AAAProgram Druki umieszBBB

2. Podział dokumentu na strony:

m ,M - nowa strona i wysunięcie następnej o margines górny (ustawiany w programie),

n,N - nowa strona, wysuń kartkę (ważne w opcji y i drukowanie na formularzu),

x,X - ciąg wysyłany do drukarki, (ważne w opcji y) np.: @nx0do drukarki@ ` drukuje: “do drukarki” - na ekranie nie ma tego napisu.

3. Sposób druku:

y - drukuj tylko pola

Y - drukuj tło i pola (domyślny )

z - drukuj tło a pola wypełnij '_________'

4. Pomijanie wiersza tekstu; można pomijać wiersze w całości jeśli węzeł nie jest wypełniony:

k,K - pomijanie linii tekstu, w opisie pola typu k musi znaleźć się opis \knnn (nnn - numer analizowanego pola).

Wiersz jest pomijany jeśli pole nie zawiera żadnego znaku lub jest wypełnione znakami pustymi “____”. Pomijanie wiersza nie działa w trybie druku z (druk pustego formularza).

Przykład:

Tu można wpisać @nl10@@@@@@@@@@@@ Ten wiersz @nk0\k10@

(ten też) będzie wypisany tylko wtedy gdy @nk0\k10@

(i ten też) w polu 10 będzie wpisany jakikolwiek znak @nk0\k10@

Pominie wszystkie wiersze jeśli w polu 10 nie będzie napisu.

nnn - numer pola od 0 do 16000 lub znak +

Pola są numerowane w zakresie od 1 do 16000 i nie może być na formularzu ekranu dwóch pól o tych samych numerach. Na formatce druku oznacza numer pola, z którego pobierać tekst (dla D=d,D, l,L, p,P, o,O, c,C), dla pozostałych typów pól druku nieistotne i może być równe 0. Pola o numerze 0 nie są umieszczane na ekranie i mogą się występować wielokrotnie na formularzu wspólnym dla ekranu i druku. Znak + oznacza numer pola o 1 większy od ostatnio użytego numeru pola.

Pola przeliczane są w kolejności:

I. Po odczytaniu formatki przeliczane są wszystkie pola w kolejności ich numerów i są oznaczane jako przeliczone.

II. Po wpisaniu tekstu do pola:

1. Przeliczane jest pole, do którego wpisano tekst i jest ono oznaczane jako zmieniane,

2. Sprawdzane są pola z formułami w kolejności ich numerów i jeśli rozpoznano zmianę pola, do którego odwołuje się formuła obliczeniowa, przeliczane jest sprawdzane pole (dlatego w opisie formuły pola nie może wystąpić pole o numerze większym od jego numeru). Ustawiany jest znacznik zmienione.

3. Zmieniane są znaczniki wszystkich pól z zmienione na przeliczone

Inne = inne informacje o polu w formacie:

\Topis: gdzie \ - separator

T - typ

Procedura analizująca rozpoznaje typy:

Snn lub snn - szerokość pola, gdy jest inna od długości opisu pola (np \s15 pole ma długość 15 znaków),

Enn lub enn - sposób edycji lub wyliczania:

Jeśli liczbę nn wyrazić w systemie dwójkowym to:

bit 0 wyliczane formułą / wpisywane

bit 0 = 0 - pole wyliczane przez formułę lub wstawiane przez procedurę inicjującą, nie można wpisywać do tego pola,

= 1 - (wartość 1) można wpisywać, formuła obliczeniowa w tych polach jest zablokowana,

bit 1 - czy można zmieniać stan bita 0;

bit 1 = 0 - nie wolno zmieniać bitu 0 w wyniku naciśnięcia klawisza CTRL-B.

= 1 - (wartośc 2) wolno zmieniać bit 0.

Np:

\E0 powoduje zakaz wpisywania do tego pola , ale pole to może być wypełniane z bazy danych lub jeśli jest typu f, to formuła jest aktywna i nie można jej zablokować.

\E2 wartość domyślna dla pól typu f i g

\E3 (wartość domyślna dla pól pozostałych typów) jeśli węzeł jest typu f, to zachowuje się jak węzeł typu c lub r (można wpisywać liczby z klawiatury) ale po naciśnięciu Ctrl-B zostanie uaktywniona formuła a zablokowane wpisywanie (do powtórnego naciśnięcia Ctrl-B lub wyjścia z formatki).

UWAGA: Formuły w polach z formułami można zablokować automatyczne obliczanie pola (aby móc wpisać wartość) naciskając Ctrl-B.

\rnn - precyzja liczb rzeczywistych, liczba nn oznacza ilość miejsc po przecinku wypisywanych w liczbie rzeczywistej. Jeśli nie umieszczono w opisie pola typu rzeczywistego opisu precyzji, to przyjmuje się wypisywanie z 2 miejscami po rzecinku. Opis ten jest analizowany tylko w polach typu rzeczywiste (r) i formuła (f) z wypisywaniem liczby jako rzeczywistej (\fr=..).

PRZYKŁADY OBLICZANIA FORMUŁ:

Formuły obliczeniowe rozpoznają:

1.Operatory:

+, -, *, /, zao (zaokróglanie)

2. Funkcje:

SQR(X) - kwadrat X,

SQRT(X) - pierwiastek kwadratowy z X,

LN(X) - logarytm naturalny X,

INT(X) - część całkowita X,

EXP(X) - funkcja ekspotencjalna (e^X),

ABS(X) - wartość bezwzględna X,

SGN(X) = -1 dla liczb ujemnych, 1 w pozostałych przypadkach

SIN(), COS(), TG(), CTG(), ARCTAN() - funkcje trygonometryczne

PI, E - liczba pi i e

3.Relacje

<, =, >, <=, >=, <>, AND, OR, NOT, XOR

przy czym wartość 0 oznacza FAŁSZ, 1 oznacza PRAWDĘ

Przykład:

1. Suma pól 21 i 22, jeśli mniejsze od 0 wpisać 0

((w21+w22)>0)*(w21+w22)

2. Różnica pól 21 i 22 zaokrąglić do 10

w21 - w22 zao 10

UWAGI RÓŻNE

1. w czasie wpisywania liczb do pól liczbowych można w celu zwiększenia przejrzystości wpisywać spacje, np. napis 12 000 jest uznawany za poprawny i równoważny 12000.

2. Jeżeli w trakcie obliczeń pól typu f formuła nie jest poprawnym wyrażeniem, to pole to zostanie wypełnione znakami podkreślenia “____”, a gdy procesor wykaże przekroczenie zakresu liczb znakami gwiazdki “******”,

ZMIANA POSTACI DRUKÓW

Użytkownik może w pewnym zakresie zmieniać postać druków generowanych przez programy. Szczególnie użyteczne jest to w przypadku programów generujących dokumenty dla klienta (FAKTUROWANIE, FAKTUROWANIE VAT, SPRZEDAŻ i DRUKI, przy czym program SPRZEDAŻ korzysta z wzorców druków programów fakturujących).

Postać druku jest określona przez wzorzec druku zapisany w odpowiedniej kartotece w pliku o rozszerzeniu .WZR, np. wzór druku faktury VAT znajduje się w kartotece FAKTURA.DAT w pliku FAKTURA.WZR . Pliki te są utworzone zgodnie z opisanymi wcześniej zasadami tworzenia formatek druków. Użytkownik może zmieniać położenie pól na formularzu oraz dodawać w tekście stałym kody sterujące drukarki. w zależności od posiadanej drukarki można uzyskać efekty typu drukowanie kursywą nazwy firmy klienta, drukowanie nazwy własnej firmy pismem konturowym itp. Największe możliwości dają drukarki laserowe i atramentowe.

Oto przykład. Dopisanie w pliku FAKTURA.WZR przed polem @D@@@@@ ciągu kodów ESC E, a za tym polem ESC F spowoduje (dla drukarek igłowych zgodnych z Epson) drukowanie nazwy firmy sprzedawcy drukiem wytłuszczonym (kod ESC E włącza druk wytłuszczony, ESC F wyłącza).

Podczas dopisywania kodów sterujących drukarki należy pamiętać, że:

Możliwość modyfikowania wzorców druków pozwala także na wprowadzenie zmian w postaci druków deklaracji podatkowych. Jeżeli standardowa postać druku nie pozwala wypełnić pól typowego formularza (zaznaczmy, że można spotkać np. druki PIT-5 o różnych rozmiarach!), można dodać lub usunąć wiersze ze wzorca druku oraz dokonać przesunięcia pól w lewo lub w prawo dodając lub usuwając spacje. Dla wzorców deklaracji przyjęto numerację pól zgodną z odpowiednim formularzem (PIT lub VAT).

Wzorce deklaracji są umieszczane w plikach o rozszerzeniu .FDR zapisanymi zgodnie ze standardami tworzenia formatek druków (por. wcześniejsze opisy). Występujące tu symbole ~Wnn oznaczają wysunięcie kartki o nn milimetrów. Jeżeli dany formularz drukuje tylko zawartości pól (jak w deklaracji PIT-5), to dla wysłania do drukarki tekstu lub kodów sterujących należy umieścić je w polu o formacie @nxto-do-drukarki@.

INFORMACJE O PROGRAMIE DRUKI

W przypadku zmiany formatki dane z poprzedniej będą wpisywane do pól o tych samych numerach - może to powodować przekroczenie wartości. Podobny efekt może też wystąpić w przypadku wystąpienia błędu odczytu danych z dysku.

Konstrukcja danych programu (pliki)

Z każdym pismem są związane pliki o takiej samej nazwie a różniące się rozszerzeniem nazwy, pogrupowane tematycznie w podkartotekach kartoteki PISMA.DAT:

nazwa.FEK - formularz ekranu,

nazwa.FDR - formularz druku, występuje wtedy, gdy formularz ekranowy różni się od formularza druku,

nazwa.DUS - ustawienie druku względem kartki, pliki te są zakładane w wyniku wywołania operacji ustawiania druku (F7), brak pliku nie generuje błędu lecz przyjęty zostaje brak przesunięcia druku.

W kartotece każdego podatnika program tworzy kartotekę PISMA i w tej kartotece tworzy strukturę kartotek odpowiadającą strukturze w kartotece PISMA.DAT. Umieszczane są w nich pliki bazy danych dla każdego używanego formularza. Pliki te (nazwa.BAZ) mogą być kasowane (łącznie z kartotekami), jeśli dane zapisane w nich nie będą już potrzebne.

Średnio wprawny użytkownik może napisać za pomocą edytora generującego tekst w standardzie Mazovia (np. ED.EXE dołączony do Systemu MaFi) formatki ekranu i druku. Opis konstrukcji formularzy przestawiono wcześniej. PPU Micro może przygotować formularze na specjalne zamówienie każdego licencjonowanego użytkownika Systemu MaFi.

MAKROPOLECENIA

Podczas tworzenia Systemu MaFi przyjęto zasadę, że jak najwięcej operacji związanych z kopiowaniem, drukowaniem itp. wykonywanych będzie za pomocą plików makropoleceń (wsadowe, *.BAT). Można dowolnie modyfikować te pliki zmieniając np. sposób tworzenia kopii archiwalnych czy też program drukowania plików tekstowych. Pliki makropoleceń danego programu umieszczone w jego kartotece (*.DAT). Polecamy zapoznanie się z treścią makropoleceń. Są one wspólne dla wszystkich podatników. Szczególnie dotyczy to drukowania i przeglądania, które są realizowane przez wspólne dla wszystkich programów DRUK.BAT, DRUK-GRF.BAT oraz PRZEGL.BAT z kartoteki SYSTEM.DAT .

Drukowanie tekstowe (por. DRUK.BAT) jest realizowane przez program, który drukuje wskazany plik dokonując ewentualnej konwersji kodów sterujących EPSON na HP oraz konwersji kodów. Szczegółowe informacje można uzyskać uruchamiając bezpośrednio program. Drukowanie graficzne (por. DRUK-GRF.BAT) z obrotem strony o 90° wykonuje program WIDOK. Obsługuje on wyłącznie drukarki igłowe. Dla drukarek zgodnych z HPIIp (laserowe lub atramentowe) wykonywany jest druk tekstowy (DRUK.BAT) z dodaniem w plikach druków rozkazu set landscape na początku pliku i set portrait na końcu. Obydwa programy drukujące kończą drukowanie wysyłając do drukarki kod RESET (ESC @ dla IBM Proprinter/Epson lub ESC E dla HPIIp).

Za przeglądanie plików na ekranie odpowiada PRZEGL.BAT uruchamiający program BROWSE.COM . Można wykorzystać inne programy przeglądające lub nawet dołączany edytor tekstu ED.EXE. Należy jednak zwrócić uwagę, jak duże pliki mogą obsługiwać takie programy - niektóre druki zestawień pomocniczych (np. OD-DO z Księgi Podatkowej) mogą w skrajnych przypadkach przekroczyć 64KB objętości.

Archiwacja plików jest przeprowadzana za pomocą makropoleceń uruchamiających program LHARC. Jest to program FreeWare o dość dobrych parametrach pakowania plików. w makropoleceniach można zastosować inne programy pakujące (np. PKZIP lub ARJ). w razie zmiany programu pakującego należy pamiętać o odpowiednim ustawieniu parametrów pakowania (szczególnie pakowanie podkartotek), które są różne dla różnych programów. Np. wywołanie może mieć postać:

PKZIP -p -r pozostałe parametry

lub

ARJ a -p -r pozostałe parametry

a rozpakowanie odpowiednio:

PKUNZIP -d parametry

ARJ x parametry

gdzie parametry oznaczają pozostałe parametry umieszczone w wywołaniu LHARC. Pliki archiwizujące programu System znajdują się w podkartotece SYSTEM.DAT .

Wszystkie makropolecenia można modyfikować według własnych potrzeb. Należy jedynie pamiętać o przechowaniu standardowej treści zmienianego makropolecenia w celu ewentualnego przywrócenia pierwotnej zawartości. Wykonywane polecenia systemu operacyjnego umieszczone w makropoleceniach nie powinny zostawiać śladów na ekranie (wyjątkiem są makropolecenia PRZEGL.BAT, które wyświetlają zawartość pliku). Stąd też (tryb DOS) polecenia umieszczane w plikach .BAT powinny przyjmować postać:

@polecenie [parametry] >NUL

tzn. nie pozostawiać śladu polecenia na ekranie (@) i kierować komunikaty do urządzenia pustego (>NUL). Jednakże jeżeli chce się mieć możliwość śledzenia wykonywania poleceń, można zrezygnować z tych zasad.

UWAGA: Po zakończeniu wykonywania makropolecenia program powinien znajdować się w tej samej kartotece, w której był przed wykonaniem makropolecenia!

Pliki makropoleceń w programach Księga Podatkowa i Ryczałt.

Oto pliki makropoleceń, z których korzystają te programy:

- obsługa kopii zapasowych plików danych:

KOPIA.BAT, Z-KOPII.BAT

- zamykanie okresów: Z-MIES.BAT - miesiąca

Z-ROKU.BAT - roku

- obsługa archiwum: DO-ARCH.BAT, Z-ARCH.BAT

- do wykorzystania w innych celach (według uznania użytkownika)

WOLNE.BAT (uruchamiany poprzez Alt-F10)

Poniżej opisano pokrótce operacje, w których programy wykorzystują pliki makropoleceń.

  1. po uruchomieniu program sprawdza, czy poprzednia sesja została zakończona poprawnie. Jeżeli nie, proponuje odtworzenie danych z kopii zapasowej (makropolecenie Z-KOPII.BAT). Ponadto Z-KOPII.BAT może być wykorzystywane w razie wykrycia uszkodzenia danych w trakcie pracy programu. w takiej sytuacji program przerywa pracę prosząc o odtworzenie danych z kopii zapasowej. Konieczne jest wtedy uruchomienie makropolecenia Z-KOPII.BAT przed ponownym uruchomieniem programu. Niestety, nie sposób przewidzieć wszystkich sytuacji, w których może nastąpić uszkodzenie danych - stąd takie rozwiązanie.
  2. zamknięcie miesiąca lub roku oprócz wykonania operacji czyszczenia plików danych powoduje także uruchomienie makropolecenia Z-MIES.BAT lub Z-ROKU.BAT tworzących kopię plików danych bezpośrednio sprzed zamknięcia; odtworzenie stanu sprzed operacji ZAMYKANIA sprowadza się do odtworzenia zawartości tych plików;
  3. ARCHIWUM - w zależności od wybranej operacji (DO lub Z) zostaje uruchomione odpowiednie makropolecenie DO-ARCH.BAT lub Z-ARCH.BAT Parametry wywołania opisano wewnątrz plików makropoleceń. Archiwowane są wszystkie pliki danych, kopia archiwalna zostaje umieszczona w podkartotece archiwum (KSIEGA\ARCH-KP). Można dodać np. archiwowanie druków. Standardowo program tworzy zbiory archiwalne o następujących nazwach (rozszerzenia pominięto):
  4. KP-dd-mm - kopia utworzona danego dnia poleceniem DO ARCHIWUM (dd - dzień, mm - miesiąc pobrane z zegara systemowego komputera)

    KP-MC-mm - kopia utworzona poleceniem ZAMKNIĘCIE MIESIĄCA (mm - numer miesiąca)

    KP-rrrr - kopia utworzona poleceniem KONIEC ROKU (rrrr to rok).

  5. przy zakończeniu sesji zostaje uruchomione makropolecenie KOPIA.BAT tworzące awaryjną kopię plików danych. Jest automatycznie uruchamiane przy zaksięgowaniu co dwudziestego dokumentu. Można dodać w nim skopiowanie pliku kopii zapasowej na dyskietkę.

UWAGA: ingerencje bezpośrednio w kod programu czy w zawartość plików danych mogą spowodować uszkodzenie programu i zniszczenie danych!