Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
SET TABLE TITLES
|
SET TABLE TITLES {( TabellenTitel ; TabellenNr {; *})} | ||||||||
Parameter | Typ | Beschreibung | ||||||
TabellenTitel | Array String |
![]() |
Tabellennamen, wie sie im Dialog erscheinen sollen | |||||
TabellenNr | Array Lange Ganzzahl |
![]() |
Aktuelle Tabellennummern | |||||
* | Operator |
![]() |
Verwende die eigenen Namen im Formeleditor | |||||
Der Befehl SET TABLE TITLES kann Tabellen Ihrer Datenbank ausblenden, umbenennen und neu ordnen, die in 4D Standarddialogfenstern in der Anwendungsumgebung erscheinen (wenn der Startup Modus Anwendung ist oder Sie im Menü Start > Anwendung testen gewählt haben). Dieser Befehl kann z.B. die Anzeige von Tabellen im Sucheditor in der Anwendungsumgebung ändern.
Mit diesem Befehl können Sie auch Tabellennamen in Ihren Formularen "on the fly" umbenennen, wenn Sie dynamische Namen verwendet haben. Weitere Informationen dazu finden Sie im Abschnitt Referenzen in statischem Text verwenden des Handbuchs 4D Designmodus.
Die Arrays TabellenTitel und TabellenNr müssen synchronisiert sein. Im Array TabellenTitel übergeben Sie die entsprechenden Namen. Wollen Sie eine bestimmte Tabelle nicht anzeigen, übernehmen Sie deren Namen oder neuen Titel nicht in das Array. Die Tabellen erscheinen in der im Array festgelegten Reihenfolge. Sie übergeben in jedem Element des Array TabellenNr die aktuelle Tabellennummer des dazugehörigen Tabellennamens bzw. des neuen Titels, der unter derselben Elementnummer in TabellenTitel übergeben wurde.
Sie haben zum Beispiel eine Datenbank mit den Tabellen A, B und C in dieser Reihenfolge. Diese Tabellen sollen als X, Y und Z erscheinen, wobei Tabelle B nicht angezeigt werden soll. Außerdem soll die Reihenfolge Z und dann X sein. Übergeben Sie dazu Z und X in einem Array TabellenTitel aus zwei Elementen und 3 und 1 in einem Array TabellenNr aus zwei Elementen.
Der optionale Parameter * gibt an, ob mit diesem Befehl selbst definierte Namen in 4D Formeln (virtuelle Strukturen) verwendbar sind. Standardmäßig, d.h. ohne diesen Parameter, können in 4D ausgeführte Formeln nicht die selbst definierten Namen verwenden; es müssen die tatsächlichen Feldnamen verwendet werden. Sie müssen diesen Parameter übergeben, wenn Sie an Benutzer gelieferte Information steuern und die Konsistenz der Oberfläche gewährleisten wollen, da wo Formeln oder Ausdrücke verwendet werden, z.B.
Hinweis: Ist der Parameter * übergeben, lassen sich die von diesem Befehl definierten Namen in den von 4D ausgeführten Formeln verwenden. Beachten Sie in diesem Fall, dass die eigenen Namen keine Zeichen enthalten dürfen, die der Interpreter der 4D Programmiersprache nicht zulässt, wie -?*%!. So ist beispielsweise die Bezeichnung "Rate_in_%" in einer Formel nicht zulässig. Weitere Informationen dazu finden Sie im Abschnitt Konventionen.
SET TABLE TITLES verändert NICHT die aktuelle Struktur Ihrer Datenbank. Der Befehl beeinflusst nur den späteren Gebrauch der 4D Standardeditoren und Formulare mit dynamischen Namen, wenn sie in der Anwendungsumgebung aufgerufen werden. SET TABLE TITLES gilt während einer Arbeitssitzung. Ein Vorteil im Client/Server-Betrieb ist, dass mehrere Arbeitsstationen gleichzeitig Ihre Datenbank auf unterschiedliche Art “sehen” können. Sie können SET TABLE TITLES beliebig oft aufrufen.
Verwenden Sie den Befehl SET TABLE TITLES, wenn Sie:
Hinweise:
Wird SET TABLE TITLES ohne einen Parameter aufgerufen, setzt das die virtuelle Struktur der gesamten Datenbank, inkl. eigene Tabellen- und Feldnamen, für die Sitzung zurück.
` Projektmethode TRANSLATE TABLES AND FIELDS
` TRANSLATE TABLES AND FIELDS ( Text)
` TRANSLATE TABLES AND FIELDS ( LanguageCode )
C_TEXT($1) ` Sprachcode
C_LONGINT($vlTable;$vlField)
C_TEXT($Language)
For($vlTable;1;Get last table number) ` Durchlaufe die Tabellen
If($vlTable#(Table(->[Translations]))) `Übersetze nicht die Tabelle Translations
` Prüfe, ob es eine Übersetzung des Tabellennamen für die angegebene Sprache gibt.
QUERY([Translations];[Translations]LanguageCode=$Language;*) `gewünschte Sprache
QUERY([Translations]; & ;[Translations]TableID=$vlTable;*) `Tabellennummer
QUERY([Translations]; & ;[Translations]FieldID=0) `Feldnummer = 0 heißt, es ist ein Tabellenname
If(Is table number valid($vlTable)) `Prüfe, ob die Tabelle noch existiert
If(Records in selection([Translations])=0) ` Andernfalls lege den Datensatz an.
CREATE RECORD([Translations])
[Translations]LanguageCode:=$Language
[Translations]TableID:=$vlTable
[Translations]FieldID:=0 `Der Name der übersetzten Tabelle muss eingegeben werden.
[Translations]Translation:=Table name($vlTable)+" in "+$Language
SAVE RECORD([Translations])
End if
For($vlField;1;Get last field number($vlTable))
`Prüfe, ob es eine Übersetzung des Feldnamen für die angegebene Sprache gibt.
QUERY([Translations[Translations]LanguageCode=$Language;*) `gewünschte Sprache
QUERY([Translations]; & ;[Translations]TableID=$vlTable;*) `Tabellennummer
QUERY([Translations]; & ;[Translations]FieldID=$vlField) `Feldnummer
If(Is field number valid($vlTable;$vlField))
If(Records in selection([Translations])=0) `Andernfalls lege den Datensatz an.
CREATE RECORD([Translations])
[Translations]LanguageCode:=$Language
[Translations]TableID:=$vlTable
[Translations]FieldID:=$vlField `Der Name des übersetzten Feldes muss eingegeben werden.
[Translations]Translation:=Field name($vlTable;$vlField)+" in "+$Language
SAVE RECORD([Translations])
End if
Else
If(Records in selection([Translations])#0)
`Existiert das Feld nicht mehr, entferne die Übersetzung.
DELETE RECORD([Translations])
End if
End if
End for
Else
If(Records in selection([Translations])#0)
`Existiert die Tabelle nicht mehr, entferne die Übersetzung.
DELETE RECORD([Translations])
End if
End if
End if
End for
TRANSLATE TABLES AND FIELDS("Spanisch")
LOCALIZED TABLES AND FIELDS("Spanisch")
mit der Projektmethode LOCALIZED TABLES AND FIELDS:
` Globale Methode LOCALIZED TABLES AND FIELDS
` LOCALIZED TABLES AND FIELDS ( Text )
` LOCALIZED TABLES AND FIELDS ( LanguageCode )
C_TEXT($1) `Language code
C_LONGINT($vlTable;$vlField)
C_TEXT($Language)
C_LONGINT($vlTableNum;$vlFieldNum)
$Language:=$1
`Aktualisiere Tabellennamen
ARRAY TEXT($asNames;0) ` Initialisiere Arrays für SET TABLE TITLES und SET FIELD TITLES
ARRAY INTEGER($aiNumbers;0)
QUERY([Translations];[Translations]LanguageCode=$Language;*)
QUERY([Translations]; & ;[Translations]FieldID=0) `also Tabellennamen
SELECTION TO ARRAY([Translations]Translation;$asNames;[Translations]TableID;$aiNumbers)
SET TABLE TITLES($asNames;$aiNumbers)
`Aktualisiere Feldnamen
$vlTableNum:=Get last table number `Erhalte Anzahl der Tabellen in der Datenbank.
For($vlTable;1;$vlTableNum) `Durchlaufe jede Tabelle
If(Is table number valid($vlTable))
QUERY([Translations];[Translations]LanguageCode=$Language;*)
QUERY([Translations]; & ;[Translations]TableID=$vlTable;*)
QUERY([Translations]; & ;[Translations]FieldID#0)
`Vermeide Null, da es als Tabellenname dient.
SELECTION TO ARRAY([Translations]Translation;$asNames;[Translations]FieldID;$aiNumbers)
SET FIELD TITLES(Table($vlTable)->;$asNames;$aiNumbers)
End if
End for
Sie wollen alle selbst definierten Feld- und Tabellennamen entfernen:
SET TABLE TITLES //alle eigenen Namen entfernen
Get last table number
GET TABLE TITLES
Parse formula
SET FIELD TITLES
Table name
Produkt: 4D
Thema: Benutzeroberfläche
Nummer:
601
Geändert: 4D v11 SQL
4D Programmiersprache ( 4D v20 R7)