Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » Pogledi podatkov » WklChart » Prikaz niza meritev z mejo in trendom

Prikaz niza meritev z mejo in trendom

Zgradite obrazec, ki za vsak zapis prikaže eno merilno mesto, ob njem pa debelino stene tega mesta skozi čas: črto z najmanjšo vrednostjo kot mejno črto, črtkan trend in datum, ko trend doseže najmanjšo vrednost.

Predpogoji

  • Microsoft 365 Access ali Access Runtime, v 32- ali 64-bitni različici, z nameščenim paketom WKL Forms Object Library 1.60 ali novejšim, registriranim za trenutnega uporabnika sistema Windows (Namestitev izdanega paketa).

Koraki

1. Ustvarite tabeli

Proceduro prilepite v standardni modul in jo enkrat zaženite iz okna Immediate (CreateChartSample). Ustvari dve merilni mesti in njune meritve; mesto TML-1 vsako leto izgubi 0,25 mm.

Public Sub CreateChartSample()
    Dim db As DAO.Database, i As Long
    On Error GoTo ErrorHandler
 
    Set db = CurrentDb
    db.Execute "CREATE TABLE tblMesto (ID LONG CONSTRAINT PK_Mesto PRIMARY KEY, Ime TEXT(50), MinDebelina DOUBLE)"
    db.Execute "CREATE TABLE tblMeritev (ID COUNTER CONSTRAINT PK_Meritev PRIMARY KEY, MestoID LONG, Datum DATETIME, Debelina DOUBLE)"
    db.Execute "INSERT INTO tblMesto VALUES (1, 'TML-1', 8.5)"
    db.Execute "INSERT INTO tblMesto VALUES (2, 'TML-2', 6)"
    For i = 0 To 7
        db.Execute "INSERT INTO tblMeritev (MestoID, Datum, Debelina) VALUES (1, #" & Format(DateSerial(2018 + i, 3, 1), "yyyy-mm-dd") & "#, " & Str(10 - 0.25 * i) & ")"
    Next
    For i = 0 To 2
        db.Execute "INSERT INTO tblMeritev (MestoID, Datum, Debelina) VALUES (2, #" & Format(DateSerial(2020 + i, 6, 1), "yyyy-mm-dd") & "#, " & Str(7 - 0.1 * i) & ")"
    Next
 
FinalHandler:
    Set db = Nothing
    Exit Sub
 
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    Resume FinalHandler
End Sub

2. Vstavite grafikon

V pogledu načrta ustvarite obrazec frmMesto z virom zapisov tblMesto, poljema z besedilom Ime in MinDebelina ter nevezanim poljem z besedilom txtDosezeno. Izberite Načrt obrazca › Kontrolniki › Kontrolniki ActiveX (Form Design › Controls › ActiveX Controls), desno vstavite WKL Chart in ga poimenujte Chart1. Shranite in zaprite obrazec.

3. Vežite grafikon

Nastavitve grafikona se shranijo z obrazcem. Nastavite jih enkrat s kodo v pogledu načrta (iz okna Immediate zaženite BindChart) ali v njegovem oblikovalniku (list z lastnostmi, zavihek Drugo, vrstica Po meri, [...], strani Podatki, Videz in Povezava).

Public Sub BindChart()
    Dim c As Object
    On Error GoTo ErrorHandler
 
    DoCmd.OpenForm "frmMesto", acDesign
    Set c = Forms("frmMesto").Controls("Chart1").Object
    c.RecordSource = "tblMeritev"
    c.XField = "Datum"             ' a date: time axis with calendar steps
    c.YFields = "Debelina"
    c.LinkMasterFields = "ID"      ' follow the current record, as a subform does
    c.LinkChildFields = "MestoID"
    c.Title = "Debelina stene"
    c.YFormat = "0.0"
    c.ShowTrend = True
    DoCmd.Close acForm, "frmMesto", acSaveYes
 
FinalHandler:
    Set c = Nothing
    Exit Sub
 
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    Resume FinalHandler
End Sub

4. Narišite mejo in pokažite, kdaj bo dosežena

Odprite modul obrazca frmMesto in dodajte:

Option Compare Database
Option Explicit
 
Private Sub Form_Current()
    On Error GoTo ErrorHandler
 
    With Me!Chart1.Object
        .ClearReferences
        .AddReference Me!MinDebelina, , "Minimum", wskBad
    End With
 
FinalHandler:
    Exit Sub
 
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    Resume FinalHandler
End Sub
 
Private Sub Chart1_DataLoaded(ByVal Points As Long)
    Dim reached As Variant
    On Error GoTo ErrorHandler
 
    If Len(Me!Chart1.Object.LastError) > 0 Then
        Me!txtDosezeno = Me!Chart1.Object.LastError
        GoTo FinalHandler
    End If
    reached = Me!Chart1.Object.TrendReaches(0, Me!MinDebelina)
    If IsNull(reached) Then
        Me!txtDosezeno = "Trend ne doseže minimuma"
    Else
        Me!txtDosezeno = "Minimum dosežen " & Format(reached, "d. m. yyyy")
    End If
 
FinalHandler:
    Exit Sub
 
ErrorHandler:
    Me!txtDosezeno = Err.Description
    Resume FinalHandler
End Sub

5. Preizkusite

Odprite frmMesto v pogledu obrazca. Grafikon prikazuje osem meritev mesta TML-1, ki padajo od 10,0 do 8,25, rdečo črto Minimum pri 8,5 in črtkan trend; txtDosezeno navaja datum v letu 2024. Pojdite na naslednji zapis: grafikon prebere tri meritve mesta TML-2 in nariše njegovo mejo pri 6.

Pričakovani rezultat

Grafikon sledi trenutnemu merilnemu mestu, njegovo mejo vedno prikaže znotraj osi vrednosti in sporoči datum, ko jo trend doseže. Napačen vir zapisov ne ustavi obrazca: grafikon izriše napako, LastError pa vsebuje njeno besedilo.

Naslednji koraki

sl/wiki/msaccess/comctl/data-views/chart/tutorial.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille