Skrin Status Sokongan Dinding dipasang - Bagaimana Untuk

Skrin Status Sokongan Dinding dipasang

Apa yang saya mahu ialah laman web yang akan memaparkan asas pada gambaran keseluruhan gambaran kerja rempah saya membantu tiket meja

seperti banyak untuk pengguna yang datang ke meja bantuan seperti IT untuk mengetahui di mana kita berada di tempat kerja dengan bijak

rancangannya adalah untuk mempunyai halaman html menyegarkan diri ini akan dijalankan pada klien tipis yang lama dan dipaparkan pada dinding mounter 19 "screen

8 langkah total

Langkah 1: akses pangkalan data

Pertama saya perlu mendapat akses kepada pangkalan data spikeworks
saya mendapati ada pemandu ODBC untuk sqlite (DB di belakang spikeworks

ini boleh dimuat turun dari
http://www.ch-werner.de/sqliteodbc/

saya menetapkan ini sebagai DSN pada pelayan yang sama menjalankan spikeworks

Langkah 2: Membaca DB

sekarang saya mempunyai DSN saya boleh menulis VBScript untuk menarik maklumat dari proses DB dan menulis fail HTML

Saya tahu VBScript tidak bergaya dan asp.net akan berfungsi
tetapi saya tahu VBscript jadi apa yang saya gunakan

di bawah mencari fail VBScript saya

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

Tetapkan objFS = CreateObject ("Scripting.FileSystemObject")
Tetapkan objNewFile = objFS.CreateTextFile ("status.html")

Tetapkan objConnection = CreateObject ("ADODB.Connection")
Tetapkan objRecordset = CreateObject ("ADODB.Recordset")

panggilan = 0
opencalls = 0
ditutup = 0
unassignedcalls = 0
pb = 0
pg = 0
dp = 0
kw = 0

objConnection.Open "DSN = spice2;"

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT status, assigned_to, closed_at FROM tickets", objConnection, _
adOpenStatic, adLockOptimistic

objRecordSet.MoveFirst

Lakukan Sehingga objRecordset.EOF

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

Jika objRecordset.Fields.Item ("status") = "buka" Kemudian
opencalls = opencalls + 1
Akhir Jika

Jika Tidak IsNull (objRecordset.Fields.Item ("closed_at")) Kemudian
closedDate = Kiri (objRecordset.Fields.Item ("closed_at"), 10)
Jika objRecordset.Fields.Item ("status") = "ditutup" Kemudian
Jika DateDiff ("d", tutup sekarang) <30 Kemudian
closedcalls = closedcalls + 1
Akhir Jika
Tamat jika
Akhir Jika

Jika IsNull (objRecordset.Fields.Item ("assigned_to") Kemudian
unassignedcalls = unassignedcalls + 1
Akhir Jika

Jika objRecordset.Fields.Item ("assigned_to") = "1" Kemudian
Jika objRecordset.Fields.Item ("status") = "buka" Kemudian
pb = pb + 1
Akhir Jika
Akhir Jika

Jika objRecordset.Fields.Item ("assigned_to") = "2" Kemudian
Jika objRecordset.Fields.Item ("status") = "buka" Kemudian
dp = dp + 1
Akhir Jika
Akhir Jika

Jika objRecordset.Fields.Item ("assigned_to") = "3" Kemudian
Jika objRecordset.Fields.Item ("status") = "buka" Kemudian
pg = pg + 1
Akhir Jika
Akhir Jika

Jika objRecordset.Fields.Item ("assigned_to") = "4" Kemudian
Jika objRecordset.Fields.Item ("status") = "buka" Kemudian
kw = kw + 1
Akhir Jika
Akhir Jika

objRecordSet.MoveNext

Loop

panggilan = objRecordset.RecordCount

objRecordSet.Close
objConnection.Close

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 "Status Panggilan @" & Sekarang () & "

'

objNewFile.WriteLine "

'

Jika tidak ditetapkan> 0 Kemudian

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

Lain

objNewFile.WriteLine "
'

Akhir Jika

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

objNewFile.WriteLine "

'

Jika opencalls> 50 kemudian

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

Lain

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

Tamat jika

objNewFile.WriteLine "
"& closedcalls &" Panggilan ditutup dalam 30 hari lepas "

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

Langkah 3: mata utama VBScript

kerana saya tidak mengulas kesusasteraan ini namun tidak menyentuh beberapa perkara penting

objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT status, assigned_to, closed_at FROM tickets", objConnection, _
adOpenStatic, adLockOptimistic

menarik dari DB rekod semua tetapi hanya 3 bidang saya intrested dalam saya mendapati jika saya malas dan menarik semua bidang saya mendapat ralat z_fail yang saya fikir berkaitan dengan bidang null jadi saya hanya menarik apa yang saya perlukan

senarai besar-besaran saya jika pernyataan memproses setiap rekod dan pada syarat yang dipenuhi tambahkan 1 kepada pelbagai pembolehubah

Separuh kedua skrip menulis baris fail html mengikut baris
mata kep

objNewFile.WriteLine ""

muat semula halaman ini setiap 10 saat

Jika tidak ditetapkan> 0 Kemudian

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

Lain

objNewFile.WriteLine "
'

bahagian ini melihat pemboleh ubah yang tidak ditetapkan dan jika lebih daripada 0 menulis baris untuk menembak nilai pembolehubah ini dan beberapa formasi dari fail css luaran lihat langkah-langkah kemudian

jika tidak lebih daripada 0 ia hanya menulis a
(barisan baru dalam html)

saya melakukan sesuatu yang serupa untuk bilangan panggilan terbuka kemudian jika dilancarkan daripada 50 panggilan terbuka menggunakan pembentukan yang berbeza menjadikan nombor merah

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

baris ini akan menunjukkan bilangan panggilan yang diberikan kepada setiap 4 orang dalam pasukan saya
ini terapung oleh css

bit terakhir saya
objNewFile.WriteLine "
"& closedcalls &" Panggilan ditutup dalam 30 hari lepas "

ini menunjukkan bilangan panggilan ditutup dalam 30 hari yang lalu menggunakan

jika Tidak IsNull (objRecordset.Fields.Item ("closed_at")) Kemudian
closedDate = Kiri (objRecordset.Fields.Item ("closed_at"), 10)
Jika objRecordset.Fields.Item ("status") = "ditutup" Kemudian
Jika DateDiff ("d", tutup sekarang) <30 Kemudian
closedcalls = closedcalls + 1

yang saya akui adalah kekacauan dan saya pasti ada cara yang lebih baik untuk melakukan ini

sekarang dengan semua perkara di atas, saya tahu ada banyak cara untuk melakukan semua ini
dan banyak pemprosesan boleh dilakukan di tsql
tetapi saya lebih baik dengan cepat VBScript kotor daripada sql

Langkah 4: css

Fail css saya ada di bawah jika sesiapa mahu mencipta semula apa yang saya ada setakat ini
badan {
font-family: Georgia, "Times New Roman",
Times, serif;
saiz fon: 30 pt;
warna: hitam;
warna latar belakang: putih}

#leftmain {
terapung: kiri;
lebar: 15%; }

span.open {
font-family: Helvetica, Geneva, Arial,
SunSans-Regular, sans-serif;
warna: hijau;
saiz fon: 400 pt}

span.openhigh {
font-family: Helvetica, Geneva, Arial,
SunSans-Regular, sans-serif;
warna: merah;
saiz fon: 400 pt}

span.unass {
font-family: Helvetica, Geneva, Arial,
SunSans-Regular, sans-serif;
warna: merah;
warna latar belakang: putih}

Langkah 5: contoh html dihasilkan

di bawah adalah salinan fail html dari hari ini
// W3C // DTD HTML 4.01 // EN>

Sistem Sokongan Panggilan ITI ITI

Status Panggilan @ 16/01/2009 13:44:00





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


39


16 Panggilan ditutup dalam 30 hari lepas

Langkah 6: masa depan

saya kini telah menambah kod saya supaya setiap 30 minit apabila datepart minit SEKARANG adalah 0 atau 30

setiap jurutera diberikan nombor panggilan didarab dengan nombor rawak

angka anme yang paling rendah kemudian dipaparkan pada skrin dengan mesej "Make Tea"

Langkah 7: ASP

dengan bantuan dari frineds saya di

http://www.halfshoring.com/

semuanya telah ditulis semula dalam ASP
dan telah dibuat lebih cekap

kod asp di bawah
------------------------------------------------
ï »¿(tarikh ('sekarang') + 30))"


'Pemboleh ubah Ruang Persediaan yang akan kami gunakan bukan Item ("") yang digunakan dalam VBS
Dim ColStatus, ColAssignedTo, ColClosedAt
ColStatus = 0
ColAssignedTo = 1
ColClosedAt = 2

'Buat objek pangkalan data
'hampir sama dengan VBS tetapi menggunakan Server.CreateObject dan bukan CreateObject

Dim arrRecords
Dim blnResults

Dim objConn
Tetapkan objConn = Server.CreateObject ("ADODB.Connection")
Dim objRS
Tetapkan objRS = Server.CreateObject ("ADODB.Recordset")

'Buka Sambungan DB
objConn.Open (strConn)

'Jalankan SQL dan muatkan ke dalam rekod
objRS.Open strSql, objConn

'Hanya meneruskan jika rekod tidak kosong, jika tidak, berhenti
Jika Tidak objRS.EOF Kemudian
'Muatkan seluruh recordet ke array
'Ini bermakna kami tidak menyimpan rekod terbuka semasa kami membina halaman,
'oleh itu mengurangkan beban pada pelayan DB dan pada IIS
arrRecords = objRS.GetRows ()
Lain
Response.End
Akhir Jika

'Tutup sambungan DB
objConn.Close

'Kosongkan pembolehubah DB dan pembetulan rekod kami
Tetapkan objConn = Tiada apa-apa
Tetapkan objRS = Tiada apa-apa

'Data kini disimpan dalam arrRecords

'Buat kaunter kami
Dim intOpenCalls, intUnassignedCalls, intClosedCalls
Dim intPBCalls, intDPCalls, intPGCalls, intKWCalls

'Gelung melalui semua data dalam arrRecords dan hitung jumlahnya
Dim i
i = 0
Lakukan

Jika arrRecords (ColStatus, i) = "buka" Kemudian
intOpenCalls = intOpenCalls + 1
Akhir Jika

Jika Tidak IsNull (arrRecords (ColClosedAt, i)) Dan arrRecords (ColStatus, i) = "ditutup" Kemudian
intClosedCalls = intClosedCalls + 1
Akhir Jika

Jika IsNull (arrRecords (ColAssignedTo, i)) Kemudian
intUnassignedCalls = intUnassignedCalls + 1
Akhir Jika

Jika arrRecords (ColAssignedTo, i) = "1" Dan arrRecords (ColStatus, i) = "buka" Kemudian
intPBCalls = intPBCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "2" Dan arrRecords (ColStatus, i) = "buka" Kemudian
intDPCalls = intDPCalls + 1
Lain-lain arrRecords (ColAssignedTo, i) = "3" Dan arrRecords (ColStatus, i) = "buka" Kemudian
intPGCalls = intPGCalls + 1
ElseIf arrRecords (ColAssignedTo, i) = "4" Dan arrRecords (ColStatus, i) = "buka" Kemudian
intKWCalls = intKWCalls + 1
Akhir Jika

i = i + 1

Gelung Hingga i> UBound (arrRecords, 2)

Dim intTotalCalls
intTotalCalls = Ubuntu (arrRecords, 2)

'Sekarang kita mempunyai semua nilai kita, mari buat halaman HTML

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

Sistem Sokongan Panggilan ITI ITI

Status Panggilan @





PB:
DP:
KW:
PG:



panggilan ditutup dalam tempoh 30 hari yang lalu

Langkah 8: nota 1

satu titik untuk diperhatikan

jika pengguna loggs panggilan
dan menutupnya sebelum ditugaskan kepada pengguna
ia akan menunjukkan seperti yang tidak ditetapkan
walaupun ia ditutup

Kesimpulannya
Saya tidak baik menulis juga
saya akan cuba menjawab semua pertanyaan yang ada pada orang

VBScript berjalan setiap 60 saat dari penjadual tugas windows
dan html sendiri memuatkan semula setiap 10 saat jadi skrin biasanya sehingga 70 saat di belakang

kerana skrip tidak berjalan dalam pelayar penyemak imbas dos yang digunakan tidak penting

dari masa ke masa saya akan menambah bidang tambahan kepada paparan tetapi saya tidak pasti apa lagi

semua sekejap selamat datang
bersama-sama dengan fikiran dan komen

Saya telah ditanya tentang pengulangan
pb
pg
db
kw

Ini adalah inisial ahli pasukan saya
dan angka-angka yang muncul di sebelah masing-masing adalah bilangan pekerjaan yang diberikan kepada setiap orang

inisial dikodkan dalam halaman asp tetapi pada waktunya saya akan mendapatkan nama / inisial dari jadual yang sesuai