Import danych > Import specjalny (format 3.0) > Spis poleceń

Drukuj

Spis poleceń

Polecenia globalne

#EXECUTE( nazwa pliku, nazwa szablonu )

Polecenie powoduje wczytanie danych z podanego pliku, według podanego szablonu. Dopiero po zakończeniu wczytywania podanego pliku nastąpi wczytanie danych z bieżącego pliku wejściowego. Polecenie umożliwia import danych kolejno z kilku plików (np. w przypadku osobnych plików danych kontrahentów, dokumentów itp.)

 

#RETURN(  format_danych_zwrotnych, nazwa_pliku, rodza_ danych )

Polecenie specyfikuje format pliku informacji zwrotnych odsyłanych do nadawcy danych, nazwę tego pliku oraz określa rodzaj tych informacji. Informacje zwrotne odsyłane są po zakończeniu importu.

Istnieją dwie zasadnicze grupy informacji zwrotnych: informacje o uzgodnieniach oraz informacje transakcjach.

 

Informacje o uzgodnieniach

Informacje o uzgodnieniach mogą być wysłane tylko w formacie AMZ. Argument rodzaj_danych  określa, jakie informacje zostaną odesłane. Jest to tekst zawierający dowolna kombinację podanych poniżej liter:

K        połączenia kartoteki kontrahentów

P        połączenia kartoteki pracowników

U        połączenia kartoteki urzędów

R        połączenia kartoteki rachunków bankowych

J        połączenia kartoteki kontrahentów incydentalnych

D        połączenia typów dokumentów

V        połączenia definicji rejestrów VAT

Odesłaniu podlegają informacje o połączeniach dokonanych od ostatniego wysłania informacji zwrotnych. Istnieje też możliwość ponownego wysłania dowolnych poprzednich informacji zwrotnych,

 

Informacje o transakcjach

Możliwość przesyłania do nadawcy informacji o transakcjach  z kontrahentami, którzy zostali zaimportowani od danego nadawcy została wprowadzona w wersji FK 4.0c.

Możliwy jest wybór trzech poziomów szczegółowości danych:

1. Tylko informacje o sumie nierozliczonych należności i zobowiązań z danym kontrahentem, wówczas w polu rodzaj_danych należy wpisać        „Rozrachunki”

2. Dodatkowo oprócz informacji o sumie nierozliczonych należności i zobowiązań z danym kontrahentem zwracana jest lista wszystkich transakcji z zaznaczeniem kwoty do rozliczenia, terminu płatności oraz dokumentu źródłowego,  wówczas w polu rodzaj_danych należy wpisać        „Rozrachunki T”

3. Dodatkowo oprócz informacji o poszczególnych transakcjach zwracane są wszystkie cząstkowe rozliczenia transakcji,  wówczas w polu rodzaj_danych należy wpisać        „Rozrachunki TR”

 

Dla wariantu 2 oraz 3 można dodatkowo określić, czy zwracana ma być informacja o wszystkich transakcjach z danym kontrahentem, czy tylko informacja o transakcjach nierozliczonych. Domyślnie zwracana jest informacja o wszystkich transakcjach. Any wybrać tylko transakcje nierozliczone, należy w specyfikacji dodać literę N, np.

„Rozrachunki TN” – tylko transakcje nierozliczone

„Rozrachunki TRN” – transakcje nierozliczone i ich rozliczenia cząstkowe

 

Dane zwrotne o rozrachunkach mogą być wysłane w formacie AM (jest to zalecany format) lub w formacie AMR - pola oddzielone średnikami, zawiera 3 rodzaje linii danych dla trzech możliwych poziomów szczegółowości.

 

Polecenia sekcji

CAT(arg1, arg2, ...)

Polecenie łączy teksty – do 30 argumentów. Długość tekstu wynikowego jest ograniczona do 16 000 znaków. Obcięcie dłuższego tekstu nie jest sygnalizowane.

 

Przykład:

@(numer ewidencyjny) = CAT([typ dokumentu], „  -  ”, [numer dokumentu])

 

SUMx(arg1, arg2, ...)

Polecenie oblicza sumę argumentów (do 30 argumentów).

X oznacza dokładność obliczeń (zaokrąglenie wyniku, nie składników). Obecnie jest to:

0 – całkowite

2 – do grosza

6 – do 6 miejsc po przecinku (np. dla kursu walut itp.)

 

Przykład:

$brutto = SUM2( [netto], [vat])

 

MULx(arg1, arg2, ... )

Polecenie oblicza iloczyn argumentów (do 30 argumentów).

X oznacza dokładność obliczeń (zaokrąglenie wyniku, nie składników). Obecnie jest to:

0 – całkowite

2 – do grosza

6 – do 6 miejsc po przecinku (np. dla kursu walut itp.)

 

Przykład:

$vat = MUL2( [netto], [stawka vat w %],  0.01)

 

DIVx(arg1, arg2, ...)

Polecenie oblicza wynik dzielenia pierwszego argumentu przez wszystkie kolejne argumenty (do 30 argumentów).

X oznacza dokładność obliczeń (zaokrąglenie wyniku, nie składników). Obecnie jest to:

6 – do 6 miejsc po przecinku (np. dla kursu walut)

 

Przykład:

$kurs = DIV6( [kwota zł], [kwota wal])

 

NOT( arg )

Polecenie neguje wartość logiczną argumentu, analogicznie jak operator negacji.

Gdy argument nie jest pustym tekstem zwraca pusty tekst

Gdy argument jest pustym tekstem zwraca tekst z jedną spacją

 

Przykład:

IF( NOT( [numer dokumentu] ) )

 ERROR( „Numer dokumentu  nie może być pusty!”)

 

EQUAL(arg1, arg2 [, sposób] )

Porównuje dwa argumenty tekstowe.

Gdy argumenty nie są równe polecenie zwraca pusty tekst

Gdy argumenty są równe polecenie zwraca tekst z 1 spacją

Polecenie może zawierać opcjonalnie sposób porównania tekstów w postaci tablicy translacji,  

która składa się kolejnych  par  liter lub kodów liter oddzielonych przecinkami. Pierwszy znak z pary określa kod litery w pliku wejściowym, a drugi znak określa kod po translacji. Polecenie umożliwia również porównanie bez rozróżniania małych i dużych liter, w tym celu należy jako tablicę translacji podać jedną literę L.

 

Przykład  został podany przy opisie polecenia IF

 

TRANSLATE( wartość,  tablica translacji)

Polecenie dokonuje translacji (zamiany liter w tekście) według podanego wzorca (tablicy translacji).

Tablica translacji składa się kolejnych  par  liter lub kodów liter oddzielonych przecinkami. Pierwszy znak z pary określa kod litery w pliku wejściowym, a drugi znak określa kod po translacji. Polecenie umożliwia również zamianę małych liter na duże lub odwrotnie, w tym celu należy jako tablicę translacji podać jedną literę:

L – zamiana dużych liter na małe (Lower case)

U – zamiana małych liter na duże (Upper case)

 

Przykład:

@opis = TRANSLATE([opis dokumentu],  „165,ą,164,Ą,134,ć,143,Ć”)        //fragment kodowania LATIN2        

 

WARNING(arg1, arg2, .... )

Wprowadza do okna importu komunikat o statusie ostrzeżenia.  Polecenie nie przerywa importu danych. Argumenty są łączone w jedną linię komunikatu. Może być użytych do 30 argumentów.

 

Przykład:

WARNING(„Dokument: ”  , [nazwa dokumentu], „ posiada błędy –> został zignorowany”)

 

INFO(arg1, arg2, ... )

Wprowadza do okna importu komunikat o statusie informacji.  Polecenie nie przerywa importu danych. Argumenty są łączone w jedną linię komunikatu. Może być użytych do 30 argumentów.

 

Przykład:

INFO(„Dokument: ”  , [nazwa dokumentu], „ został zapisany”)

 

ERROR(arg1, arg2, ... )

Wprowadza do okna importu komunikat o statusie błędu. Polecenie przerywa wykonanie importu. Argumenty są łączone w jedną linię komunikatu. Może być użytych do 30 argumentów.

 

Przykład:

ERROR(„Nieznana sekcja wejściowa: ”, Name() )

 

ASK(arg1, arg2, ...)

Umożliwia wyświetlenie okna dialogowego komunikatu (MessageBox). Argumenty są sklejane w jedną linię komunikatu . Może być użytych do 30 argumentów. Można sterować ilością oraz tekstem na przyciskach poleceń. Obecnie można umieścić do 3 przycisków oraz jedną bitmapę. Sposób sterowania przyciskami może być różny w zależności od programu importującego (może też nie być obsługiwany w ogóle). Dla programu Finanse i Księgowość składnia jest następująca:

 

„Treść komunikatu DefBtn: nazwa przycisku = wartość [Btn: nazwa przycisku = wartość] [Ico: symbol]”

Oznaczenia:

DefBtn: - oznacza  przycisk wybierany automatycznie po naciśnięciu klawisza ENTER (domyślny). Może wystąpić tylko jeden raz

Btn: - oznacza pozostałe przyciski. Łącznie mogą wystąpić tylko trzy przyciski

Nazwa przycisku - jest to dowolny tekst umieszczony na przycisku. Litera poprzedzona znakiem & będzie podkreślona i stanowi akcelerator, działający analogicznie jak  w innych oknach dialogowych.

Wartość - jest to wartość zwracana po wybraniu przycisku. Jest to dowolna liczba z zakresu 1..1000. Użycie wartości=2 oznacza możliwość zamknięcia dialogu klawiszem Escape

Ico: - oznacza ikonę z lewej strony komunikatu

Symbol - symbol oznaczający ikonę: S - ikona (STOP), ?- ikona (?) , ! – ikona (!)

 

Przykład:

@action = ASK(„Dokument posiada błędy, czy go zapisać? DefBtn:&Zapisz=3 Btn:&Anuluj=2 Ico:?”)

 

IF(  warunek )  polecenie  lub blok poleceń [ ELSE polecenie lub blok poleceń ]

Polecenie umożliwia sprawdzenie wartości wyrażenia i w zależności od wyniku sprawdzenia wykonanie (lub nie) określonych poleceń. Jako warunek może być podane dowolne wyrażenie, pole, zmienna lub funkcja. Jeśli obliczone wyrażenie jest niepuste (niepusty tekst), wówczas wykonywane jest polecenie znajdujące się bezpośrednio za IF. Jeśli  obliczone wyrażenie jest puste (pusty tekst), wówczas wykonywane jest polecenie znajdujące się za słowem ELSE, o ile słowo to występuje. Jeśli wykonane ma być więcej niż jedno polecenie (blok poleceń) należy wszystkie te polecenia umieścić w nawiasach klamrowych.

 

Przykład :

IF( NOT( EQUAL( [ typ kontrahenta], „Odbiorca”) ) )

 $dostawca = „TAK”

 ELSE

{

 $odbiorca = „TAK”

}

 

WHILE( wyrażenie )  polecenie lub blok poleceń

Polecenie umożliwia wielokrotne wykonanie polecenia lub bloku poleceń, dopóki obliczone wyrażenie jest niepuste. Jeśli wykonane ma być więcej niż jedno polecenie (blok poleceń) należy wszystkie te polecenia umieścić w nawiasach klamrowych.

 

Przykład:

@cnt = 0

WHILE(  NOT( EQUAL( @cnt,   100)  ) )        //pętla wykona się 100 razy

{

 @cnt = SUM0( @cnt, 1)

 

REX( dana we, wyrażenie regularne [, polecenie do wykonania po dopasowaniu])

Polecenie dopasowuje wyrażenie regularne do podanego tekstu. Tworzy i ustawia zmienne lokalne o nazwach @rex0..@rex9 odpowiadającą dopasowanemu tekstowi oraz zaznaczonym sekcjom wyrażenia regularnego (szczegółowy opis wyrażeń regularnych znajduje się w pliku pomocy do języka raportów). Jeśli zostanie dopasowane wyrażenie, wówczas (i tylko wówczas) obliczana i zwracana przez funkcję jest wartość trzeciego wyrażenia (o ile istnieje).  Jeśli trzeci argument nie istnieje, wówczas zwracane jest całe dopasowane wyrażenie.

Dana we – tekst w którym poszukujemy dopasowania

Wyrażenie regularne – specyfikacja wyszukiwanego tekstu

 

Przykład:

//Odwrócenie formatu daty z RRRR-MM-DD do DD-MM-RRRR

$data = REX("1997-07-12", "{????}{/-??}/-{??}", CAT(@rex3, @rex2, "–" , @rex1))

 

EXIST( nazwa )

Polecenie sprawdza, czy w bieżącej sekcji wejściowej znajduje się pole lub podsekcja o podanej nazwie.

Jeśli pole lub podsekcja istnieje, polecenie zwraca tekst zawierający jedną spację. W przeciwnym wypadku polecenie zwraca pusty tekst.

 

Przykład:

IF( EXIST( „Rejestr”) )

 INFO(„Znaleziono pole lub sekcję o nazwie ‘Rejestr’ ”)

 

FIELD( nazwa )

Polecenie zwraca wartość pola o podanej nazwie. W odróżnieniu od  pobrania wartości przez podanie nazwy w nawiasach kwadratowych, argumentem tego polecenia może być dowolne wyrażenie.

 

Przykład:

//wysłanie do okna komunikatów nazw i wartości wszystkich pól z sekcji w formacie SDF

@name = 1

WHILE EXIST( @name) )

{

 INFO(  @name, " =  ",  FIELD( @name ) )         

 @name = SUM( @name, 1)

}

 

NAME()

Polecenie zwraca nazwę bieżącej sekcji (lub podsekcji) wejściowej.

 

DATE( [wartość]  )

Polecenie dokonuje zamiany daty z formatu pliku wejściowego (określonego poleceniem #DATA ), do postaci RRRR-MM-DD, czyli 4 cyfry roku - 2 cyfry miesiąca - 2 cyfry dnia.

Jeśli argument nie zostanie podany, wówczas polecenie zwróci aktualną datę systemową (datę komputera).

 

Przykład:

$dataDok = DATE( [data dokumentu]  )

 

MONEY( wartość )

Polecenie dokonuje zamiany kwoty  z formatu pliku wejściowego (określonego poleceniem #SEPARATOR_01), do postaci liczby bez separatorów tysięcznych i z kropką jako separatorem dziesiętnym.

 

Przykład:

$kwota = MONEY( [kwota dokumentu]  )

 

SWITCH( wyrażenie)

{

CASE wartość

 Blok poleceń

CASE wartość

 Blok poleceń

[CASE ELSE]

 Blok poleceń

}

Polecenie powoduje obliczenie wyrażenia oraz wykonanie bloku poleceń skojarzonych z wynikiem obliczenia.

 

Przykład:

SWITCH( [stawka vat]  )

{

CASE „22”

 $vat1 = [vat]

 BREAK

CASE „7”

 $vat2 = [vat]

 BREAK

CASE ELSE

 ERROR("Nierozpoznana stawka VAT: ", [stawka vat]) 

}

 

BREAK

Polecenie powoduje przerwanie wykonania bloku poleceń WHILE oraz SWITCH

 

POS( [pole] )

Polecenie bez parametru zwraca aktualną pozycję w pliku wejściowej (lina, pozycja w linii) bieżącej sekcji wejściowej.

Polecenie z podanym parametrem zwraca aktualną pozycję w pliku wejściowym (lina, pozycja w linii) danej o podanej nazwie.  Pozycja jest podawana w postaci tekstu: „linia, pozycja”

 

Przykład:

ERR("Niekompletne dane sekcji: ", NAME()," pozycja: ", POS() ) 

 

SECTION( nazwa sekcji we, nazwa sekcji wy [, opcje sekcji])

Jest to polecenie blokowe, grupujące zbiór poleceń przetwarzających jedną, określoną sekcję wejściową. Wewnątrz sekcji mogą znajdować się kolejne sekcje (zwane podsekcjami), grupujące polecenia przetwarzające odpowiednie podsekcje sekcji wejściowej. Polecenie tworzy opcjonalnie sekcję (podsekcję) wyjściową.

Nazwa sekcji we  - służy do połączenia właściwej sekcji szablonu z właściwą sekcją wejściową. Sekcja wejściowa o określonej nazwie jest przetwarzana sekcją szablonu o identycznej nazwie. Jeśli w szablonie nie ma sekcji o zgodnej nazwie, wówczas wykonywana jest sekcja o nazwie pustej. Jeśli i takiej sekcji nie ma, wówczas zgłaszany jest błąd wykonania.

Nazwa sekcji wy - jest to nazwa podsekcji wyjściowej, która jest tworzona w wyniku wykonania kodu sekcji. Jeśli argument ten jest pusty, wówczas sekcja wyjściowa nie jest tworzona.

Opcje sekcji - są istotne tylko dla podsekcji, opisują dodatkowe akcje związane z wykonaniem sekcji:

FIND – powoduje odszukanie w danych wejściowych podsekcji o podanej nazwie.

REPEAT – otwierane i wczytywane są wszystkie kolejne podsekcje wejściowe o podanej nazwie

Argumenty te mogą być łączone.

Przykłady sekcji znajdują się na końcu opracowania.  

 

MAKESEC( nazwa sekcji wyjściowej )

Polecenie tworzy nowa sekcję (podsekcję) wyjściową o podanej nazwie. Jest to polecenie blokowe, grupujące polecenia odnoszące się do nowo utworzonej sekcji wyjściowej. Po wykonaniu bloku poleceń sekcja wyjściowa jest zamykana i od tego momentu jest już niedostępna.

 

Przykład:

IF( EQUAL( NAME(), „Dostawca” )  )

 MAKESEC( „Kontrahent” )

 {

         $nazwa = [nazwa kontrahenta]

 }

 

EXIT()

Polecenie powoduje opuszczenie (zamknięcie) bieżącej sekcji  wejściowej, bez zamykania sekcji wyjściowej. Umożliwia to m.in. połączenie danych kilku sekcji wejściowych w dane jednej sekcji wyjściowej. Polecenie Exit odnosi się tylko do jednego poziomu zagnieżdzenia podsekcji, co oznacza że powoduje wyjście tylko z jednego poziomu zagnieżdzenia, a wiec użyte w podsekcji wejściowej spowoduje wyjście z tej podsekcji i pozostanie w sekcji głownej.  

 

DEF( nazwa definicji [, wartość definicji] )

Polecenie z jednym argumentem umożliwia pobranie aktualnej wartości podanej definicji globalnej. W przypadku braku podanej definicji zwracany jest pusty tekst.

Polecenie dwuargumentowe umożliwia zmianę istniejącej lub utworzenie nowej definicji, np. formatu daty lub kwoty, w trakcie wykonywania importu.  Polecenie zwraca poprzednią wartość definicji.

Nazwa definicji – nazwa zmienianej definicji globalnej, np.:

DATA        - odpowiada poleceniu globalnemu #DATA

SEPARATOR_01        - odpowiada poleceniu globalnemu #SEPARATOR_01

 

Wartość definicji – nowa wartość definicji.

Polecenie nie może być użyte do zmiany formatu pliku wejściowego.

 

Przykład:

DEF( "DATA”,  [format daty] ) 

 

Własne definicje mogą być wykorzystane jak o zmienne globalne, które nie są niszczone po zakończeniu przetwarzania jednej sekcji wejściowej, a więc zawierać ustawienia sterujące całym procesem importu specjalnego. Od wersji 4.0 programu Finanse i Księgowość wszystkie definicje można zmieniać w specjalnym oknie wywoływanym z formatki profili importu. Dzięki takiemu mechanizmowi można użyć definicji do określania np. numerów kont dla automatycznej dekretacji dokumentów. Prostota obsługi tego okna pozwala na zmianę tych kont przez księgowego, bez konieczności ingerowania edytorem tekstu  bezpośrednio w zawartość plików szablonu.

 

RETURN(  format_danych_zwrotnych, nazwa_pliku, rodza_ danych )

Polecenie specyfikuje format pliku informacji zwrotnych odsyłanych do nadawcy danych, nazwę tego pliku oraz określa rodzaj tych informacji. Informacje zwrotne odsyłane są po zakończeniu importu.

Istnieją dwie zasadnicze grupy informacji zwrotnych: informacje o uzgodnieniach oraz informacje o nierozliczonych transakcjach. Pełny opis jest zamieszczony przy poleceniu globalnym #RETURN. W odróżnieniu od polecenia globalnego to polecenie może być umieszczone w sekcji szablonu (Zwykle w sekcji danych globalnych lub w sekcji <init> )