Seinale paigaldatud kasutajatoe staatusekraan - Kuidas

Seinale paigaldatud kasutajatoe staatusekraan

Mida ma tahtsin, oli veebileht, mis näeks põhitähelepanu ülevaatele oma vürtsitööde abipiletite kohta

nii palju, kui kasutajatele, kes tulevad abiteksti juurde, teavad, kus me oleme töökohal

plaan on omada värskendavat html-lehekülge, mis käivitatakse vanal varukülalisel kliendil ja kuvatakse seina mounter 19 "ekraanil

8 astet kokku

1. samm: andmebaasi juurdepääs

1. ma vajasin juurdepääsu spiceworks andmebaasi
Ma leidsin, et sqlite jaoks on ODBC draiver (DB-i taga spiceworks'i taga

selle saab alla laadida
http://www.ch-werner.de/sqliteodbc/

panin selle üles DSN-i samas serveris, kus töötab spiceworks

2. etapp: DB lugemine

Nüüd on mul oma DSN-i, mida ma saan kirjutada VBScripti, et tõmmata info DB-ist ja kirjutada HTML-fail

Ma tean, et VBScript ei ole trendikas ja asp.net töötab
aga ma tean, et VBscript on nii, mida ma kasutan

allpool leida minu VBScript-fail

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3

Määra objFS = CreateObject ("Skriptimine.Faili süsteem")
Määra objNewFile = objFS.CreateTextFile ("status.html")

Määra objConnection = CreateObject ("ADODB.Connection")
Määra objRecordset = CreateObject ("ADODB.Recordset")

kõned = 0
opencalls = 0
suletud pallid = 0
unassignedcalls = 0
pb = 0
pg = 0
dp = 0
kw = 0

objConnection.Open "DSN = spice2;"

objRecordset.CursorLocation = adUseClient
objRecordset.Avage "SELECT staatus, määratud_to, closed_at FROM piletid", objConnection, _
adOpenStatic, adLockOptimistic

objRecordSet.MoveFirst

Tehke kuni objRecordset.EOF

'Wscript.Echo objRecordset.Fields.Item ("id")

Kui objRecordset.Fields.Item ("status") = "open" Siis
opencalls = opencalls + 1
Lõpeta kui

Kui ei ole isnull (objRecordset.Fields.Item ("closed_at")) Seejärel
closedDate = Vasak (objRecordset.Fields.Item ("closed_at"), 10)
Kui objRecordset.Fields.Item ("status") = "suletud"
Kui DateDiff ("d", suletud kuupäev, nüüd) <30 Seejärel
closedcalls = closedcalls + 1
Lõpeta kui
Lõpeta, kui
Lõpeta kui

Kui IsNull (objRecordset.Fields.Item ("määratud_to")), siis
unassignedcalls = unassignedcalls + 1
Lõpeta kui

Kui objRecordset.Fields.Item ("määratud_to") = "1" Siis
Kui objRecordset.Fields.Item ("status") = "open" Siis
pb = pb + 1
Lõpeta kui
Lõpeta kui

Kui objRecordset.Fields.Item ("määratud_to") = "2"
Kui objRecordset.Fields.Item ("status") = "open" Siis
dp = dp + 1
Lõpeta kui
Lõpeta kui

Kui objRecordset.Fields.Item ("määratud_to") = "3" Siis
Kui objRecordset.Fields.Item ("status") = "open" Siis
pg = pg + 1
Lõpeta kui
Lõpeta kui

Kui objRecordset.Fields.Item ("määratud_to") = "4"
Kui objRecordset.Fields.Item ("status") = "open" Siis
kw = kw + 1
Lõpeta kui
Lõpeta kui

objRecordSet.MoveNext

Loop

kõned = objRecordset.RecordCount

objRecordSet.Sulge
objConnection.Sulge

objNewFile.WriteLine "// W3C // DTD HTML 4.01 // EN>"
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Vernalis ITI Helpdesk Call Status System"
objNewFile.WriteLine ""
objNewFile.WriteLine ""

objNewFile.WriteLine "Helista olek @" ja nüüd () & "

'

objNewFile.WriteLine "

'

Kui pole määratud jaotusi> 0 Seejärel

objNewFile.WriteLine ""
objNewFile.WriteLine "UN:" & unassignedcalls & "
'
objNewFile.WriteLine ""

Veel üks

objNewFile.WriteLine "
'

Lõpeta kui

objNewFile.WriteLine "PB:" & pb & "
DP: "& dp &"
KW: "& kw &"
PG: "& lk

objNewFile.WriteLine "

'

Kui siis avaneb> 50

objNewFile.WriteLine ""
objNewFile.WriteLine opencalls
objNewFile.WriteLine ""

Veel üks

objNewFile.WriteLine ""
objNewFile.WriteLine opencalls
objNewFile.WriteLine ""

Lõpeta, kui

objNewFile.WriteLine "
"& suletud & viimased 30 päeva suletud kõned"

objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.Close

3. etapp: VBScripti põhipunktid

kuna ma ei ole seda skripti kommenteerinud, siis mainin selle mõningaid põhipunkte

objRecordset.CursorLocation = adUseClient
objRecordset.Avage "SELECT staatus, määratud_to, closed_at FROM piletid", objConnection, _
adOpenStatic, adLockOptimistic

tõmbab DB-st kõik kirjed, kuid ainult 3 väljad, mida ma huvitan, leidsin, et olin laisk ja tõmbasin kõik väljad, mis sain z_fail-vea, mis minu arvates on seotud nullväljadega, nii et ma tõmban ainult seda, mida ma vajan

minu massiivne nimekiri, kas avaldused töötlevad iga kirjet ja täidetavad tingimused lisavad 1 erinevatele muutujaile

skripti teine ​​pool kirjutab html-faili rida rea ​​järgi
kep punktid on

objNewFile.WriteLine ""

laadige see leht uuesti iga 10 sekundi järel

Kui pole määratud jaotusi> 0 Seejärel

objNewFile.WriteLine ""
objNewFile.WriteLine "UN:" & unassignedcalls & "
'
objNewFile.WriteLine ""

Veel üks

objNewFile.WriteLine "
'

selles osas vaadeldakse muutmata eraldamata kõnesid ja kui suurem kui 0 kirjutab ridu selle muutuja väärtuse pildistamiseks ja mõned vormingud välisest css-failist, vaata hilisemaid samme

kui mitte rohkem kui 0, kirjutab see ainult
(uus rida html-s)

ma tegin midagi sarnast, kui arvukate avatud kõnede arv on hilisem kui 50 avatud kõne puhul kasutage erinevat vormingut, mis teeb numbri punase

objNewFile.WriteLine "PB:" & pb & "
DP: "& dp &"
KW: "& kw &"
PG: "& lk

see rida näitab, kui palju on minu meeskonna 4 inimesele määratud kõned
see lükatakse css vasakule

minu viimane bit on
objNewFile.WriteLine "
"& suletud & viimased 30 päeva suletud kõned"

see näitab viimase 30 päeva jooksul suletud kõnede arvu

kui ei ole IsNull (objRecordset.Fields.Item ("closed_at")) Seejärel
closedDate = Vasak (objRecordset.Fields.Item ("closed_at"), 10)
Kui objRecordset.Fields.Item ("status") = "suletud"
Kui DateDiff ("d", suletud kuupäev, nüüd) <30 Seejärel
closedcalls = closedcalls + 1

ma tunnistan, et see on jama ja ma olen kindel, et selleks on paremad viisid

nüüd kõik ülalnimetatud teadmisega tean, et on palju viise, kuidas seda kõike teha
ja palju töödeldakse tsql-is
kuid mul on parem kiire määrdunud VBScript kui sql

Samm 4: css

minu css fail on allpool, kui keegi tahab taastada seda, mida ma siiani olen
keha {
font-pere: Gruusia, "Times New Roman",
Ajad, serif;
fondi suurus: 30 pt;
värv: must;
taustavärv: valge}

#leftmain {
float: vasakule;
laius: 15%; }

span.open {
font-pere: Helvetica, Genf, Arial,
SunSans-Regular, sans-serif;
värvus: roheline;
fondi suurus: 400 pt}

span.openhigh {
font-pere: Helvetica, Genf, Arial,
SunSans-Regular, sans-serif;
värvus: punane;
fondi suurus: 400 pt}

span.unass {
font-pere: Helvetica, Genf, Arial,
SunSans-Regular, sans-serif;
värvus: punane;
taustavärv: valge}

5. etapp: toodetud html proov

allpool on html-faili koopia täna
// W3C // DTD HTML 4.01 // EN>

ITI kasutajatoe kõne olekusüsteem

Helista olek @ 16/01/2009 13:44:00





PB: 7
DP: 12
KW: 19
PG: 1


39


16 viimase 30 päeva jooksul suletud kõned

6. samm: tulevik

olen nüüd oma koodile lisanud nii, et iga 30 minuti järel, kui nüüd on nüüdsest min 0, või 30

iga inseneri määratud telefoninumber korrutatakse juhusliku numbriga

seejärel kuvatakse ekraanil madalaimad numbrid anme sõnumiga "Tee tee"

7. samm: ASP

minu frinedide abiga

http://www.halfshoring.com/

kogu asi on kirjutatud ASP-sse
tõhusamaks

asp kood allpool
------------------------------------------------
ï »¿(kuupäev („ nüüd ”) + 30))”


'Setup Column muutujad, mida me kasutame VBSis kasutatava elemendi ("" asemel) asemel
Dim ColStatus, ColAssignedTo, ColClosedAt
ColStatus = 0
ColAssignedTo = 1
ColClosedAt = 2

'Loo andmebaasi objektid
"peaaegu sama, mis VBS, kuid kasutage CreateObjecti asemel Server.CreateObjecti

Dim arrRecords
Dim blnResults

Dim objon
Set objConn = Server.CreateObject ("ADODB.Connection")
Dim objRS
Seada objRS = Server.CreateObject ("ADODB.Recordset")

'Avage DB ühendus
objConn.Open (strConn)

'Käivitage SQL ja laadige see salvestusseadmesse
objRS.Open strSql, objConn

'Jätkake ainult siis, kui salvestis ei ole tühi, muidu peatage
Kui ei ole objRS.EOF
'Laadige kogu salvestusseade massiivi
„See tähendab, et me ei hoia salvestust lehe avamisel avatud,
„vähendades seega DB serveri ja IIS koormust
arrRecords = objRS.GetRows ()
Veel üks
Vastus
Lõpeta kui

'Sulgege DB ühendus
objConn.Sulge

„Tühjendage meie DB ja salvestusseadme muutujad
Määra objConn = Miski
Set objRS = Miski pole

„Andmed on nüüd salvestatud arrRecords

'Loo meie loendurid
Mõelge intOpenCalls, intUnassignedCalls, intClosedCalls
Dim intPBCalls, intDPCalls, intPGCalls, intKWCalls

„Keerake kõiki andmeid arrRecordsis ja arvutage kokku
Dim i
i = 0
Tehke

Kui arrRecords (ColStatus, i) = "open"
intOpenCalls = intOpenCalls + 1
Lõpeta kui

Kui ei ole tühi (arrRecords (ColClosedAt, i)) Ja arrRecords (ColStatus, i) = "suletud"
intClosedCalls = intClosedCalls + 1
Lõpeta kui

Kui IsNull (arrRecords (ColAssignedTo, i)) siis
intUnassignedCalls = intUnassignedCalls + 1
Lõpeta kui

Kui arrRecords (ColAssignedTo, i) = "1" ja arrRecords (ColStatus, i) = "open"
intPBCalls = intPBCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "2" Ja arrRecords (ColStatus, i) = "open"
intDPCalls = intDPCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "3" Ja arrRecords (ColStatus, i) = "open" Siis
intPGCalls = intPGCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "4" ja arrRecords (ColStatus, i) = "open"
intKWCalls = intKWCalls + 1
Lõpeta kui

i = i + 1

Loop kuni I> UBound (arrRecords, 2)

Dim intTotalKõned
intTotalCalls = Ubound (arrRecords, 2)

„Nüüd on meil kõik väärtused, mis võimaldab luua HTML-lehe

%>
// W3C // DTD HTML 4.01 // EN>

ITI kasutajatoe kõne olekusüsteem

Helista olek @





PB:
DP:
KW:
PG:



viimase 30 päeva jooksul suletud kõned

8. samm: märkus 1

märkida

kui kasutaja logib sisse
ja sulgeb selle enne, kui see kasutajale määratakse
see kuvatakse eraldamata
kuigi see on suletud

Kokkuvõtteks
Ma ei ole ka selle kirjutamisel hea
püüan vastata kõikidele küsimustele, mis inimestel on

VBScript töötab iga 60 sekundi järel Windowsi ülesannete planeerijast
ja html self reloads iga 10 sekundi järel, nii et ekraan on tavaliselt kuni 70 sekundit

kuna brauseris ei käivitu skripti, ei ole brauseris kasutatud annus oluline

aja jooksul lisan ekraanile täiendavaid väljad, kuid ma pole kindel, mis veel

kõik õudused on teretulnud
koos mõtete ja kommentaaridega

mul on küsitud abrevatsioonide kohta
pb
lk
db
kw

siis on minu meeskonnaliikmete initsiaalid
ja iga kõrval asuvad numbrid on igale inimesele määratud töökohtade arv

initsiaalid on kodeeritud asp-lehel, kuid ajas on mul see nimede / initsiaalide saamiseks sobivast tabelist