W pierwszej części artykułu http://tgsoft.pl/Blog.aspx?id=39 przedstawiono możliwość wstawiania danych bezpośrednio z bazy SQL(przygotowanej kartoteki pracownika). Lista udostępnionych pól zawiera szereg różnych danych gotowych do bezpośredniego użycia w dokumencie.
Co w sytuacji gdy lista nie zawiera wymaganej informacji?
Standardowe rozwiązanie to oczywiście wpisanie danych bezpośrednio w dokumencie, jednak czynność tą należy powtarzać dla każdego pracownika.
Dla zaawansowanych użytkowników (programistów)proponujemy dodatkowe rozwiązanie, które umożliwi wzbogacenie dokumentów o kolejne dynamiczne wzorce.
W powyższym przykładzie do dokumentu wstawiono bezpośrednio podstawowe dane pracownika: kod, nazwisko, imię i płeć. Ostanie pole zawiera tylko typ zapisany w bazie danych czyli literki "K" lub "M". W dokumencie chcemy jednak pełne słowa: "Kobieta", "Mężczyzna".
W zakładce "DaneSz@rk" wybieramy opcję "SkryptC#", następnie w nowym oknie naciskamy pierwszy przycisk z lewej strony "Utwórz nowy skrypt z definicją klasy".
Z prawej strony okna widać typ klasy (Sender : System.Data.DataRow),która została przesłana jako parametr konstruktora. Możemy pobrać dane wejściowe, poddać je obróbce i zwrócić wynik do dokumentu.
- Definiujemy prywatne pole: DataRow row;
- Do konstruktora dodajemy linię: row = sender as DataRow;
- Dodajemy nową metodę NazwaPlci() (kod na załączonym poniżej zdjęciu).
Prywatna zmienna row potrzebna nam była to przekazania danych wejściowych z konstruktora do nowej dopisanej przez nas metody NazwaPlci().
Teraz potrzebujemy połączyć naszą funkcję z dokumentem.
- Przechodzimy do zakładki "Edytor dokumentu"
- Ustawiamy kursor w wymaganym miejscu
- Naciskamy klawisze Ctrl+F9
- Pomiędzy automatycznie wstawionymi nawiasami { } wpisujemy {DOCVARIABLE C#NazwaPlci}
- Naciskamy przycisk Aktualizuj dane
Powyżej efekt działania naszego skryptu.
Dokument należy zapisać. Po otwarciu dla następnego pracownika obliczenia zostaną automatycznie wykonane i zobaczymy formularz z połączonymi danymi oraz przetworzonymi funkcjami(funkcji w naszym skrypcie może być więcej).
Skrypt zapisywany jest razem z dokumentem w oddzielnym pliku z rozszerzeniem .csi będzie automatycznie ładowany podczas standardowego otwierania dokumentu. Użytkownik nie musi wykonywać żadnych dodatkowych czynności.