4D

Code-Schnipsel

Users und Groups loswerden

This code snippet will remove all users & groups except for Designer and Administrator:
C_BLOB($users)
SET BLOB SIZE($users;0)
BLOB TO USERS($users)
I use this to keep the 4D user access system in sync with my custom system (which uses regular tables and fields).
Rob Laveaux

Funktioniert für Benutzer und Gruppen, die durch den Administrator angelegt wurden und man selber als Administrator eingeloggt ist.

Ein Bildschirm-Foto schießen

Nach einer Anregung durch Koen Van Hooreweghe, 28 Sep 2006, iNug

C_TEXT($thePath;$cr;$command)
C_BOOLEAN($1;$forClipBoard)
If (onWindows )
  sorry ("Kein Screenshot unter Windows")
Else
  If (Count parameters=0)
    $forClipBoard:=True
  Else
    $forClipBoard:=$1
  End if
  
    `capture the window
  If ($forClipBoard)
    $command:="screencapture -i -W -c"
  Else
    $thepath:="/tmp/preview.jpg"
    $cr:="\n"
    `delete the previous screendump
    $command:="rm -r"+$thepath
    LAUNCH EXTERNAL PROCESS($command)
  
    $command:="screencapture -i -W "+$thepath
  End if
  LAUNCH EXTERNAL PROCESS($command)
End if

Den Benutzer das Ziel eines PDF-Drucks auswählen lassen

Es wurde diese Frage in der NUG gestellt: I am looking to set the printer option for PDF, but want the user to select the destination. If you put "" in value2 it does not show a dialog on the Mac. Do I have to build my own save dialog?

Die Antwort von Miyako, 4D Japan: how about,
C_LONGINT($destination_l)
C_TEXT($document_path_t)
SET PRINT OPTION(Destination option ;3)
PRINT SETTINGS
GET PRINT OPTION(Destination option ;$destination_l;$document_path_t)

Da hätte ich schon längst drauf kommen können :-)

Example of a TCP server + Client built with 4D IC

Below is a very simple 4D TCP server and client to see how one can start to learn how to use 4D IC low level TCP calls. … von Kevin LaTona

Diese Länder-Auswahl ist auch eine zweistufige hierarchische Liste, ist aber mit Records_2_HierList nicht erzeugbar. landauswahl Das ist eine flache Liste, die für jeden Buchstaben den ersten und den letzten Eintrag in die übergeordnete Liste einträgt. Auf diese Art wird die Länder-Liste auf 26 Einträge reduziert, das ist eine handhabbare Länge und nicht diese Monster, die mich auf vielen Webseiten stören.

Datensätze einer Tabelle in hierarchische Listen

Records_2_HierList setzt die hierarchische Struktur der Tabelle, dargestellt in zwei LongInt-Feldern, in einer hierarchische Liste um:
hlList:=Records_2_HierList (->[STÜCKLISTE];->[STÜCKLISTE]STL_LongInt;->[STÜCKLISTE]STL_Drüber_L;0;->[STÜCKLISTE]STL_Name)

  • $1 Pointer auf die Tabelle
  • $2 Datensatz-ID
  • $3 Knoten-Drüber Datensatz-ID
  • $4 Start-Knoten
  • $5 einzusetzender Text

Um Datensätze in hierarchischen Listen nutzen zu können, haben meine Datensätze alle eine eindeutige numerische ID (Longint). Die Longint berechnet sich aus (Sequenz number([Tabelle]) * 1000) + Table(->[Tabelle]). Sie werden gleich nachrechnen und feststellen, daß so maximal 2 Mio Datensätze in einer Tabelle eindeutig identifiziert werden können. Danach ist die Longint (232) zu kurz. Die V11 kennt die 264-Longint, leider die Oberflächen-Objekte noch nicht. Aber das wird sich im Laufe der Jahre auch noch ändern.

Methodenersetzen

4D kann Methoden exportieren und wieder importieren. Wie ist in diesem PDF beschrieben.

Wenn Sie die Methoden als Text exportieren, müssen Feldnamen Buchstabe für Buchstabe in Quelle und Ziel übereinstimmen. Exportieren Sie als 4D-Methode ist die Methode tokenisiert und 4D setzt beim Öffnen die richtigen Namen ein.

Tonwahl

Telefonhörer vor den Lautsprecher halten und 4D die Wähltöne erzeugen lassen. Dazu diese snd -Ressourcen verwenden! Manche Telefone sind funktional taub.

Generating Charts with the Google Chart API - Mac

Von "David Nasralla" download

HTML

ServerSideIncludes - SSI

Jahreszahl aktualisieren, z.B. © 2006 - 2012. Dazu verwende ich <!--#config timefmt="%Y" --><!--#echo var="DATE_LOCAL" --> Zuerst das Format auf nur Jahr anzeigen stellen, also %Y statt dem kompletten Format %d.%m.%Y, %H.%M und danach die Systemvariable DATE_LOCAL verwenden. Zwischen Formatangabe und Verwendung der Variablen kann beliebig viel stehen.