http://www.afin.net

 

Artykuł AFIN.NET:

 Raport na podstawie nowego źródła danych w AFIN.NET © AFIN 2008 

Wojciech Gardziński, 2008.12

 

 

Jak utworzyć raport na podstawie dowolnego, nowego źródła danych zewnętrznych,
tu: rozproszonego w różnych folderach zestawu plików DBF z księgowym zestawieniem obrotów i sald programu finansowo-księgowego?

 

Summary:

AFIN.NET can get the data from all the files as a function GETDATAODBC() (below: how to prepare such a function with help of MS Query and how to insert it automatically into a sheet). You can use it in your reports parametrizing with the values in the sheet.

At the end you can (at the time – manually) write a section in DataModel.par and use it as a new AFIN.NET’s Business Measure. After thet you can use the function GETDATA(). In this article used as an alias DANE(). GETDATA() function is very simply to use and full-parametrizable.

 

 

  1. Czynności wstępne (Excel)

 

Lokalizujemy dane

Dane znajdują się w plikach DBF o nazwach  o wzorcu Acc_MM.dbf, gdzie MM to miesiąc. Pliki pogrupowane są w katalogi roczne. W folderach ‘2007’ oraz ‘2008’ znajdują się pliki przykładowe z 3 pierwszych miesięcy danego roku.

Folderów i plików może być dowolna ilość.

 

 

 

Odczytujemy strukturę danych – otwieramy plik DBF pod Excelem.

 

 

 

  1. Kwerenda

 

Tworzymy nową kwerendę do danych (MS Query)

 

 

 

Kolejny krok – wybór źródła danych

 

 

 

Wybór tabeli danych (pierwszej dostępnej)

 

 

 

Pierwsze kroki z kwerendą – wybieramy wszystkie pola do kwerendy

 

 

 

 

Ustawiamy kwerendę tak, by łatwo odczytać jej parametry

 

Zasady:

Wszystkie argumenty, które chcemy używać jako filtry danych, powinny znaleźć się w kwerendzie JAKO KRYTERIA. Kryteria tekstowe najlepiej umieszczać z operatorem ‘zaczyna się od’. Pole miary powinno być sumowane, tzn należy ustawić funkcję agregującą ‘Suma’ w polu obliczanym (tu: ‘OW’). (Należy albo dwukrotnie kliknąć na ‘OW’ i w oknie edycji pola kwerendy wybrać funkcje ‘Suma’ jako funkcje agregującą albo ustawić się na ‘OW’ i jeden raz nacisnąć ikonkę ‘Autosuma’ na pasku narzędzi MS Query)

 

Usuwamy pole ‘Konto’ z kwerendy (ale nie z kryteriów)

 

 

 

Docelowe ustawienia -  widok kwerendy

 

 

 

Odczyt zapytania SQL w kwerendzie

(Wyłącznie w celu porównania z argumentami funkcji) 

 

 

Wskazanie miejsca umieszczenia kwerendy w arkuszu

 

 

 

Gotowa kwerenda

 

 

 

  1. Stworzenie funkcji na podstawie kwerendy (AFIN.NET) – Wybieramy opcję ‘AFIN.NET > Weź do raportu’, dostępną pod prawym przyciskiem myszy.

 

 

 

Następnie wskazujemy miejsce umieszczenia funkcji w arkuszu – może to być miejsce w innym, już docelowym arkuszu, gdzie chcemy umieścić nasz przyszły raport.

 

 

 

Gotowa funkcja w arkuszu

 

 

 

  1. Odczyt parametrów - parametryzacja formuły

 

 

 

Parametryzowanie formuły

Uruchomienie kreatora parametryzacji: Menu podręczne, druga ikona na pasku AFINA, skrót [Ctrl+F2] - na formule.

Temat „Parametryzowanie formuły” z widokami ekranów poszczególnych kroków znajduje się w osobnym artykule

http://afin.net/articles/AfinNet_Article_SimpleReport1_PL.htm 

 

 

 

 

  1. Budowa raportu

Kolumnę(y), zawierającą kwerendę można usunąć z arkusza (tu: widok przed usunięciem) – istnienie kwerendy w arkuszu nie ma wpływu na działanie funkcji.

 

 

 

Kolejne kroki w dostosowaniu raportu

Poniżej raportu – otwarty w Excelu plik DBF dla porównania odczytywanych wartości danych

     

 

 

Raport docelowo sformatowany. Jest to docelowa forma, stworzona ad-hoc.

Posiada ona wszystkie potrzebne parametry: ‘SumowanePole’, ‘WzorzecKonta’, ‘Rok’, ‘Miesiąc’, z tym, że w tej formie jest nieco skomplikowana.

 

Funkcję taką stworzyć można bez pomocy informatyka lub narzędzia wspomagającego przetworzenie skomplikowanego zapytania bazodanowego na prosty system zapisu parametrów funkcji DANE().

Tutaj funkcja posiada pełne argumenty, definiujące zarówno pełne źródło danych, jak i pełny tekst zapytania SQL, zwracającego żądane dane. Funkcja ta, dzięki temu, że jej argumenty są łańcuchami tekstowymi, jest już sparametryzowana odpowiednio umieszczonymi w nagłówkach tabeli wartościami – parametrami.

 

 

 

 

  1. Przetworzenie na definicję funkcji DANE()

 

Kreator budowy parametrów funkcji DANE() w przygotowaniu. Będzie dostępny za jakiś czas – prototyp można oglądać (i zgłaszać uwagi na etapie projektu) pod prawym przyciskiem myszy, ustawionej na funkcji GETDATAODBC()

 

Odczytane z kwerendy parametry źródła danych i zapytania bazodanowego:

 

Źródło danych:

DBQ=D:\AFIN\AFIN.NET\Samples\Data\ODBC\FinancialsTest\2007;Driver={Driver do Microsoft dBase (*.dbf)};

 

Zapytanie SQL, stworzone przez kwerendę:

SELECT SUM(ACC_01.OW) AS 'SUMA Z OW' FROM `ACC_01.DBF` ACC_01 WHERE (ACC_01.KONTO LIKE '011')

 

Zapytanie SQL, po uproszczeniu - optymalizacji:

SELECT SUM(OW) FROM ACC_01 WHERE (KONTO LIKE '011')

 

Gotowa, stworzona przez osobe przeszkoloną, definicja miary ‘Financial.Test’ w pliku DataModel.par.

[Measure Financials.Test]

About                          =Financial program - ODBC, without AFQL

Type                            =ODBC

ConnectionText            =DBQ=D:\AFIN\AFIN.NET\Samples\Data\ODBC\FinancialsTest\{Year};Driver={Driver do Microsoft dBase (*.dbf)};

QueryText                   =SELECT SUM({Value}) FROM ACC_{Month} WHERE (KONTO LIKE '{AccountNumber}')

GetDataArguments      ={Value},{AccountNumber},{Year},{Month}

SampleFunction           =GETDATA("Financials.Test";"ow";"012";"2007";"01")

 

  1. Budowa raportu w wersji docelowej

 

 

 

 

Jako efekt otrzymujemy prostą funkcję, posiadającą cztery czytelne argumenty: ‘SumowanePole’, ‘WzorzecKonta’, ‘Rok’, ‘Miesiąc’, tu: sparametryzowane wartościami w arkuszu.

 

GOTOWE.