HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Intelligens címke használata Excelben


Intelligens címkék lehetőségei 8. rész

Példaprogram letöltése

13252 bájt

Cikkünkben bemutatjuk, hogy miként hozhatunk létre olyan intelligens címkét, mely csak az Excel alkalmazás celláiban megadott adatokra aktivizálódik, míg a Word alkalmazásban megadott szövegre érzéketlen. A mellékelt példában egy olyan címkét készítünk el, mely tetszőleges megjegyzés-szöveget tud létrehozni az adott cellához, egy sárga ablakban megjelenítve azt.

A példa fordítása után futtassa le a mellékelt AddRegistry.reg állományt a Rendszerleíró adatbázis bejegyzéseinek elkészítéséhez.
A címke kipróbálásához indítson el egy példányt az Excel alkalmazásból, és egy tetszőleges cellában gépeljen be adatot.
Ahogy a sorozat korábbi részeiben megismerhettük, az Intelligens címkében két osztályt kell megvalósítani. A RecognizerClass osztály Recognize metódusa végzi a felismerést és megjelölést, míg az ActionClass InvokeVerb metódusában valósítjuk meg a megjelenő menüpont mögötti funkciót.
Az osztályok mindegyikéhez létrehoztunk egy-egy GUID számot, melyeket felhasználunk a regisztrációban. Az AddRegistry.reg állomány lefuttatásával helyezzük el a regisztrációs bejegyzéseket a Rendszerleíró adatbázisban, a RemRegistry.reg állomány futtatásával pedig eltávolíthatjuk a létrehozott kulcsokat.
Az Intelligens címkénk mindegyikét COM komponensként kell regisztrálnunk, így a projekt tulajdonságlapján a megfelelő paramétert igazra kell állítani.
Annak érdekében, hogy a címke csak Excel alkalmazásban legyen használható, a Word alkalmazás dokumentumaiban viszont hagyja figyelmen kívül a szöveget, a RecognizeClass osztályunk Recognize metódusának DataType nevű paraméterét kell csak lekérdeznünk. A paraméter SmartTagLib névtér IF_TYPE felsorolt típusának egy eleme, melynek értéke IF_TYPE_PARA Word alkalmazás esetén, és IF_TYPE_CELL Excel alkalmazás megnyitásakor.
Ekkor elegendő csak lekérdezni a paraméter aktuális értékét, és máris meghatározhatjuk, hogy mely alkalmazás-típus esetén legyen a címke használható. Ha ezt nem tennénk meg, akkor Word dokumentum esetén a begépelt teljes szöveg kijelölésre kerülne, és ezt nem szeretnénk.
if (DataType == SmartTagLib.IF_TYPE.IF_TYPE_CELL)
{
  RecognizerSite.CommitSmartTag(smartTagName, 1, Text.Length, RecognizerSite.GetNewPropertyBag());
}
Ha Excel alkalmazásban aktivizálódik a címke, akkor egy kis vörös háromszög jelenik meg a cella jobb alsó sarkában, így jelezve a felhasználónak, hogy a kurzort a cella fölé mozgatva láthatóvá teheti a címke menüjét.
A megjelenő menüben jelen esetben a „Szöveg megadása” pontot választva adhatunk meg egy megjegyzés szöveget a cellához.
Ezt úgy érhetjük el, hogy a paraméterként kapott adatot, mely a cella területe lesz, egy Excel.Range objektummá konvertáljuk.
Excel.Range er = (Excel.Range)Target;
Létrehozunk egy példányt a SmartForm projektben deklarált Form1 osztályunkból, mely egy dialógusablakot takar, majd megjelenítjük azt.
Form1 f = new Form1();
f.ShowDialog();
Amennyiben a szövegmezőben megadtunk egy karakterláncot, vagyis a Form1 osztály NoteText változója tartalmazza azt, akkor a szöveget egy object típusú változóban helyezzük el, és meghívjuk az Excel.Range objektum NoteText metódusát, annak első paraméterében megadva a megjelenítendő megjegyzés szöveget.
object t = f.NoteText;
er.NoteText(t,1,5);

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 482. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |