| 4D v13.4SET TABLE TITLES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 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
        
        
        
	
     Alphabetische Liste der Befehle
    Alphabetische Liste der Befehle
	Geändert: 4D v11 SQL  
Get last table number
SET FIELD TITLES
Table name