4D v14.3SET TABLE TITLES |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
SET TABLE TITLES
|
SET TABLE TITLES ( TabellenTitel ; TabellenNr {; *} ) | ||||||||
TabellenTitel | Array String |
![]() |
Tabellennamen, wie sie im Dialog erscheinen sollen | |||||
TabellenNr | Array Lange Ganzzahl |
![]() |
Aktuelle Tabellennummern | |||||
* |
![]() |
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 (insbesondere, wenn die Editoren über Befehle der 4D Programmiersprache aufgerufen werden). 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 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.
Mit dem optionalen Parameter * können Sie angeben, ob mit diesem Befehl in 4D Formeln selbst definierte Namen verwendbar sind.
Hinweis: Bietet Ihre Anwendung Zugriff auf den Formeleditor, z.B. über den Schnellberichteditor, müssen Sie den Parameter * übergeben, damit die Konsistenz der Oberfläche gewährleistet ist.
SET TABLE TITLES verändert NICHT die aktuelle Struktur Ihrer Datenbank. Der Befehl beeinflusst nur den späteren Gebrauch der Standarddialogfenster von 4D und Formulare mit dynamischen Namen, wenn sie über Befehle der 4D Programmiersprache aufgerufen werden. Die reale Struktur der Datenbank erscheint, wenn der Editor oder das Formular über einen Menübefehl im Designmodus aufgerufen wird. 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:
` 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
Produkt: 4D
Thema: Benutzeroberfläche
Nummer:
601
Geändert: 4D v11 SQL
Get last table number
SET FIELD TITLES
Table name
4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)
Geerbt von : SET TABLE TITLES ( 4D v11 SQL Release 6)