p°edchozφ lekce (1.27) | obsah kurzu | nßsledujφcφ lekce (1.29) |
Filtr na databßzi m∙₧ete nastavit volßnφm procedury DbfSetFilter, kdy se zadßvß p°φmo
podmφnka filtru v syntaxi jazyk∙ xBase. P°φklad zadßnφ v²Üe uvedenΘ podmφnky:
DbfSetFilter("CENA>100.AND.CENA<200")
Pokud byste cht∞li nastavit filtr pro cenu menÜφ ne₧ 100 nebo v∞tÜφ ne₧ 200, museli
byste zadat:
DbfSetFilter("CENA<100.OR.CENA>200")
V podmφnce filtru se pou₧φvajφ p°φmo funkce v syntaxi jazyk∙ xBase (databßzovΘ
jazyky Dbase, FoxPro, Clipper), se kter²mi jsme se ji₧ seznßmili v p°edchozφch lekcφch
kurzu.
DalÜφ mo₧nostφ nastavenφ filtru je pou₧itφ dialogovΘho okna, kter² vyvolßte volbou 'Nastavit filtr' z PopUp menu zobrazenΘho po kliknutφ prav²m tlaΦφtkem myÜi na ploÜe databßzovΘho okna. Zobrazφ se dialogovΘ okno, ve kterΘm je v levΘ Φßsti zobrazena struktura databßze s uvedenφm typu polo₧ek a jejich dΘlek. Okno slou₧φ ke snadnΘmu zadßnφ podmφnky filtru bez nutnosti vypisovßnφ vÜech ·daj∙. To je nahrazeno kliknutφm myÜφ na nabφzenou variantu.
Ve st°ednφ Φßsti okna je uveden seznam funkcφ v syntaxi xBase pou₧iteln²ch k zadßnφ podmφnky filtru. V pravΘ Φßsti okna jsou naho°e zobrazeny tlaΦφtka s mo₧n²mi operacemi s daty (rovnß se, menÜφ, v∞tÜφ, menÜφ nebo rovno, v∞tÜφ nebo rovno, nerovnß se apod.). V pravΘ st°ednφ Φßsti obrazovky jsou zobrazena tlaΦφtka pro spojovßnφ podmφnek (.AND., .OR.,.NOT.). Ve spodnφ Φßsti okna je zobrazovßna podmφnka filtru s mo₧nostφ jejφ editace z klßvesnice. V pravΘ dolnφ Φßsti obrazovky jsou umφst∞na tlaΦφtka pro uzav°enφ okna se zadßnφm po₧adovanΘ akce. Kliknete-li na tlaΦφtko zruÜit, nebude filtr nastaven. Kliknitφm na tlaΦφtko 'Nastavit filtr' aktivujete v p°φpad∞ jeho sprßvnΘho sestavenφ zadan² filtr, data budou omezena dle zadanΘ podmφnky.
Po₧adovan² v²raz pro nastavenφ filtru mßte mo₧nost zadat p°φmo z klßvesnice ve spodnφ Φßsti dialogovΘho okna. Mßte takΘ mo₧nost pou₧φt tlaΦφtek pro pohodlnΘ zadßvßnφ jednotliv²ch element∙ v²razu pro nastavenφ filtru. V p°φpad∞ po₧adavku zadßnφ v²Üe uvedenΘho filtru by jsme postupovali nßsledujφcφm zp∙sobem:
1) Po kliknutφ myÜφ na polo₧ku CENA v levΘ Φßsti okna se zobrazφ polo₧ka ve spodnφ Φßsti okna, kde je podmφnka sestavovßna.
2) Klikneme myÜφ na symbol > kter² je umφst∞n v pravΘ hornφ Φßsti okna. Symbol se zobrazφ i v sestavovanΘ podmφnce.
3) Z klßvesnice dopφÜete hodnotu 100.
4) Kliknete v pravΘ st°ednφ Φßsti obrazovky na tlaΦφtko .AND. symbolizujφcφ spojenφ podmφnky.
5) Obdobn²m zp∙sobem doplnφte druhou Φßst filtru, to je CENA<200
6) Filtr aktivujete kliknutφm na tlaΦφtko Nastavit.
Po aktivaci filtru se zadanß podmφnka zobrazφ v hornφ Φßsti databßzovΘho okna. V takovΘm p°φpad∞ se zobrazujφ pouze data vyhovujφcφ zadanΘ podmφnce. Pokud chcete podmφnku deaktivovat, vyvolejte op∞t okno pro zadßnφ filtru a uzav°ete jej tlaΦφtkem ZruÜit. Filtr bude deaktivovßn a budou op∞t zobrazovßna vÜechna data.
Filtr mßte samoz°ejm∞ mo₧nost nastavit i p°φmo z programu. Pokud nap°φklad
pot°ebujete zv²Üit v cenφku ceny, kterΘ jsou vΦetn∞ DPH v∞tÜφ ne₧ 1000,- KΦ m∙₧ete pou₧φt
nßsledujφcφ program vyu₧φvajφcφ nßsledujφcφ program. Pro ty z vßs, kte°φ nevφ co je to DPH
bude staΦit, vysv∞tlenφ, ₧e se jednß o zv²Üenφ ceny v procentech, jeho₧ hodnota je
uvedena v polo₧ce DPH. Jednß se o da≥ z p°idanΘ hodnoty. V programu nejprve
nastavφme filtr a nßsledn∞ ji₧ zpracujeme ka₧d² zßznam. Nevyhovujφcφ zßznamy jsou
dφky nastavenΘmu filtru nep°φstupnΘ.
'program DBF_2.BPR
ConsoleClear
ConsoleShow
IF DbfUse("CENIK") then 'pokud se otev°ela databßze
DbfSetFilter("(CENA/100*(100+DPH))<1000")
'nastavit filtr pokud cena s da≥φ menÜφ ne₧ 1000 KΦ
DbfGoTop 'skok na zaΦß tek databßze
Do Until DbfEof 'dokud nenφ konec databßze
call DbfWriteNum("CENA",DbfReadNum("CENA")*1.1)
'zv²Üenφ ceny o 10 %
Writeln(DbfReadNum("CENA"))
DbfSkip(1) 'skok na dalÜφ zßznam
Loop
DbfSetFilter("") 'zruÜit nastaven² filtr
DbfUse("")
Else
ShowMessage("Databßzi 'CENIK.DBF' nebylo mo₧nΘé otev°φt !")
End If
V nßsledujφcφ lekci se seznßmφme i s dalÜφmi mo₧nostmi °eÜenφ v²Üe uvedenΘho ·kolu.
p°edchozφ lekce (1.27) | obsah kurzu | nßsledujφcφ lekce (1.29) |