User Tools

Site Tools


vba:classes:jsf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:classes:jsf [24.12.2019 08:26:53]
yaslaw [Methoden]
vba:classes:jsf [01.07.2020 08:27:12] (current)
yaslaw
Line 1: Line 1:
 <​const>​ <​const>​
-    version=1.2.1 +    version=1.4.2 
-    vdate=14.10.2019+    vdate=18.06.2020
     fname=jsf.cls     fname=jsf.cls
     ns=%NAMESPACE%     ns=%NAMESPACE%
Line 110: Line 110:
   * JSON-String (für ein eindimensioneles Dictionary und nur wenn das JSON-Modul installiert ist und die bedingte Komplilierung json_exists auf True gesetzt ist)   * JSON-String (für ein eindimensioneles Dictionary und nur wenn das JSON-Modul installiert ist und die bedingte Komplilierung json_exists auf True gesetzt ist)
  
 +==== Modifiers ==== 
 +Ab Version 1.3 gibt es Modifiers, mit denen man die Werte belästigen kann.
 +\\ Die grundsätzliche Syntax ist ''​value|modifier:​param1:​param2:​...:​paramX''​. Der Modifier wird mit einem ''​|''​ angehäng, gefolgt von den Paramtern, die mit '':''​ getrennt werden
 +
 +Es können mehrere Modifier auf ein Element angewendet werden. Sie werden in der angegeben Reihenfolge abgearbeitet. ''​value|modifier1:​param11|modifier2|modifier2:​param31''​.
 +
 +^ Modifier ^ Atribute ^ Beschreibung / VBA-Befehl ^ Beispiel ^
 +| format | $format | VBA.format(wert,​ $format) | ''​%%|%%format:'​0.00'''​ | 
 +| trim | | VBA.Trim(wert) | ''​%%|%%trim''​ |
 +| rev | | VBA.StrReverse(wert) | ''​%%|%%rev''​ |
 +| lcase | | VBA.LCase(wert) | ''​%%|%%lcase''​ |
 +| lower | | Alais zu lcase | ''​%%|%%lower''​ |
 +| ucase | | VBA.UCase(wert) | ''​%%|%%ucase''​ |
 +| upper | | Alais zu ucase | ''​%%|%%upper''​ |
 +| proper | | VBA.strConv(wert,​ vbProperCase) | ''​%%|%%proper''​ |
 +| strconv | $convType als Integer | VBA.strConv(wert,​ $convType) | ''​%%|%%strconv:​3''​ |
 +| tech | | Falls cast_techName im Projekt vorhanden ist, wird dieses ausgeführt. techName(wert) | ''​%%|%%tech''​ |
 +| nz | $default=Leerstring | VBA.nz(wert,​ $default) \\ nz funktioniert auch, wenn das Element nicht in der Liste existiert | ''​%%|%%nz \\ %%|%%nz:'​NA'''​ |
 +| round | $size=0 | VBA.round(wert,​ $size) | ''​%%|%%round:​2''​ |
 +| sql | | wandelt den Wert in ein SQL-Wert | ''​%%|%%sql''​ |
 +| code | | Alias zu sql | ''​%%|%%code''​ |
 +| reg_replace | $pattern, $replace | Führt ein RegEx-Replace durch | ''​%%|%%reg_replace:'​\d(\w+)':'​$1'''​ |
 +| rxr | $pattern, $replace | Alias zu reg_replace | ''​%%|%%rxr:'​\d(\w+)':'​$1'''​ |
 +| lpad | $len, $padString = ' ' | Links mit Zeichen auffüllen | ''​%%|%%lpad:​3''​ \\ ''​%%|%%lpad:​3:'​_'''​ |
 +| rpad | $len, $padString = ' ' | Rechts mit Zeichen auffüllen | ''​%%|%%rpad:​3''​ \\ ''​%%|%%rpad:​3:'​_'''​ |
 +| item | $key/​$index,​ $defaultKey=null | Wählt aus einer Unterliste den entsprechenden Wert | ''​%%|%%item:​3'' ​
 +| tbl | $range = Leerstring | Erstellt eine ADODB-Excel-tabelle [tblname$range] | ''​%%|%%Sheet1''​ \\ ''​%%|%%Sheet1:'​A1:​A3'''​ |
 +| fld | $table | Erstellt ein SQL-String für ein Feld oder ein Tabelle. | ''​%%|%%fld''​ \\ ''​%%|%%fld:​table''​ |
 +\\ ''​%%|%%item:​ort''​ \\ ''​%%|%%item:​ort:​unbekannt''​ |
 +
 +<code vb>? jsf("​{name:​Yaslaw,​ ort:null, sex:​null}"​) _
 +.parse("#​{sex|nz:​m='​m'​ ? '​Herr'​ : '​Frau'​} #​{name|upper} aus #​{ort|nz:​unbekannt|proper}"​)
 +Herr YASLAW aus Unbekannt
 +
 +'sex ist in der Tabelle gar nicht enthalten, wird jedoch mit nz gesetzt
 +? jsf("​{name:​Yaslaw,​ ort:​null}"​).parse("#​{sex|nz:'​männlich'​}"​)
 +männlich
 +
 +'b ist wieder ein Dictionary
 +d Jsf("​{a:​A,​b:​{name:​Hans,​ort:​Winterthur}}"​).parse("​ #​{b|item:​name} aus #​{b|item:​1}"​)
 +<​String>​ 'Hans aus Winterthur'​
 +
 +Set j = Jsf("​{flag:​ort,​data:​{name:​Hans,​ort:​Winterthur,​flag:​test,​country:​Schweiz}}"​)
 +'Das Attribut flag ist nit in ' gefasst. Also wird versucht auch dieses zu paren. flag hat somit den Wert ort
 +d j.parse("#​{data|item:​flag}"​)
 +<​String>​ '​Winterthur'​
 +
 +'​Setzen wir flag hingegen in '',​ dann wird der Wert flag genommen um in der Unterliste zu suchen
 +d j.parse("#​{data|item:'​flag'​}"​)
 +<​String>​ '​test'​
 +
 +'Land ist in der Liste nicht vorhanden
 +d j.parse("#​{data|item:'​land'​}"​)
 +<​String>​ '<​Err:​ item land not found in List data>'​
 +
 +d j.parse("#​{data|item:'​land':'​country'​}"​)
 +<​String>​ '​Schweiz'​
 +
 +'fld und tpl
 +Set j = jsf("​{t1:​table_1,​t2:​[table_2],​f1:'​[ort]',​ f2:​PLZ}"​)
 +d j.map
 +<​Dictionary> ​ (
 +    [t1] => <​String>​ '​table_1'​
 +    [t2] => <​String>​ '​table_2'​
 +    [f1] => <​String>​ '​[ort]'​
 +    [f2] => <​String>​ '​PLZ'​
 +)
 +?​j.parse("​select #​{f1|fld:​a},​ #​{f2|fld|upper} from #​{t1|tbl:'​A1:​F4'​} a, #{t2|tbl} b")
 +select [a].[ort], [PLZ] from [table_1$A1:​F4] a, [table_2$] b
 +</​code>​
 ===== Anwendungsbeipiele ===== ===== Anwendungsbeipiele =====
 Meine Tabelle mit den Testdaten Meine Tabelle mit den Testdaten
Line 239: Line 309:
 3  | Sandra ​ | Test     | Test, Sandra ist Toll! </​code>​ 3  | Sandra ​ | Test     | Test, Sandra ist Toll! </​code>​
  
 +=== Beispiele mit Modifiers ===
  
 ==== Beipiele mit den Zusatzfunktionen ==== ==== Beipiele mit den Zusatzfunktionen ====
vba/classes/jsf.1577172413.txt.gz · Last modified: 24.12.2019 08:26:53 by yaslaw