Wskazany plik nie zawiera poprawnych komponentów zestawień

Transkrypt

Wskazany plik nie zawiera poprawnych komponentów zestawień
InsERT GT – Własne COM 1.0
InsERT GT – Własne COM 1.0
Autor: Jarosław Kolasa, InsERT
Wstęp ...................................................................................................................................................................... 2
Dołączanie zestawień własnych do systemu InsERT GT ....................................................................................... 2
Sposób współpracy rozszerzeń z systemem InsERT GT ........................................................................................ 2
Rozszerzenia standardowe COM ........................................................................................................................ 3
Rozszerzenia WSC.............................................................................................................................................. 3
Rozszerzenia zrealizowane jako komponenty .NET ........................................................................................... 3
Własne COM – interfejs programisty ..................................................................................................................... 5
InsERT GT.......................................................................................................................................................... 5
Interfejs IZestawienieComDane...................................................................................................................... 5
Zestawienie ......................................................................................................................................................... 8
Interfejs IZestawienieWlasne.......................................................................................................................... 8
© 2004 InsERT sp. z o.o.
1
InsERT GT – Własne COM 1.0
Wstęp
Niniejszy dokument przeznaczony jest dla twórców aplikacji zintegrowanych z systemem InsERT GT zwanych
rozszerzeniami lub zestawieniami własnymi COM. Komunikacja z nimi jest zrealizowana w technologii COM.
Daje to moŜliwość pracy w określonym kontekście systemu InsERT GT, czyli z aktywnym podmiotem,
okresem, magazynem, zalogowanym uŜytkownikiem bez konieczności dodatkowego określania tych
parametrów. Dodatkowo osiągalne są wszelkie inne informacje z bazy danych oraz moŜliwe jest dowolne
kształtowanie interfejsu uŜytkownika.
Ten sposób rozszerzania funkcjonalności systemu InsERT GT nie przewiduje dostępu do jego wewnętrznych
obiektów. MoŜliwe są jedynie bezpośrednie operacje na danych w bazie. Zapewniony jest do nich pełny dostęp.
Sposób organizacji danych opisuje osobny dokument – Dokumentacja bazy danych.
Dołączanie zestawień własnych do systemu InsERT GT
Zestawienia wykonane w technologii COM wg specyfikacji moŜna dołączyć do systemu InsERT GT i
wykorzystywać za pomocą modułu Zestawienia. Pozwala on na dodawanie i usuwanie (tylko z programu, a nie z
dysku) własnych zestawień wykonanych w technologii COM. W celu dołączenia własnego zestawienia naleŜy
wybrać z menu Operacje opcję Dodaj zestawienia COM, a następnie wskazać plik zawierający zestawienie
(jedno lub więcej). System wówczas rejestruje wskazane zestawienia i umieszcza na liście dostępnych zestawień
własnych o ile zestawienie moŜe być w danym programie uruchamiane (metoda Programy).
Sposób współpracy rozszerzeń z systemem InsERT GT
InsERT GT udostępnia interfejs, za pomocą którego moŜna uzyskać wszystkie informacje na temat kontekstu
pracy. Moduł zestawienia dostarczany przez niezaleŜną firmę moŜe zawierać więcej niŜ jedno rozszerzenie.
KaŜde z rozszerzeń musi udostępniać interfejs umoŜliwiający uruchamianie go z InsERT GT (z modułu
Zestawienia). Ogólny schemat współpracy przedstawia poniŜszy rysunek.
InsERT GT
Moduł Zestawienia
IZestawienieComDane
IZestawienieWlasne
IZestawienieWlasne
baza danych
podmiotu
IZestawienieWlasne
Rozszerzenie/
Zestawienie
własne COM
1
Rozszerzenie/
Zestawienie
własne COM
2
Rozszerzenie/
Zestawienie
własne COM
n
Uruchomienie dostarczonego zestawienia własnego COM jest moŜliwe po uprzednim zarejestrowaniu tego
rozszerzenia w InsERT GT (moŜna to zrobić z poziomu modułu Zestawienia za pomocą opcji Operacje-Dodaj
własne COM). Zarejestrowanie polega na zapisaniu informacji w rejestrze systemowym pod kluczem:
<klucz_InsERT_GT>\WlasneCOM\<ProgID_komponentu_rozszerzenia>
© 2004 InsERT sp. z o.o.
2
InsERT GT – Własne COM 1.0
następujących trzech wartości ciągu (REG_SZ):
Nazwa
Opis
Plik
nazwa rozszerzenia do wyświetlenia na liście
opis realizowanej funkcjonalności rozszerzenia
lokalizacja fizyczna kodu rozszerzenia
oraz wartości DWORD (REG_DWORD):
Programy
programy, w których ma być widoczne rozszerzenie.
Uruchomienie rozszerzenia polega w pierwszym kroku na stworzeniu przez InsERT GT komponentu o podanym
ProgID równym nazwie klucza w rejestrze systemowym. Warunkiem stworzenia takiego obiektu jest oczywiście
uprzednie zarejestrowanie w systemie komponentu COM. Kolejnym krokiem przy uruchamianiu rozszerzenia
jest wywołanie funkcji Wykonaj i oczekiwanie na jej zakończenie. Wewnątrz funkcji Wykonaj odbywa się
zaprogramowana przez twórcę rozszerzenia interakcja z uŜytkownikiem, obliczenie i przedstawianie wyników
działania rozszerzenia.
Rozszerzenia standardowe COM
Przy dodawaniu rozszerzeń zrealizowanych jako standardowe komponenty COM z poziomu Zestawień (za
pomocą opcji Dodaj), InsERT GT rejestruje je w systemie przez wywołanie funkcji DllRegisterServer z
<nazwa_modułu>.dll. Następnie dodaje je do listy zestawień (rejestruje w InsERT GT). Komponenty, które są
zawarte w modułach nieeksportujących tej metody muszą być zarejestrowane poprawnie w systemie przed
uruchomieniem opcji Dodaj. MoŜe to realizować np. instalator stworzonego rozszerzenia.
Rozszerzenia WSC
Przy dodawaniu rozszerzeń zrealizowanych jako Windows Script Component z poziomu Zestawień (za pomocą
opcji Dodaj), InsERT GT rejestruje je w systemie przez wywołanie funkcji DllInstall z biblioteki scrobj.dll ze
wskazaniem na plik WSC. Biblioteka scrobj.dll jest serwerem komponentów skryptowych WSC. Następnie
dodaje je do listy zestawień (rejestruje w InsERT GT).
W przypadku komponentów WSC nie jest moŜliwe zaimplementowanie metod jakiegokolwiek interfejsu, w
szczególności interfejsu IZestawienieWlasne. W związku z tym dopuszcza się ich realizację jako zwykłych
metod obiektu. W procesie uruchamiania zestawienia są one wywoływanych po nazwie za pomocą metod
interfejsu IDispatch (GetIDsOfNames, Invoke).
Przy tworzeniu rozszerzeń WSC nieoceniony jest WSC Wizard dostępny pod adresem:
http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/001/788/msdncompositedoc.xml
Rozszerzenia zrealizowane jako komponenty .NET
Przy dodawaniu rozszerzeń zrealizowanych jako komponenty .NET z poziomu Zestawień (za pomocą opcji
Dodaj), InsERT GT dodaje je tylko do listy zestawień (rejestruje w InsERT GT). Dlatego muszą być juŜ
wcześniej poprawnie zarejestrowane w systemie. Do tego celu słuŜy narzędzie regasm.exe.
Przykłady wykorzystania regasm.exe do zarejestrowania w systemie własnych zestawień w postaci
komponentów .NET zawartych w bibliotece WlasneNET.dll:
A. Zarejestrowanie rozszerzeń w postaci biblioteki prywatnej dla aplikacji:
Krok 1. Skopiowanie WlasneNET.dll do folderu System w miejscu zainstalowania InsERT GT.
Krok 2. Uruchomienie w linii poleceń komendy
regasm.exe WlasneNET.dll.
B. Zarejestrowanie rozszerzenia w taki sposób jak inne komponenty COM (wspólne dla całego systemu):
Krok 1. Skopiowanie WlasneNET.dll do dowolnego folderu w systemie plików, gdzie jest moŜliwy
dostęp uŜytkowników korzystających z InsERT GT.
Krok 2. Uruchomienie w linii poleceń komendy
regasm.exe /c WlasneNET.dll.
© 2004 InsERT sp. z o.o.
3
InsERT GT – Własne COM 1.0
UWAGA! Oprócz dystrybucji biblioteki z komponentami WlasneNET.dll naleŜy pamiętać o dostarczeniu
równieŜ bibliotek Interop w to samo miejsce (do tego samego folderu). Ich liczba moŜe być róŜna w zaleŜności
od zastosowanych rozwiązań. Jednak ze względu na wykorzystanie ADO i biblioteki typów z InsERT GT muszą
być przynajmniej dwie: Interop.MSADO15.dll oraz Interop.ZestManLib.dll.
Oczywiście po rejestracji rozszerzeń w systemie naleŜy dokonać odpowiedniego wpisu w rejestrach lub dodać
własne zestawienia poprzez Zestawienia-Operacje-Dodaj wlasne COM.
O udostępnianiu klientom COM komponentów .NET więcej moŜna przeczytać pod adresem:
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconexposingnetframeworkcomponentstocom.asp
© 2004 InsERT sp. z o.o.
4
InsERT GT – Własne COM 1.0
Własne COM – interfejs programisty
Biblioteka ZestMan.dll dostarczana wraz z InsERT GT zawiera definicje wszystkich interfejsów
wykorzystywanych w integracji z rozszerzeniami.
Nazwa
ZestManLib
UUID
0DD7E584-C075-4654-9BC8-FC95FEF1F083
Opis
InsERT GT ZestMan 1.0 Type Library
InsERT GT
Interfejs udostępniany ze strony InsERT GT.
Nazwa
IZestawienieComDane
UUID
6BE4BFFA-694B-49E9-8697-720B88B6830C
Opis
Informacje o bieŜącym podmiocie i
instalacji oraz parametrach poszczególnych
programów wchodzących w skład
InsERT GT
Interfejs IZestawienieComDane
Pozwala uzyskać informacje o bieŜącym podmiocie, kontekście pracy i instalacji oraz parametrach
poszczególnych programów wchodzących w skład InsERT GT
Connection
Demo
Program
WersjaBazyDanych
FolderProgramu
NazwaPodmiotu
PersonelIdentyfikator
Personel
MagazynNazwa
MagazynId
OkresDataOd
OkresDataDo
DataBlokady
AO
AO
AO
AO
AO
AO
AO
AO
AO
AO
AO
AO
AO
Baza danych bieŜącego podmiotu otwarta przez program (pełny dostęp).
Informacja, czy program pracuje w wersji demo.
Informacja z którego programu uruchomiono zestawienie.
Wersja bazy danych.
Folder programu.
Nazwa podmiotu.
Identyfikator osoby z personelu zalogowanej do podmiotu.
Imię i nazwisko osoby z personelu zalogowanej do podmiotu.
Nazwa bieŜącego magazynu.
Identyfikator bieŜącego magazynu.
Początkowa data bieŜącego roku obrachunkowego.
Końcowa data bieŜącego roku obrachunkowego.
Data blokady okresu.
A – atrybut, O – do odczytu
Atrybut Connection
Zwraca obiekt ADO Connection bieŜącego podmiotu otwarty przez program z pełnymi prawami dostępu.
MoŜliwe są wszelkie operacje wykonywane na bazie danych. Tylko do odczytu.
VC:
VB:
HRESULT Connection( IDispatch** pVal );
obiekt.Connection As Object
Interfejs
IZestawienieComDane
Atrybut Demo
Zwraca informację, czy program pracuje jest w wersji demonstracyjnej. Tylko do odczytu.
VC:
VB:
HRESULT Demo( VARIANT_BOOL* pVal );
obiekt.Demo As Boolean
© 2004 InsERT sp. z o.o.
5
InsERT GT – Własne COM 1.0
Interfejs
IZestawienieComDane
Atrybut Program
Zwraca informację, z którego programu uruchomiono zestawienie. Tylko do odczytu.
VC:
VB:
HRESULT Program( LONG* pVal );
obiekt.Program As Long
Zwracana jest jedna z poniŜszych wartości:
1 - Subiekt
2 - Rachmistrz (KPIR)
4 - Rachmistrz (ryczałt)
8 - mikroGratyfikant
Interfejs
IZestawienieComDane
Atrybut WersjaBazyDanych
Zwraca informację o wersji bazy danych bieŜącego podmiotu. Tylko do odczytu.
VC:
VB:
HRESULT WersjaBazyDanych( BSTR* pVal );
obiekt.WersjaBazyDanych As String
Interfejs
IZestawienieComDane
Atrybut FolderProgramu
Zwraca informację, o miejscu zainstalowania uruchomionego programu. Tylko do odczytu.
VC:
VB:
HRESULT FolderProgramu( BSTR* pVal);
obiekt.FolderProgramu As String
Interfejs
IZestawienieComDane
Atrybut NazwaPodmiotu
Zwraca nazwę bieŜącego podmiotu. Tylko do odczytu.
VC:
VB:
HRESULT NazwaPodmiotu( BSTR* pVal );
obiekt.NazwaPodmiotu As String
Interfejs
IZestawienieComDane
Atrybut PersonelIdentyfikator
Zwraca identyfikator osoby z personelu aktualnie zalogowanej do podmiotu. Tylko do odczytu.
VC:
HRESULT PersonelIdentyfikator( BSTR* pVal );
© 2004 InsERT sp. z o.o.
6
InsERT GT – Własne COM 1.0
VB:
obiekt.PersonelIdentyfikator As String
Interfejs
IZestawienieComDane
Atrybut Personel
Zwraca imię i nazwisko osoby z personelu zalogowanej do podmiotu. Tylko do odczytu.
VC:
VB:
HRESULT Personel( BSTR* pVal );
obiekt.Personel As String
Interfejs
IZestawienieComDane
Atrybut MagazynNazwa
Zwraca nazwę bieŜącego magazynu. Tylko do odczytu.
VC:
VB:
HRESULT Magazyn( BSTR* pVal );
obiekt.Magazyn As String
Interfejs
IZestawienieComDane
Atrybut MagazynId
Zwraca identyfikator bieŜącego magazynu. Tylko do odczytu.
VC:
VB:
HRESULT MagazynId( LONG* pVal );
obiekt.MagazynId As Long
Interfejs
IZestawienieComDane
Atrybut OkresDataOd
Zwraca początkową datę bieŜącego roku obrachunkowego. Tylko do odczytu.
VC:
VB:
HRESULT OkresDataOd( DATE* pVal );
obiekt.OkresDataOd As Date
Interfejs
IZestawienieComDane
Atrybut OkresDataDo
Zwraca końcową datę bieŜącego roku obrachunkowego. Tylko do odczytu.
VC:
VB:
HRESULT OkresDataDo( DATE* pVal );
obiekt.OkresDataDo As Date
Interfejs
IZestawienieComDane
© 2004 InsERT sp. z o.o.
7
InsERT GT – Własne COM 1.0
Atrybut DataBlokady
Zwraca datę blokady okresu. Tylko do odczytu.
VC:
VB:
HRESULT DataBlokady( VARIANT* pVal );
obiekt.DataBlokady As Variant
Atrybut przyjmuje wartość NULL jeśli brak blokady okresu.
Interfejs
IZestawienieComDane
Zestawienie
Interfejs ze strony zestawienia, wykorzystywany do rejestrowania i uruchamiania rozszerzenia przez system
InsERT GT.
Nazwa
IZestawienieWlasne
CLSID
D2B992DB-4C35-440c-AD64-45FFF669DE93
Opis
zestawienie własne
Interfejs IZestawienieWlasne
Interfejs, który musi być zaimplementowany przez przez zestawienie własne. Zawiera atrybuty potrzebne do
poprawnego zarejestrowania rozszerzenia w systemie InsERT GT oraz metodę do uruchomienia z poziomu
modułu Zestawienia.
Opis
Nazwa
Programy
Wykonaj
AO
AO
AO
M
Opis zestawienia.
Nazwa zestawienia.
Programy, w których zestawienie ma być widoczne.
Uruchamia zestawienie.
A – atrybut, O – do odczytu, M – metoda
Atrybut Opis
Opis zestawienia. Tylko do odczytu.
VC:
VB:
HRESULT Opis( BSTR* pVal );
obiekt.Opis As String
Interfejs
IZestawienieWlasne
Atrybut Nazwa
Nazwa zestawienia. Tylko do odczytu.
VC:
VB:
HRESULT Nazwa( BSTR* pVal );
obiekt.Nazwa As String
Interfejs
IZestawienieWlasne
Atrybut Programy
© 2004 InsERT sp. z o.o.
8
InsERT GT – Własne COM 1.0
Zwraca informację, w których programach zestawienie ma być widoczne. Tylko do odczytu.
VC:
VB:
HRESULT Programy( LONG* pVal );
obiekt.Programy As Long
Zwracana wartość musi być sumą wybranych spośród poniŜszych flag:
1 - Subiekt
2 - Rachmistrz (KPIR)
4 - Rachmistrz (ryczałt)
8 - mikroGratyfikant
Interfejs
IZestawienieWlasne
Metoda Wykonaj
Uruchamia zestawienie. Wywoływana przez moduł zestawień własnych COM w celu wykonania zestawienia.
VC:
VB:
HRESULT Wykonaj(IZestawienieComDane * pZestawienieComDane );
obiekt.Wykonaj(pZestawienieComDane As CoZestawienieComDane )
pZestawienieComDane
Interfejs IZestawienieComDane do obiektu utworzonego po stronie InsERT GT.
Interfejs
IZestawienieWlasne
Koniec.
© 2004 InsERT sp. z o.o.
9