Budowa interfejsu administratora

TfrxFRContainer

Jest to kontrolka pozwalająca zagnieżdżać w ramach jednego FastReportu inne raporty FastReport jako otwieralne okna.

Zagnieżdżony raport można otworzyć klikając dwukrotnie na kontrolce frxWPContainer. Właściwości:  Property SaveResultingDoc

Czy zapisywać dokument de sekcji wizualizacji. Jeśli dokument jest zapisany, wówczas system przy otwieraniu dokumentu zaczytuje zapisany dokument. Jeśli nie jest zapisany, wówczas jego zawartość jest budowana na podstawie danych zapisanych w sekcji dane dokumentu XML Property MainContainer

Czy aktualny container jest źródłem głównego dokumentu. W ramach jednego formularza może być tylko jeden MainContainer  (niezależnie, czy typu WP, czy FR) property WndShowFunctionButtons

Czy mają być widoczne klawisze funkcyjne property WndShowConfirmButtons

Czy mają być widoczne klawisze zatwierdzenia/cofania zatwierdzania grupy pól property WndSizeAndPosition

Określa wygląd i pozycję otwieranego okna:

wspMaximize                - okno ma być otwarte na cały ekran

wspScreenCenter          - rozmiar domyślny; pozycjonowane na środku ekranu

wspDialog                     - okno w formie okna dialogowego – bez możliwości zmiany rozmiaru. Tekst skalowany tak      samo, jak w oknie macierzystym. Formularz centrowany na ekranie

wspCombo                    - jak wspDialog, ale prezentowane jak combo poniżej aktywnego pola edycyjnego. Okno nie zawiera belki z nazwą okna. property WndCaption

Nazwa okna Funkcje: procedure GenerateDocument(ASID : integer = 0) procedure GenerateDoc(ASID : string = ‘’)      

UWAGA:Obecnie do generowania dok. głównego  należy wykorzystać globalną funkcję:  WPGenerateDocument  zamiast tej metody. Aby z tego skorzystać należy ustawić własność: MainContainer.

ASID oznacza SID wszystkich pól na otwieranym formularzu. Ma zastosowanie do otwierania okien dialogowych z różnymi SID (wówczas jest wywoływana wewnętrznie przez OpenDocument)

  procedure SetActiveFrame(ASID : string)

Funkcja określa nazwę (SID) formularza, którego będą dotyczyły kolejne odwołania. Dotyczy operacji wykonywanych na oknach dodatkowych - dialogowych tworzonych z podaniem ASID. Podczas otwoerania i generowania takiego okna funkcja ta jest automatycznie wykonywana. Stąd wszystkie odwołania będą dotyczyły ostatnio otwartego okna. Jeśli chcemy wykonać operację na innym (zamkniętym) oknie, wówczas należy wykonać funckję SetActiveFrame. procedure OpenDocument(ASID : integer = 0) procedure OpenDoc(ASID : string = ‘’)

ASID oznacza SID wszystkich pól na otwieranym formularzu. Ma zastosowanie do otwierania okien dialogowych z różnymi SID – na przykład okien dla poszczególnych rekordów w „rosnącej” tabeli.

Generalnie wszystkie dokumenty tworzone w ramach jednego raportu należy traktować jako wspólny zbiór pól – jeśli dane pole występuje w kilku formularzach, to zmiana jego wartości powoduję zmianę we wszystkich formularzach. To samo dotyczy odczytu wartości funkcja GetFieldValue – otrzymamy wartość pola niezależnie  na jakim formularzu się znajduje. function GetFieldValue(ANazwa : string) : string

function SetFieldValue(ANazwa : string; Value : string) : boolean

Dla CheckBoxów nalezy nadawać wartość taką, jak wynika z definicji checkboxa. Zmiana wartości pola powoduje jego zmianę we wszystkich wystąpieniach pola w całym dokumencie (wszystkich formularzach). Pola z różnymi wartościami SID są innymi polami. Function ChkRights(ARights : string):boolean

Sprawdza, czy zalogowany użytkownik ma którekolwiek z uprawnień z listy ARights function BandProtect(ANazwa : string; AProtect string = ‘D’) : boolean

Włącza/wyłącza protekcję wstęgi o nazwie ANazwa. Dopuszczalna jest nazwa Nazwa*

Powoduje to zabezpieczenie/odbezpieczenie wszystkich wstęg o nazwie zaczynającej się na słowo Nazwa. Zabezpieczenie polega na odpowiedniej zmianie parametru Editable kontrolek edycyjnych znajdujących się na danej wstędze.

Gdy ANazwa = *, wówczas funkcja dotyczy wszystkich wstęg w dokumencie.

AProtect może zawierać:

T – zabezpiecz przed edycją;

N – nie zabezpieczaj,

D – zastosuj domyślne uprawnienia dla danej wstęgi – zależnie od wpisów w kontrolce sterującej uprawnieniami, którą należy postawić na danej wstędze.

String z listą uprawnień wymaganych do edycji. Wówczas system ocenia, czy zabezpieczyć, czy nie

            function BandGetRights(AName : string) : string

Zwraca string opisujący uprawnienia edycji wskazanej wstęgi. function ExtractName(AName : string) : string

Zwraca nazwę pola z podanej nazwy (po odcięciu ewentualnego SID) function ExtractSID(AName : string) : string

Zwraca SID z nazwy (np. z AName = ‘POLE10$7’ zwraca ‘7’;  UWAGA: z AName= ‘POLE10$0’ zwraca ‘’) function ExtractNumericSID(AName : string) : integer

Zwraca część numeryczną SID z nazwy rozumianą jako liczba na końcu nazwy (np. z AName = ‘POLE10$kawalek_sid17’ zwraca 17.

Jeśli nie ma części numerycznej – zwraca 0. function GetDocName: string

Zwraca nazwę aktualnie otwartego okna. Zwykle odpowiada nazwie WPContainera, ale może być rozszerzona o SID  - np. okno$2.

Konstrukcja:

wpc.ExtractSID(wpc.GetDocName)

pozwala uzyskać informację o aktualnym SID formularza. function GetDocReadRights : string

Zwraca string uprawnień odczytu całego raportu function GetDocEditRights : string

Zwraca string uprawnień edycji całego raportu function CurrentEditField: TfrxMemoEdit

Zwraca obiekt pola, w którym znajduje się kursor. Na podstawie obiektu można dowiedzieć się np. jego nazwy: CurrentEditField.ResultField

procedure MoveToField(AField: TfrxMemoEdit)

Przenosi kursor do wskazanego pola. Aby przejść do pola o podanej nazwie należy najpierw wykonać funkcję FindEditField function MoveToNextField(AFrom_start: Boolean = FALSE): TfrxMemoEdit

Przenosi kursor do kolejnego pola. Zwraca nazwę nowego pola. function MoveToPreviousField(AFrom_end: Boolean = FALSE): TfrxMemoEdit

Przenosi kursor do poprzedniego pola. Zwraca nazwę nowego pola. function SelectFieldAtCP: Boolean

Zaznacza treść pola, w którym znajduje się kursor function FindObject(AName : string) : TfrxView

Szuka obiektu o podanej nazwie w całym formularzu. Jeśli np. obiekt jest polem edycyjnym, to by dostać się do jego właściwości można zastosować castoeanie. Np.:

ShowMessage(TfrxMemoEdit (FindObject(‘jakas_nazwa’)).ResultField);

TfrxMemoEdit (FindObject(‘jakas_nazwa’)).Color := $FFFFFF function FindEditField(AName : string) : TfrxMemoEdit

Podobnie do FindObject, ale nazwa oznacza ResultField, a więc w istocie nazwę pola. function FindCheckBox(AName : string) : TfrxCheckBoxEdit

Podobnie do FindObject, ale nazwa oznacza ResultField, a więc w istocie nazwę pola. function GetDropListValue(AField : string; ACode : string) : string

Funckja zwraca Wartość odpowiadającą kodowi Acode w liście popup dla pola AField function GetDropListCode(AField : string; AValue : string) : string

Funkcja zwraca Kod odpowiadający wartośći AValue w liście popup dla pola AField  procedure SaveFieldsToXML

Funkcja zapisuje pola z aktualnego subdokumentu reprezentowanego przez aktualny frxFRContainer do XMLa dokumentu.
Zdarzenia: FieldClickEvent              

po kliknięciu na pole (dowolne – stąd wstawiając dowolne pola można symulować klawisze) - podaje ResultField  jako nazwę pola. Dla pól innych, niż pola MemoEdit i CheckBoxEdit zwraca rzeczywistą nazwę pola. property OnFieldGetData

  Podczas inicjacji dokumentu – umożliwia wprowadzanie wartości domyślnych.
Podczas inicjowana dokumentu wartość pola jest wypełniana wartością pola pochodzącą z innych formularzy dokumentu. Jeśli nigdzie nie ma tego pola, wówczas jest odczytywana wartość z sekcji dane XML. Jeśli i tu nie zostanie odnaleziona, wówczas jest generowana na podstawie wyrażenia wartości domyślnej i kierowana do tego zdarzenia. Wartość zwrócona przez to zdarzenie jest wstawiana do inicjowanego pola.

UWAGA: Obecnie preferowane  jest analogiczne zdarzenie komponentu: TfrxDoc.

Jeśli jest ono przypisane, wówczas opisywane zdarzenie nie jest wywoływane. property OnBeforeSaveDocumentEvent

Wykonywane przez zapisem dokumentu do bazy property OnFieldExitEvent

Wywoływane podczas opuszczania pola edycyjnego property OnFieldEnterEvent

Wywoływane podczas wchodzenia do pola edycyjnego property OnChangeFieldEvent

Wywoływana podczas zmiany wartości pola. Jeśli pole występuje w kilku formularzach dokumentu, to może być wywołane w kilku Containerach.

UWAGA: Patrz na opis TfrxDoc.OnBeforeChangeFieldEvent property OnFillDropListEvent

Poprzez zmianę parametrów Type, List i ListData.

możliwa jest pełna kontrola nad zawartością combo.

Typ jest analogiczny do wypełnianych w definicji pola:

 

S - Na podstawie szablonu

Z - Na podstawie zapytania SQL

E - Na podstawie gotowej listy z systemu

 

Zależnie do pola wartości Typ – ListData zawiera zapytanie SQL zwracające dane, lub listę wartości do umieszczenia w combo. property OnOpenDocEvent

Wykonywane podczas otwierania formularza dokumentu (każdego okna).

AFirstOpen – czy jest to pierwsze otwarcie dokumentu do edycji od czasu wygenerowania. W rzeczywistości jest ustawione na True przy pierwszym OnOpenDocEvent  po wykonaniu funkcji GenerateDocument.

AEditing          – oznacza, czy dokument jest otwierany do edycji, czy odczytu.

ErrorMessage – można tu podać wiadomość, która zostanie zaprezentowana jako błąd.