Modul Form: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
Zeile 8: Zeile 8:
  
 
=Tree=
 
=Tree=
 +
 +
Der Tree ist eine Baumansicht, in welcher die einzelnen Einträge hierarchisch gegliedert werden können.
 +
 +
Die Einträge können aus Tabelleninhalten und SQL-Statements gefüllt werden, es können auch einzelne Einträge hinzugefügt werden. Der Baum muss nicht von Anfang an komplett aufgebaut werden, sondern es können Inhalte beim Öffnen eines Eintrags dynamisch nachgeladen werden.
  
 
==#tree_clear==
 
==#tree_clear==
Zeile 22: Zeile 26:
  
 
==#tree_add==
 
==#tree_add==
 +
 +
Für dem Baum einen einzelnen Eintrag hinzu.
 +
 +
'''Parameter'''
 +
 +
* r ("rights") - Rechtedefinition für den Eintrag
 +
* u - Übergeordneter Eintrag. Unter diesem Eintrag wird der neue Eintrag eingefügt.
 +
** exp ("expanded") - der Eintrag, der gerade expandiert wird.
 +
** last - der zuletzt eingefügte Eintrag
 +
** lastp ("last parent") - der übergeordnete Eintrag über dem zuletzt eingefügten Eintrag
 +
** lastpp - der Eintrag zwei Stufen in der Hierarchie über dem zuletzt eingefügten Eintrag
 +
** lastppp - der Eintrag drei Stufen in der Hierarchie über dem zuletzt eingefügten Eintrag
 +
** root - der neue Eintrag wird auf der obersten Stufe eingefügt.
 +
** sel ("selected") - der aktuell selektierte Eintrag
 +
** selp ("selected parent") - der übergeordnete Eintrag des aktuell selektierten Eintrags
 +
** selpp - der Eintrag zwei Stufen in der Hierarchie über dem aktuell selektierten Eintrag
 +
*** selppp - der Eintrag drei Stufen in der Hierarchie über dem aktuell selektierten Eintrag
 +
 +
 +
 +
 +
 +
 +
 +
 +
      FillNodeIni(FExecInter.LineP, true, true, LItem.Ini);
 +
      LItem.Text := FindParamStringReplaced('c', LItem.GetCaption);
 +
      if FindParamString('o', '') <> '' then
 +
        InsertNewItem(LItem, BAF_DUMMYNODE_CAPTION, false);
 +
      if FindParamBoolean('si', false) then
 +
        FTreeSelectNode := LItem;
 +
      if FindParamBooleanReplaced('ne', false) and Assigned(FNode) then
 +
        FNode.Expand;
 +
      FLast := LItem;
 +
    end;
 +
  finally
 +
    FTreeLock := false;
 +
  end;
 +
  if FindParamBoolean('sii', false) then
 +
    FTree.Selected := LItem;
 +
 +
'''Beispiel'''
 +
 +
#tree_clear
 
==#tree_fill==
 
==#tree_fill==
 
==#tree_node==
 
==#tree_node==

Version vom 24. Oktober 2020, 15:07 Uhr

Das Modul Form

Im Modul Form werden die Routinen zur zur Formulargestaltung zusammengefasst.

Das Formular

Die einfachen Komponenten

Tree

Der Tree ist eine Baumansicht, in welcher die einzelnen Einträge hierarchisch gegliedert werden können.

Die Einträge können aus Tabelleninhalten und SQL-Statements gefüllt werden, es können auch einzelne Einträge hinzugefügt werden. Der Baum muss nicht von Anfang an komplett aufgebaut werden, sondern es können Inhalte beim Öffnen eines Eintrags dynamisch nachgeladen werden.

#tree_clear

Macht den Tree leer. Wird üblicherweise eingesetzt, bevor der Baum (neu) gefüllt wird.

Parameter

(keine)

Beispiel

#tree_clear

#tree_add

Für dem Baum einen einzelnen Eintrag hinzu.

Parameter

  • r ("rights") - Rechtedefinition für den Eintrag
  • u - Übergeordneter Eintrag. Unter diesem Eintrag wird der neue Eintrag eingefügt.
    • exp ("expanded") - der Eintrag, der gerade expandiert wird.
    • last - der zuletzt eingefügte Eintrag
    • lastp ("last parent") - der übergeordnete Eintrag über dem zuletzt eingefügten Eintrag
    • lastpp - der Eintrag zwei Stufen in der Hierarchie über dem zuletzt eingefügten Eintrag
    • lastppp - der Eintrag drei Stufen in der Hierarchie über dem zuletzt eingefügten Eintrag
    • root - der neue Eintrag wird auf der obersten Stufe eingefügt.
    • sel ("selected") - der aktuell selektierte Eintrag
    • selp ("selected parent") - der übergeordnete Eintrag des aktuell selektierten Eintrags
    • selpp - der Eintrag zwei Stufen in der Hierarchie über dem aktuell selektierten Eintrag
      • selppp - der Eintrag drei Stufen in der Hierarchie über dem aktuell selektierten Eintrag





     FillNodeIni(FExecInter.LineP, true, true, LItem.Ini);
     LItem.Text := FindParamStringReplaced('c', LItem.GetCaption);
     if FindParamString('o', ) <>  then
       InsertNewItem(LItem, BAF_DUMMYNODE_CAPTION, false);
     if FindParamBoolean('si', false) then
       FTreeSelectNode := LItem;
     if FindParamBooleanReplaced('ne', false) and Assigned(FNode) then
       FNode.Expand;
     FLast := LItem;
   end;
 finally
   FTreeLock := false;
 end;
 if FindParamBoolean('sii', false) then
   FTree.Selected := LItem;

Beispiel

#tree_clear

#tree_fill

#tree_node

#tree_fillsql

#tree_fillpath

#tree_sel

Selektiert einen Eintrag.

Bei den Typen rf, sf, rfa und sfa wird im Baum nach einem bestimmten Wert (oder zwei bestimmten Werten) durchsucht. An jedem Eintrag hängt eine Ini-Datei, in der verschiedene Werte gespeichert sind. Es wird dann der erste Eintrag selektiert, in dessen Ini-Feld f der Wert z steht. Die Groß- und Kleinschreibung wird dabei ignoriert.

Neben f und z können auch noch f2 und z2 gesetzt werden. Bei rf und sf sind diese beiden Suchkriterien (f/z und f2/z2 oder-verknüpft). Die Typen rf und sf werden auch bei nur einem Suchkriterium verwendet, da bei einer oder-Verknüpfung das Ergebnis und damit die Existenz eines zweiten Suchkriteriums egal ist. Mit rfa und sfa werden die Suchkriterien und-verknüpft.

Parameter

  • cnd ("condition") - nur wenn true, wir die Anweisung ausgeführt. Default true, Funktionen werden ersetzt.
  • f, f2 ("field") - der erste und zweite Feldname (nur für die Typen rf, sf, rfa und sfa)
  • o ("open") - expandiert den nach der Selektierung selektierten Eintrag
  • y - Typ der Prozedur
    • c ("child") - geht zum ersten untergeordneten Eintrag
    • cc ("childchild") - geht zum ersten untergeordneten Eintrag des ersten untergeordneten Eintrags
    • ccc - geht in der Hierarchie drei Stufen nach unten
    • cccc - geht in der Hierarchie vier Stufen nach unten
    • ccccc - geht in der Hierarchie fünf Stufen nach unten
    • p ("parent") - geht zum direkt übergeordneten Eintrag
    • pp ("parentparent") - geht zum übergeordneten Eintrag des übergeordneten Eintrags
    • ppp - geht in der Hierarchie drei Stufen nach oben
    • pppp - geht in der Hierarchie vier Stufen nach oben
    • ppppp - geht in der Hierarchie fünf Stufen nach oben
    • rf ("rootfind") - Sucht im kompletten Baum, die Suchkriterien sind oder-verknüpft
    • rfa ("rootfindand") - Sucht im kompletten Baum, die Suchkriterien sind und-verknüpft
    • sf ("selectedfind") - Sucht unterhalb des selektierten Eintrags, die Suchkriterien sind oder-verknüpft
    • sfa ("selectedfindand") - Sucht unterhalb des selektierten Eintrags, die Suchkriterien sind und-verknüpft
  • z, z2 - der erste und zweite Wert (nur für die Typen rf, sf, rfa und sfa)


Beispiel

#btn  c=test  w=120  s="#tree_sel  y=sf   f=data_list_id   z=7B0EC22C-8526-4FDB-8D10-0187ECF793C0   sic=Y"  se=b
#cmdclear
#cmd #tree_sel   y=c   o=Y
#cmd #tree_sel   y=c
#segbuttons  
#segbutton  c=Test  w=150   cmd=1

Im zweiten Beispiel soll in der Hierarchie zwei Stufen nach unten gegangen werden. Eigentlich würde das mit dem Typ cc gehen. Allerdings wird die unterste Ebene hier dynamisch nachgeladen, so dass eine Suche mit dem Typ cc ins Leere laufen würde. Die Lösung ist, zunächst mit dem Typ c eine Stufe nach unten zu gehen, dabei mit o=Y den Node zu expandieren und dabei dynamisch nachzuladen und dann mit dem Typ c eine weitere Stufe nach unten zu gehen.

#tree_back

Geht in die Baum-Historie einen Schritt zurück, also zum davor selektierten Eintrag.

Parameter

(keine)

Beispiel

#btn  y=back   s=#tree_back  se=b
#btn  y=fwd   s=#tree_fwd  se=b

#tree_fwd

Geht in die Baum-Historie einen Schritt weiter. Kann zur aufgerufen werden, wenn zuvor zurück gegangen wurde.

Parameter

(keine)

Beispiel

#btn  y=back   s=#tree_back  se=b
#btn  y=fwd   s=#tree_fwd  se=b

Page

Text-, Memo- und Button-Segmente

VL-Segmente

Grid-Segmente

XGrid-Segmente