42 messaggi dal 28 ottobre 2012
ho trovato un codice per fare un grafico con i dati presi dà sql server , il codice funziona ma mi piazza il grafico in mezzo alla pagina e mi toglie la formattazione.vorrei che l'immagine fosse messa all'interno di una immagine o di una porzione della pagina o in alternativa salvare in locale l'immagine e la richiamo ogni volta dinamicamente il problema è qui
bitmap.Save(Response.OutputStream, ImageFormat.Gif)vorrei fare una cosa tipo image1 imageurl=""




Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Drawing.Graphics
Imports System.Drawing.Imaging
Imports System.IO
Partial Class Grafico
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("BancaDatiConnectionString").ConnectionString
Dim Conn As New SqlConnection(strConnString)
Dim t, max As Integer
t = 0 : max = 0
Dim mesi(3) As String
Dim visite(3) As Integer
Try
Conn.Open()
Dim sqlUserName As String
sqlUserName = "select * from ArchivioDocumentale where(cellulare=" & Session("Cellulare").ToString & ")"



Dim com As New SqlCommand(sqlUserName, Conn)




Dim CurrentName As String
CurrentName = CStr(com.ExecuteScalar)

If CurrentName <> "" Then
Dim reader As SqlDataReader
reader = com.ExecuteReader()
While reader.Read()
'mesi(t) = reader.GetString(3)
mesi(t) = reader.GetDateTime(3)
visite(t) = reader.GetInt32(4)
If visite(t) > max Then max = visite(t)
t += 1


End While
Conn.Close()
reader.Close()
max = Int(max / 500) * 500 + 500
'
' Imposto la dimensione dell'immagine
'
Dim bitmap As New Bitmap(400, 300)
Dim g As Graphics = Graphics.FromImage(bitmap)
'
g.FillRectangle(New SolidBrush(Color.White), 1, 1, 448, 348)
'
' Scrivo Titolo e data
'
Dim bianco As New SolidBrush(Color.Black)
Dim textFont As New Font("Time News Romans", 14)
Dim testo As String = "Grafico aggiornato in data: " + DateTime.Now
g.DrawString(testo, textFont, bianco, 10, 10)
'
' Linee per il grafico, x e y
'
Dim pen As New Pen(Color.Black, 1)
g.DrawLine(pen, 40, 60, 40, 300)
g.DrawLine(pen, 40, 300, 400, 300)
'
' valori sull'asse y
'
Dim percentuali As New Font("Time News Romans", 8)
Dim sfondo As Color = Color.White
Dim colore As Color = Color.Black
Dim pen2 As New Pen(Color.YellowGreen, 1)
For t = 0 To 10
g.DrawLine(pen, 35, 60 + t * 24, 40, 60 + t * 24)
If t < 10 Then g.DrawLine(pen2, 41, 60 + t * 24, 400, 60 + t * 24)
g.DrawString(CStr(Int(max / 10 * (10 - t))), percentuali, bianco, 5, 52 + t * 24)
Next
'
' Scritte descrittive sul fondo e barre
'
Dim colori() As Color = {Color.Red, Color.Blue, Color.Green, Color.Magenta}
For t = 0 To 3
Dim scritte As New Font("Time News Romans", 8)
g.DrawString(mesi(t), scritte, bianco, 60 + t * 90, 310)
'
Dim y, y2 As Integer
y = Int(visite(t) * 240 / max)
y2 = 60 + 240 - y
g.FillRectangle(New SolidBrush(colori(t)), 55 + t * 90, y2 - 1, 55, 301 - y2)

'
Next
'
' Tipo di immagine e visualizzazione finale
'
Response.ContentType = "Image/Gif"
'bitmap.Save("tutor\cellulare", ImageFormat.Gif)
'bitmap.Save("cellulare.gif")
bitmap.Save(Response.OutputStream, ImageFormat.Gif)
bitmap.Dispose()

Else

End If

Catch ex As Exception

' Errore
Finally
End Try
' Se la connessione è rimasta aperta, la chiudo
If Not Conn Is Nothing Then
Conn.Close()


End If

End Sub
3.939 messaggi dal 28 gennaio 2003
mi pare che si possa fare così:
nella pagina metti <img src="?action=img />

ossia, richiamo la pagina corrente passando il parametro action=img

nell'evento load della pagina (in pseudo codice)

ricavo il parametro action inviato
se è uguale a img allora creo l'immagine, la invio con bitmap.Save(Response.OutputStream, ImageFormat.Gif), chiudo con response.end

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.