Azokról a tárgyhavi kimenő számlákról szeretnék egy listát, amelyek olyan ügyfeleknek lett kiállítva, akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek.
A listán legyen rajta: A számlaszáma, az ügyfél neve, a számla végösszege
Annak érdekében, hogy a célt ne tévesszük szem elöl, érdemes a feladat elemzése során rögtön a feladat lényegét megfogalmazni.
A feladatot végig gondolni az alábbi logika alapján érdemes, viszont a végrehajtás ellentétes irányú. Vagyis az alábbi kép alapján a legbensőbb elem létrehozásával kell majd kezdeni a végrehajtást (A1.3.1, A1.2.1, A1.1.1)
A feladat lényegét pedig úgy kell megfogalmazni, hogy bizonylattípussal kapcsolatos eredmény
Jelen esetben a Főfeladat pirossal kiemelve: Azokról a tárgyhavi kimenő számlákról szeretnék egy listát, amelyek olyan ügyfeleknek lett kiállítva, akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek.
Vagyis az ügyfél a kimenő számlákról akar egy listát.
Ez alapján a Bizonylattípus: Vevőszámla
Ha listát akar az ügyfél, akkor két kérdést kell listázni egy listához: Listasor, Szűrés
A Listasor az igényből: A listán legyen rajta: A számlaszáma, az ügyfél neve, a számla végösszege
A Szűrésre vonatkozóan a kiemelt szavak: Azokról a tárgyhavi kimenő számlákról szeretnék egy listát, amelyek olyan ügyfeleknek lett kiállítva, akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek.
Ebből az következik, hogy egy olyan szűrést kell készítenünk, amiben a számlák teljesítés dátumára és ügyfelére vonatkozó szűrés van.
Számlákról listát a vevőszámla szűrés funkcióban lehet készíteni.
A tárgyhóra vonatkozó szűrést könnyen be lehet állítani a relatív dátumok segítségével, de hogyan lehet beállítani azt, hogy olyan ügyfelek, akiknek tavaly előtt forgalmuk volt, tavaly nem, de idén igen?
Ennek a mondatnak az értelmezése során rögtön kiviláglik, hogy a főfeladat végrehajtásához a programnak előbb egy alfeladatot kell végrehajtania (A1). Az alfeladat eredményét kell majd a főfeladat szűrésében megadni.
Alfeladatot kiemeljek a feladat kiírásból:
...olyan ügyfeleknek lett kiállítva, akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek.
A mondatból egyértelmű, hogy ügyfél egy halmazát kell meghatározni, vagyis a Bizonylattípus = Ügyfél
nem kell nyomtatható listát készíteni, csak az ügyfelek halmazát kell átadni a Főfeladatnak, ezért erre a kérdésre nem kell válaszolni.
A Szűrésre vonatkozóan a kiemelt szavak: .. akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek
A szűrésmondat elemzése után rájöhetünk, hogy itt három ügyfélhalmazzal történő halmaz műveletre van szükség.
Ha több halmazzal kell dolgozni, akkor egy olyan Ügyfélszűrést kell létrehozni, amely több szűrés kiértékelését végzi, vagyis egy ún. Összetett szűrésre van szükség.
Ahhoz, hogy az Összetett szűrés kiértékelhető legyen további ügyfélszűrésekre van szükség, vagyis az alfeladat alfeladataira van szükség:
A1.1. - Tavaly előtt vásárolt ügyfelek
A1.2 - Tavaly vásárolt ügyfelek
A1.3 - Idény vásárolt ügyfelek
Ezekből halmaz műveletet kell létrehozni. azok kellenek, akik A1.1-ben és A1.3 is benne vannak, de azok nem kellenek, akik az A1.2-ben voltak.
Ebből adódik a halmaz művelet: A1.1 metszve A1.3, majd az eredményből kivonom az A1.3-t
Szűrésképlet= A1.1 * A1.3 - A1.2
Az igazi képletben (lásd kép) a szűrésváltozatok kódjára vonatkozó értékek szerepelnek.
Alfeladatot kiemeljek a feladat kiírásból:
...olyan ügyfeleknek lett kiállítva, akiknek tavaly előtt volt forgalmuk, tavaly nem volt és idén újra a vásárlóink lettek.
Ügyfél
A Szűrésre vonatkozóan a kiemelt szavak: .. akiknek tavaly előtt volt forgalmuk
Ügyfél szűrést kell létrehozni, amiben tavalyi előtti számlára vonatkozó forgalom szűrést kell helyezni.
Ebből az következik, hogy ahhoz, hogy az A1.1 végrehajtásához szükséges még egy feladat: A1.1.1
Alfeladatot kiemeljek a feladat kiírásból:
... tavaly előtt volt forgalmuk..
Vevőszámla
A Szűrésre vonatkozóan a kiemelt szavak: .. akiknek tavaly előtt..
Vevőszámla szűrést kell létrehozni, amiben a számla teljesítésre vonatkozó relatív dátum szűrést kell létrehozni.
Tavaly előtt teljesített számlák
Az A1.2-t az A1.1 mintájára kell létrehozni, vagyis először kell hozzá egy A1.2.1, amiben a tavalyi számlák vannak.
Az A1.3-t az A1.1 mintájára kell létrehozni, vagyis először kell hozzá egy A1.3.1, amiben az idei számlák vannak.