|
Programme de Terminal XRML
- Fonctions générales
- Fonctions d'Input / Output (T_Read)
- Fonctions de Listes
- Fonctions
de Variables
- Fonctions
de Goto
Toutes les fonctions sont définies dans la DLL
'RIOCOM.DLL'. La DLL doit être incorporée dans le langage de
programmation utilisé. Les exemples sur 'Décharger' sont en VB. On peut
utiliser l'émulateur pour mettre les exemples en fonctionnement sans
qu'on doive faire recours à l'hardware externe.
- Le XRML fonctionne avec des écrans qui sont envoyés au
terminal. Il peut être comparé au HTML dans le sens que le
terminal demande au PC un écran et le PC l'envoie. Malgré tout, quand
le terminal demande un écran au PC, le PC peut envoyer l'écran
demandé ou d'autres écrans, par exemple, dans des situations
d'erreur. el te PC l'envoie.
Les écrans que le PC envoie peuvent avoir une validité
temporelle, c'est à dire, je peux envoyer un écran qui va être valide
pour 10 secondes ou pour toujours.
Pour que le terminal envoie des données au PC, il envoie
l'écran de retour au PC. Le programme du PC doit travailler
avec le même code qu'on a utilisé pour créer cet écran et la
DLL actualise les variables.
Fonctions Générales
- InitializeComm
- int __stdcall
InitializeComm(int ComPort,int BaudRate);
- Cela ouvre le
Port Série aux communications et initialise les
communications.
- ComPort doit
être 1,2,3...
- BaudRate doit
être 9600,19200,38400
- Si le ComPort
était 0 alors on cherche automatiquement un ComPort avec la
base branchée. Dans cette situation, la fonction retourne à 0
s'il ne trouve pas la base ou le numéro du ComPort ouvert.
- TerminateComm
- void __stdcall TerminateComm(int ComPort);
- Cela ferme le port série.
- T_ResetComunications
- int __stdcall T_ResetComunications();
- Cette commande permets à un terminal de réetablir la
communication avec le PC après sortir et entrer dans
l'application du PC.
- Normalement, après que les communications soient coupées il
faut apppuyer sur le button de reset du terminal.
- Pour utiliser ce commande il est obligatoire
que le programme du PC, en sortant, ait l'action
T_SaveScreens et, en reinitialisant, T_LoadScreens.
- Si on n'a pas ces deux actions, T_SaveScreens et
T_LoadScreens, le programme reste bloqué.
- T_SaveScreens
- int __stdcall T_SaveScreens(char *filename)
- Pendant que la DLL communique avec les terminaux, elle garde
dans la mémoireune copie de la mémoire des terminauxpour pouvoir
optimiser les communications.
- Les terminaux, quand ils comuniquent avec le PC,
transmettent seulement changements aux écrans.
- Cette fonction garde dans le disque l'état de la
memoire des terminaux.
- T_LoadScreens
- int __stdcall T_LoadScreens(char *filename)
- Pendant que la DLL communique avec les terminaux, elle garde
dans la mémoireune copie de la mémoire des terminauxpour pouvoir
optimiser les communications.
- Les terminaux, quand ils comuniquent avec le PC,
transmettent seulement changements aux écrans.
- Cette fonction lit dès le disque l'état de la
mémoire des terminaux.
- T_SaveComunicationStatus
- int __stdcall
T_SaveComunicationStatus( char *filename)
- Pendant que la DLL communique avec les terminaux, elle
mantient en memoire une copie de la memoire des terminaux pour pouvoir
optimiser les communications.
- Cette fonction garde dans le disque dur l'état de la
mémoire des terminaux referée aux communications.
L'usage de cette fonction évite de devoir faire
T_ResetComunications si le PC était débranché.
- T_LoadComunicationStatus
- int __stdcall
T_LoadComunicationStatus( char *filename)
- Pendant que la DLL communique
avec les terminaux, elle mantient en memoire une copie de la memoire des
terminaux pour pouvoir optimiser les communications.
- Cette fonction lit du disque dur l'état de la
mémoire des terminaux referées aux communications.
L'usage de cette fonction évite de devoir élire
T_ResetComunications si le PC était débranché.
- T_InitScreen
- int __stdcall
T_InitScreen(char *TerminalId,char *ScreenName,int ScreenFlags,int ScreenCursor,int ScreenValidate);
- char *TerminalId
- Indicateur pour le nom du terminal. Le nom doit être composé
par: XXXXXXDD, d'où XXXXXX dans une instalation doit être égal et le DD
doit être différent. Exemple: "TESTE 01","TESTE 02"
- char *ScreenName
- Indicateur pour le nom de l'écran.
- Le nom de l'écran peut avoir n'importe quelle
taille.
- char *ScreenFlags
- int ScreenCursor
- Position initiale du
curseur dans l'écran. Il contabilise le numéro de Gets...()
faits.
- Int ScreenValidate
- Seconde dans lequel l'écran perd de la validité. Le seconde
actuel peut être calculé avec: ((Date - 35065) + Time) * 24 * 60 * 60 em
VB
- T_SendScreen
- int __stdcall
T_SendScreen();
- Il envoie
l'écran actuel au Terminal. L'envoi doit être fait apres
réaliser un T_InitScreen.
- Il envoie
l'écran du PC au TERMINAL.
- T_RefreshScreen
- int __stdcall
T_RefreshScreen(char *TerminalId,char *ScreenName);
- Quand on reçoit
un écran du terminal, on doit actualiser nos variables dans le
PC. Pour ce faire, on doit élire T_RefreshScreen suivi du même
code qui a été utilisé pour créer l'écran.
- T_SetLcdLightPower
- int __stdcall
T_SetLcdLightPower(char state);
- Cela allume ou
éteint l'illumination du Display.
- T_SetSeconds
- int __stdcall
T_SetSeconds(int seconds);
- en VB pour
ajuster l'horloge du terminal, il peut être:
- T_SetSeconds
((Date - 35065) + Time) * 24 * 60 * 60
- T_SetLaserParameter
- int __stdcall
T_SetLaserParameter(int parameter,int value);
- Cela configure
le Laser.
- T_Beep
- int __stdcall
T_Beep(int duration,int periodo);
- Cela fait un
seul coup de sifflet dans le terminal
- T_SendScreenToPc
- int __stdcall
T_SendScreenToPc(char *ScreenName,int scr_flags);
- Il envoie
l'écran à un buffer qui sera envoyé au PC.
- ScreenName, Nom
de lécran á envoyer.
- scr_flags,
modifie tous les flags de l'écran
- Cette commande
utilise les suivants flags:
- #define
scr_flag_update_pc_if_possible 4
- Le terminal
envoie cet écran par radio au PC mais il essaye seulement une
fois.
- S'il ne peut
pas l'envoyer, il garde les données dans un buffer interne et il les
envoie quand il sera possible.
- #define
scr_flag_update_pc_now 8
- Le terminal
envoie cet écran par radio au PC, il essaye toujours.
- S'il ne peut
pas l'envoyer, l'écran reste bloqué jusqu'à ce qu'on soit dans un
endroit avec de la couveture.
- #define
scr_flag_update_pc_later 16
- Le terminal
envoie cet écran par radio au PC, mais non maintenant.
- Cela met les
donées sur un buffer d'envoie mais il n'essaye pas de les
envoyer.
- T_SendScreenToNull
- int __stdcall
T_SendScreenToNull(char *ScreenName,int scr_flags);
- Cette commande
est identique au précédent, mais elle ne met rien sur le buffer.
- Cela envoie
l'écran à Null. Son usage est important si l'on veut, par
exemple, annuler l'envoi d'un écran.
- On
doit l'utiliser combinée avec le flag scr_flag_restore_fields_after_send
- T_ChangeUpsideDown
- int __stdcall
T_ChangeUpsideDown(char flag);
- Cela inverse le
display. Cela ne fonctionne pas avec l'émulateur.
- T_PrintString
- int __stdcall
T_PrintString(char *txt);
- Cela imprime
une string (séquence) sur l'écran dans la position actuelle du
curseur.
- T_PrintLarge
- int __stdcall
T_PrintLarge(char *txt);
- Cela imprime
une string (séquence) dans la position actuelle du curseur.
- Source de
taille grande.
T_Print_Inverse
- int __stdcall
T_PrintInverse(char *txt);
- Cela imprime
centré en Inverse Video.
- T_NewLine
- int __stdcall
T_NewLine();
- Cela change de ligne
- T_Cls
- int __stdcall
T_Cls();
- Cela efface
l'écran
- T_WaitChar
- char __stdcall
T_WaitChar();
- Cela retourne à
la touche apuyée.
- T_Delay
- int __stdcall
T_Delay(int miliseconds);
- Le Terminal
reste arrêté. Ceci est utile pour montrer un écran de resultats
sans obliger à appuyer sur une touche.
- T_CheckIfReceiveData
- int __stdcall
T_CheckIfReceiveData(char *TerminalId,char *Screen_Name,char
*DataType,int *RawDataSize,char *RawData)
- Periodiquement,
on doit vérifier si on a de nouvelles données.
- #define
data_type_send_screen_zipped 1
#define data_type_ask_screen 2
- #define
data_type_reset 3
- #define
data_type_send_screen_unzipped 4
- #define
data_type_softreset 5
- #define
data_type_send_CAddress 6
- #define
data_type_send_raw_data 7
- Pour le
programmateur les options screen zipped et screen unzipped sont
la même chose. Quand le terminal demande un écran c'est parce qu'il
ne l'a pas dans la mémoire et il a besoin de lui.
- Reset est quand
on fait reset sur le terminal.
- Exemple en
VB:
- Private Sub
Timer1_Timer()
- Dim TerminalId
As String
- Dim ScreenName
As String
- Dim DataType As
Byte
- TerminalId =
Space(8)
- ScreenName =
Space(50)
- Do While
T_CheckIfReceiveData(TerminalId, ScreenName, DataType)
- ScreenName =
Trim(ScreenName)
- If
Len(ScreenName) > 0 Then
- ScreenName =
Left(ScreenName, Len(ScreenName) - 1)
- End If
- Select Case
DataType
- Case
data_type_reset
- ' Reset
(TerminalId)
- Case
data_type_send_screen_zipped
- ReceiveScreen
TerminalId, ScreenName
- Case
data_type_send_screen_unzipped
- ReceiveScreen
TerminalId, ScreenName
- Case
data_type_ask_screen
- AskScreen
TerminalId, ScreenName
- End Select
- ScreenName =
Space(50)
- Loop
- End Sub
- Quand on garde le programme dans l'EEPROM en réalité
on est en train de garder le programme dans un fichier
eeprom.bin.
Il peut être utilisé avec le DevKit pour recevoir un
programme compilé qui sera envoyé au port série.
- Plusieurs émulateus peuvent fonctionner au même temps s'ils
ont le Terminal Id avec de différents noms.
- T_SetFunctionKeys
int __stdcall
T_SetFunctionKeys(char *txt)
Cette commande définit les touches de fonction qui vont être
après visualisées avec le flag GetText_flag_ForceFunctionKeys.
Paramètres: char *txt
String (séquence) de quatre caractères, F1,F2,F3 et F4. Par
exemple, si la fonction s'appelle T_SetFunctionKeys("1234"); elle est
définie F1='1', F2='2', F3='3', F4='4'. Cette fonction doit être
utilisée combinée avec les fonctions T_OnF1GotoScreen,
T_OnF2GotoScreen...
- T_ChangeScreenFormat
int __stdcall
T_ChangeScreenFormat(int ScreenFormat)
Cette commande définit le type de source utilisé dans tous les
écrans.
Ligne 1 --> (Lettre grande ) +1
Ligne 2 --> (Lettre grande ) +2
Ligne 3 --> (Lettre grande ) +4
Ligne 4 --> (Lettre grande ) +8
etc
Par exemple, pour un écran qui ait tout avec de la lettre petite:
T_ChangeScreenFormat(0)
Si on veut que la ligne 1 et la ligne 4 aient la lettre plus
grande, on créera le commande:
T_ChangeScreenFormat(1+8)
Fonctions de Goto
- T_GotoScreen
- int __stdcall T_GotoScreen(char *ScreenName);
- Quand on exécute cette commande, le Terminal va à
l'écran "ScreenName"
- T_OnEscapeGotoScreen
- int __stdcall T_OnEscapeGotoScreen(char *ScreenName);
- Quand l'utilisateur appuye sur la touche Esc, le
terminal va à l'écran "ScreenName"
- T_OnF1GotoScreen
- int __stdcall T_OnF1GotoScreen(char *ScreenName);
- Quand l'utilisateur appuye sur la touche F1, le
terminal va à l'écran "ScreenName"
- Les touches de fonction doivent être definies avec la
fonction "T_SetFunctionKeys"
et activées dans un champ d'input avec text_flag GetText_flag_ForceFunctionKeys.
- T_OnF2GotoScreen
- int __stdcall T_OnF2GotoScreen(char *ScreenName);
- Quand
l'utilisateur appuye sur la touche F2, le terminal va à l'écran
"ScreenName"
Les touches de fonction doivent être definies avec la fonction
"T_SetFunctionKeys"
et être activées dans un champ de l'input avec text_flag GetText_flag_ForceFunctionKeys.
- T_OnF3GotoScreen
- int __stdcall T_OnF3GotoScreen(char *ScreenName);
- Quand
l'utilisateur appuye sur la touche F3 le terminal va à l'écran
"ScreenName.
- Les
touches de fonction doivent être definies avec la fonction "T_SetFunctionKeys"
et activées dans un champ d'input avec text_flag GetText_flag_ForceFunctionKeys.
- T_OnF4GotoScreen
- int __stdcall T_OnF4GotoScreen(char *ScreenName);
- Quand
l'utilisateur appuye sur la touche F4, le terminal va à l'ecran
"ScreenName"
Les touches de fonction doivent être definies avec la fonction
"T_SetFunctionKeys"
et activées dans un champ d'input avec text_flag GetText_flag_ForceFunctionKeys.
- T_IfVar1EqVar2Goto
- int __stdcall T_IfVar1EqVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- Si le contennu de la variable1 = variable2, le
terminal va à l'écran "ScreenName"
- T_IfVar1GreaterVar2Goto
- int __stdcall T_IfVar1GreaterVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- Si le contennu de la variable1 > variable2, le
terminal va à l'écran "ScreenName"
- T_IfVar1LessVar2Goto
- int __stdcall T_IfVar1LessVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- T_IfVar1NotEqVar2Goto
- int __stdcall T_IfVar1NotEqVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- Si le contennu de la variable1 <> variable2 le
terminal va à l'écran "ScreenName"
Fonctions du Browse
- Les suivantes fonctions doivent être utilisées combinées
et terminées avec la fonction T_Read
- T_Read
- int __stdcall
T_Read();
- Cette fonction
est équivalente à l'ancienne fonction de read du clipper.
- Après une série
de T_Say et T_Get... on doit terminer avec un T_Read.
- Le Terminal,
quand il exécute un T_Read, arrête et donne á l'utilisateur la
possibilité d'éditer les champs de l'input.
- Pour sortir du T_Read on doit appuyer sur ESC ou alors un des
T_Gets doit être le T_GetCheckEnter.
Cette fonction retourne à la ligne d'où elle est sortie du
Read.
T_Say
- int __stdcall
T_Say(char *txt);
- Elle doit être
utilisée combinée avec T_Get... et T_Read.
- En appuyant sur
T_Read, le curseur est placé sur le texte du T_Say, et permet
d'exécuter le T_Get...
- T_NoSay
- int __stdcall
T_NoSay(unsigned char size);
- On doit
l'utiliser avec T_Get... et T_Read.
- Il doit être
utilisé quand on veut que le curseur reste sur le champ de
l'input avec une taille (size).
- T_Scroll
- int __stdcall
T_Scroll(char *txt_fix,char *txt_rot);
- On doit
l'utiliser avec T_Get... et T_Read.
- Cela imprime le
txt_fix et si le curseur était au dessus cela exécute le
txt_rot.
- Les suivantes fonctions doivnt
être utilisées combuinées et terminées avec la fonction T_Read
- T_GetText
- int __stdcall T_GetText(char
*txt,int size,int flags);
- 'txt' doit être
l'indicateur pour l'espace de mémoire libre pour recevoir le texte avec
la taille 'size'.
- Dans VB on doit
déclarer une variable type string (séquence) et ensuite on initialise
avec des espaces. Pour que la DLL interprète que la string
est vide, on doit commencer avec chr(0) comme dans l'exemple
précédent.
- T_GetTextTemplate
- int __stdcall
T_GetTextTemplate(char *txt,char *templates,int flags)
- 'txt' doit être
un indicateur pour l'espace libre pour recevoir le texte avec la
taille
- strlen
(template).
En VB on doit déclarer une variable type string et ensuite on
initialise avec des espaces. Pour que la DLL interprète que la séquence
est vide on doit commencer avec chr(0) comme dans l'exemple
précédent.
Dans le champ template on doit créer un masque avec les
caractères valides.
Exemple:
T_Say "5 Alpha :"
T_GetTextTemplate barcode, "%%%%%", GetText_flag_Barcode
T_NewLine
T_Say "5 Alpha/Num :"
T_GetTextTemplate barcode, "@@@@@", GetText_flag_Barcode
T_NewLine
T_Say "5 Num :"
T_GetTextTemplate barcode, "#####", GetText_flag_Barcode
T_NewLine
T_Say "5 Q+4 :"
T_GetTextTemplate barcode, "Q###", GetText_flag_Barcode
T_NewLine
- T_GetTextFromList
- int __stdcall
T_GetTextFromList(int *number,int size,char *ScreenName);
- T_GetNumerical
- int __stdcall
T_GetNumerical(int *Number,int size,int flags);
- Équivalent au
GetText mais il reçoit un int de 32 bits au lieu d'une string.
- Size est la
taille du champ de l'input.
- T_GetLink
- int __stdcall
T_GetLink(char *ScreenName,int Value,char FastKey);
- Quand on appuye
sur enter dans cette option l'écran est appelé "ScreenName".
- Si on appuye
sur une FastKey le curseur est déplacé au GetLink équivalent et
on appelle à l'écran "ScreenName"
- Exemple 2.
- T_GetCheckEnter
- int __stdcall
T_GetCheckEnter();
- Il doit être
utilisé avec T_Say.
- Exp.
- T_Say "OK"
- T_GetCheckEnter
- Avec le curseur
sur OK et la touche Enter appuyée, il fait qu'on abandonne
l'écran.
- T_GetEditDate
- int __stdcall
T_GetEditDate();
Cela permet à l'utilisateur de changer la date du
terminal.
- T_GetEditTime
- int __stdcall
T_GetEditTime();
- Cela permet à
l'utilisateur de changer l'heure du terminal.
- T_GetOption
- int __stdcall
T_GetOption(int *position,char *List,int LenList,int
NumberOfElements);
- Cette option
permet d'élire un élément d'une liste. Par exemple, un 'Yes' ou un
'No'.
- T_GetOptionGotoScreen
- int __stdcall
T_GetOptionGotoScreen(int *position,char *List,int LenList,int
NumberOfElements,char *ScreenList);
- Cette option
permet d'élire un élément d'une liste et aller à un écran selon
l'élément choisi. Les éléments de la liste doivent être
separés par le Chr(0), ainsi comme les éléments des écrans.
- Exemple:
- T_GetOptionGotoScreen
( posición, "Yes"+chr(0)+"No"+chr(0) , 8 , 2 ,
"Ecran1"+chr(0)+"Ecran2"+chr(0) )
Dans cet exemple, en sortant du T_Read le programme va à
l'écran1 ou à l'écran2 en fonction du 'Yes' ou 'No'
- T_GetVariable
- int __stdcall
T_GetVariable(char *VariableName,int size,int flags);
- Fonction
équivalente au T_GetNumerical mais avec des variables locales
du terminal.
- Cela permet que
l'utilisateur édite la valeur d'une variable locale du terminal.
- T_StartRepeat
- int __stdcall
T_StartRepeat(int *times);
- T_EndRepeat
- int __stdcall
T_EndRepeat();
- T_GetRepeat
- int __stdcall
T_GetRepeat(unsigned char times);
- T_PutTextOnList
- int __stdcall T_PutTextOnList(char *txt,int
Value,char FastKey);
Fonctions avec des Variables
- T_ReserveVariable
- int __stdcall T_ReserveVariable(char *VariableName);
- T_WriteVariable
- int __stdcall T_WriteVariable(char *VariableName,int
valor);
- T_ReadVariable
- int __stdcall T_ReadVariable(char *VariableName);
- T_AddVariable
- int __stdcall T_AddVariable(char
*VariableNameDest,char *VariableNameSrc1,char *VariableNameSrc2);
- T_MulVariable
- int __stdcall T_MulVariable(char
*VariableNameDest,char *VariableNameSrc1,char *VariableNameSrc2);
- T_DivVariable
- int __stdcall T_DivVariable(char
*VariableNameDest,char *VariableNameSrc1,char *VariableNameSrc2);
- T_IfVar1EqVar2Goto
- int __stdcall T_IfVar1EqVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- T_IfVar1GreaterVar2Goto
- int __stdcall T_IfVar1GreaterVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- T_IfVar1LessVar2Goto
- int __stdcall T_IfVar1LessVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
- T_IfVar1NotEqVar2Goto
- int __stdcall T_IfVar1NotEqVar2Goto(char
*VariableName1,char *VariableName2,char *ScreenName);
Fonctions des Listes
- T_PutTextOnList
- int __stdcall
T_PutTextOnList(char *txt,int Value,char FastKey);
T_SetGetTextFromListFlags
int __stdcall T_SetGetTextFromListFlags(int flags)
Cela définit l'aspect du GetTextFromList dans tous les cas
futurs.
Exemple: T_SetGetTextFromListFlags GetText_flag_NotUnderline +
GetText_flag_DontShowZero
- T_GetTextFromList
- int __stdcall
T_GetTextFromList(int *number,int size,char *ScreenName);
- T_CreateListIndex
- int __stdcall
T_CreateListIndex(char *ListName,int size);
- Cela crée dans
la mémoire du terminal un index pour une liste. 'Size' est le
nombre d'éléments que la liste peut contenir.
- Le Terminal,
internement, use (8*size) bytes de mémoire, pour mantenir la liste.
- La séquence des
commandes pour créer une liste doit être:
- T_CreateListIndex
"utilisateurs",10
- T_ActivateListIndex
"utilisateurs"
- T_PutTextOnList
... met dans la liste des "Utilisateurs" les différents éléments
- T_PutTextOnList
... met dans
la liste des "Utilisateurs" les différents éléments
- T_PutTextOnList
... met dans la liste des "Utilisateurs" les différents
éléments
- T_PutTextOnList
peut être éxecuté dès de différents écrans.
- Après activer
une liste, TOUS les T_PutTextOnList sont relationés avec la
liste activée.
- T_GetTextFromList...
va chercher un élément dans la liste activée.
- T_DestroyListIndex
- int __stdcall
T_DestroyListIndex(char *ListName);
- Cela libere la
mémoire du terminal, en détruisant la liste.
- T_ActivateListIndex
- int __stdcall
T_ActivateListIndex(char *ListName);
- Cela active une
liste.
- T_DesactivateListIndex
- int __stdcall T_DesactivateListIndex();
- Cela désactive la liste activée.
- T_CreateListIndex "LISTE REPAS", 1000
- T_ActivateListIndex "LISTE REPAS"
- ListName > Nom qui aura une liste. Elle peut être une
liste de repas ou d'utilisateurs.
- Min,Max sont les valeurs limites de la liste. Ces valeurs ne
peuvent pas être très grandes, puisqu'elles occupent de la mémoire dans
le terminal.
- Exemple,
- T_CreateListIndex "LISTE DE REPAS", 1000
- Occupe 8Kb de memoria RAM dans le terminal pour
créer 1000 index.
- Pour Introduire des Donées dans une liste, on doit
d'abord activer cette liste.
- T_ActivateListIndex "LISTE DE REPAS"
- Ensuite,
on utilise le commande PutTextOnList pour introduire des
données.
- T_Cls
- T_PrintInverse
"MENU"
- T_NewLine
- T_Say
"1-Commander"
- T_GetLink
"DONNÉES DE LA COMMANDE", 0, Asc("1")
- T_NewLine
- T_Say
"2-Addition"
- T_GetLink
"ADDITION", 0, Asc("2")
- T_NewLine
- T_Say
"3-Annuler"
- T_GetLink
"ANNULER", 0, Asc("3")
- T_NewLine
- T_Say
"4-Heure"
- T_GetLink
"HEURE", 0, Asc("4")
- T_NewLine
- T_Beep 50,
50
- T_Read
- int __stdcall
T_GetLink(char *ScreenName,int Value,char FastKey);
- int Value (Optionnel si 0 n'est pas utilisé)
- Pour être utilisé avec GetTextFromList, en appuyant
sur Enter dans GetTextFromList si le Value était égal le
terminal place le curseur sur ce champ.
- FastKey
- Touche rapide pour entrer dans un Menu.
- T_Cls
- T_PrintInverse
"Menu"
- T_NewLine
- T_NewLine
- T_Say
"1-Viande"
- T_GetLink
"VIANDE", 10, Asc("1")
- T_NewLine
- T_Say
"2-Poisson"
- T_GetLink
"POISSON", 20, Asc("2")
- T_NewLine
- T_Say
"3-Vins"
- T_GetLink
"VINS", 30, Asc("3")
- T_NewLine
- T_Say
"4-Boissons"
- T_GetLink
"BOISSONS", 40, Asc("4")
- T_NewLine
- T_Say
"5-Desserts"
- T_GetLink
"DESSERTS", 50, Asc("5")
- T_NewLine
- T_Beep 50,
50
- T_Read
- T_Cls
- T_PrintInverse
"COMMANDE"
- T_NewLine
- T_Say "Table
:"
- T_GetText
table, 3, GetText_flag_Number
- T_NewLine
- st = "NON" +
Chr(0) + "OUI" + Chr(0)
- T_Say "Addition
:"
- T_GetOption
adittion, st, Len(st), 2
- T_NewLine
- T_Say "OK"
- T_GetLink
"COMMANDER", 0, 0
- T_Beep 50,
50
- T_Read
- int __stdcall T_GetOption(int *position,char
*List,int LenList,int NumberOfElements);
- int *position
Indicateur pour la position du curseur. Après l'exécuter, la valeur est
alterée.
- char *List
Indicateur pour une String (séquence) qui contient une liste de
plusiers éléments, separés par chr(0)
- int LenList
Taille totale de la String (séquence)
- int NumberOfElements Nombre des éléments dans la
string
- Suivi d'un 'Enter'
- Le nom 'Ze Carioca' automatiquement est mis en venant de
l'écran "UTILISATEURS", étant donné que 'Ze Carioca' est l'utilisateur
numéro 1.
- Password =
Chr(0) + Space(10)
- Utilisateur =
0
- T_Cls
- T_ActivateListIndex
"LISTE UTILE"
- T_PrintInverse
"LOGIN"
- T_NewLine
- T_Say
"Utilisateur:"
- T_GetTextFromList
Usuario, 10, "UTILISATEUR"
- T_NewLine
- nome =
ListeUtilisateurs(Utilisateurs)
- T_Say
"Password:"
- T_GetText
Password, 10, GetText_flag_ExitEnter + GetText_flag_Underline
- T_NewLine
- T_Beep 50,
50
- T_Read
- La Fonction
GetTextFromList accepte un numéro comme un input.
- Dans le
Terminal Horizontal :
- Si on appuye
sur la touche '.' , automatiquement on va à l'écran
ScreenName.
- Dans le
Terminal Vertical :
- Les touches de
fonction montrent un '?' .
- Si on appuye
sur la touche 'F1', automatiquement on va à l'écran ScreenName.
- Dans cette
situation la valeur sur number est utilisée pour se placer dans
le nouvel écran.
- Si dans le
nouvel écran il y a une valeur dans le (champ (Value de
PutTextOnList) = number) le curseur est placé là.
- Si on crée une liste avec les
fonctions correctes, quand on introduit un numéro suivi d'Enter, le
texte corréspondant de la Liste apparaît.
Pour définir l'aspect de la ligne de l'input, on peut utiliser
la fonction T_SetGetTextFromListFlags. Cette fonction
définit l'aspect de GetTextFromList dans tous les cas futurs.
- int __stdcall
T_GetTextFromList(int *number,int size,char *ScreenName);
- int *number
Indicateur pour un élément.
- int size taille
du champ de l'input.
- heure = Time
- T_Cls
- T_PrintString ("Heure actuelle:")
- T_NewLine
- T_PrintLarge heure
- T_NewLine
- T_NewLine
- T_NewLine
- T_NewLine
- T_Beep 50, 50
- key = T_WaitChar
- T_GotoScreen "MENU"
- T_Cls
- T_PrintInverse
"DONNÉES PERSONNELLES"
- T_NewLine
- T_Say "Nom:
"
- T_GetText nome,
10, GetText_flag_Underline
- T_NewLine
- T_NoSay 5
- T_GetText tel,
10, GetText_flag_Underline
- T_NewLine
- T_Read
- T_Cls
- T_PrintInverse
"VIANDES"
- T_NewLine
- T_NewLine
- T_Say
"1-Bifteck"
- T_GetLink
"Bifteck", 0, Asc("1")
- T_NewLine
- T_PutTextOnList
"Ragoût", 12, Asc("2")
- T_NewLine
- T_PutTextOnList
"Oeufs ", 13, Asc("3")
- T_NewLine
- T_PutTextOnList
"Côtellette, côte", 14, Asc("4")
- T_NewLine
- T_Beep 50,
50
- T_Read
- int __stdcall T_PutTextOnList(char
*txt,int Value,char FastKey);
- char
*txt Texte qui retourne à T_GetTextFromList après appuyer sur enter.
- int
Value Valeur qui retourne à T_GetTextFromList après appuyer sur enter.
- char FastKey
Touche rapide.
- P.S.
- Si avant d'éxécuter cet écran on choisit T_ActivateListIndexon
crée un index automatiquement.
- En faisant T_GetTextFromList s'il y a un index et
si on introduit un numéro valable, quand on appuye sur Enter
automatiquement le champ est substitué par le texte valable.
- Appuyer sur
Enter et
- l'écran sera
dessiné à nouveau avec la ligne des commandes augmentée 3 *
- T_Cls
- T_PrintInverse
"COMMANDE"
- T_ActivateListIndex
"LISTE REPAS"
- T_NewLine
- T_PrintString
"Plat quantité"
- T_NewLine
- T_StartRepeat
NombreCommandes
- For n = 1 To
NombreCommandes
- T_NoSay 15
- T_GetTextFromList
plats(n), 15, "LISTE"
- T_PrintString "
"
- T_NoSay 4
- T_GetNumerical
qt(n), 4, 0
- T_NewLine
- T_EndRepeat
- Next
- T_Say
"(+++)"
- T_GetRepeat
3
- T_NewLine
- T_Read
- Quand on
selectionne GetRepeat, le code entre StartRepeat et EndRepeat est
répété n fois. Dans l'exemple développé en haut, la ligne de
demande des plats est augmentée 3 fois.
- Dim nom As
String
- Dim tel As
String
- tel = Chr(0) +
Space(10)
- nom= Chr(0) +
Space(10)
- T_InitScreen
TerminalId, "ESSAI", scr_flag_execute, 0, 0
- T_Cls
- T_PrintInverse
"DONNÉES PERSONNELLES"
- T_NewLine
- T_Say "Nom:
"
- T_GetText nom,
10, GetText_flag_Underline
- T_NewLine
- T_Say "Tel :
"
- T_GetText tel,
10, GetText_flag_Underline
- T_NewLine
- T_Read
- T_SendScreen
ScrFlags
- #define scr_flag_execute 1
- Quand on envoye un écran au terminal avec cet
attribut, le terminal laisse de recevoir des écrans et éxécute
cet écran.
- #define
scr_flag_changed 2
- Non utilisé
- #define
scr_flag_update_pc_if_possible 4
- Le terminal
envoie cet écran par radio au PC, mais il essaye seulement une
fois.
- S'il ne peut
pas l'envoyer, il garde les données dans un buffer interne et il les
envoie quand il sera possible.
- #define
scr_flag_update_pc_now 8
- Le terminal
envoie cet écran au PC, il essaye toujours.
- S'il ne peut
pas l'envoyer, il reste bloqué jusqu'à ce qu'il soit dans une zone avec
de la couverture.
- #define
scr_flag_update_pc_later 16
- Le terminal
envoie cet écran par radio mais non pas maintenant.
- Il met les
données dans le buffer d'envoi mais il n'essaye pas de les
envoyer.
- #define
scr_flag_auto_destroy 32
- Après voir cet
écran, il perdra de la validité dans le terminal.
- #define
scr_flag_ask_pc_answer 64
- Non pas usé
- #define
scr_flag_ask_pc_update 128
- Non pas
usé.
- #define
scr_flag_restore_fields_after_send 256
- Après envoyer
par radio cet écran retourne à son aspect initial.
- #define scr_flag_dont_stop 512
- On doit l'utilser quand on veut envoyer un écran au
terminal et l'éxécuter sans que le terminal arrête.
- Cette option est très utile si l'on veut envoyer au
terminal des écrans avec des listes pour que le terminal les
assimille.
- T_PutTextOnList
Text flags
- #define
text_flag_Protected 1
- Le chanmp ne
peut pas être édité.
- #define
text_flag_AutoExit 2
- Si le curseur
est dans la dernière position, il sort.
- #define
text_flag_Password 4
- ****
- #define
text_flag_Number 8
- Il accepte
seulement des numéros.
- #define
text_flag_ExitEnter 16
- Si on appuye
sur Enter, on sort de l'écran.
- #define
text_flag_ExitAlways 32
- Quand on sort
du champ on sort de l'écran.
- #define
text_flag_Barcode 64
- Cela allume le
Barcode
- #define
text_flag_NotUnderline 128
- Cela montre le
champ de l'input non pas souligné.
- #define
text_flag_Link 256
- NE PAS
UTILISER
- #define
text_flag_NewText 512
- Cela nettoye le texte
#define text_flag_NumberRightAligned 1024
Cela aligne une chiffre à la droite.
- #define text_flag_DontShowZero 2048
Si le champ a la valeur zéro, il ne montre rien.
- #define text_flag_ForceFunctionKeys 4096
Il montre les touches de fonction définies avec la fonction
T_SetFunctionKeys .
- Si on appuye sur une touche
de fonction le terminal va à l'écran T_OnFxGotoScreen
#define text_flag_NoFunctionKeys 8096
- #define
Text_flag_AutoexitfieldON 16384
- Équivalent à l'AutoExit, mais
il sort dans le dernier caractère.
- #define Text_flag_OnlyExitIfTemplateOK 32768
- Si on est en train d'utiliser
des templates pour lire des codes de barres, on sort de ce champ
seulement si la lecture est OK.
- T_Cls
- T_PrintInverse
"VARIABLES"
- T_NewLine
- T_WriteVariable
"VALEUR1", 12
- T_WriteVariable
"UNITÉ", 1
- T_AddVariable
"VALEUR1", "VALEUR1", "UNITÉ"
- T_Say "Result
."
- T_GetVariable
"VALEUR1", 10, 0
- T_Read
- Les variables
utilisées dans le terminal sont locales. Elles sont dans la mémoire du
terminal. Elles sont indépendantes par rapport à l'écran.
- Pour mantenir
une variable dans la mémoire entre des resets du terminal on
doit réserver les respectives variables dans le premier
écran.
- T_ReserveVariable
- On peut
utiliser les fonctions conditionales pour avoir de petits
programmes en fonctionement dans le terminal sans qu'on doive
retourner au PC.
|