Techtip pour générer un fichier disque listant les champs uniques non-indexés : http://kb.4d.com/assetid=77024, (en anglais) ou ci-dessous code en français :
C_LONGINT($maxTableNumber_l;$currentTable_l)
C_LONGINT($maxFieldCount_l;$currentField_l)
C_LONGINT($dontCare_l)
C_BOOLEAN($dontCare_f;$isIndexed_f;$isUnique_f)
C_TEXT($logHeader_t;$logRecord_t;$logfile_t)
C_TEXT($delim_t;$lf_t)
C_TIME($logfile_h)
C_TEXT($tableName_t;$fieldName_t;$note_t)
$delim_t:=Char(Tab)
$lf_t:=Char(Carriage return)+Char(Line feed)
$logHeader_t:="Champs uniques sans index :"+$lf_t
$logfile_t:=Get 4D folder(Logs folder)+"UniqueNonIndex.txt"
$logfile_h:=Create document($logfile_t)
If(OK=1)
SEND PACKET($logfile_h;$logHeader_t)
$maxTableNumber_l:=Get last table number
For($currentTable_l;1;$maxTableNumber_l)
If(Is table number valid($currentTable_l))
$maxFieldCount_l:=Get last field number(Table($currentTable_l))
For($currentField_l;1;$maxFieldCount_l)
If(Is field number valid($currentTable_l;$currentField_l))
GET FIELD PROPERTIES($currentTable_l;$currentField_l;$dontCare_l;\
$dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
If(($isUnique_f) & (Not($isIndexed_f)))
$tableName_t:=Table name(Table($currentTable_l))
$fieldName_t:=Field name(Field($currentTable_l;$currentField_l))
$logRecord_t:="["+$tableName_t+"]"+$fieldName_t+$lf_t
SEND PACKET($logfile_h;$logRecord_t)
End if
End if
End for
End if
End for
End if
CLOSE DOCUMENT($logfile_h)
TechTip pour créer les index manquants sur les champs déclarés "Unique" mais non-indexés : http://kb.4d.com/assetid=77023 (en anglais), ou ci-dessous code en français :
C_LONGINT($maxTableNumber_l;$currentTable_l)
C_LONGINT($maxFieldCount_l;$currentField_l)
C_LONGINT($dontCare_l)
C_BOOLEAN($dontCare_f;$isIndexed_f;$isUnique_f)
C_TEXT($logHeader_t;$logRecord_t;$logfile_t)
C_TEXT($delim_t;$lf_t)
C_TEXT($tableName_t;$fieldName_t;$note_t)
$maxTableNumber_l:=Get last table number
For($currentTable_l;1;$maxTableNumber_l)
If(Is table number valid($currentTable_l))
$maxFieldCount_l:=Get last field number(Table($currentTable_l))
boucle($currentField_l;1;$maxFieldCount_l)
If(Is field number valid($currentTable_l;$currentField_l))
GET FIELD PROPERTIES($currentTable_l;$currentField_l;$dontCare_l;\
$dontCare_l;$isIndexed_f;$isUnique_f;$dontCare_f)
If($isUnique_f) & (Not($isIndexed_f))
$tablePtr:=Table($currentTable_l)
$fieldPtr:=Field($currentTable_l;$currentField_l)
$tableName_t:=Table name($tablePtr)
$fieldName_t:=Field name($fieldPtr)
$indexName_t:="["+$tableName_t+"]"+$fieldName_t+" indexé car unicité"
ARRAY POINTER($fieldsArray_p;1)
$fieldsArray_p{1}:=$fieldPtr
CREATE INDEX($tablePtr->;$fieldsArray_p;Standard BTree Index;$indexName_t;*)
End if
End if
End for
End if
End for
A faire en version 32-bit (donc avant passage en 64 bits).
1 - transférer vos images statiques sur les formulaires dans la bibliothèque d'images :

2 - une fois vos images tranférées, convertissez-les en .png ou .jpeg :
C_LONGINT($i;$SOA;$RIS;$PictRef)
C_TEXT($PictName)
C_PICTURE($Pict)
ARRAY LONGINT($aL_PictRef;0)
ARRAY TEXT($aT_PictName;0)
ARRAY TEXT($at_Codecs;0)
PICTURE LIBRARY LIST($aL_PictRef;$aT_PictName)
$SOA:=Size of array($aL_PictRef)
If($SOA>0)
For($i;1;$SOA)
$PictRef:=$aL_PictRef{$i}
$PictName:=$aT_PictName{$i}
GET PICTURE FROM LIBRARY($aL_PictRef{$i};$Pict)
GET PICTURE FORMATS($Pict;$at_Codecs)
For($j;1;Size of array($at_Codecs))
If($at_Codecs{$j}=".pict")
CONVERT PICTURE($Pict;".png")
SET PICTURE TO LIBRARY($Pict;$PictRef;$PictName)
End if
End for
End for
Else
ALERT("La bibliothèque d'images est vide.")
End if
Voir Langue des commandes et des constantes. Dans le contexte du déploiement d'applications fusionnées, pour utiliser les paramètres régionaux vous pouvez éditer le contenu du fichier de préférences de 4D v1x sur chaque machine locale et fixer la clé "use_localized_language" à "true". Par exemple :
$UserPreference:=Get 4D folder(Active 4D Folder)+"4D Preferences v17.4DPreferences"
$ref:=DOM Parse XML source($UserPreference;True)
$refElem:=DOM Find XML element($ref;"preferences/com.4d/method_editor/options";arrElementRefs)
DOM GET XML ATTRIBUTE BY NAME($refElem;"use_localized_language";$attrValue)
If($attrValue="false")
DOM SET XML ATTRIBUTE($refElem;"use_localized_language";"true")
End if
DOM EXPORT TO FILE($ref;$UserPreference)
DOM CLOSE XML($ref)