Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
/* ___ Déclarations _____________________________________________________________________
date        myDate
num_e(4,0)  myYear
num_e(2,0)  myMonth
num_e(2,0)  myDay
num_e(8,0)  myDateNum

/* ___ Code _____________________________________________________________________________
myYear      = &date_annee(myDate)                             /* extrait l'année de la date myDate (l'année sera au format SSAA)  
myMonth     = &date_mois(myDate)                              /* extrait le mois de la date myDate
myDay       = &date_jour(myDate)                              /* extrait le jour de la date myDate 
myDateNum   = &date_to_num(myDate)                               /* convertit la date myDate au format numérique (format SSAAMMJJ) 

...

Bloc de code
/* ___ Déclarations _____________________________________________________________________
alpha( 100) fileAlias
alpha(  10) fileMode
alpha(5000) myAlpha
image       myImage
num_bin_4   nb4ReturnCode

/* ___ Code _____________________________________________________________________________
myAlpha   = 'my text to be transformed to an image variable (2205)
fileAlias = 'myTransformation'
fileMode  = 'w'

charger_dll   'VATOOLBX.DLL'
appeler_dll   'VATOOLBX.DLL' 'VaToolBxOpenFile'    fileAlias myImage fileMode nb4ReturnCode
appeler_dll   'VATOOLBX.DLL' 'VaToolBxWriteString' fileAlias myAlpha          nb4ReturnCode
appeler_dll   'VATOOLBX.DLL' 'VaToolBxCloseFile'   fileAlias                  nb4ReturnCode
decharger_dll 'VATOOLBX.DLL'

/* la variable myImage contient le texte initialement contenu dans la variable myAlpha.

...

La fonction VaToolBxRandom est utilisée pour generater une valeur aléatoire.
Le resultat est un nombre de type NUM_BIN_4 compris entre -2147483648 et 2147483647.
Pour avoir une valeur comprise entre 0 et X on peut utiliser les fonctions &VALEUR_ABSOLUE et &MODULO (voir l'example ci-dessous)

3 -

...

Exemple

Ancre
randomExample
randomExample

Example to retrieve a value between 1 and Exemple de récupération d'une valeur comprise entre 1 et 10 :

Bloc de code
/* ___ Declarations _____________________________________________________________________
num_e(6,0) wTime
num_bin_4  wSeedValue
num_bin_4  wRandomValue

/* ___ Code _____________________________________________________________________________

/* ___ GenerateGenérer aune seedvaleur valueinitiale ____________________________________________________________
time 		 wTime
wSeedValue = wTime
callappeler_dll 'vatoolbx.dll' 'VaToolBxSeedRand' wSeedValue 

/* ___ GenerateGénérer aune randomvaleur valuealéatoire __________________________________________________________
call_dll 'vatoolbx.dll' 'VaToolBxRandom'   wRandomValue

/* ___ CalculateObtenir une avaleur valuecomprise betweenentre 1 andet 10 _______________________________________________
wRandomValue = &absolutevaleur_valueabsolue(wRandomValue)
wRandomValue = &modulo(wRandomValue;10)
wRandomValue = wRandomValue + 1

Dynamic program call

We can use the CALL instruction to call a dynamic program, with static or even dynamic parameters

...


...

Appel dynamique de programme

On utilisera l'instruction APPELER pour appeler dynamiquement un programme externe (ou une procédure publique), avec des paramètres statiques ou dynamiques

1 - Exemples d'appels dynamiques

Bloc de code
/* ___ Declarations _____________________________________________________________________
alpha(  10)  wProgramObjectFileName
alpha( 128)  wProgramPublicProcedureName
alpha(1000)  wParameters
num_e( 2,0)  myParameterNum01
num_e( 2,0)  myParameterNum02

/* ___ Code _____________________________________________________________________________
callappeler myProgram
callappeler myProgram.myProcedure
myParameterNum01 = 22
callappeler myProgram.myProcedure2 myParameterNum01
myParameterNum01= 22
myParameterNum02= 05
callappeler myProgram.myProcedure2 myParameterNum01 myParameterNum02

/* ___ Dynamic program name _______________ Appel dynamique de programme et de nom de procédure également dynamique ______________________________________________
wProgramObjectFileName      = 'mypgm'
callwProgramPublicProcedureName = 'myProcedure'
appeler &wProgramObjectFileName .&wProgramPublicProcedureName

wProgramObjectFileName      = 'mypgm'
call &wProgramObjectFileName.myProcedure

/* ___ Dynamic program name and public procedure name ___________________________________
wProgramObjectFileNamewProgramPublicProcedureName = 'myProcedure2'
myParameterNum01              = 'mypgm'
wProgramPublicProcedureName = 'myProcedure'
call22
appeler &wProgramObjectFileName.&wProgramPublicProcedureName

wProgramObjectFileName      = 'mypgm'
wProgramPublicProcedureName = 'myProcedure2'
myParameterNum01            = 22
call &wProgramObjectFileName.&wProgramPublicProcedureName myParameterNum

/* ___ Dynamic program name, procedure name and parameters ______________________________
wProgramObjectFileName      = 'mypgm'
wProgramPublicProcedureName = 'myProcedure2'
wParameters                 = '22 05'
callappeler &wProgramObjectFileName.&wProgramPublicProcedureName &wParameters

Users's attribute


...

Attributs de contexte utilisateur

La session web peut être utilisée pour stocker et récupérer des valeursUser session can be used to store and retrieve values.

Avertissement
titleWarning

It is only available in client part of a cloud generated program (not in a server part or in a server program or in a windows program).

1 - Set an attribute value

Attention

Ces instructions sont seulement utilisables dans la partie cliente d'un programme généré en mode "cloud" (ces instructions ne sont donc pas utilisables dans une partie serveur, dans un programme pur serveur ou encore dans un programme généré en mode windows).

1 - Positionner une valeur sur un attribut

Pour affecteur une valeur à un attribut d'une session utilisateur on utilisera la fonction VaToolBxCloudSetUserAttribute de la vaToolBx To set a session private attribute value, we simply have to use the  VaToolBxCloudSetUserAttribute fonction of the vaToolBx library :

Bloc de code
/* ___ Declarations _____________________________________________________________________
alpha( 50) wAttributeName
alpha(256) wAttributeValue

/* ___ Code _____________________________________________________________________________
wAttributeName  = 'myLabel'							/* Label Etiquette
wAttributeValue = 'xxxyyyzzz'						/* ValueValeur toque bel'on storedveut understocker thedans userla session (must be alpha value)
callutilisateur (ce doit être une variable Alpha)
appeler_dll 'VaToolBx' 'VaToolBxCloudSetUserAttribute' wAttributeName  -
                                                       wAttributeValue

The scope of this setting is limited to the current session (logout / logon will destroy all values).

2 - Retrieve an attribute value

La portée de cette valeur est limitée à la session courante de l'utilisateur, soit celle de son bureau, une déconnexion aura pour effet de supprimer les valeurs du contexte de l'utilisateur.

2 - Récupérer la valeur d'un attribut

Afin de récupérer la valeur stockée pour un attribut de la session d'un utilisateur, on utilisera la fonction VaToolBxCloudGetUserAttribute de la vaToolBx To retrieve a session private attribute value, we simply have to use the  VaToolBxCloudGetUserAttribute fonction of the vaToolBx library :

Bloc de code
/* ___ Declarations _____________________________________________________________________
alpha( 50) wAttributeName
alpha(256) wAttributeValue
num_bin_4  wAttributeLength

/* ___ Code _____________________________________________________________________________
wAttributeName   = 'myLabel'						/* Label Etiquette
wAttributeValue  = *blank
wAttributeLength = 256								/* SizeTaille de ofla thevariable wAttributeValue variable
callappeler_dll 'VaToolBx' 'VaToolBxCloudGetUserAttribute' wAttributeName   -
                                                       wAttributeValue  -
                                                       wAttributeLength
ifsi *returncode_coderetour = *normal
   /* wAttributeValue containscontient thela valuevaleur previouslypréalablement savedsauvegardée
endfin

3 -

...

Supprimer la valeur d'un attribut

Pour supprimer un attribut de la session d'une utlisateur, on utilisera la fonction VaToolBxCloudSetUserAttribute de la vaToolBx avec une valeur vide

...

To delete a session private attribute value, we simply have to use the  VaToolBxCloudSetUserAttribute fonction of the vaToolBx library with a blank value :

Bloc de code
/* ___ Declarations _____________________________________________________________________
alpha( 50) wAttributeName
alpha(256) wAttributeValue

/* ___ Code _____________________________________________________________________________
wAttributeName  = 'myLabel'							/* Label Etiquette
wAttributeValue = *blank							/* *blank pour tosupprimer deletel'attribut thede labella fromsession thede userl's sessionutilisateur
callappeler_dll 'VaToolBx' 'VaToolBxCloudSetUserAttribute' wAttributeName  -
                                                       wAttributeValue

Management Rules

Management rules (MR) can be used if we don't want to repeat the same code on different parts of the code.
The management rule can have parameters and must be seen as a text that will be parsed inside the code.

1 - Parameters

The parameter 1 of the MR will be placed in place of the :01 value etc.
The :01 (:xx) value can be present multiple times inside the MR.
The :01 (:xx) value can be placed anywhere in the code, even to replace an Adelia order or part of it.


...

Règles de gestion

Les règles de gestion (RG) peuvent être utilisées quand on veut répéter le même code dans différentes parties d'un programme ou bien dans différents programmes et quand on a pas la possibilité d'utiliser des procédures.
Une règle de gestion peut avoir des paramètres et doit être vue comme un bloc de texte qui serait collé dans le code en remplaçant les paramètres par leur valeur explicite.

1 - Paramètres

Le paramètre 1 de la règle de gestion sera placé tel quel à la place de la valeur :01 de la règle de gestion, il en sera de même pour les paramètres suivants.
La valeur :01 (:xx) pourra être présente plusieurs fois dans le source de la règle de gestion.
La valeur :01 (:xx) pourra être placée n'importe où dans le code de la règle de gestion, même pour remplacer un ordre adelia ou une partie d'un ordre adelia.

Bloc de code
titleExemples de code de règle de gestion
Bloc de code
titleExamples of code of a Management Rule
/* ___ ManagementRG Rule "MyMa_BeautifulBelle_MRRG" ________________________________________________

/* ___ DeclarationsDéclarations _____________________________________________________________________
decl alpha( 50)              w:01_val
decl ref(cli_usr_:02 client) wCli_usr_:02
decl num_e(9,0)              sqlcode_mr

/* ___ Code _____________________________________________________________________________
wcli_usr_:02  = :03							
ifsi wcli_usr_:02 = *blank 
	wcli_usr_:02 = *user
endfin
updmaj_sql client cli_usr_:02 = :wcli_usr_:02
sqlcode_mr = *sqlcode
:06 insertinserer_mrrg BOL_TRC_:05('*DEBUG';'my beautiful MR, sqlCode : ' // sqlcode_mr ;1)
:04 = sqlcode_mr 

2 -

...

Utilisation

Pour insérer une RG, on utilisera l'ordre INSERER_RG

...

To use a MR, we simply have to insert it with the INSERT_MR order

Bloc de code
titleExamples of code of insertion of a Management Rulede codes d'insertion d'une règle de gestion
/* ___ Code _____________________________________________________________________________
insertinserer_mrrg myma_beautifulbelle_mrrg(test;cre;'milkwater';mrReturnCode;C; )  
insertinserer_mrrg myma_beautifulbelle_mrrg(test;maj;*blank;mrReturnCode;S;*)

...


...

Objets graphiques

1 - get an object from his object name

...