Color scheme: Riviera
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Prikaz vrednosti kot toplotnega zemljevida

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.
  • MidColor doda tretjo barvo, na primer rdečo, rumeno in zeleno okoli ciljne vrednosti (MidValue). Z MidColor = -1 (privzeto) ima lestvica dve barvi.
  • Celice s temnim ozadjem dobijo belo pisavo. ForeColor pravila 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.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/show-values-as-a-heat-map.txt · Last modified: by Wolfgang van der Stille