Prikaz vrednosti kot toplotnega zemljevida
Kako se vrednosti porazdelijo v dveh razsežnostih, na primer prijave po dnevih v tednu in urah, prikažete s tabelo, katere celice so obarvane glede na vrednost: svetlo, kjer je vrednosti malo, temno, kjer jih je veliko.
Predpogoji: WKL Forms Object Library 1.62 ali novejša.
Pregled rešitve
Navzkrižna poizvedba vrne vrstico za vsak dan v tednu in stolpec za vsako uro. Kontrolnik WklGrid prikaže poizvedbo,
pravilo barvne lestvice (wrkColorScale) za vsak stolpec ure pa obarva vsako celico med MinColor in MaxColor. Ker
vsako pravilo umeri lestvico po vrednostih svojega stolpca, dobijo vsa pravila enaka fiksna konca (MinValue,
MaxValue). Tako ima isto število v vsakem stolpcu isto barvo.
Izvedba
Potrebujete dve poizvedbi: qryPrijaveNaUro šteje prijave po dnevih in urah, navzkrižna poizvedba qryPrijaveToplotno
pa ure pretvori v stolpce od 00 do 23 (z 0 namesto prazne celice).
-- qryPrijaveNaUro SELECT Weekday([PrijavljenOb], 2) AS DanVTednu, HOUR([PrijavljenOb]) AS Ura, COUNT(*) AS Prijave FROM tblPrijava GROUP BY Weekday([PrijavljenOb], 2), HOUR([PrijavljenOb]); -- qryPrijaveToplotno TRANSFORM Nz(COUNT([ID]), 0) AS Prijave SELECT Weekday([PrijavljenOb], 2) AS DanVTednu FROM tblPrijava GROUP BY Weekday([PrijavljenOb], 2) PIVOT Format(HOUR([PrijavljenOb]), "00") IN ("00","01","02","03","04","05","06","07","08","09","10","11", "12","13","14","15","16","17","18","19","20","21","22","23");
Private Sub Form_Load()
Dim highest As Variant
Dim h As Integer
highest = DMax("Prijave", "qryPrijaveNaUro") ' one scale for all columns
With Me!Grid1.Object
.RecordSource = "qryPrijaveToplotno"
.KeyField = "DanVTednu"
.FormatRules.Clear
For h = 0 To 23
With .FormatRules.Add(Format(h, "00"), wrkColorScale)
.MinColor = RGB(255, 255, 255)
.MaxColor = RGB(31, 78, 121)
.MinValue = 0
.MaxValue = Nz(highest, 1)
End With
Next h
End With
End Sub
Opombe
- Brez fiksnih koncev sega barvna lestvica od najmanjše do največje naložene vrednosti svojega stolpca. Za en sam stolpec je to ustrezno, v toplotnem zemljevidu z več stolpci pa bi bila vsaka ura obarvana po svoji največji vrednosti.
MidColordoda tretjo barvo, na primer rdečo, rumeno in zeleno okoli ciljne vrednosti (MidValue). ZMidColor= -1 (privzeto) ima lestvica dve barvi.- Celice s temnim ozadjem dobijo belo pisavo.
ForeColorpravila ima prednost. - Pravilo višje na seznamu, ki nastavi ozadje, ima prednost pred barvno lestvico.
- V načinu visokega kontrasta sistema Windows barvna lestvica ne obarva celic; pomen morajo tedaj nositi števila v celicah.
- Če želite barve ohraniti v Excelu, izvozite tabelo tako, kot je prikazana:
ExportToXlsx pot, wemWysiwyg. Privzeti izvoz (wemDataAware) zapiše samo vrednosti.