Prikaz mej in trenda v grafikonu
V grafikon vrišite tolerančni pas in najmanjšo vrednost, več merilnih mest prikažite vsako kot svoj niz, zapise po mesecih preštejte kot stolpce ter odčitajte naklon in datum, ko bo dosežena meja.
Zahteva WKL Forms Object Library 1.60 ali novejšo različico.
Pregled rešitve
AddReference FromValue, [ToValue], [Caption], [Kind]doda mejno črto (ena vrednost) ali pas (dve vrednosti) v barvi vrste stanja (wskOk,wskWarn,wskBad,wskInfo). Os vrednosti vedno zajame vse meje in pasove.ClearReferencesjih odstrani vse.- Široki ali dolgi podatki:
YFields = "Debelina;Nazivna"da en niz za vsako polje;YFields = "Debelina"sSeriesField = "Mesto"da en niz za vsako vrednost poljaMesto. - Združevanje:
Aggregate(wcaSum,wcaAverage,wcaCount,wcaMin,wcaMax) sPeriod(wcyDay…wcyYear) združuje datumsko os.wcaCountne potrebuje polja Y. - Trend: z
ShowTrend = Truevsak niz dobi črtkano premico po metodi najmanjših kvadratov;TrendSlope(i)je sprememba na enoto X (na datumski osi na dan),TrendReaches(i, Value)pa datum, ko premica dosežeValue, aliNull.
Izvedba
Vsi trije grafikoni se nastavijo v Form_Load obrazca s kontrolniki WKL Chart chtDebelina,
chtVse in chtMesec; tabele so tiste iz vadnice
(Prikaz niza meritev z mejo in trendom), dodana pa je
poizvedba qryMeritevMesto (SELECT tblMeritev.Datum, tblMeritev.Debelina, tblMesto.Ime AS Mesto FROM tblMeritev INNER JOIN tblMesto ON tblMeritev.MestoID = tblMesto.ID).
Option Compare Database
Option Explicit
Private Sub Form_Load()
On Error GoTo ErrorHandler
' One point with its tolerance band and minimum.
With Me!chtDebelina.Object
.RecordSource = "SELECT Datum, Debelina FROM tblMeritev WHERE MestoID = 1"
.XField = "Datum"
.YFields = "Debelina"
.ShowTrend = True
.ClearReferences
.AddReference 9, 10, "Toleranz", wskOk
.AddReference 8.5, , "Minimum", wskBad
End With
' All points, one series each, from long data.
With Me!chtVse.Object
.RecordSource = "qryMeritevMesto"
.XField = "Datum"
.YFields = "Debelina"
.SeriesField = "Mesto"
End With
' Measurements per year as columns.
With Me!chtMesec.Object
.RecordSource = "tblMeritev"
.XField = "Datum"
.ChartType = wctColumn
.Aggregate = wcaCount
.Period = wcyYear
End With
FinalHandler:
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbExclamation
Resume FinalHandler
End Sub
Private Sub chtDebelina_DataLoaded(ByVal Points As Long)
On Error GoTo ErrorHandler
' Slope per day, shown per year; the date the minimum is reached, or Null.
Debug.Print "Na leto: "; Format(Me!chtDebelina.Object.TrendSlope(0) * 365.25, "0.00"); " mm"
Debug.Print "Minimum dosežen: "; Nz(Me!chtDebelina.Object.TrendReaches(0, 8.5), "nikoli")
FinalHandler:
Exit Sub
ErrorHandler:
Debug.Print Err.Description
Resume FinalHandler
End Sub
Opombe
- Nastavljanje lastnosti eno za drugo po vsaki spremembi znova prebere podatke; vmesni
DataLoadedzLastErrorje običajen, dokler nastavitve niso popolne. Če jih nastavite v pogledu načrta (ali v oblikovalniku), se temu izognete. - Vrstica brez berljive vrednosti X se ne nariše; šteje jo
RowsWithoutX. - Manjkajoča vrednost Y prekine črto (
Missing = wcvGap);wcvConnecttočko izpusti,wcvZerojo šteje kot 0. Obdobje brez vsake vrednosti je vrzel, ne 0. - Več kot 2.000 točk na črti se za prikaz zgosti, grafikon pa to sporoči; trend in os uporabljata vse vrednosti.
- Klik na vnos legende skrije ali prikaže njegov niz (
SeriesVisible); klik na točko sprožiPointClick(Series, X, Y).
Sorodne teme
- WklChart: vsi člani in dogodki.
sl/wiki/msaccess/comctl/how-to/show-limits-and-a-trend-in-a-chart.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille