Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Lär dig skriva snygga rapporter i ASP

Postad 2003-10-14 av Pelle Johansson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 6029, Betyg: 80%

Förord

Du har säkert sett massor av stiliga rapporter som kan skrivas ut förrut, så med lite fantasi kan du faktiskt bygga snygga och fungerande rapporter med lite trix. Jag tänkte försöka mig på en rapport som har grafiskt gränssnitt i sig (kanske lite överdrivet)- men att skapa en rapport som ser snygg ut på skärmen. För att du skall kunna använda sådana rapporter- bör du ha en databas som innehåller sådan information att den går att summera. Exempel på detta kan vara besök/dag eller som i detta fall, en presentation om hurvida användare tycker att kurser är skrivna.
Innehåll
  » Att börja planera
  » Hur skall vår rapport se ut
  » Formel för presentationen
  » Presentationen
  » Hela programmet


Att börja planera


Det första jag tänkte att vi skulle börja med är att bygga en liten gif-bild som vi kan använda till graf. Du kan egentligen använda dig av vilken grafisk editor som du vill, men jag har fastnat för PaintShop Pro. Dels för att den är lättanvänd, men även för att den är gratis. Du kan själv hämta hem en version från Jasc Inc. Vi behöver bygga en bild som är i storleksordning 5x10 pixlar och därefter färglägga den med någon färg.


Hur skall vår rapport se ut


* Här är ett exempel på en tänkvärd rapport som du ser ovan, jag har angett kursens nummer, antalet röster som räknats samt att jag använder den lilla gifbilden för att presentera ett läge mellan 0 och 100%. Jag har ritat tabellen på ett sådant sätt att 300 pixlar symboliserar 100% och 150 pixlar blir därmed 50%.


Formel för presentationen


Nu kan vi börja med att fundera hur rapporten skall se ut. Eftersom vi skall visa hur förhållandet mellan mycket bra och dåligt skall visas, så väljer vi att om alla har sagt att kursen är mycket bra betyder det 100%, men om resultatet istället visar på att alla tyckte kursen var dålig, då skall det vara 0%.

Lite matematik: (2=Mycket bra, 1=Bra, 0=Dålig) Genom att använda en selectsats kan vi snabbt få fram den informationen vi behöver för att kunna bestämma storleken på varje graf.

Med denna sql-sats får vi en summerad post per kurs och därmed kan vi reda ut detta genom att skriva en liten ASP-test på hur det ser ut när man kör.


<%
Sqlmsg = "select " & _
" kursnr, " & _
" sum(betyg) as summa, " & _
" count(betyg) as antal from kurs " & _
"group by kursnr "
' kör SQL scriptet
Rst.Open Sqlmsg, con , , , adCmdText
%>


Sql-satsen får nu en post per kurs som innehåller kursnummer, och en summering på av alla betyg samt antal registrerade betyg. Med denna så använder vi antal och multiplicerar det med 2 eftersom vi vill veta vad det högsta värdet hade varit om alla hade varit (2 = Mycket bra). Sist räknar du ut hur många procent som det var. För att sedan få ut bredden på linjen tar du och räknar hur mycket är exempelvis 62% av 300 pixlar. Genom att sätta vädet width på bit.gif till x pixlar- får du din rapport.


Presentationen


Resultatet i sqlsatsen gör nu att vi kan plotta ut en bar för varje kurs för att symbolisera vad användarna tycker om denna.

Do While NOT (Rst.EOF Or Rst.BOF)
summa = Rst("summa")
antal = Rst("antal") * 2
Percent = (summa/antal) * 100
PixWidth = 300 * abs(percent)/100

Response.Write ""
Response.Write " " & Rst("kursnr") & ""
Response.Write " " & antal/2 &"/" & summa & ""
Response.Write " "
Response.Write ""

Rst.MoveNext

Loop


Genom att först få reda på antalet betyg så multipliceras antalet med 2 för att få fram ett maxvärde. Därefter räknas det procentuella betyget ut. Slutligen tar vi reda på hur stor del av 300 pixlar denna procent symboliserar. Därefter använder vi detta värdet för att sätta gifbildens bredd till det antalet pixlar som räknats ut med .



Hela programmet


Mer än så var det inte. Nu avslutar vi allting med att presentera hela koden så om du vill använda den till egna projekt så går det bra. Du får kopiera denna fritt och använda det för privat bruk. Respektera att referera till mig om du använder den i något annat syfte.






Statistikrapport på kurser




Sammanställning av resultat för respektive kurser














<%
' program : demo_report.asp
' kallas från : manuellt
' syfte : listar betygsättning av kurser grafiskt
' (c) 1999, Pelle Johansson, www.pellesoft.se

Const adCmdText = 1

' initierar ADO kontrollen
Set con = server.createobject("ADODB.Connection")
Set rst = server.createobject("ADODB.Recordset")

' Öppnar en anslutning till databasen som är satt i DSN
con.Open "system"
' förbereder SQLsats att göra en summering i
' tabellen kurs/databas system.mdb

sqlmsg = "select kursnr, sum(betyg) as summa, count(betyg) as antal from kurs "
sqlmsg = sqlmsg & "group by kursnr "

' kör SQL scriptet
Rst.Open sqlmsg, con , , , adCmdText
Do While NOT (Rst.EOF Or Rst.BOF)
summa = Rst("summa")
antal = Rst("antal") * 2
Percent = (summa/antal) * 100
PixWidth = 300 * abs(percent)/100

Response.Write ""
Response.Write " "
Response.Write " "
Response.Write " "
Response.Write ""
Rst.MoveNext
Loop

Rst.Close

' stänger och tar bort recordset och connection
' från serverns arbetsminne

con.close
set rst=NOTHING
set con=NOTHING

%>



KursnrRöster






0%

50%


100%


" & Rst("kursnr") & "" & antal/2 &"/" & summa & "










Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
1 197
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies