Instrukcja administratora > Parametryzacja systemu > Własne eksporty SQL | | Drukuj |
Program zawiera moduł własnych eksportów SQL, umożliwiający wygenerowanie dowolnego pliku eksportowego (tekstowego, xml) za pomocą zapytań SQL. Funkcjonalność może być pomocna np. przy konstruowaniu pliku wymiany danych z systemem bankowym. Definiowanie eksportu SQL Dostęp do definiowania eksportów SQL umożliwia pozycja menu głównego Definicje - Eksporty SQL. Definiujemy: •Nazwa - nazwa identyfikująca nowy eksport •Tabela - nazwa tabeli w aplikacji identyfikująca okno, w którym będzie dostępny nowy eksport oraz w kontekście, której będzie konstruowane zapytanie SQL (UWAGA! nie mylić nazwy tabeli w bazie z nazwą tabeli w aplikacji; lista tabel jest dostępna tutaj Lista modułów danych i tabel) •Definicja - definicja zapytania lub polecenia SQL. Dwuklik myszy na tym polu powoduje otwarcie okna wygodnego edytora zapytań SQL
Przykład 1.Definicja Nazwa - Eksport przelewów do systemu X Tabela - PRZELEWY – oznacza, że eksport pojawi się w oknie PRZELEWY w menu Eksport danych Definicja - select cast(sum([Kwota]) as varchar(15))+';'+cast(count(*) as varchar(5))+';' from NPRZELEW where [X_I] in <CURIDESET> go select [Nazwa_odbiorcy_1]+';'+[Nazwa_odbiorcy_2]+';'+[Nr_rachunku_odbiorcy]+';'+cast([Kwota] as varchar(15))+';'+[Tytulem_1]+';' from NPRZELEW where [X_I] in <CURIDESET> go Pierwszy framgment (do klauzuli go) oznacza, że z tabeli NPRZELEW zostaną zsumowane pola [Kwota] oraz ilość rekordów i pokazane w pierwszej linijce pliku (zapytanie zwraca tylko 1 rekord). Drugi fragment zwraca sformatowany łańcuch tekstowy złożony z pól [Nazwa_odbiorcy_1],[Nazwa_odbiorcy_2],[Nr_rachunku_odbiorcy],[Kwota],[Tytulem_1] z tabeli NPRZELEW rozdzielonych znakiem średnika. Ponieważ zapytanie zwraca kilka rekordów, w pliku pojawi się też taka ilość linii. Za każdym razem w klauzuli where użyto zmiennej <CURIDESET>, która oznacza zestaw ide rekordów tabeli w oknie (czyli np. zafiltrowanej od działu do działu, albo paczkę przelewów). De facto jest to łańcuch w postaci np.'(1,2,5,8)', gdzie liczby oznaczają wartości pola [X_I] z tabeli, którą właśnie widać w oknie. 2.Wykonanie eksportu W oknie Przelewy stojąc na jakiejś paczce przelewów klikając PPM wywołujemu Eksport danych/Eksport przelewów do systemu X. Ponieważ w oknie widać tylko przelewy z danej paczki, tylko takie zostaną wyeksportowane. Otrzymamy plik o zawartości jak poniżej: 22809.03;12; R2bilansowy Artur;ul.Rozliczeniowa 0/0, 00-000 Wrocław-Psie Pole;0000000000000000;1948.28;Lp nr 1/O6; R2chorobowa Barbara;ul.Płacowa 0/0, Bielany Wrocławskie, 00-000 Wrocław;0000000000000000;1851.87;Lp nr 1/O6; R2macierzyńska Marianna;ul.Przykładowców 0/0, Wrocław-Śródmieście, 00-000 Wroc;0000000000000000;1038.66;Lp nr 1/O6; R2nieobecna Katarzyna;ul.Sprawdzona 0/0, Wrocław-Fabryczna, 00-000 Wrocław;0000000000000000;1006.56;Lp nr 1/O6; R2pożyczka Magdalena;ul.Firmowa 0b/0, Wrocław-Stare Miasto, 00-000 Wrocław;0000000000000000;1314.54;Lp nr 1/O6; R2samochodzik Dariusz;ul.Księgowości 0/0, Wrocław-Krzyki, 00-000 Wrocław;0000000000000000;2665.08;Lp nr 1/O6; R2urlopowski Jan;ul.Resetowa 0, Wrocław-Stare Miasto, 00-000 Wrocław;0000000000000000;1461.80;Lp nr 1/O6; R2zuspodstawa Kamil;ul.Przykładowa 0/0, 00-000 Oleśnica;0000000000000000;10208.63;Lp nr 2/O6; R2samochodzik Dariusz;ul.Księgowości 0/0, Wrocław-Krzyki, 00-000 Wrocław;0000000000000000;445.22;Lp nr 3/O6; R2zuspodstawa Kamil;ul.Przykładowa 0/0, 00-000 Oleśnica;0000000000000000;445.22;Lp nr 3/O6; R2samochodzik Dariusz;ul.Księgowości 0/0, Wrocław-Krzyki, 00-000 Wrocław;0000000000000000;195.54;Lp nr 4/O6; R2urlopowski Jan;ul.Resetowa 0, Wrocław-Stare Miasto, 00-000 Wrocław;0000000000000000;227.63;Lp nr 4/O6; |