4D v18

Anexo: métodos útiles para la conversión

Inicio

 
4D v18
Anexo: métodos útiles para la conversión

Anexo: métodos útiles para la conversión    


 

TechTip  para generar un archivo disco que liste campos únicos no indexados:

 C_LONGINT($maxTableNumber_l;$currentTable_l)
 C_LONGINT($maxFieldCount_l;$currentField_l)
 C_LONGINT($dontCare_l// para los valores GET FIELD PROPERTIES que no se utilizan.
 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:="Unique fields without index:"+$lf_t
 
 $logfile_t:=Get 4D folder(Logs folder)+"UniqueNotIndexed.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))
 
  // Tenga en cuenta los siguientes saltos de línea sobre dos líneas en el texto,
  // es una declaración en el método:
                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
 
    CLOSE DOCUMENT($logfile_h)
    SHOW ON DISK($logfile_t)
 End if

TechTip para crear índices faltantes en los campos declarados "únicos" pero no indexados:

 C_LONGINT($maxTableNumber_l;$currentTable_l)
 C_LONGINT($maxFieldCount_l;$currentField_l)
 C_LONGINT($dontCare_l// para valores GET FIELD PROPERTIES que no son utilizados.
 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)
 
 
 $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))</p><p> // Tenga en cuenta los siguientes saltos de línea sobre dos líneas en el texto,
  // es una declaración en el método:
             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+" indexed for uniqueness (kb#77023)"
                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

Para hacer en versión 32 bits (es decir, antes de pasar a 64 bits).

1 - Transferir sus imágenes estáticas en los formularios a la librería de imágenes:

2 - Una vez sus imágenes sean transferidas, conviértalas a .png o .jpeg:

 C_LONGINT($i;$SOA;$RIS;$PictRef)
 C_TEXT($PictName)
 C_PICTURE($Pict)
  //------------ initialización de arrays ------------------
 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)
  //------------ conversión de imágenes PICT a png ------------------
 If($SOA>0)
    For($i;1;$SOA// para cada imagen
       $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") // si el formato es obsoleto
             CONVERT PICTURE($Pict;".png") // conversión a png
  // y almacenar en la librería
             SET PICTURE TO LIBRARY($Pict;$PictRef;$PictName)
          End if
       End for
    End for
 Else
    ALERT("The image libary is empty.")
 End if
  //------------ fin del método ------------------

Ver Lenguaje para los comandos y constantes. En el contexto del despliegue de aplicaciones fusionadas, para usar los parámetros regionales puede editar el contenido del archivo de preferencias de 4D v1x en cada máquina local y definir la llave "use_localized_language" como "true". Por ejemplo:

 $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) // Leer el valor actual
 DOM GET XML ATTRIBUTE BY NAME($refElem;"use_localized_language";$attrValue)
 if($attrValue="false") // Vuelve al funcionamiento <v15
    DOM SET XML ATTRIBUTE($refElem;"use_localized_language";"true")
 End if
 DOM EXPOR TO FILE($ref;$UserPreference)
 DOM CLOSE XML($ref)

 
 

 
PROPIEDADES 

Producto: 4D ODBC Pro
Tema: Anexo: métodos útiles para la conversión

 
HISTORIA 

 
ARTICLE USAGE

Conversión a 4D v18 ( 4D v18)