Diagrame complexe și grafice în

Vom crea schema în pași:

1. În proiect, adăugăm o legătură la componenta diagramă.
2. Adăugați o imagine la pagina Web.
3. Creați o interogare pentru a selecta baza de date, ale cărei rezultate vor fi afișate în diagramă.






4. Exportați imaginea graficului într-un fișier și vizați imaginea în acest fișier.

Iar acum ia în considerare în detaliu un exemplu.

1. În proiect, adăugăm o legătură la componenta diagramă.

Adăugați un link la componentă în Referințe (vedeți imagini)

Fig. 2. Zona Explorer Solution.

Fig. 3. Cum să adăugați un link.

Fig. 4. Ce să adăugați.

Fig. 5. Cum arată acum.

2. Adăugați o imagine1 la pagina Web.

3, 4. Creați o interogare pentru a selecta baza de date, rezultatele căruia vor fi afișate în diagramă. Și exportați imaginea graficului într-un fișier și direcționați imaginea către acest fișier.


Nu este un cod simplu? Iată rezultatul care ne așteaptă:


Fig. 6. Rezultatul final

Rămâne să comparăm acest grafic cu rezultatul interogării SQL:


Fig. 7. Rezultatele interogării pentru eșantion au coincis cu diagrama.

1. De fiecare dată când este salvat un nou fișier imagine, trebuie să oferiți o modalitate de ștergere a fișierelor vechi. Aș sugera pentru a crea un delgif.bat fișier batch, care cuprinde o echipă de MS-DOS «del * .gif» și să-l înregistreze în programul unui server gazdă care rulează la 3am (toate sunt adormit în acest moment, dar nimeni nu sa trezit încă în sus).
2. Ați putea întreba de ce a luat dintr-o dată de fiecare dată când generit nou nume de fișier, deoarece, în teorie, ar fi mai bine să specificați un nume de fișier este unul dintre, de exemplu, numărul sesiunii curente. Răspunsul este că controlul imaginii în ASP.NET al oricărei versiuni este un element static. Acest lucru înseamnă că, dacă în URL-ul pentru a înregistra numele fișierului imagine, iar utilizatorul va încărca această imagine în browser-ul meu, fișierul actualizat la noua imagine sau nu, iar utilizatorul este văzută ca prima imagine, și va vedea. Chestia este că browserul de Internet stochează toate imaginile de pe computerul utilizatorului care au fost descărcate de pe Internet pentru reutilizare. Acesta este un lucru foarte util, deoarece salvează traficul și timpul de încărcare a paginilor Web. După cum sa menționat deja, în ASP.NET este de așteptat versiunea 2 să apară dinamic de control Imagine dinamică, care se încarcă de fiecare dată când o nouă imagine. Vom lua în considerare lucrul cu el mai jos.







Interop.OWC11 bibliotecă poate avea o alta decât Microsoft.Office.Interop.Owc11 spațiul de nume, pentru a determina cu exactitate aspectul pentru cuvântul «owc11» în Object Explorer. În Fig. 8 arată cazul când spațiul de nume este denumit "OWC11". Nu uitați că în C # literele mici și mari au semnificații diferite.

Fig. 8. Cazul în care spațiul de nume OWC11 este necesar pentru a accesa biblioteca.

Luați în considerare cel de-al doilea mod - prin intermediul handler-ului HttpHandler.

Vom crea schema în pași:

1. În proiect, adăugăm o legătură la componenta diagramă.
2. Creați un handler HttpHandler.
3. Înregistrați dispozitivul de manipulare.
4. Vom îndrepta imaginea către manipulant.

Iar acum ia în considerare în detaliu un exemplu.

1. În proiect, adăugăm o legătură la componenta diagramă.

Această etapă a fost considerată mai sus. Doar adăugați un link la componenta COM (Microsoft Office Components 11) și totul.

2, 3, 4. Creați un handler HttpHandler, înregistrați-l dacă este vorba de o clasă și vizați imaginea pe mâna noastră.

În principiu, este posibil să nu se facă manipulatorul, ci să se descarce imaginea prin pagina normală. Vă întrebați cum, dar foarte simplu, luați o privire la acest cod:

Pe pagina cu imaginea Imagine, scriem pur și simplu:

Și Chart.aspx pagina descrie tot ceea ce a fost în prima metodă, în plus față de control al imaginii (nu mai este necesar), doar un pic tweak se încheie procedura Page_Load:


Dar, prietenii mei, să spună adevărul, să facă acest lucru - să nu se respecte - să mai bine fără suplimentară de tratare a ado va face (utilizarea unui HTTP-handler specializat în loc de obișnuitul ASPX-pagini mult mai eficiente, deoarece handlerul nu este asociat cu o astfel de prelucrare de conducte lungi ca VEB de obicei pagina, se încarcă mai puțin timpul de execuție).

Luați în considerare lista de manipulare. Rețineți că pentru a extinde orizonturile dvs., codul folosește un spațiu de nume diferit: nu "Microsoft.Office.Interop.Owc11", ci "OWC11".

Prima metodă. Prin clasa cu înregistrarea în Web.config


A doua metodă. Prin pagina ASHX fără înregistrare și fără compilare (recomandată).

Prieteni, dacă lucrați în Studio VS.NET, este puțin probabil să utilizați metoda 1: este incomod, deoarece necesită compilare manuală. Și când lucrați fără ajutorul Studioului, de ce ar trebui să-l compilați singur? Acordați-le acest lucru ASP.NET. Acesta va compila automat fișierul ASHX la primul acces.

1. Pentru a direcționa imaginea de imagine spre handlerul HTTP, atribuiți-o proprietății ImageUrl calea http la fișierul ASHX. În cazul nostru, handler-ul se află în același folder ca și pagina cu Image1:

Image1. ImageUrl = "Chart.ashx";


2. A doua metodă necesită, în general, transferarea a cel puțin trei parametri: ConnectionString, CommandText și nume. Este necesar să se controleze diagrama, de îndată ce va ieși una nouă. Propun să creez două matrice, care prin numărul diagramei ar da acești doi parametri. Apoi, va rămâne în cadrul proiectului dvs. din timp în timp pentru a completa matrice și de a atribui imagini imageurl = «Chart.ashx? Con = NomerElementaMassivaStrokSoedineniyacom = = NomerElementaMassivaKomandcap NomerElementaMassivaNaimenovany“. Iată câteva linii care vor fi adăugate la fișierul handler:

DynamicImage1. ImageBytes = (Byte []) ChartSpace1. GetPicture ("gif", 300, 300);

Fig. 9. Ce se întâmplă când accesez pagina ASHX (am schimbat tipul de diagramă la chChartTypeColumnClustered3D).

concluzie







Articole similare

Trimiteți-le prietenilor: