Komplex diagramok és grafikonok a
A diagramot lépésenként hozhatjuk létre:
1. A projektben hozzáadunk egy linket a diagram összetevőhöz.
2. Adjon hozzá egy képet a weboldalhoz.
3. Hozzon létre egy lekérdezést az adatbázis kiválasztásához, amelynek eredményei a diagramban jelennek meg.
4. Exportálja a diagramképet egy fájlba, és célozza meg a képet erre a fájlra.
És most nézzünk részletesebben egy példát.
1. A projektben hozzáadunk egy linket a diagram összetevőhöz.
Link hozzáadása az összetevőhöz a Referenciákban (lásd a képeket)
Ábra. 2. A Solution Explorer terület.
Ábra. 3. Hogyan adhat hozzá egy linket.
Ábra. 4. Mit kell hozzáadni.
Ábra. 5. Hogy néz ki most.
2. Adja hozzá a Picture1 képet a weboldalhoz.
3, 4. Hozzon létre egy lekérdezést az adatbázis kiválasztásához, amelynek eredményei a diagramban jelennek meg. És exportálja a diagramképet egy fájlba, és célozza meg a képet erre a fájlra.
Nem egyszerű kód? És itt van az eredmény, ami vár minket:
Ábra. 6. A végeredmény
Továbbra is összehasonlítani ezt a grafikont az SQL lekérdezés eredményeivel:
Ábra. 7. A minta lekérdezésének eredményei egybeesettek a diagrammal.
1. Minden egyes alkalommal, amikor új képfájl kerül mentésre, így meg kell adnia a régi fájlok törlésének módját. Azt javasoljuk, hogy hozzon létre egy batch file delgif.bat, amely egy csapat MS-DOS «del * .gif» és regisztrálja azt a menetrend a fogadó szerver fut 03:00 (összes alszik ebben az időben, de még senki sem ébredt fel).
2. Lehet kérdezni, hogy miért tartott olyan hirtelen minden alkalommal generit új fájl nevét, mert elméletileg nem lenne jobb, ha egy fájlnevet az egyik például a számát a jelenlegi munkamenetben. A válasz az, hogy bármely változat ASP.NET képvezérlése statikus elem. Ez azt jelenti, hogy ha az URL-ben regisztrálni a nevét a képfájlt, és a felhasználó fogja betölteni ezt a képet a böngészőben, a frissített fájlok az új kép, vagy nem, és a felhasználó tekintik az első képen, és látni fogja. A lényeg az, hogy az internet böngésző minden olyan képet tárol a felhasználó számítógépén, amelyet az internetről letöltöttek újra felhasználásra. Ez egy nagyon hasznos dolog, mert megmenti a forgalmat és a weboldalak betöltésének idejét. Mint már említettük, az ASP.NET 2-es verziójában DynamicImage dinamikus vezérlő jelenik meg, amely minden alkalommal új képet tölt be. Fogjuk fontolóra venni a munkát vele.
Interop.OWC11 könyvtár lehet egy névtér eltérő Microsoft.Office.Interop.Owc11, hogy pontosan meghatározzák a megjelenés a szó «owc11» Object Explorer. Az 1. ábrán. A 8. ábra azt az esetet mutatja, amikor a névtér neve "OWC11". Ne felejtsük el, hogy a C #-ban a kis és nagy betűk eltérő jelentéssel bírnak.
Ábra. 8. Az eset, amikor az OWC11 névtér szükséges a könyvtár eléréséhez.
Tekintsük a 2. utasítást - a HttpHandler kezelőn keresztül.
A diagramot lépésenként hozhatjuk létre:
1. A projektben hozzáadunk egy linket a diagram összetevőhöz.
2. HttpHandler kezelő létrehozása.
3. Regisztrálja a kezelőt.
4. A képet a kezelőn célozzuk.
És most nézzünk részletesebben egy példát.
1. A projektben hozzáadunk egy linket a diagram összetevőhöz.
Ezt a fázist a fentiek alapján vizsgáltuk. Csak adj hozzá egy linket a COM-összetevőhöz (Microsoft Office Components 11) és mindent.
2, 3, 4. Hozzon létre egy HttpHandler kezelőt, regisztrálja azt, ha ez egy osztály, és célozza meg a képet a kezelőnek.
Elvileg lehetséges, hogy ne tegye meg a kezelőt, hanem a képet a szokásos oldalon keresztül. Arra kérdezed, hogyan, de nagyon egyszerűen itt nézd meg ezt a kódot:
A képen lévő oldalon a következőket írjuk:
És Chart.aspx oldal ábrázolnak mindent, ami az 1. módszer, amellett, hogy a fényképek kontroll (nem szükséges), csak egy kis csípés végződő Page_Load eljárás:
De, barátaim, hogy elmondja az igazat, erre -, hogy nem tartják tiszteletben magukat - mondjuk jobb minden további nélkül felvezető fog tenni (a használata egy speciális HTTP-kezelő helyett a szokásos ASPX-oldalak sokkal hatékonyabb, mert a felvezető nem jár ilyen hosszú csővezeték feldolgozás a szokásos módon VEB oldal, kevesebbet tölt be a futási időbe).
Tekintsük a kezelő listáját. Vegye figyelembe, hogy a horizont bővítéséhez a kód eltérő névteret használ: nem "Microsoft.Office.Interop.Owc11", hanem "OWC11".
1. módszer. Az osztályon keresztül a Web.config regisztrációval
2. módszer. Az ASHX oldalon regisztrálás nélkül és összeállítás nélkül (ajánlott).
Barátok, ha a VS.NET Studio programban dolgozik, akkor valószínűleg nem használja az 1. módszert: ez kényelmetlen, mert manuális összeállításra van szüksége. És ha a Stúdió segítségével dolgozol, miért kell saját maga fordítani? Adja ezt az ASP.NET-nek. Automatikusan összeállítja az ASHX fájlt az első eléréskor.
1. Ahhoz, hogy a kép képét HTTP kezelőre irányítsa, adja hozzá az ImageUrl tulajdonsághoz az ASHX fájl http-elérési útját. Esetünkben a kezelő ugyanabban a mappában van, mint az Image1 oldal:
Image1. ImageUrl = "Chart.ashx";
2. A 2. módszer általában legalább három paraméter átvitelét igényli: ConnectionString, CommandText és nevek. Szükséges a diagram vezérlése, amint kiad egy újat. Javasolom, hogy két tömböt hozzanak létre, amelyek a diagram számával megadják ezt a két paramétert. Akkor marad keretében a projekt időről időre, hogy kiegészítse a tömbök és hozzá képeket imageurl = «Chart.ashx? Con = NomerElementaMassivaStrokSoedineniyacom = = NomerElementaMassivaKomandcap NomerElementaMassivaNaimenovany”. Íme néhány sor, amely hozzáadódik a kezelő fájlhoz:
DynamicImage1. ImageBytes = (Byte []) ChartSpace1. GetPicture ("gif" 300 300);
Ábra. 9. Mi történik, ha beléptem az ASHX oldalra (a chart típust chChartTypeColumnClustered3D-re változtattuk).