Fonction Bikini v 1.1.
Fonction DEFINIT LE PROJET PAR DEFAUT
Prototype zmesdefault(nom$=512):%
Système Cible Tous
Exemple err= zmesdefault'("c:\appli\projet2")
En entrée nom = path et nom du projet
En sortie errreur: 0 = Ok,ou 40 = Projet non ouvert par zmesopen.
Description Définit le projet par défaut pour les recherches de ressources (dans le cas où plusieurs projets sont ouverts simmultannément (5 maxi) dans une même application). Le projet doit tout d'abord être ouvert par zmesopen.
début


Fonction Bikini v 1.1.
Fonction MODIFIE DYNAMIQUEMENT LE NOM DE LA BOITE DE DIALOGUE COURANTE
Prototype zdialog_user(proc p):$=5
Système Cible Tous
Exemple newproc = proc ptr ma_procedure
oldproc = zdialog_user(newproc)
En entrée p = pointeur sur la fonction utilisateur
En sortie ancien pointeur s'il existe ou null..
Description Définit un pointeur sur une fonction appelée avant chaque appel d’une boite de dialogue ou d’un menu, afin de dynamiquement redéfinir le nom de la ressource.
Cette fonction peut être appelée pour changer le nom d'un écran particulier, pour un spécifique client par exemple,
sans toucher au code source du programme principal.

Prototype callback:
proc user_dialog(type%,ptr nom$=16,ptr af_mode%)
Type = 1 si boite de dialogue, 2 si menu
Nom = nom ressource Bikini pouvant être changé dynamiquement
Af_mode = équivaut au mode d’affichage de zdialog_box.

      Exemple :

Proc param_dialog(type%,ptr nom$=16,pt raf_mode%)
; Gestion de la fiche articles dans la gestion commerciale: ; ; Si client = "NASA" ou "AIRBUS", on a une fiche article spécifique. ; Select type Case 1 ; Boites de dialogue Select nom ; Nom écran Case "FICHE_ARTICLES" Select mon_client_a_moi ; Variable globale indiquant le client Case "NASA" ; Nasa = écran spécifique Nom ="ARTICLE_FUSEE" Case "AIRBUS" ; Airbus Industries = écran spécifique Nom ="ARTICLE_AVION" Default ; Pour tous les autres clients ; Ne change pas le nom de la boite de dialogue Endsel Endsel Case 2 ; menus ; Ne change rien Endsel Endsel Endproc .... segment 0 dcl proc p endloc p =proc ptr param_dialog zdialog_user (p)




début


Fonction Bikini v 1.1.
Fonction DEFINIT UN BITMAP EN FOND DE FENETRE
Prototype zwinback( nom_bitmap$=512 ):%
Système Cible Windows 32 ou 64 bits uniquement
Exemple err =zwinback(« c:\appli\images\fond.jpg »)
En entrée nom = path et nom du fichier .JPG, .BMP ou .GIF
En sortie errreur: 0 ou erreur d"ouverture du fichier image (erreur 56 sous Twin)
Description Définit une image qui sera systèmatiquement affichée en fond de toutes les boites de dialogue et fenêtres, après l'affichage du cadre de la fenêtre et avant l'affichage des zones de saisies et des boutons.
Cette boite de dialogue utilise une texture de fond programmée par zwinback : 


Fonctions associées: zclear_zone , zbackmode. , zwin_getback.
début


Fonction Bikini v 1.1.
Fonction DEFINIT LE MODE D’AFFICHAGE « TRANSPARENT/OPAQUE »
Prototype zbackmode(mode%):%
Système Cible Windows 32 ou 64 bits uniquement, sinon mode = toujours 1
Exemple old_mode =zbackmode( 1 )
En entrée Mode = 0 => Affichage en mode « transparent » (affichage en superposition au fond)
Mode = 1 => Affichage en mode « opaque. » (efface le texte au dessous
En sortie ancien mode (0 ou 1)
Description Le mode transparent permet d’afficher du texte sur des bitmaps, sans effacement de la matrice du caractère (8x18 points en petites polices). La fonction agit sur tous les zprint et zprintxy qui suivent l’instruction.
Les libellés affichés après un zbackmode(0) n'effacent pas la texture de fond de la boite de dialogue
Fonctions associées: zclear_zone , zwinback.
début


Fonction Bikini v 1.1.
Fonction EFFACE UNE ZONE DE L’ECRAN
Prototype zclear_zone(car$=1,x%,y%,larg%,haut%)
Système Cible Tous
Exemple zclear_zone(« « ,10,15,40,4 )
En entrée car = Caractère d’effacement
x,y,larg,haut = Définition de la zone de l’écran
En sortie Rien.
Description Cette fonction efface une zone rectangulaire de l'écran, A L'AIDE DU BITMAP DE FOND défini par zwinback.
S'il n'y a pas de zwinback défini, elle utilise la couleur de fond de la fenêtre.
Le caractère d'effacement n'est là que par soucis de compatibilité ascendante avec Prologue. Il doit être Blanc
La fonction zclear_zone efface les libellés sans effacer la texture de fond de cette boite de dialogue :
Fonctions associées: zbackmode , zwinback.
début




Fonction Bikini v 1.1.
Fonction DEFINIT UN CALLBACK D’AFFICHAGE DE LA LISTE MEMOIRE
Prototype zlisuser(pval%,ptr buffer$,nbi%,proc p1)
zlisuserex(pval%,ptr buffer$,nbi%,proc p1,proc p2)
Système Cible Tous
Exemple
dcl tableau$=50(100)
...
proc affiche_ligne(focus%,x%,y%,ptr ligne$=50)
	zprintline(50,tableau(y)
endproc
...
proc rends_item(x%,y%,ptr ligne$=50)
	ligne       =tableau(y)
endproc
...
if (zbefore = 1)
	forget buffer
	p1 = proc ptr affiche_ligne
	p2 = proc ptr rends_item
	zlisuserex(buffer,100,p1,p2)
endif
En entrée pval = 0 indique que le buffer (2ième variable) n'est pas utilisé, 1 indique qu'il est utilisé.
buffer = buffer contenant le tableau des items s'il n'est pas géré par l’utilisateur.
Nbi = Nombre d’items
P1 = callback d’affichage de la ligne
P2 = callback qui rends le contenu d’un item de la ligne à Zlib.
En sortie rien
Description Définit une liste mémoire dont l’affichage des items est géré par l’utilisateur. Ceci permet par exemple de présenter sous forme de liste mémoire (avec les ascenceurs windows une liste fichier suite à un COUNT qui rend le nombre de réponses. Ceci permet également de s'affranchir de la limite à 32 Ko des listes mémoires.
Si la liste est gérée par l'utilisateur :

le premier pointeur sert à afficher la ligne. Le développeur doit connaitre le contenu de la ligne en fonction du numéro de ligne qui lui est passé en entrée.
Le deuxième pointeur sert à rensigner la ligne, s'il y a un contrôle d'existence de la saisie associée à la liste.

On préfèrera utiliser les nouvelles fonctions de listes mémoires: zlist_create
dans le cas où l'on désire pouvoir interroger le contenu de la liste (ligne courante, liste des lignes...) depuis n'importe quel endroit de la boite de dialogue.

début




Fonction Bikini v 1.1.
Fonction AJOUTE UNE HOT-KEY EN EQUIVALENCE A UNE HOT KEY EXISTANTE
Prototype zhkey_equal(old$=1,new$=1)
Système Cible Tous
Exemple zhkey_equal(chr$(3), ‘‘V’’ )
tous les push-boutons ayant comme débranchement PgDn (chr$(3) auront
également comme débranchement la touche ‘’V’’.
En entrée Old = hot-key de push boutons
New = nouvelle hot key équivalente
En sortie rien
Description Ajoute une deuxième touche de débranchement aux push-boutons ayant déjà une touche de débranchement définie. La fonction agit sur tous les push-boutons définis après l’instruction. La touche de débranchement originale est conservée.
début




Fonction Bikini v 1.1.
Fonction DEFINIT LA COULEUR DES SAISIES QUI SUIVENT (en cours d'exécution de l'automate)
Prototype zask_wincolor_dyn(cR%,cG%,cB% fR%,fG%,fB%)
Système Cible Windows 32 ou 64 bits uniquement
Exemple zask_wincolor_dyn(0,0,0,255,125,0) ; noir sur couleur de fond saisie orange.
Zaskalpha(zask,code_postal ?)
zask_wincolor_def()
En entrée CR,CG,CB = couleur d’avant plan (R.G.B)
fR,fG,fB = couleur d’arrière plan.
En sortie rien
Description Permet dynamiquement en cours d’exécution de boite de dialogue de programmer les couleurs des saisies en mode R,G,B (24 bits).

Exemple sur un tableau de saisies (lignes alternées) :

If (mod(za2 + zady – 1,2 ) = 0)			; lignes PAIRES
	zak_wincolor_dyn( 0, 0, 0,202,242,255) ; noir /  fond bleu ciel.
Else ; lignes IMPAIRES
	Zask_wincolor_def()
endif
zaskalpha(zask,code_client(za2+zady-1) ?)
Zask_wincolor_def()

fonctions associées :zask_wincolor_def , zask_wincolor , zask_winback
début




Fonction Bikini v 1.1.
Fonction DEFINIT LA COULEUR DES SAISIES QUI SUIVENT COMME ETANT LA COULEUR PAR DEFAUT DE WINDOWS
Prototype zask_wincolor_def()
Système Cible Windows 32 ou 64 bits uniquement
Exemple zask_wincolor_def().
En entrée rien.
En sortie rien.
Description Repasse les zaskalpha qui suivent en couleur par défaut de windows. S'utilise généralement pour annuler un zask_wincolor_dyn.

fonctions associées :zask_wincolor_dyn , zask_wincolor , zask_winback
début




Fonction Bikini v 1.1.
Fonction DEFINIT LA COULEUR DES DCL DE ASK
Prototype zask_wincolor (cR%,cG%,cB%)
Système Cible Windows 32 ou 64 bits.
Exemple zask_wincolor (,255,125,0) ; orange.
zaskdcl(....
En entrée CR,CG,CB = couleur d’avant plan (R.G.B)
En sortie rien
Description Définit la couleur des DECLARATIONS (zaskdcl) de saisies alphanumériques qui suivent l’instruction, en mode R,G,B (24 bits). Aucun effet sous les autres systèmes que Windows.
fonctions associées :zask_wincolor_dyn , zask_wincolor_def , zask_winback
début




Fonction Bikini v 1.1.
Fonction DEFINIT LA COULEUR DE FOND DES DCL DE ASK
Prototype zask_winback (cR%,cG%,cB%)
Système Cible Windows 32 ou 64 bits.
Exemple zask_winback (,255,125,0) ; orange.
zaskdcl(....
En entrée CR,CG,CB = couleur de fond (R.G.B)
En sortie rien
Description Définit la couleur de fond des DECLARATIONS (zaskdcl) de saisies alphanumériques qui suivent l’instruction, en mode R,G,B (24 bits). Aucun effet sous les autres systèmes que Windows.
fonctions associées :zask_wincolor_dyn , zask_wincolor_def , zask_wincolor
début




Fonction Bikini v 1.1.
Fonction DEFINIT UNE SAISIE EN DOUBLE HAUTEUR.
Prototype zask_setHsize(noask%)
Système Cible Windows 32 ou 64 bits.
Exemple zaskdcl(3,….)
zask_setHsize(3) ; la saisie numéro 3 sera en double hauteur
En entrée numéro (user) de saisie dans la boite de dialogue.
En sortie rien
Description La saisie ALPHANUMERIQUE identifiée sera en double hauteur sous windows. Sans effet sous les autres systèmes. à utiliser lors de la déclaration (zaskdcl...) d’une boite de dialogue.

début




Fonction Bikini v 1.1.
Fonction REND LA DATE COURANTE.
Prototype zdat_getoday():$=8
Système Cible Tous
Exemple datejour = zdat_getoday()
En entrée rien
En sortie date système au format courant des dates Zlibrary.
Description Equivalente à zdatoday avec une syntaxe différente.
début




Fonction Bikini v 1.1.
Fonction RETOUNE LA PROFONDEUR DE COULEUR DE WINDOWS
Prototype zwin_nbbitspixel():%
Système Cible Windows 32 ou 64 bits
Exemple nbcoul = zwin_nbbitspixel()
En entrée rien
En sortie 2,4,8,16,32 ou -1 si pas windows.
Description Permet de choisir les images à afficher à l’écran selon la configuration écran de windows.
Cette fonction n'a pas d'intérêt pour les systèmes récents dont la profondeur des couleurs est toujours de 32 ou 64 bits.
début




Fonction Bikini v 1.1.
Fonction MODIFIE LE TITRE DE LA FENETRE WEXA.
Prototype zwindow_title(titre$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zwindow_title(‘’gestion commerciale V 1.4a’’)
En entrée titre de la fenêtre WEXA.
En sortie 0 ou 56 si pas windows.
Description Modifie le titre de la fenêtre Wexa. Tous les nouveaux exemples livrés avec Bikini utilisent cette fonction.
début




Fonction Bikini v 1.1.
Fonction MODIFIE LA POSITION ET LA TAILLE DE LA FENETRE WEXA.
Prototype zwindow_position(x%,y%,largeur%,haut%) :%
Système Cible Windows 32 ou 64 bits
Exemple zwindow_position(100,50,730,640)
En entrée x,y = nouvelles coordonnées (graphiques !) de la fenêtre Wexa, suivies de la largeur puis de la hauteur.
En sortie 0 ou 56 si pas windows.
Description Modifie dynamiquement la position et la taille de la fenêtre Wexa. Tous les nouveaux exemples utilisent cette fonction
On préferera utiliser les fonctions zwexa@@@, plus puissantes :

fonctions associées :zwexa_center , zwexa_iconize , zwexa_moveresize , zwexa_resize
début




Fonction Bikini v 1.1.
Fonction EXECUTE UN FICHIER SON
Prototype zplay_sound(ficwave$=512,reserve_a_zero%)
Système Cible Windows 32 ou 64 bits
Exemple zplay_sound(‘’ c:\appli\sauvegarde.wav’’,0)
En entrée ficweve = chemin et nom du fichier .WAV.
deuxième paramètre à zéro.
En sortie 0 ou 56 si pas windows, ou erreur d'ouverture du fichier (40)
Description Exécute le fichier son. La fonction retourne à l’appelant juste après le début de l'exécution du fichier son.
début




Fonction Bikini v 1.1.
Fonction REND LE SEPARATEUR ENTRE REPERTOIRES ET FICHIERS
Prototype zget_sep():$=1
Système Cible Tous systèmes
Exemple fichier = zget_sep() ! ‘’projdir’’ ! zget_sep() ! ‘’mon_projet’’
En entrée rien
En sortie « / » sous Linux et « \ » sous les autres systèmes.
Description Petite fonction sans prétention.
début




Fonction Bikini v 1.1.
Fonction AFFICHE UN ELEMENT DE TABLEAU
Prototype zpxyalpha(z_no%,z_n1%,z_n2%,var$=256)
zpxydiese(z_no%,z_n1%,z_n2%,z_var#)
zpxypourc(z_no%,z_n1%,z_n2%,z_var%)
zpxybcd(z_no%,z_n1%,z_n2%,z_var=12)
zpxycheck(z_no%,z_n1%,z_n2%,z_var$=1)
zpxyradio(z_no%,z_n1%,z_var%)
zpxydate(z_no%,z_n2%,z_var$=8)
Système Cible Tous systèmes
Exemple zpxyalpha(3,1,4,nom)
En entrée z_no = Numéro de la saisie
z_n1 = Coordonnée X du tableau
z_n2 = Coordonnée Y du tableau
variable à afficher.
En sortie rien
Description Affiche une cellule isolée d’un tableau de saisies en cours d’exécution d’une boite de dialogue.
début




Fonction Bikini v 1.2.
Fonction AFFICHE UNE PARTIE QUELCONQUE D’UNE IMAGE
Prototype zbmp_ydisplay(n%,ox%,oy%,ol%,oh%,x%,y%,l%,h%):%
Système Cible Windows 32 ou 64 bits
Exemple
En entrée n = Numéro du bitmap préalablement chargé par zbmp_load.
Ox = Coordonnée X [en pixels] de la partie à afficher dans le bitmap.
Oy = Coordonnée Y [en pixels] de la partie à afficher dans le bitmap.
Ol = Largeur [en pixels] de la partie à afficher dans le bitmap.
Oh = Hauteur [en pixels] de la partie à afficher dans le bitmap.
x = Coordonnée X [en caractères] de la partie à afficher dans la fenêtre
y = Coordonnée Y [en caractères] de la partie à afficher dans la fenêtre.
l = Largeur [en caractères] de la partie à afficher dans la fenêtre.
h = Hauteur [en caractères] de la partie à afficher dans la fenêtre.
En sortie 0 ou 56 si pas windows, ou erreur d'ouverture du fichier (40)
Description Fonction équivalente à zbmp_xdisplay, sauf qu’elle permet de situer le point haut gauche de la partie à afficher dans le bitmap. Cette fonction permet de réaliser des zoom sur les images.
Attention au mélange d'unités graphiques en pixels, et texte.
Cette fonction est illustrée dans le programme EXBITMAP, à travers une fonction zoom paramétrable qui permet de naviguer et de zoomer à l'intérieur d'une image.

fonctions associées :zbmp_getdiml , zbmp_getdimh
début




Fonction Bikini v 1.2.
Fonction REND LA LARGEUR EN PIXELS D’UNE IMAGE
Prototype zbmp_getdiml(no%):%
Système Cible Windows 32 ou 64 bits
Exemple zbmp_load(3, ‘’\Mes Documents\Mes Images\image.jpg’’)
dimx = zbmp_getdiml(3)
dimy = zbmp_getdiml(3)
En entrée n = Numéro du bitmap préalablement chargé par zbmp_load.
En sortie Nombre de pixels en largeur.
Description Rends le nombre de pixels de la largeur d'une image préalablement chargée par zbmp_load. Cette fonction peut être utilisée afin de dynamiquement pouvoir utiliser zbmp_ydisplay sans connaître les dimensions de l’image manipulée. Cette fonction est utilisée dans le programme EXBITMAP.
fonctions associées :zbmp_ydisplay , zbmp_getdimh
début




Fonction Bikini v 1.2.
Fonction REND LA HAUTEUR EN PIXELS D’UNE IMAGE
Prototype zbmp_getdimh(no%):%
Système Cible Windows 32 ou 64 bits
Exemple zbmp_load(3, ‘’\Mes Documents\Mes Images\image.jpg’’)
dimx = zbmp_getdiml(3)
dimy = zbmp_getdiml(3)
En entrée n = Numéro du bitmap préalablement chargé par zbmp_load.
En sortie Nombre de pixels en hauteur.
Description Rends le nombre de pixels de la hauteur d'une image préalablement chargée par zbmp_load. Cette fonction peut être utilisée afin de dynamiquement pouvoir utiliser zbmp_ydisplay sans connaître les dimensions de l’image manipulée. Cette fonction est utilisée dans le nouveau programme EXBITMAP
fonctions associées :zbmp_getdiml , zbmp_ydisplay
début




Fonction Bikini v 1.3.
Fonction APPELLE WINDOWS POUR OUVRIR UN FICHIER
Prototype extern proc zopenfile_dial(titre$=40,masque$=512,fichier$=512):%
Système Cible Windows 32 ou 64 bits
Exemple dcl fichier$=512
...
zopenfile_dial("Générer Source","Sources|*.s|sources|*.as|Includes|*.inc|",fichier?)
zmesval("J'ai ouvert le fichier :"+fichier)
En entrée titre = Titre de la fenêtre ouverte par Windows.
masque = Suite de masques de fichiers suivis chacun d'un commentaire, comme indiqué dans l'exemple qui précède. Attention aux séparateurs qui doivent impérativement être des caractères "pipe".
En sortie -1 si l'utilisateur a frappé ESCAPE, sinon zéro.
La dernière variable (fichier dans l'exemple), est mis à jour par le système en fonction du choix de l'utilisateur.
Description Permet de demander à l'utilisateur de choisir un fichier à ouvrir (ce fichier doit exister), par l'intermédiaire de l'explorateur Windows.
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV13.AT

début




Fonction Bikini v 1.3.
Fonction APPELLE WINDOWS POUR SAUVEGARDER UN FICHIER
Prototype extern proc zsavefile_dial(titre$=40,masque$=512,fichier$=512):%
Système Cible Windows 32 ou 64 bits
Exemple dcl fichier$=512
...
zsavefile_dial("Générer Source","Sources|*.s|sources|*.as|Includes|*.inc|",fichier?)
zmesval("Je connais le nom du fichier que je dois sauvegarder. C'est :"+fichier)
En entrée titre = Titre de la fenêtre ouverte par Windows. masque = Suite de masques de fichiers suivis chacun d'un commentaire, comme indiqué dans l'exemple qui précède. Attention aux séparateurs qui doivent impérativement être des caractères "pipe".
En sortie -1 si l'utilisateur a frappé ESCAPE, sinon zéro.
La dernière variable (fichier dans l'exemple), est mis à jour par le système en fonction du choix de l'utilisateur.
Description Permet de demander à l'utilisateur de choisir un fichier à sauvegarder (ce fichier NE DOIT PAS exister), poar l'intermédiaire de l'explorateur Windows.
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV13.AT

début




Fonction Bikini v 1.3.
Fonction LIT UNE CLE D'UNE SECTION D'UN FICHIER .INI
Prototype extern proc zget_profstr(fichier$=512,section$=512,rubrique$=512,defaut$=512,resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple dcl fichier$=512
...
zget_profstr("gestion.ini","clients","mode_recherche","3",resultat?)
zmesval("Le mode de recherche des clients est :"+conv$(conv%(resultat)))

gestion.ini:
[clients]
creation=Oui
Modification=Non
Mode_Recherche=2

La fonction rendra "2" avec l'exemple ci-dessus.
En entrée fichier = Nom du fichier .ini à lire.
section = Nom de la section (sans les crochets [])
rubrique = Nom de la clé à lire.
defaut = Valeur par défaut à lire si la clé n'existe pas.
resultat = Variable servant au retour de la fonction.
En sortie La longueur de la chaîne lue.
La dernière variable (resultat dans l'exemple), est mis à jour par le système.
Description Permet de lire dans les fichiers texte de type .ini
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV13.AT

fonctions associées :zwrite_profstr , zwrite_profstrcom , zget_profstrcom
début




Fonction Bikini v 1.3.
Fonction ECRIT UNE CLE D'UNE SECTION D'UN FICHIER .INI
Prototype extern proc zwrite_profstr(fichier$=512,section$=512,rubrique$=512,resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple dcl fichier$=512
...
zwrite_profstr("gestion.ini","clients","mode_recherche","3")


gestion.ini:
[clients]
creation=Oui
Modification=Non
Mode_Recherche=3

La fonction vient d'écrire "3" dans l'exemple ci-dessus.
En entrée fichier = Nom du fichier .ini à lire.
section = Nom de la section (sans les crochets [])
rubrique = Nom de la clé à lire.
resultat = Valeur à écrire après le signe = de la clé.
En sortie 0 si la fonction s'est bien exécutée, -1 si le fichier ou la section n'est pas trouvé.
Description Permet d'écrire dans les fichiers texte de type .ini.

ATTENTION !
Si la section N'EXISTE PAS, elle ast automatiquement CREEE par la fonction.
Si la clé N'EXISTE PAS dans la section, elle ast automatiquement CREEE par la fonction.
Si la valeur passée est à BLANC, la clé est supprimée du fichier.
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV13.AT


fonctions associées :zget_profstr , zwrite_profstrcom , zget_profstrcom
début




Fonction Bikini v 1.4.
Fonction ENVOI UN E-MAIL
Prototype extern proc zsendmail
(smtp$=256,from$=256,fromadrs$=256,dest$=256,destadrs$=256,
titre$=100,text$=4096,attachf$=512,options%):%
Système Cible Windows 32 ou 64 bits
Exemple fichier =""
zsendmail("smtp.yahoo.com","Moi","moi@hotmail.com","elle","elle@fleurbleue.it","coucou !","Ci-joint mes dernières pensées< br >Cordialement,< br >moi.",fichier?)
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée smtp = Nom du serveur SMTP.
from = Nom de l'expéditeur de l'e-mail
fromadrs = Adresse e-mail de l'expéditeur.
dest = Nom du destinataire de l'e-mail
destadrs = Adresse e-mail du destinataire.
titre = Titre de l'e-mail.
text = Texte de l'e-mail au format HTML
attachf = Chemin et nom du fichier en pièce jointe ou blanc
options = 0 => Aucun affichage de la progression de l'envoi
= 1 => Affiche sur la ligne status de l'échange.
= 2 => Mail au format TEXT en non HTML.
= 3 => Mail TEXT et affichage status.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
attachf contient le message d'erreur renvoyé par le SMTP si
le code erreur est 15, et si un ? est présent après la variable.

Liste des erreurs :
1 = Impossible de créer un stocket.
2 = Serveur inexistant
3 = Connexion impossible
5 = Impossible d'envoyer au serveur SMTP.
7 = Time-out sur attente de réponse du serveur SMTP.
15 = Erreur de protocole de communication => msg erreur dans attachf
27 = Débordement mémoire
40 = Fichier attaché non trouvé
41 = Impossible de créer fichier temporaire de travail
56 = Fonctions inopérante en dehors de Windows.
Description Permet d'envoyer un e-mail avec une pièce jointe depuis un programme Abal/bikini, sans utiliser de produits additionnels. La fonction n'utilise pas le client de messagerie du PC (Outlook) mais s'adresse directement su serveur SMTP.
Le nom du serveur doit être passé en premier paramètre. (voir dans les paramètres du compte de messagerie: serveur de courrier sortant (SMTP). Le PC doit être connecté à Internet.
Le message doit être au format HTML. Même si le destinataire ne peut être joint, la fonction rend 0 comme code erreur de retour. Dans ce cas, le serveur SMTP doit renvoyer un e-mail d'erreur.
Le fonction s'exécute correctement implique seulement que l'e-mail a bien été reçu par le serveur SMTP, non par le destinataire. L'erreur 15 indique un problème dans le dialogue avec le SMTP.
Dans ce cas la variable attachf contient le message d'erreur renvoyé par le SMTP si un ? est présent après la variable.


Evolutions :
Le numéro de port peut être précisé en ajoutant :NUMPORT au serveur smtp.
exemple: smtp@provider.com:25
Le paramètre options peut contenir la valeur 2 pour un mail au format TEXT (et non HTML)



L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV14.AT

fonctions associées :zsendmail_auth
début




Fonction Bikini v 1.4.
Fonction ENVOI UN E-MAIL AVEC AUTHENTIFICATION
Prototype extern proc zsendmail_auth
(smtp$=256,from$=256,fromadrs$=256,usern$=256,passw$=256,
dest$=256,destadrs$=256,
titre$=100,text$=4096,attachf$=512,options%):%
Système Cible Windows 32 ou 64 bits
Exemple
piece	="c:\courier\ma_lettre.doc"
zsendmail_auth("smtp.yahoo.com","Moi","moi@hotmail.com","Mon_compte","123456","elle","elle@fleurbleue.it",
"coucou !","Ci-joint mes dernières pensées< br >Cordialement,< br >moi.",piece?)
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée smtp = Nom du serveur SMTP.
from = Nom de l'expéditeur de l'e-mail
fromadrs = Adresse e-mail de l'expéditeur.
usern = Utilisateur tel que défini dans le compte de messagerie
passw = Mot de passe
dest = Nom du destinataire de l'e-mail
destadrs = Adresse e-mail du destinataire.
titre = Titre de l'e-mail.
text = Texte de l'e-mail au format HTMLou TEXT
attachf = Chemin et nom du fichier en pièce jointe ou blanc
options = 0 => Aucun affichage de la progression de l'envoi
= 1 => Affiche sur la ligne status de l'échange.
= 2 => Mail au format TEXT en non HTML.
= 3 => Mail TEXT et affichage status.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
1 = Impossible de créer un stocket.
2 = Serveur inexistant
3 = Connexion impossible
5 = Impossible d'envoyer au serveur SMTP.
7 = Time-out sur attente de réponse du serveur SMTP.
15 = Erreur de protocole de communication.
27 = Débordement mémoire
40 = Fichier attaché non trouvé
41 = Impossible de créer fichier temporaire de travail
56 = Fonctions inopérante en dehors de Windows.

attachf contient le message d'erreur renvoyé par le SMTP si
le code erreur est 15, et si un ? est présent après la variable.

Description Même fonction que zsendmail mais doit être utilisée lorsque le serveur sortant (SMTP)
requiert une authentification.
Les paramètres supplémentaires sont les paramètres "Nom d'utilisateur" et "Mot de passe"
du compte de messagerie.

L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV14.AT


fonctions associées :zsendmail
début




Fonction Bikini v 1.4.
Fonction SE CONNECTER A INTERNET
Prototype extern proc zinternet_connect (connexion$=512,usern$=64,passw$=64,tel$=20):%
Système Cible Windows 32 ou 64 bits
Exemple zinternet_connect("Wanadoo","Moi","passw","0825252525")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée connexion = Nom de la connexion Windows à utiliser.
usern = Nom de l'utilisateur.
passw = Mot de passe de la connexion.
tel = No de téléphone à appeler
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Connexion inexistante.
56 = Fonction inopérante en dehors de Windows
58 = Login ou password incorrect
222 = Connexion existante mais impossible.
Description Permet de se connecter à Internet à travers une connexion windows. Une fois connecté, on peut utiliser les fonctions de transfert de fichiers FTP.
Les paramètres de la fonction sont les mêmes que ceux de la connexion windows.
Cette fonction n'a pas d'intérêt dans le cas des connexions ADSL, celle-ci étant permanente.


fonctions associées :zinternet_disconnect
début




Fonction Bikini v 1.4.
Fonction SE DE-CONNECTER D'INTERNET
Prototype extern proc zinternet_disconnect():%
Système Cible Windows 32 ou 64 bits
Exemple zinternet_disconnect()
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Le PC n'était pas connecté.
56 = Fonction inopérante en dehors de Windows
Description Permet de se dé-connecter d'une connexion windows. (zinternet_connect)
Cette fonction n'a pas d'intérêt dans le cas des connexions ADSL, celle-ci étant permanente.


fonctions associées :zinternet_connect
début




Fonction Bikini v 1.4.
Fonction SE CONNECTER A UN SITE FTP
Prototype extern proc zFTP_connect (site$=512,usern$=64,passw$=64):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_connect("www.microrun.fr","Moi","passw")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée site = Site FTP où se conencter.
usern = Nom de l'utilisateur.
passw = Mot de passe.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Aucune connexion active.
78 = Nom de domaine (site) incorrect.
58 = Login ou password incorrect.
56 = Fonction inopérante en dehors de Windows
222 = Connexion existante mais impossible.
Description Permet de se connecter à un site FTP pour transférer des fichiers. Le PC doit auparavent être connecté à Internet.

Fonctions associées :
zFTP_createdir + zFTP_deldir
zFTP_getfile + zFTP_sendfile
zFTP_renfile + zFTP_delfile
zFTP_find

début




Fonction Bikini v 1.4.
Fonction SE DE-CONNECTER D'UN SITE FTP
Prototype extern proc zFTP_disconnect():%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_disconnect()
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Aucune connexion FTP active.
56 = Fonction inopérante en dehors de Windows
Description Permet de se dé-connecter d'une connexion FTP. (zFTP_connect)

Fonctions associées :
zFTP_createdir + zFTP_deldir
zFTP_getfile + zFTP_sendfile
zFTP_renfile + zFTP_delfile
zFTP_find

début




Fonction Bikini v 1.4.
Fonction CREER UN REPERTOIRE SUR LE SITE FTP
Prototype extern proc zFTP_createdir(dir$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_createdir("monsite/clients/echanges")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée dir = chemin + nom du répertoire à créer sur le site FTP.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
41 = Répertoire déjà existant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de créer un répertoire sur le site FTP distant auquel on est connecté par zFTP_connect.
Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)

Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_getfile + zFTP_sendfile
zFTP_renfile + zFTP_delfile
zFTP_find

début




Fonction Bikini v 1.4.
Fonction SUPPRIMER UN REPERTOIRE SUR LE SITE FTP
Prototype extern proc zFTP_deldir(dir$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_deldir("monsite/clients/echanges")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée dir = chemin + nom du répertoire à supprimer sur le site FTP.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Répertoire inexistant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de supprimer un répertoire sur le site FTP distant auquel on est connecté par zFTP_connect. Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_getfile + zFTP_sendfile
zFTP_renfile + zFTP_delfile
zFTP_find
début




Fonction Bikini v 1.4.
Fonction RECUPERER UN FICHIER DEPUIS LE SITE FTP
Prototype extern proc zFTP_getfile(distfile$=512,locfile$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_getfile("monsite/clients/echanges/clients.txt","c:\gestion\data\clients.txt")
La fonction est illustrée dans l'exemple EXBIKV14.
En entrée distfile = chemin + nom du fichier à transférer depuis le fite distant FTP
locfile = chemin + nom du fichier local.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
30 = Chemin local incorrect
40 = Fichier inexistant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de transférer un fichier depuis le site FTP distant vers le PC local. Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_createdir + zFTP_deldir
zFTP_renfile + zFTP_delfile
zFTP_find
début




Fonction Bikini v 1.4.
Fonction TRANSFERER UN FICHIER VERS LE SITE FTP
Prototype extern proc zFTP_sendfile(locfile$=512,distfile$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_sendfile("c:\gestion\data\clients.txt","monsite/clients/echanges/clients.txt")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée locfile = chemin + nom du fichier local qui doit être transféré.
distfile = chemin + nom du fichier sur le site distant FTP
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
30 = Chemin local incorrect
40 = Fichier local inexistant.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de transférer un fichier vers le site FTP distant depuis le PC local. Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_createdir + zFTP_deldir
zFTP_renfile + zFTP_delfile
zFTP_find
début




Fonction Bikini v 1.4.
Fonction RENOMMER UN FICHIER SUR LE SITE FTP
Prototype extern proc zFTP_renfile(oldfile$=512,newfile$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_renfile("c:\gestion\data\clients.txt","c:\gestion\data\tempo01.txt")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée oldfile = ancien chemin + nom du fichier à renommer sur le site distant FTP.
newfile = nouveau chemin + nom du fichier sur le site distant FTP.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Fichier Inexistant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de renommer un fichier sur le site FTP distant. Si les répertoires source et cible sont différents, la fonction déplace le fichier. Si le fichier cible existe, il est écrasé.
Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_createdir + zFTP_deldir
zFTP_getfile + zFTP_sendfile
zFTP_find
début




Fonction Bikini v 1.4.
Fonction SUPPRIME UN FICHIER SUR LE SITE FTP
Prototype extern proc zFTP_delfile(namefile$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_delfile("c:\gestion\data\clients.txt")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée namefile = chemin + nom du fichier à supprimer sur le site distant FTP.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Fichier Inexistant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
116 = Aucune connection FTP active
Description Permet de supprimer un fichier sur le site FTP distant.
Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_createdir + zFTP_deldir
zFTP_getfile + zFTP_sendfile
zFTP_find
début




Fonction Bikini v 1.4.
Fonction LISTE LE CONTENU D'UN REPERTOIRE SUR LE SITE FTP
Prototype extern proc zFTP_find (pathfile$=512,fichier$=512,type%,dat$=4,taille=8,flag%):%
Système Cible Windows 32 ou 64 bits
Exemple zFTP_find("echanges/gestion/*.*",fichier?,type?,dat?,taille?,1)
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée pathfile: Chemin à scanner sur le FTP
flag = 1 => 1ère recherche
flag = 0 => Nième recherche
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
40 = Fichier Inexistant sur le serveur FTP.
56 = Fonction inopérante en dehors de Windows
96 = Fin des réponses
116 = Aucune connection FTP active
fichier = Nom du fichier ou du répertoire trouvé
type = 0 => fichier
type = 1 => répertoire
dat =non opérationnel
taille = taille du fichier trouvé
Description Cette fonction, similaire à la fonction FIND d'abal, permet de lister les fichiers et les répertoires d'un répertoire du le site FTP distant.
Pour obtenir le premier fichier ou répertoire, on doit passer flag à 1, puis à 0 pour les recherches suivantes.
Attention à la syntaxe des chemins (path) qui doit être conforme au système d'exploitation cible (Unix...)
Attention, la fonction n'est pas récursuve.


Fonctions associées :
zFTP_connect + zFTP_disconnect
zFTP_createdir + zFTP_deldir
zFTP_getfile + zFTP_sendfile
zFTP_renfile + zFTP_delfile
zFTP_find

début




Fonction Bikini v 1.4.
Fonction DEBUT D'UTILISATION DES FONCTIONS ODBC :
Prototype extern proc zODBC_init ():%
Système Cible Windows 32 ou 64 bits
Exemple zODBC_init()
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
56 = Fonction inopérante en dehors de Windows
58 = zODBC_init déjà exécutée.
Description Initialise les variables internes de Zlib+ pour utiliser les fonctions ODBC.

Fonctions associées :
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror

début




Fonction Bikini v 1.4.
Fonction FIN D'UTILISATION DES FONCTIONS ODBC :
Prototype extern proc zODBC_end ():%
Système Cible Windows 32 ou 64 bits
Exemple zODBC_end()
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
56 = Fonction inopérante en dehors de Windows
58 = Initialisation (zODBC_init) non faite
Description Libère les ressources associées à l'utilisation des fonctions ODBC.

Fonctions associées :
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror

début




Fonction Bikini v 1.4.
Fonction SE CONNECTER A UNE BASE ODBC
Prototype extern proc zODBC_connect(typeb$=64,pathbase$=512,usern$=40,passw$=40):%
Système Cible Windows 32 ou 64 bits
Exemple e=zODBC_connect("MS Access Database","Test.mbd","ADMIN"," ")
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée typeb = Chaîne normalisée indiquant le type de base ODBC
exemple: "MS Access Database" pour Microsoft Access.
Se renseigner pour attaquer d'autres types de bases.
pathbase = Chemin + nom de la base de données.
usern = Nom de l'utilisateur.
passw = Mot de passe.
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
27 = Débordement mémoire.
40 = Base Inexistante
50 = Trop de bases ouvertes simmultanément
58 = zODBC_init non fait

Description Permet de se connecter à une base ODBC. Si le driver ODBC ne peut se connecter à la base, la fonction affiche une boite de dialogue permettant de définir "manuellement" les paramètres de connexion.


Fonctions associées :
zODBC_init + zODBC_end
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror

début




Fonction Bikini v 1.4.
Fonction SE DE-CONNECTER D'UNE BASE ODBC
Prototype extern proc zODBC_disconnect():%
Système Cible Windows 32 ou 64 bits
Exemple zODBC_disconnect()
La fonction est illustrée dans l'exemple EXBIKV14.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
56 = Fonction inopérante en dehors de Windows
58 = zODBC_inti non fait
116 = Aucune base ODBC ouverte
Description Permet de se dé-connecter d'une base ODBC


Fonctions associées :
zODBC_init + zODBC_end
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror
début




Fonction Bikini v 1.4.
Fonction EXECUTER UNE REQUETE SUR UNE BASE ODBC
Prototype extern proc zODBC_execute(request$=4096):%
Système Cible Windows 32 ou 64 bits
Exemple zODBC_execute("select * from clients")
l'exemple EXBIKV14 utilise tout un dialogue avec une base ACCESS.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
43 = Une requête est en cours d'exécution
58 = zODBC_init non fait
116 = Aucune base ODBC ouverte par zODBC_connect.
AUTRE = Erreur spécifique au driver ODBC utilisé.
Description Exécute une requête sur la base ODBC ouverte.
SI LA REQUETE APPELLE une réponse de la part du driver (exemple: Select), la fonction ne récupère pas les éventuelles réponses retournées. Pour ce faire utiliser zODBC_down.
Un texte d'explications associé à l'erreur peut être retourné par zODBC_readerror.
Le contenu de la requête est au standard SQL.
La requête courante "casse" une éventuelle requête déjà en cours d'exécution, une seule requête pouvant être exécutée à un moment donné.



Fonctions associées :
zODBC_init + zODBC_end
zODBC_connect + zODBC_disconnect
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror
début




Fonction Bikini v 1.4.
Fonction LE DRIVER ODBC REND UN LIBELLE D'ERREUR
Prototype extern proc zODBC_readerror():$=512
Système Cible Windows 32 ou 64 bits
Exemple err=zODBC_readerror()
l'exemple EXBIKV14 utilise tout un dialogue avec une base ACCESS.

En entrée
En sortie Libellé correspondant l'erreur retournée par le zODBC_execute prédécent.
Description Lorsqu'un erreur survient sur un zODBC_execute, seul un numéro d'erreur dépendant du type de base et du driver ODBC est rendu.
Cette fonction demande au driver le message d'erreur complet associé à l'erreur.



Fonctions associées :
zODBC_init + zODBC_end
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_nextdiese et fonctions rattachées
début




Fonction Bikini v 1.4.
Fonction REND UN TABLEAU CONSTITUE D'UN ENSEMBLE DE NOMS DE RUBRIQUES (COLONNES OU CHAMPS) QUI SERONT RETOURNEES PAR LES FONCTIONS ZODBC_NEXTALPHA...
Prototype extern proc zODBC_getinfos(col_larg%,nbcols%,infos$=4096):%
Système Cible Windows 32 ou 64 bits
Exemple dcl tablo$=160
field=m,tablo
dcl rub_nom$=16(10)
...
err=zODBC_getinfos(16,10,tablo?)
l'exemple EXBIKV14 utilise tout un dialogue avec une base ACCESS.

En entrée col_larg = Largeur d'une occurence du tableau
nbcols = Nombre d'occurences du tableau
infos = Tableau destiné à être rempli avec les noms de rubriques
En sortie La fonction met à jour le tableau passé en entrée (infos).
Description S'utilise après un appel à zODBC_execute, dans le cas ou l'on attend des réponses de la part du driver ODBC.
La fonction renseigne chaque occurence du tableau, avec le nom de chaque rubrique qui seront retournée par les fonctions zODBC_nextalpha etc, dans l'ordre ou elles seront retournées...
La fonction ne rends pas les réponses, mais uniquement les noms des rubriques (champs) des futures réponses.
Cette fonction n'est pas obligatoire après un zODBC_execute.



Fonctions associées :
zODBC_init + zODBC_end
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_down
zODBC_nextdiese et fonctions rattachées
zODBC_readerror
début




Fonction Bikini v 1.4.
Fonction SE POSITIONNE SUR LA PROCHAINE REPONSE
Prototype extern proc zODBC_down():%
Système Cible Windows 32 ou 64 bits
Exemple err=zODBC_down()
l'exemple EXBIKV14 utilise tout un dialogue avec une base ACCESS.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
58 = zODBC_init non fait
96 = Fin des réponses
116 = Aucune base ODBC ouverte par zODBC_connect.

Description
Se positionne sur la réponse suivante à la reqûete en cours.
Cette fonction ne rends pas la réponse suivante: Pour cela utiliser zODBC_nextalpha...



Fonctions associées :
zODBC_init + zODBC_end
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_getinfos
zODBC_nextdiese et fonctions rattachées
zODBC_readerror
début




Fonction Bikini v 1.4.
Fonction LIT LE PROCHAIN CHAMPS DE LA REPONSE COURANTE A LA REQUETE COURANTE
Prototype extern proc zODBC_nextkeydiese (diese#):%
extern proc zODBC_nextkeypourc (pourc%):%
extern proc zODBC_nextkeybcd (bcd=12):%
extern proc zODBC_nextkeyalpha (rub_val$=4096):%
extern proc zODBC_nextkeyfile (filename$=512):%
Système Cible Windows 32 ou 64 bits
Exemple dcl chiffre_affaires=8
dcl type_client#
dcl nombre_employes%
dcl adresse$=120
...
e=zODBC_nextkeybcd(chiffre_affaire?)
e=zODBC_nextkeydiese(type_client?)
e=zODBC_nextkeypourc(nombre_employes?)
e=zODBC_nextkeyalpha(adresse?)
e=zODBC_nextkeyfile("tempo.txt")

l'exemple EXBIKV14 utilise tout un dialogue avec une base ACCESS.

En entrée
En sortie 0 si la fonction s'est bien exécutée, sinon code erreur.
Liste des erreurs :
58 = zODBC_init non fait
96 = Fin des réponses
116 = Aucune base ODBC ouverte par zODBC_connect.
diese, pourc, bcd ou rub_val sont initisalisées par la fonction.

Description
Rend le contenu de la rubrique courante de la réponse courante à la reqûete en cours.
Utiliser :
zODBC_nextkeydiese si la dcl abal correspondant à la rubrique est de type #
zODBC_nextkeypourc si la dcl abal correspondant à la rubrique est de type %
zODBC_nextkeybcd si la dcl abal correspondant à la rubrique est de type BCD
zODBC_nextkeyalpha si la dcl abal correspondant à la rubrique est de type $ (4.096 caractères maximum)

zODBC_nextkeyfile crée le fichier passé en paramètre, et y écrit la rubrique. Cette fonction doit être utilisée dans le cas ou la taille de la rubrique est supérieure à 4.096 caractères. (champs mémo, champs images etc...). L'utilisateur doit encore lire le fichier dont il a passé le nom pour avoir accès à son contenu, donc au contenu de la rubrique.



Fonctions associées :
zODBC_init + zODBC_end
zODBC_connect + zODBC_disconnect
zODBC_execute
zODBC_getinfos
zODBC_down
zODBC_readerror

début




Fonction Bikini v 1.4.
Fonction POSIT MC SUR LISTE FICHIER AVEC POSIT D'INITIALISATION
Prototype extern proc zlifposit_x(zask$=16,request_ini$=4096,request$=4096):%
Système Cible Windows 32 ou 64 bits
Exemple
	zlifposit_x(zask,"CLIENT_CODE>="+clicode+"'","CLIENT_CODE='*'")
; La liste de positionne sur le client CLICODE. ; Cependant, la touche HOME active le 2ième POSIT et va en début de fichier.


En entrée zask = Ask-handle des boites de dialogue
request_ini = Question MC à exécuter lors de l'appel de la liste.
request = Question MC permettant à Zlib+ de se positionner en début ou en fin de liste.
En sortie
Description Fonction semblable à zlifposit (voir documentation Screener), sauf qu'une requête d'initialisation de la liste est passée en paramètre supplémentaire afin de pouvoir positionner la liste directement sur un des items du fichier au lieu du début du fichier (zlifposit).
Les fonctions zlifposit_xd, zlifposit_xu, zlifposit_xs, zlifposit_xdu et zlifposit_xds correspondent respectivement aux fonctions zlifposit_d, zlifposit_u, zlifposit_s, zlifposit_du et zlifposit_ds de Screener.


début




Fonction Bikini v 1.4.
Fonction FONCTIONS DE CONVERSION OEM / ANSI
Prototype extern proc zw_oem2ansi(text$=4096):$=4096
extern proc zw_ansi2oem(text$=4096):$=4096
Système Cible Windows 32 ou 64 bits
Exemple nom = zw_oem2ansi(nom)
En entrée text = chaine à transcoder
En sortie chaine transcodée
Description Abal travaillant généralement avec des polices OEM, et Windows avec des polices ANSI, ces fonctions permettent de transcoder les chaines de caractères d'un jeu à l'autre.


début




Fonction Bikini v 1.4.
Fonction REBOOTE LE PC
Prototype extern proc zw_reboot(mode%)
Système Cible Windows 32 ou 64 bits
Exemple zw_reboot(1)
En entrée mode = 1: Provoque un redémarrage du système (REBOOT)
mode = 2: Ferme le système, le PC étant prêt à être éteind. (SHUTDOWN)
mode = 3: Ferme le système et éteind le PC.(POWEROFF)
(si le matériel supporte cette dernière fonction)
En sortie rien ! (puisque l'application Abal est subitement arrêtée)
Description Toutes les applications et les processus ouverts sont fermés par Windows. Cette fonction sera utile lors des processus automatiques de sauvegarde etc...


début




Fonction Bikini v 1.4.
Fonction RECUPERE LE BITMAP DE FOND DE FENETRES COURANT
Prototype extern proc zwin_getback():$=512
Système Cible Windows 32 ou 64 bits
Exemple
dcl old_bmp$=512
endloc
	...
	old_bmp=zwin_getback()		; Lit le bitmap courant
	zwinback("c:\bmp\back.jpg")	; Applique temporairement un nouveau bitmap de fond de fenêtre
	zdialog_box.....		; Sur cette dialog box, et celles qui suivent
	...
	zwinclear()
	zwinback(old_bmp)		; Restore l'ancien bitmap
En entrée Rien.
En sortie Chemin et nom du bitmap courant de fond de fenêtres.
Description Permet de définir, localement pour une fenêtre, un bitmap de fond particulier, différent du bitmap de fond général à l'application.

Fonctions associées : zwinback
début




Fonction Bikini v 1.5.
Fonction APPELLE LA CALCULATRICE BIKINI
Prototype extern proc zcalc(x%,y%,bcd=12):%
Système Cible Tous systèmes
Exemple
proc calculette()
dcl bcd=12
endloc
bcd		=0
if (zcalc(10,10,bcd?) = 0)
	zmesval("r‚sultat :"+conv$(bcd))
else
	zmesval("Escape frapp‚e.")
endif
endproc
En entrée x = coordonnée x du point haut gauche de la calculette.
y = coordonnée x du point bas droit de la calculette.
bcd = valeur numérique affichée en entrée dans la calculette.
En sortie -1 = escape frappée, sinon 0. bcd = valeur numérique affichée en sortie dans la calculette.
Description Appelle la calculette bikini. Le développeur peut injecter une valeur de départ (par exemple prix HT) et récupérer en sortie le résultat du calcul.
Depuis Bikini v1.4, cette fonction est AUTOMATIQUEMENT Appelée sur toutes les zones BCD.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées : zcalc_user

début




Fonction Bikini v 1.5.
Fonction APPELLE LE CALENDRIER BIKINI
Prototype extern proc zcalendar(x%,y%,dat$=8):%
Système Cible Tous systèmes
Exemple
proc calendrier()
dcl dat$=4
endloc
dat			=zdat_getoday()					; Date du jour ?
dat			=zdatmore(dat,+30)				; Date + 30 jours
if (zcalendar(10,10,dat?) = 0)
	zmesval("r‚sultat :"+zdat10(dat))
else
	zmesval("Escape frapp‚e.")
endif
endproc
En entrée x = coordonnée x du point haut gauche du calendrier.
y = coordonnée x du point bas droit du calendrier.
dat = date affichée en entrée dans le calendrier.
En sortie -1 = escape frappée, sinon 0. dat = date affichée en sortie dans le calendrier.
Description Appelle le calendrier bikini. Le développeur peut injecter une date de départ et récupérer en sortie la date choisie par l'utilisateur.
Les dates en entrée et en sortie sont au format courant des dates Bikini (fonction zdatstyle).
Depuis Bikini v1.4, cette fonction est AUTOMATIQUEMENT Appelée sur toutes les zones DATE.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.


Fonctions associées : zcalendar_user


début




Fonction Bikini v 1.5.
Fonction PERMET DE DEFINIR DES ITEMS UTILISATEUR SUR LES MENUS CONTEXTUELS (CLICK DROIT)
Prototype extern proc zcontextmenu_user(proc p):proc
Système Cible Tous systèmes
Exemple FONCTION CALLBACK:

proc item_user(no%,item$=40,aide$=80):%
select no
case 1
item ="+ 10"
aide ="Incrémente valeur de 10"
exit (4)
case 2
item ="- 10"
aide ="Décrémente valeur de 10"
exit (5)
default
exit (0)
endsel
endproc

APPEL:
dcl proc p
dcl proc oldp
...
p=proc ptr item_user
oldp=zcontextmenu_user(p)
.....
zcontextmenu_user(oldp)
En entrée p = pointeur sur fonction callback permettant de définir les items utilisateur.
En sortie Ancien pointeur sur fonction (qui peut être null).
Description La fonction zcontextmenu_user permet juste de définir une fonction callback qui sera appelée par Zlib+ lors de tout appel à un menu contextuel déclenché par un click droit souris de l'utilisateur.
CHAQUE ITEM ajouté par le développeur DOIT CORRESPONDRE A UN PUSH BOUTON actif dans l'écran.

Zlib+ appelle la fonction callback en boucle pour chaque item, jusqu'à ce que le développeur n'aie plus aucun item à définir.
En entrée, le développeur reçoit le numéro d'item (à partir de 1). Il doit renseigner :
- Le libellé de l'item. (item$=40)
- Le texte daide sur la ligne status relatif à l'item (aide$=80)
- Il doit retourner un % indiquant le numéro USER du push-bouton à actionner pour cet item, ou 0 si c'est le dernier item.

On peut retourner -1 en numéro USER: dans ce cas la fonction appelle la fonction d'aide en ligne définie par zhelpconfig.
La fonction renvoie un pointeur sur l'ancienne fonction, afin de pouvoir la restaurer lorsque l'on empile les boites de dialogue (zaskpush, zaskpop..)

Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction RETOURNE LES NUMEROS DE VERSION BIKINI
Prototype extern proc zlib_getvers(versat$=4,versdll$=4):%
Système Cible Tous systèmes pour version *.AT, Windows pour version *.DLL
Exemple proc version_bikini()
dcl versat$=4
dcl versdll$=4
endloc

zlib_getvers(versat?,versdll?)
zmesval("Version zlib+*.at = "+versat)
zmesval("Version zlib+.dll = "+versdll)
exit

endproc
En entrée Rien.
En sortie versat = Numéro de version des zlib+*.at (dans cette version 1.5a)
versdll = Numéro de version de zlib+.dll (dans cette version 1.5a)
Description Afin d'éviter les mélanges de versions, notamment au niveau de zlib+.DLL, cette fonction permet au développeur de s'assurer que l'environnement zlib+ est conforme à ses attentes.
NE PAS OUBLIER LES "?" DERRIERE LES PARAMETRES.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction ASSIGNATION D'UN FICHIER ZI
Prototype extern proc zi_assign(no%,nfic$=512,mode1%,mode2%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_assign(1,"myfile",1,0) ; Criteria, partageable
err=zi_assign(1,"myfile",2,0) ; ZSI, partageable
err=zi_assign(1,"myfile",2,2+4) ; ZSI, exclusif, mode intermédiaire
err=zi_assign(1,"myfile",2,2+8) ; ZSI, exclusif, mode mémoire
En entrée no = numéro logique.
nfic = path + nom du fichier
mode1 = 1=Criteria, 2=ZSI
mode2 = 1=Mode lecture seule
2=Ouverture exclusive.
4=Mode intermédiaire.(=> exclusif)
8=Mode mémoire.(=> exclusif)
En sortie 0 ou code erreur. Erreurs spécifiques ZSI:
58 = Réassignation d'un fichier mémoire interdite :
Il est interdit de réassigné un fichier mémoire en cours d'utilisation.
Le fichier mémoire doit être créé par zi_cfile, puis supprimé par zi_dfile.
Description Fonction équivalente à l'instruction Abal assign pour un fichier SI.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction CREATION D'UN FICHIER ZI
Prototype extern proc zi_cfile(no%,ld%,lk%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_cfile(1,256,10) ; lg data=256, lg clé=10
En entrée no = numéro logique.
ld = Longeur datas
lk = Longueur clé
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal cfile pour un fichier SI.
Dans le cas d'un fichier mémoire, la mémoire est allouée pour le fichier par paquets de 100 Ko.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.


fonctions associées :zi_dfile , zi_open , zi_close

début




Fonction Bikini v 1.5.
Fonction SUPPRESSION D'UN FICHIER ZI
Prototype extern proc zi_dfile(no%)%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_dfile(1)
En entrée no = numéro logique.
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal dfile pour un fichier SI.
Dans le cas d'un fichier mémoire, la mémoire est désallouée pour le fichier.
Si le fichier est multiclés, tous les fichiers d'index secondaires sont supprimés
Cette fonction est illustrée dans l'exemple EXBIKV15.at.

fonctions associées :zi_dfile , zi_open , zi_close
début




Fonction Bikini v 1.5.
Fonction OUVERTURE D'UN FICHIER ZI
Prototype extern proc zi_open(no%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_open(1)
En entrée no = numéro logique.
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal open pour un fichier SI.
Si le fichier est déjà ouvert, la fonction positionne le pointeur en début de fichier, si le fichier est multiclés la fonction se repositionne sur la clé principale.
Si le fichier .ZI est cassé, ou si le hotflag est monté, ce qui indique qu'une opération d'insertion, de modification ou de suppression a avortée, le fichier ZSI est automatiquement reconstruit. Dans ce cas une boite d'attente et un message l'indiquent à l'utilisateur. Cette opération est ininterruptible.
Cette fonction est illustrée dans l'exemple EXBIKV15.at.

fonctions associées :zi_dfile , zi_open , zi_close
début




Fonction Bikini v 1.5.
Fonction FERMETURE D'UN FICHIER ZI
Prototype extern proc zi_close(no%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_close(1)
En entrée no = numéro logique.
En sortie 0 ou code erreur :
Code erreur spécifique:
58 = Close interdit sur un fichier mémoire (on doit faire zi_dfile)
Description Fonction équivalente à l'instruction Abal close pour un fichier SI.
Fonction interdite pour un fichier mémoire.
Si le fichier est ouvert en mode intermédiaire, les cache sont écrits sur le disque

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

fonctions associées :zi_dfile , zi_open , zi_open
début




Fonction Bikini v 1.5.
Fonction CHANGEMENT DES ATTRIBUTS D'ASSIGNATION (D'OUVERTURE) D'UN FICHIER ZI
Prototype extern proc zi_atb(no%,mode2%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_atb(1,2) ; le fichier devient exclusif
En entrée no = numéro logique.
mode2 = Nouvel attribut d'ouverture :
1=Mode lecture seule
2=Ouverture exclusive.
4=Mode intermédiaire.(=> exclusif)
8=Mode mémoire.(=> exclusif)
En sortie 0 ou code erreur :
Code erreur spécifique:
58 = mode interdit dans ce contexte.
Description Fonction équivalente à l'instruction Abal atb pour un fichier SI.
Il est possible de passer d'un fichier sécurisé à in fichier intermédiaire et réciproquement.
Par contre, il est impossible de modifier le mode d'un fichier mémoire.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

fonctions associées :zi_cfile ,zi_dfile , zi_open , zi_close
début




Fonction Bikini v 1.5.
Fonction RENOMMER UN FICHIER ZI
Prototype extern proc zi_rename(no%,newname$=512):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_rename(1,"newfic")
En entrée no = numéro logique.
newname = Nouveau nom du fichier
En sortie 0 ou code erreur :
Code erreur spécifique.
58 = Interdit de renommer un fichier mémoire.
Description Fonction équivalente à l'instruction Abal rename pour un fichier SI.
Dans le cas du multiclés, tous les fichiers index sont renommés.
Il est impossible de renommer un fichier mémoire.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction INSERE UN RECORD DANS UN FICHIER ZI
Prototype extern proc zi_insert(no%,clé$=120,ind#,ptr datas$,lgdata%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_insert(1,client_code,1,clie_data,256)
En entrée no = numéro logique.
cle = clé du fichier en alpha ($)
ind = marqueur
datas = données
lgdata = longueur données
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal insert pour un fichier SI.
Lorsque le nombre de records dépasse 65535 ou 16777215 ZSI restructure automatiquement les index.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_modif , zi_delete
début




Fonction Bikini v 1.5.
Fonction MODIFIE UN RECORD DANS UN FICHIER ZI
Prototype extern proc zi_modif(no%,clé$=120,ind#,ptr datas$,lgdata%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_insert(1,client_code,1,clie_data,256)
En entrée no = numéro logique.
cle = clé du fichier en alpha ($)
ind = marqueur
datas = données
lgdata = longueur données
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal modif pour un fichier SI.
Le marqueur peut être modifié par cette fonction.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_insert , zi_delete
début




Fonction Bikini v 1.5.
Fonction SUPPRIME UN RECORD DANS UN FICHIER ZI
Prototype extern proc zi_delete(no%,clé$=120,ind#):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_delete(1,client_code,1)
En entrée no = numéro logique.
cle = clé du fichier en alpha ($)
ind = marqueur
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal delete pour un fichier SI.
Le marqueur peut être modifié par cette fonction, comme un delete Abal.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_insert , zi_modif
début




Fonction Bikini v 1.5.
Fonction CHERCHE UN RECORD DANS UN FICHIER ZI
Prototype extern proc zi_search(no%,clé$=120,ind#,ptr datas$,lgdata%):%
extern proc zi_msearch(no%,clé$=120,ind#,ptr inddatas$,lginddata%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_search(1,client_code,1,clie_data,256)
err=zi_msearch(1,client_code,1,clie_ind,1+256)
En entrée no = numéro logique.
cle = clé du fichier en alpha ($)
ind = marqueur
datas = données lues
inddatas = marqueur + données lues
lgdata = longueur données
lginddata = longueur marqueur + données
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente aux instructions Abal search et search.m pour un fichier SI.
La gestion des locks fichiers est identique à celle d'Abal.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_down, zi_up, zi_mdown, zi_mup , zi_first, zi_mfirst, zi_last, zi_mlast
début




Fonction Bikini v 1.5.
Fonction PARCOURS UN FICHIER ZI SUR L'INDEX COURANT
Prototype extern proc zi_down(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_mdown(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_up(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_mup(no%,ind#,ptr clédata$,lgcledata%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_down(1,1,client_code,10+1+256)
En entrée no = numéro logique.
ind = marqueur
cledata = record lu
lgcledata = longueur record
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente aux instructions Abal down, down.m, up et up.m pour un fichier SI.
La gestion des locks fichiers est identique à celle d'Abal.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_search, zi_msearch , zi_first, zi_mfirst, zi_last, zi_mlast
début




Fonction Bikini v 1.5.
Fonction DEBUT ET FIN D'UN FICHIER ZI PAR RAPPORT A L'INDEX COURANT
Prototype extern proc zi_first(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_mfirst(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_last(no%,ind#,ptr clédata$,lgcledata%):%
extern proc zi_mlast(no%,ind#,ptr clédata$,lgcledata%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_first(1,1,client_code,10+1+256)
En entrée no = numéro logique.
ind = marqueur
cledata = record lu
lgcledata = longueur record
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonctions permettant de se positionner à la première ou à la dernière réponse d'un fichier SI.
Ces fonctions sont émulées avec Criteria par un search suivi d'un down ou un up. Elles ne fonctionnent avec Criteria que sur la clé principale du fichier.
La gestion des locks fichiers est identique à celle d'Abal.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées :zi_down, zi_up, zi_mdown, zi_mup , zi_search, zi_msearch
début




Fonction Bikini v 1.5.
Fonction LIT UN RECORD D'UN FICHIER ZI PAR SON NUMERO
Prototype extern proc zi_read(no%,nor=8,ptr record$,lgd%):%
Système Cible Windows uniquement en utilisant ZSI
Exemple err=zi_read(1,100,client_code,10+1+256) ; lit le 100ième record du fichier (dans l'ordre des clés)
En entrée no = numéro logique.
nor = numéro d'odre du record à lire
cledata = record lu
lgcledata = longueur record
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Cette fonction lit le record numéro NOR sur l'index courant (clé principale ou index).
Cette fonction n'existe pas en Criteria, elle retourne erreur 56.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées: zi_write

début




Fonction Bikini v 1.5.
Fonction ECRIT UN RECORD D'UN FICHIER ZI PAR SON NUMERO
Prototype extern proc zi_write(no%,nor=8,ptr record$,lgd%):%
Système Cible Windows uniquement en utilisant ZSI
Exemple err=zi_write(1,100,client_code,10+1+256) ; modifie le 100ième record du fichier (dans l'ordre des clés)
En entrée no = numéro logique.
nor = numéro d'odre du record à lire
cledata = record à écrire
lgcledata = longueur record
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Cette fonction écrit le record numéro NOR sur l'index courant (clé principale ou index).
Cette fonction permet de MODIFIER un record EXISTANT, mais de permet pas d'en ajouter un au fichier (pour cela utiliser ZI_INSERT)
Cette fonction n'existe pas en Criteria, elle retourne erreur 56.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées: zi_read
début




Fonction Bikini v 1.5.
Fonction LIT LA ZONE COMMUNE D'UN FICHIER ZI
Prototype extern proc zi_zcread(no%,ptr zc$=50,lg%):%
extern proc zi_zcreadlock(no%,ptr zc$=50,lg%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_zcread(1,zc,50)
En entrée no = numéro logique.
zc= buffer recevant la zone commune
lg = longueur à lire
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente aux instructions Abal READ /7A et READ /7E pour un fichier SI.
.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées: zi_zcwrite
début




Fonction Bikini v 1.5.
Fonction ECRIT LA ZONE COMMUNE D'UN FICHIER ZI
Prototype extern proc zi_zcwrite(no%,zc$=50,lg%):%
Système Cible Tous systèmes en utilisant Criteria, Windows en utilisant ZSI
Exemple err=zi_zcwrite(1,zc,50)
En entrée no = numéro logique.
zc= buffer contenant la zone commune à écrire.
lg = longueur à écrire
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
Description Fonction équivalente à l'instruction Abal WRITE /BA pour un fichier SI.
.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.

Fonctions associées: zi_zcread
début




Fonction Bikini v 1.5.
Fonction TRANSFORME UN .ZI/ZD EN .U ET RECIPROQUEMENT
Prototype extern proc zi_svzi(fici$=512,ficu$=512,param%):%
extern proc zi_rtzi(ficu$=512,fici$=512,param%):%
Système Cible Windows en utilisant ZSI
Exemple err=zi_svzi("myfile","c:\sv\myfile")
En entrée fici = path + nom fichier ZSI.
ficu = path et nom fichier .U.
param = 0 L'utilisateur peut interrompre l'opération à l'aide du bouton de fermeture de la fenêtre.
param = 1 L'utilisateur NE PEUT PAS interrompre l'opération.
En sortie 0 ou code erreur :
Code erreur spécifique:
Erreur 1 => L'opération est interrompue par l'utilisateur
Description zi_svzi: Transforme un fichier ZSI en fichier .U.
zi_rtzi: Transforme un fichier .U en fichier ZSI.
A chaque opération (création .U, lecture .ZI etc...) lorsqu'une erreur survient, elle est retournée par le programme.
Une boite d'attente avec message est affichée à l'utilisateur pour qu'il patiente pendant l'opération, si param = 0, il peut l'interrompre en clickant sur le bouton de fermeture de la fenêtre. Dans ce cas, le fichier cible est automatiquement supprimé.
Uniquement la partie SI d'un fichier MC est traitée.

Les fonctions gèrent les caractères de substitution (*) :
Les traitement des groupes de fichiers sont pris en compte par ces fonctions.

SVZI:
Si le chemin du .u est absent, il est remplacé par le chemin du .zi.
Si le nom du fichier .u est absent, il est remplacé par le nom du .zi.
Si le nom du .zi contient '*', seul le répertoire contenu dans le nom du .u est utilisé.
Si le nom du .zi contient '*', et que le nom du .u est vide, les fichiers sont sauvegardés sur le chemin des .zi.


RTZI:
Si le chemin du .zi est absent, il est remplacé par le chemin du .u.
Si le nom du fichier .zi est absent, il est remplacé par le nom du .u.
Si le nom du .u contient '*', seul le répertoire contenu dans le nom du .zi est utilisé.
Si le nom du .u contient '*', et que le nom du .zi est vide, les fichiers sont restaurés sur le chemin des .u.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.



début




Fonction Bikini v 1.5.
Fonction RETOURNE DES INFORMATIONS SUR LE FICHIER ZSI
Prototype extern proc zi_getinfos(no%,lgk%,lgd%,nom$=512,nbrec=8,attr%):%
Système Cible Windows en utilisant ZSI
Exemple dcl lgcle%,lgdata%,nomfic$=512,nbrec=8,attr%
...
err =zi_getinfos(1,lgcle?,lgdata?,nomfic?,nbrec?,attr?)
En entrée no = numéro logique.
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
lgcle = longueur clé du fichier.
lgdata = longueur données du fichier.
nomfic = path + nom du fichier.
nbrec = nombre de records du fichier.
Attr = Attributs d'ouverture du fichier.
Description Permet de retrouver des informations sur le fichier courant, en particulier le nombre de records.
.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction RETOURNE LE NUMERO DU RECORD COURANT DANS LE FICHIER ZSI
Prototype extern proc zi_getnocurrent(no%,nor=8):%
Système Cible Windows en utilisant ZSI
Exemple dcl current=8
...
err =zi_getnocurrent(1,current?)
En entrée no = numéro logique.
En sortie 0 ou code erreur :
Pas de code erreur spécifique.
current = numéro d'ordre du record courant dans l'index courant (ou la clé).
Description Permet de retrouver le numéro du record courant. S'utilise en association avec zi_write et zi_read.
.

Cette fonction est illustrée dans l'exemple EXBIKV15.at.


début




Fonction Bikini v 1.5.
Fonction DEFINIT FICHIER ZSI OU CRITERIA POUR LISTES BIKINI :
Prototype extern proc zfilezi(nlog%,typefic%,nom$=512,lgkey%,lgdata%):%
Système Cible Windows en utilisant ZSI
Exemple zfilezi(1,2,"clients",10,256)
En entrée no = numéro logique.
tyefic = 1 <=> Criteria, 2 <=> ZSI
nomfic = nom fichier
lgkey = Longueur clé
lgdata = Longueur données
En sortie rien
Description Fonction identique à ZFILESI, mais permet en plus de passer le type de fichier (1=CRITERIA, 2=ZSI)
Fonction obligatoire pour utiliser un fichier ZSI dans les listes BIKINI.

Fonctions associées: zlifposit_zi et fonctions dérivées

début




Fonction Bikini v 1.5.
Fonction CREE UN INDEX SECONDAIRE SUR UN FICHIER ZSI :
Prototype extern proc zi_xclink(nlog%,nidx%,nbcles%,cles$=60):%
Système Cible Windows en utilisant ZSI
Exemple
dcl keys$=60<
ptr one_key$=6			; Une rubrique

field=m,keys
	dcl _key$=6(10)		; 10 rubriques par cl‚ secondaire

field=m,one_key
	dcl rub_rnum%		; Num‚ro de rubrique (r‚serv‚ … z‚ro)
	dcl rub_adrs%		; Adresse rubrique depuis le d‚but de la cl‚ (adrs = 1 => d‚but de la cl‚)
	dcl rub_long%		; Nombre d'octets de la rubrique
...
endloc
	one_key=alias	(_key(1))
	rub_rnum	=0
	rub_adrs	=227		; Adresse MAGASIN à partir début de la clé
	rub_long	=2		; Magasin$=2 
	one_key		=alias(_key(2))
	rub_rnum	=0
	rub_adrs	=8		; Adresse NOM CLIENT
	rub_long	=60		; Nom $=60
	zer		=zi_xclink(CLIE_N,CLIMAGA_I,2,keys)

En entrée no = numéro logique.
nidx = numéro d'index compris entre 1 et 50.
nbcles = nombre de rubriques de l'index compris entre 1 et 10.
cles = variable Abal redéfinie de la manière suivante :
dcl cle$=6(10)
chaque cle est redéfinie de la manière suivante :
dcl rnum%: Réservé à zéro.
dcl adrs%: Adresse rubrique à partir du début de la clé principale en partant de 1.
dcl long%: Taille de la rubrique.

En sortie 0 ou code erreur
Erreurs spécifiques :
56 = Utilisation de la fonction avec Criteria interdite.
83 = Numéro d'index incorrect.
86 = Nombre de rubriques incorrect.
87 = Index déjà créé.
88 = Adresse rubrique incorrecte.
Description La fonction crée un nouveau fichier d'extension .ziX, avec X=numéro de l'index, qui contient un index sur la série de rubriques définies par leurs adresses et leur longueur.
Les rubriques peuvent être de n'importe quel type, peu importe.
Par convention, on dira que l'index secondaire contient des clés secondaires.
Si le fichier n'est pas vide, une boite d'attente s'affiche avec le pourcentage de progression.
Cette fonction ne marche qu'avec des fichiers ZSI.
Pour information, cette fonction cumule les fonctions KEY, CKEY, LINK et CLINK de Abal.
Cette fonction est illustrée dans le programme de gestion d'une la carte de fidélité "100K", qui est appelé par EXBIKV15 dans les exemples Bikini.

Fonctions associées: zi_xdlink , zi_xposit , zi_xcount , zi_xsearch

début




Fonction Bikini v 1.5.
Fonction SUPPRIME UN INDEX SECONDAIRE SUR UN FICHIER ZSI :
Prototype extern proc zi_xdlink(nlog%,nidx%):%
Système Cible Windows en utilisant ZSI
Exemple zi_xdink(3,2) ; supprime l'index secondaire 2 du fichier 3.
En entrée no = numéro logique.
nidx = numéro d'index compris entre 1 et 50.

En sortie 0 ou code erreur
Erreurs spécifiques :
56 = Utilisation de la fonction avec Criteria interdite.
83 = Numéro d'index incorrect.
Description La fonction supprime l'index numéro nidx.
Le fichier d'extension .ziX, avec X=numéro de l'index est supprimé.
L'exécution de la fonction est immédiate.
Cette fonction ne marche qu'avec des fichiers ZSI.
Si l'index n'existe pas la fonction ne retourne pas d'erreur.
Pour information, cette fonction est équivalente à la fonction DLINK de Abal.

Fonctions associées: zi_xclink , zi_xposit , zi_xcount , zi_xsearch

début




Fonction Bikini v 1.5.
Fonction SE POSITIONNE AU DEBUT DES REPONSES SUR UN INDEX SECONDAIRE : SE POSITIONNE A LA FIN DES REPONSES SUR UN INDEX SECONDAIRE :
Prototype extern proc zi_xposit(nlog%,nidx%,mini$=256,maxi$=256,reponses%):%
extern proc zi_xpositd(nlog%,nidx%,mini$=256,maxi$=256,reponses%):%
Système Cible Windows en utilisant ZSI
Exemple ville="SAINT"
zi_xposit(CLIE_N,CLIVILLE_I,ville+" ",ville+"ZZZZZ",0) ; Villes >= "SAINT" et <= "SAINTZZZZZ"
zer=zi_down(CLIE_N,1,clie_key,CLIE_K+1+CLIE_D) ; remonte 1ère record

En entrée no = numéro logique.
nidx = numéro d'index compris entre 1 et 50.
mini = clé secondaire minimum (suite de rubriques telles que décrite dans zi_xclink)
maxi = clé secondaire maximum (suite de rubriques telles que décrite dans zi_xclink)
reponses = variable destinée à recevoir le code réponse.

En sortie reponses = 1 si au moins une réponse, 0 sinon.
Code retour: 0 ou code erreur
Erreurs spécifiques :
56 = Utilisation de la fonction avec Criteria interdite.
83 = Numéro d'index incorrect.
90 = Index inexistant.
Description zi_xposit: Se positionne AVANT la première clé secondaire >= à la clé minimale.
zi_xpositd: Se positionne APRES le dernière clé secondaire <= à la clé maximale.
Un zi_down permet de récupérer le prochain record, zi_up le précédent, dans l'ordre de l'index secondaire sélectionné.
En aucun cas, zi_down et zi_up ne peuvent rendre des records dont la clé secondaire est > maxi ou < mini.
zi_down et zi_up donnent erreur 96 en fin et début des réponses.
La fonction zi_search "casse" le zi_xposit.
Cette fonction ne marche qu'avec des fichiers ZSI.
zi_xposit a un comportement semblable à l'instruction POSIT de Abal.
Cette fonction est illustrée dans le programme de gestion d'une la carte de fidélité "100K", qui est appelé par EXBIKV15 dans les exemples Bikini.

Fonctions associées: zi_xclink , zi_xdlink , zi_xcount , zi_xsearch

début




Fonction Bikini v 1.5.
Fonction COMPTE LE NOMBRE DE REPONSES SUR UN INDEX SECONDAIRE :
Prototype extern proc zi_xcount(nlog%,nidx%,mini$=256,maxi$=256,nbrep=8):%
Système Cible Windows en utilisant ZSI
Exemple ville="SAINT"
zi_xcount(CLIE_N,CLIVILLE_I,ville+" ",ville+"ZZZZZ",nb_reponses?) ; Villes >= "SAINT" et <= "SAINTZZZZZ"

En entrée no = numéro logique.
nidx = numéro d'index compris entre 1 et 50.
mini = clé minimum (suite de rubriques telles que décrite dans zi_xclink)
maxi = clé maximum (suite de rubriques telles que décrite dans zi_xclink)
nbrep = variable destinée à recevoir le nombre de réponses.

En sortie nbrep = Nombre de réponses dans l'intervalle défini.
Code retour: 0 ou code erreur
Erreurs spécifiques :
56 = Utilisation de la fonction avec Criteria interdite.
83 = Numéro d'index incorrect.
90 = Index inexistant.
Description Compte le nombre de records dont la clé secondaire est >= mini et <= maxi.
Cette fonction ne marche qu'avec des fichiers ZSI.
zi_xcount a un comportement semblable à l'instruction COUNT de Abal.

Fonctions associées: zi_xclink , zi_xdlink , zi_xposit , zi_xsearch


début




Fonction Bikini v 1.5.
Fonction SE POSITIONNE SUR UN INDEX SECONDAIRE :
Prototype extern proc zi_xsearch(nlog%,nidx%,cle2$=256,ptr enreg$,lgenreg%,reponses%):%
Système Cible Windows en utilisant ZSI
Exemple ; Se positionne sur un index secondaire au début des réponses pour Ville = "PAR" :
zi_xsearch(CLIE_N,CLIVILLE_I,"PARIS"," ",0,0)
zer=zi_down(CLIE_N,1,clie_key,CLIE_K+1+CLIE_D) ; remonte 1er client habitant PARIS,
zer=zi_down(CLIE_N,1,clie_key,CLIE_K+1+CLIE_D) ; remonte 2ième client habitant PARIS,
zer=zi_up(CLIE_N,1,clie_key,CLIE_K+1+CLIE_D) ; remonte 1er client habitant PARIS,
zer=zi_up(CLIE_N,1,clie_key,CLIE_K+1+CLIE_D) ; remonte dernier client habitant la ville immédiatement < "PARIS".

; Recherche le 1er client habitant "PARIS" :
if (zi_xsearch(CLIE_N,CLIVILLE_I,"PARIS",clie_key,CLIE_K+1+CLIE_D,0) = 0)
	zmesval("1er client habitant Paris ="+clie_nom)
endif


En entrée no = numéro logique.
nidx = numéro d'index compris entre 1 et 50.
cle2 = clé secondaire à rechercher (suite de rubriques telles que décrite dans zi_xclink)
enreg = variable destinée à recevoir le record complet correspondant à la clé secondaire recherchée
lgenreg = longueur de enreg (peut être zéro)
reponses = variable destinée à recevoir le code réponse.

En sortie reponses = 1 si la clé secondaire est trouvée, 0 sinon.
Code retour: 0 ou code erreur
Erreurs spécifiques :
56 = Utilisation de la fonction avec Criteria interdite.
78 = clé secondaire inexistante dans le fichier.
83 = Numéro d'index incorrect.
90 = Index inexistant.
Description Se positionne SUR la clé secondaire désignée. Un zi_down permet de récupérer le prochain record, zi_up le précédent, dans l'ordre de l'index secondaire sélectionné.
zi_down et zi_up donnent erreur 96 en fin et début du fichier, et non en début et fin des réponses.
Même si la clé secondaire exacte n'est pas trouvée, zi_down et zi_up permettent de naviguer dans le fichier dans l'odre de l'index secondaire, dans ce cas le pointeur est positionné avant la clé secondaire immédiatement supérieure, et après la clé secondaire immédiatement inférieure, comme un SEARCH Abal le ferait sur la clé principale du fichier.
La fonction zi_search "casse" le zi_xsearch.
Cette fonction ne marche qu'avec des fichiers ZSI.
zi_xsearch n'a pas d'équivalent en Abal, hormi un POSIT sur lequel on pourrait remonter avant la question ou descendre après la fin des réponses.
La fonction équivaut plutôt à un SEARCH, mais sur un index secondaire.
Cette fonction est illustrée dans le programme de gestion d'une la carte de fidélité "100K", qui est appelé par EXBIKV15 dans les exemples Bikini.

Fonctions associées: zi_xclink , zi_xdlink , zi_xposit , zi_xcount


début




Fonction Bikini v 1.6.
Fonction DEFINIT LE CHEMIN D'ACCES A EXCEL
Prototype zimp_excelconfig(no%,wpath$=512,option%):%
Système Cible Windows 32 ou 64 bits
Exemple err= zimp_excelconfig(64,"C:\Program Files\Microfoft Office\Office11\Excel.exe",0)
En entrée no = numéro logique Abal disponible pour usage interne de la fonction.
wpath = Chemin complet d'accès à Excel.
option = 1: La fonction recherche Excel et rend une erreur s'il n'est pas trouvé.
option = 0: La fonction stocke le chemin et revient à l'appelant.
En sortie erreur: 0 = Ok, ou 40 = Excel non trouvé.
Description Définit le chemin d'accès à Excel pour les fonctions zimp_excelpreview, zimp_excelprint, zimp_excelprintex et zimp_excelsave.
La fonction est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_getexcelpath , zimp_excelpreview , zimp_excelprint , zimp_excelprintex , zimp_excelsave

début


Fonction Bikini v 1.6.
Fonction TROUVE EXCEL OU DEMANDE A L'UTILISATEUR DE TROUVER EXCEL
Prototype zimp_getexcelpath(wpath$=512,titre$=40):%
Système Cible Windows 32 ou 64 bits
Exemple

if (zimp_getexcelpath(wpath?,"Dites-moi où est Excel !") <> 0)
	zmesserr("Excel non trouvé: Abandon !")
	exit,d
else
	zimp_excelconfig(64,wpath,0)
endif
En entrée titre: Titre de la fenêtre de recherche d'Excel.
En sortie ret = 0 = Excel a été trouvé, ou l'utilisateur a identifié Excel.
ret = -1, L'utilisateur a frappé ESCAPE. wpath = Chemin complet d'accès à Excel tel qu'identifié par l'utilisateur.
Description La fonction demande à l'utilisateur d'identifier Excel à l'aide d'une common dialog box d'ouverture de fichiers .exe.
La fonction est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_excelconfig , zimp_excelpreview , zimp_excelprint, zimp_excelprintex , zimp_excelsave

début


Fonction Bikini v 1.6.
Fonction FUSIONNE UN FICHIER D'IMPRESSION ASCII AVEC UN TABLEAU EXCEL, AFFICHE LE RESULTAT
Prototype zimp_excelpreview(impr_exceldoc$=512,impr_excelcsv$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_excelpreview("exbikv16.xls","exbikv16.csv")
En entrée impr_exceldoc: Tableau Excel vide destiné à être alimenté avec les données.
impr_excelcsv: fichier ASCII type CSV contenant les données.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Excel n'est pas chargé, la fonction charge Excel.
=> Elle provoque le chargement du tableau "impr_exceldoc".
=> Elle lit le fichier ASCII "resultat", et remplit le tableau Excel à l'aide des données contenues dans resultat.
=> Chaque mot contenu entre ";" et ";" représente le contenu d'une cellule.
=> Chaque ligne du fichier Ascii représente une ligne dans le tableau Excel.
Note: Des cellules vides sont représentées par ";;".
Les lignes vides sont interprétées comme un ligne suivante.
La fonction utilise DDE pour remplir le tableau Excel avec les données du fichier Ascii. La présentation contenue dans le tableau (formats, largeurs des colonnes etc...) est conservée.
Typiquement, le tableau Excel contient le contenant (titres des colonnes, formats, couleurs etc...), et le fichier Ascii contient les données.

Si impr_exceldoc est à blanc, la fonction charge un tableau excel vierge.
Si impr_excelcsv est à blanc, la fonction charge impr_exceldoc.

La fonction est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_excelconfig , zimp_getexcelpath , zimp_excelprint , zimp_excelprintex , zimp_excelsave

début


Fonction Bikini v 1.6.
Fonction FUSIONNE UN FICHIER D'IMPRESSION ASCII AVEC UN TABLEAU EXCEL ET IMPRIME LE RESULTAT
Prototype zimp_excelprint(impr_exceldoc$=512,impr_excelcsv$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_excelprint("exbikv16.xls","exbikv16.csv")
En entrée impr_exceldoc: Tableau Excel vide destiné à être alimenté avec les données.
impr_excelcsv: fichier ASCII type CSV contenant les données.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Excel n'est pas chargé, la fonction charge Excel.
=> Elle provoque le chargement du tableau "impr_exceldoc".
=> Elle fusionne le fichier Ascii avec le tableau Excel (voir fonction zimp_excelpreview).
=> Elle imprime le tableau Excel résultat sur l'imprimante par défaut. (fonction Ctrl P d'Excel), puis quitte Excel.
La fonction est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_excelprintex , zimp_excelconfig , zimp_getexcelpath , zimp_excelpreview , zimp_excelsave

début


Fonction Bikini v 1.6.
Fonction FUSIONNE UN FICHIER D'IMPRESSION ASCII AVEC UN TABLEAU EXCEL, ENREGISTRE LE RESULTAT ET SORT D'EXCEL
Prototype zimp_excelsave(impr_exceldoc$=512,impr_excelcsv$=512,resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_excelprint("exbikv16.xls","exbikv16.csv","resultat.xls")
En entrée impr_exceldoc: Tableau Excel vide destiné à être alimenté avec les données.
impr_excelcsv: fichier ASCII type CSV contenant les données.
resultat: Fichier Excel généré.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Excel n'est pas chargé, la fonction charge Excel.
=> Elle provoque le chargement du tableau "impr_exceldoc".
=> Elle fusionne le fichier Ascii avec le tableau Excel (voir fonction zimp_excelpreview).
=> Elle enregistre le tableau Excel résultat et quitte Excel.
La fonction est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_excelconfig , zimp_getexcelpath , zimp_excelpreview , zimp_excelprint , zimp_excelprintex

début


Fonction Bikini v 1.6.
Fonction DEFINIT LE CHEMIN D'ACCES A WORD
Prototype zimp_wordconfig(no%,wpath$=512,option%):%
Système Cible Windows 32 ou 64 bits
Exemple err= zimp_wordconfig(64,"C:\Program Files\Microfoft Office\Office11\winword.exe",0)
En entrée no = numéro logique Abal disponible pour usage interne de la fonction.
wpath = Chemin complet d'accès à word.
option = 1: La fonction recherche word et rend une erreur s'il n'est pas trouvé.
option = 0: La fonction stocke le chemin et revient à l'appelant.
En sortie erreur: 0 = Ok, ou 40 = word non trouvé.
Description Définit le chemin d'accès à word pour les fonctions zimp_wordpreview, zimp_wordprint et zimp_wordsave.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_getwordpath , zimp_wordpreview , zimp_wordprint , zimp_wordsave
début


Fonction Bikini v 1.6.
Fonction TROUVE WORD OU DEMANDE A L'UTILISATEUR DE TROUVER WORD
Prototype zimp_getwordpath(wpath$=512,titre$=40):%
Système Cible Windows 32 ou 64 bits
Exemple

if (zimp_getwordpath(wpath?,"Dites-moi où est word !") <> 0)
	zmesserr("word non trouvé: Abandon !")
	exit,d
else
	zimp_wordconfig(64,wpath,0)
endif
En entrée titre: Titre de la fenêtre de recherche de word.
En sortie ret = 0 = L'utilisateur a identifié word.
ret = -1, L'utilisateur a frappé ESCAPE. wpath = Chemin complet d'accès à word tel qu'identifié par l'utilisateur.
Description La fonction demande à l'utilisateur d'identifier word à l'aide d'une common dialog box d'ouverture de fichiers .exe.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_wordconfig , zimp_wordpreview , zimp_wordprint , zimp_wordsave
début


Fonction Bikini v 1.6.
Fonction AFFICHE DANS WORD UN FICHIER AU FORMAT RTF :
Prototype zimp_wordpreview(resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_wordpreview("exbikv16.rtf")
En entrée resultat: fichier au format RTF généré par l'application Abal.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Word n'est pas chargé, la fonction charge Word.
=> Elle provoque l'ouverture et l'affichage par Word du document resultat.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_wordconfig , zimp_getwordpath , zimp_wordprint , zimp_wordsave
début


Fonction Bikini v 1.6.
Fonction AFFICHE DANS WORD UN FICHIER AU FORMAT RTF, PUIS L'IMPRIME :
Prototype zimp_wordprint(resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_wordprint("exbikv16.rtf")
En entrée resultat: fichier au format RTF généré par l'application Abal.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Word n'est pas chargé, la fonction charge Word.
=> Elle provoque l'ouverture et l'affichage par Word du document resultat.
=> Elle imprime le document RTF résultat sur l'imprimante par défaut. (fonction Ctrl P de Word), puis quitte Word.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_wordconfig , zimp_getwordpath , zimp_wordpreview , zimp_wordsave
début


Fonction Bikini v 1.6.
Fonction ENREGISTRE DANS WORD UN FICHIER AU FORMAT RTF, PUIS SORT DE WORD :
Prototype zimp_wordsave(resultat$=512):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_wordsave("exbikv16.rtf")
En entrée resultat: fichier au format RTF généré par l'application Abal.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Word n'est pas chargé, la fonction charge Word.
=> Elle provoque l'ouverture et l'affichage par Word du document resultat.
=> Elle enregistre le document RTF résultat, puis quitte Word.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_wordconfig , zimp_getwordpath , zimp_wordpreview , zimp_wordprint
début



Fonction Bikini v 1.6.
Fonction AFFICHE LA COMMON DIALOG BOX DE CHOIX ET DE PARAMETRAGE DE L'IMPRIMANTE
Prototype zimp_getprinter (ncols%,defaut%,landscape%):%
zimp_getprinterex (ncols%,defaut%,landscape%,nbex%):%
Système Cible Windows 32 ou 64 bits
Exemple nblines=zimp_getprinter(80,0,0)
if (nblines = -1)
exit
endif
En entrée ncols: nombre de colonnes de l'impression.
defaut = 1: On sélectionne automatiquement l'imprimante par défaut de Windows. Pas d'affichage de la boite de dialogue.
defaut = 0: Affiche la boite de dialogue de sélection de l'imprimante.
landscape = 1: Présélectionne le mode paysage dans la boite de dialogue.
landscape = 0: Présélectionne le mode portrait dans la boite de dialogue.
nbex: Nombre d'exemplaire (supporté par certaines imprimantes).
Attention: defaut = 1 et landscape = 1 sont INCOMPATIBLES.
En sortie nblines = Nombre de lignes avant de provoquer un saut de page.
nblines = -1: L'utilisateur a fait ESCAPE sur la boite de dialogue.
Description Le but de la fonction est double :
1) Demander à l'utilisateur de choisir l'imprimante parmi la liste des imprimantes Windows.
2) Retourner le nombre de lignes par page (en fonction du nombre de colonnes passé en entrée), afin de pouvoir insérer le plus correctement possible les sauts de page dans l'édition.
La fonction choisit automatiquement la taille de police adaptée à la largeur de l'impression, afin que celle-ci occuppe entièrement la page imprimée.
Il est nécessaire de générer un fichier Ascii contenant l'édition, puis d'appeler la fonction zimp_imppreview ou la fonction zimp_impprint afin de réaliser l'impression sur l'imprimante sélectionnée.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_setdefprinter , zimp_impprint , zimp_imppreview

début


Fonction Bikini v 1.6.
Fonction IMPRIME LE DOCUMENT ASCII SUR L'IMPRIMANTE CHOISIE :
Prototype zimp_impprint (nfile$=512,mode%):%
Système Cible Windows 32 ou 64 bits
Exemple err=zimp_impprint("exbikv16.txt",1)
En entrée nfile: nom du fichier à imprimer.
mode = 0: impression en mode brouillon (RAW)
mode = 1: impression en mode GDI
En sortie 0 = Impression correcte.
sinon code erreur Windows.
Description La fonction imprime le document ASCII sur l'imprimante choisie à l'aide de la fonction zimp_getprinter ou zimp_getprintex.
Le document peut contenir :
Le texte au format OEM (Ascii Prologue). Il est automatiquement converti au format ANSI (windows).
Les caractères ascii traditionnels, qui sont interprétés (Saut de Page, CR, line feed, EOF).
Des cadres de tableaux semi-graphiques simple ou double épaisseur, avec les intersections, qui vont définir les lignes et les colonnes de l'impression. Ces cadres vont automatiquement être convertis en traits graphiques lors de l'impression.
Des séquences escape parmi les séquences suivantes :
[esc]h = gras
[esc]y = italiques
[esc]d = souligné
[esc]z = double largeur
[esc]Z = double taille
[esc]a = retour normal
[esc]R = Indique une couleur de texte. Doit être suivi de chr$(R), chr$(G), chr$(B).
Les séquences ne sont pas cumulables, sauf les couleurs.

La fonction identifie les cellules définies par les semi-graphiques.
Si la cellule est de type numérique (c'est àdire si elle ne contient que des chiffres, et les caractères ., espace, virgule, +, -, C, D, la police utilisée est non proportionnelle afin que les nombres soient alignés dans une colonne. Dans ce cas, le contenu de la cellule est cadré à droite.
Si la cellule contient d'autres caractères, elle est considérée comme alphanumérique, et la police utilisée est PROPORTIONELLE. Dans ce cas, le contenu de la cellule est cadré à gauche.

l'impression en mode brouillon consiste à envoyer le document débarrassé de toutes les séquences ESCAPE, les semi-graphiques sont automatiquement convertis en caractères | (pipe), + et -, et l'impression est envoyée directement au spooler d'impression sans passer par le GDI. Typiquement l'imprimante utilisée est de type GENERIC TEXT, et à aiguilles.

La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_getprinter , zimp_getprinterex , zimp_imppreview

début


Fonction Bikini v 1.6.
Fonction PREVISUALISE L'IMPRESSION
Prototype zimp_imppreview (nfic$=512,mode%):%
Système Cible Windows 32 ou 64 bits
Exemple esc=zimp_impprint("exbikv16.txt",1)
if (esc = -1)
exit
endif
En entrée nfile: nom du fichier à prévisualiser.
mode = 0: prévisualisation en mode brouillon (RAW)
mode = 1: prévisualisation en mode GDI
En sortie esc = 0: L'utilisateur est sorti de la fonction sans imprimer par ESCAPE.
esc = -1: une erreur est apparue en cours d'exécution de la fonction.
esc = 1: L'utilisateur a réalisé une impression.
Description La fonction visualise le fichier dans une fenêtre Bikini, avec scroll vertical et horizontal.
Cette fenêtre s'adapte automatiquement à la résolution de Windows.

Les fonctions suivantes sont disponibles au travers des boutons :
Recherche: Permet de recherche une chaîne dans l'édition.
Paramétrage libellé: ZLIB_IMPR_006 dans zlib+mes, Paramétrage chr$ hot-key: ZLIB_IMPR_008.
Nouvelle recherche: Recherche une nouvelle fois.
Paramétrage libellé: ZLIB_IMPR_016 dans zlib+mes, Paramétrage chr$ hot-key: ZLIB_IMPR_009.
Page No: Se positionne directement sur la page dont le numéro est donné.
Paramétrage libellé: ZLIB_IMPR_018 dans zlib+mes, Paramétrage chr$ hot-key: ZLIB_IMPR_017.
Imp.Page: Permet d'imprimer une fourchette de pages (de la page X à la page Y).
Paramétrage libellé: ZLIB_IMPR_015 dans zlib+mes, Paramétrage chr$ hot-key: ZLIB_IMPR_019.
Impr: Imprime la totalité du document. Toujours associé à la hot-key [CR], et à la hot-key Ctrl P.
Paramétrage libellé: ZLIB_IMPR_020 dans zlib+mes, Paramétrage chr$ hot-key: ZLIB_IMPR_025.
ESCAPE: Quitte la fonction.


Bien que l'édition soit AUTOMATIQUEMENT GRAPHIQUE avec des polices PROPORTIONELLES, la prévisualisation est semi-graphique.
La prévisualisation est limitée pour l'instant à des fichiers contenant moins de 65.536 lignes.
Les libellés des boutons et des messages sont traduisibles dans le programme ZLIBMES.
La fonction est utilisée dans l'exemple EXBIKV16.

Fonctions associées : zimp_getprinter, zimp_getprinterex , zimp_getprinterex zimp_impprint

début


Fonction Bikini v 1.6.
Fonction CENTRE AUTOMATIQUEMENT UNE FENETRE BIKINI :
Prototype zwincenter(dx%,dy%)
Système Cible Tous systèmes
Exemple zwincreate(10)
zwincenter(0,0)
En entrée dx: Décalage en caractères de la position horizontale par rapport au centre.
dy: Décalage en caractères de la position verticale par rapport au centre.
En sortie rien.
Description La fonction permet de centrer automatiquement une fenêtre (même dont les coordonnées sont fixes, même générée par le painter).
Les paramètres dx et dy à 0 indique un centrage parfait à l'intérieur de la fenêtre WEXA.
Dx (positif ou négatif), permet de déplacer la fenêtre horizontalement par rapport au centre.
Dy (positif ou négatif), permet de déplacer la fenêtre verticalement par rapport au centre.
Cette fonction permet par exemple, pour une application utilisant des fenêtres 80x24, de centrer très facilement ces fenêtres dans un contexte 100 colonnes ou 120 colonnes, de manière à occuper la totalité de l'écran.

début


Fonction Bikini v 1.6.
Fonction DEFINIT UN CALENDRIER UTILISATEUR :
Prototype zcalendar_user(proc pcalendar):proc
Système Cible Tous systèmes
Exemple proc mon_calendrier(la_date$=8,x%,y%):%

nombre=nombre+10 ; Ajoute 10 à la saisie de l'utilisateur

endproc
...
dcl proc oldp
dcl proc newp
...
newp=proc ptr mon_calendrier oldp=zcalendar_user(newp)

En entrée pcalendar: Pointeur sur la fonction utilisateur de calendrier.
En sortie Pointeur sur l'ancienne fonction (y compris la fonction interne Bikini de calendrier).
Description La fonction permet d'utiliser son propre calendrier dans ses applications, en lieu et place du calendrier Bikini.
Bien sûr, cette fonction de calendrier doit respecter le prototype indiqué :

proc my_calendar(current_date$=8,x%,y%):%
current_date: Date en entrée, transmise par Bikini [format $=8 "YYYYMMDD"].
En sortie, date choisie par l'utilisateur [format $=8 "YYYYMMDD"].
x,y: Coordonnées de la saisie associée, transmise par Bikini.
En sortie: -1: l'utilisateur a fait ESCAPE, sinon 0.

Fonctions associées : zcalendar

début


Fonction Bikini v 1.6.
Fonction DEFINIT UNE CALCULETTE UTILISATEUR :
Prototype zcalc_user(proc pcalc):proc
Système Cible Tous systèmes
Exemple
proc ma_calculette(nombre$=18,format$=20,x%,y%):%

nombre=nombre+10 ; Ajoute 10 à la saisie de l'utilisateur

endproc
...
dcl proc oldp
dcl proc newp
...
newp=proc ptr ma_calculette oldp=zcalc_user(newp)

En entrée pcalendar: Pointeur sur la fonction utilisateur de calculette.
En sortie Pointeur sur l'ancienne fonction (y compris la fonction interne Bikini de calculette).
Description La fonction permet d'utiliser sa propre calculette dans ses applications, en lieu et place du calculette Bikini.
Bien sûr, cette fonction de calculette doit respecter le prototype indiqué :

proc my_calc(number$=18,format$=20,x%,y%):%
number: Nombre en entrée, en alphanumérique, transmis par Bikini.
En sortie, cette même variable doit contenir le résultat du calcul.
format: Format (exemple: N7Z.Z2) de la zone de saisie sur laquelle l'utilisateur a appelé la calculette.
x,y: Coordonnées de la saisie associée, transmise par Bikini.
En sortie: -1: l'utilisateur a fait ESCAPE, sinon 0.


Fonctions associées : zcalc

début


Fonction Bikini v 1.7.
Fonction INITIALISATION BIBLIOTHEQUE DE FUSION DE DOCUMENTS :
Prototype zf_iinit(nfic_src$=512,nls%,nfic_dst$=512,nld%):%
Système Cible Tous systèmes
Exemple err=zf_iinit("EXEMPLE.ZRP",63,"RESULTAT.TXT",64)
En entrée nfic_src: Pathname + Nom du fichier à fusionner avec les données.
nfic_dst: Pathname + Nom du fichier fusionné.
En sortie Code erreur:
0 = pas d'erreur.
56 = zf_iinit déjà fait.
27 = pas assez de mémoire.
40 = fichier nfic_src inexistant.
43 = fichier nfic_src déjà ouvert.
1000+xx = erreur no xx en ouvrant nfic_src.
58 = numéros nls et nld identiques.
2000+xx = erreur no xx en créant nfic_dst.
Description La fonction initialise la bibliothèque de fusion de documents.
Elle teste la présence du fichier nfic_src, sauf si nls = 0.
Elle crée le fichier vide nfic_dst, sauf si nld = 0.

Fonctions associées : zf_iend , zf_iconfig

début


Fonction Bikini v 1.7.
Fonction FIN D'UTILISATION DE LA BIBLIOTHEQUE DE FUSION DE DOCUMENTS :
Prototype zf_iend():%
Système Cible Tous systèmes
Exemple err=zf_iend()
En entrée
En sortie Code erreur:
0 = pas d'erreur.
56 = zf_iinit non fait.
Description La fonction libère la mémoire occupée par la bibliothèque de fusion de documents.


Fonctions associées : zf_iinit , zf_iconfig

début


Fonction Bikini v 1.7.
Fonction CONFIGURE LA BIBLIOTHEQUE DE FUSION DE DOCUMENTS :
Prototype zf_iconfig(keycar$=1,bcdfmt$=30):%
Système Cible Tous systèmes
Exemple err=zf_iconfig("$",0,"N7Z.Z2")
En entrée keycar: Caractère clé devant être présent devant tous les mots-clé de fusion.
bcdfmt: Format par défaut d'impression des BCD.
En sortie Code erreur:
0 = pas d'erreur.
56 = zf_iinit non fait.
Description La fonction permet de configurer la bibliothèque de fusion de documents:
Le caractère clé devant être présent devant tous les mots-clé de fusion.
Si aucun format n'est précisé sur la fonction zf_iprintbcd, le format par défaut sera utilisé.
Si la fonction zf_iconfig n'est pas appelée dans le programme, les paramètres suivants par défaut sont utilisés :
keycar = "$"
speed = 0
bcdfmt= "-7Z.Z2"


Fonctions associées : zf_iinit , zf_iend

début


Fonction Bikini v 1.7.
Fonction AJOUTE UN MOT-CLE AU DICTIONNAIRE :
Prototype zf_iadd_word(keyword$=16):%
Système Cible Tous systèmes
Exemple err=zf_iadd_word("$CLIENT.NAME")
En entrée keyword: Mot clé de fusion, comprenant en 1er caractère, le caractère clé de fusion (voir zf_iconfig).
En sortie Code erreur:
0 = pas d'erreur.
56 = zf_iinit non fait.
77 = Trop de mots-clé (limite de 900 mots-clé dépassée).
78 = Le mot clé ne commence pas par le caractère clé de fusion.
Description Cette fonction permet d'alimenter le dictionnaire des mots-clé de fusion.
Attention! L'analyse des mot-clé est case-sensitive.

Fonctions associées : zf_iexec

début


Fonction Bikini v 1.7.
Fonction COPIE LE DOCUMENT SOURCE DANS LE DOCUMENT CIBLE JUSQU'AU PROCHAIN MOT-CLE :
Prototype zf_iexec(ptr keyword$=16):%
Système Cible Tous systèmes
Exemple do
err=zf_iexec(motcle?)
if (err <> 0) : break
zmesval("mot clé trouvé ="+motcle)
loop
En entrée Rien.
En sortie Code erreur:
0 = pas d'erreur.
48 = Fin du document source.
56 = zf_iinit non fait.
Description La fonction lit le fichier source et écrit le fichier destination.
Elle s'interromps dès qu'elle trouve un mot-clé appartenant au dictionnaire (défini par zf_iadd_word).
Elle rend le mot-clé trouvé, afin que le développeur puisse :
- Remplacer le mot clé par une valeur (fonctions de la famille zf_iprint)
- Aller à un autre mot clé (boucle, condition..) (zf_igoto ou zf_irollback)
Si le mot-clé n'est pas remplacé par une fonction zf_iprint, il n'est pas copié dans le document cible.

Fonctions associées : zf_iaddword

début


Fonction Bikini v 1.7.
Fonction REMPLACE LE MOT-CLE COURANT PAR UNE VALEUR :
Prototype zf_iprint(ptr z_string$,lg%):%
zf_iprintalpha(chaine$=256,lg%):%
zf_iprintdiese(diese#):%
zf_iprintpourc(pourc%):%
zf_iprintbcd(bcd=12):%
zf_iprintdate(dat$=8):%

Système Cible Tous systèmes
Exemple zf_iprint(ptr z_string$,lg%):%
zf_iprintalpha(client_nom,len(client_nom)):%
zf_iprintdiese(client_age):%
zf_iprintpourc(client_nbchild):%
zf_iprintbcd(client_ventes):%
zf_iprintdate(client_datnais):%
En entrée Rien.
En sortie Code erreur:
0 = pas d'erreur.
56 = zf_iinit non fait.
Description La fonction remplace le mot-clé courant par la valeur fournie en paramètre.
Dans le cas des fonctions sur les variables alpha, la longueur doit être passée en paramètre 2.
SI LE MOT-CLE EST SUIVI D'UNE VALEUR ENTRE PARENTHESES, la fonction l'interpète comme un FORMAT D'EDITION:
Par exemple, $CLIENT_NOM(W30) ou $CLIENT_AGE(N2Z).

Les formats Abal classiques sont interprétés. Certains formats particuliers existent :
Format "W0" (toutes fonctions zf_iprint...) : Remplace le mot-clé par rien.
Format "C" (zf_iprintalpha): format booléen - "O" (ou le caractère propre à la langue le remplaçant [voir zaskwriteconfig]) est remplacé par "X", les autres valeurs par " ".
Format "$" (zf_iprintalpha): Remplace le mot-clé par la chaine sur len$ caractères de la chaine.
Format précédé du caractère ">" une ou X fois (zf_iprintalpha): Fait un substr de la variable à partir de la position X. Par exemple $CLIENT_CODE(>>W8) / Si la valeur est "12JACK " / La valeur imprimée est "JACK ".
Format "EAN13" (zf_iprintalpha): Code Barre / La valeur numérique est transcodée pour pouvoir être affichée sous forme de code barre grâce à la police Code EAN13 [ean13.ttf] livrée avec Bikini v 1.7.
Format "EAN13H" (zf_iprintalpha): Code Barre / Idem EAN13, mais le code barre est imprimé sur 2 lignes au lieu d'une seule ligne.
Format numérique précédé du caractère @ (zf_iprintdiese, zf_iprintpourc et zf_iprintbcd) : Si la valeur est nulle (0), la valeur est BLANC (suite de SPACE de longueur du format).
Format "NULL" (zf_iprintbcd) :: Remplace le mot clé par rien.
Format numérique précédé du caractère "R" (zf_iprintbcd) : Arrondit la valeur à 2 décimales.
Format numérique précédé du caractère . (zf_iprintbcd) : La valeur entre parenthèses qui suit est interprétée comme le séparateur entre la zone entière et la zone décimale (ex: ".(.)N4Z.NZ").

Format "N" et "N10" (zf_iprintdate) : remplace le mot-clé par zdat10(dat).
Format "N/" (zf_iprintdate) : remplace le mot-clé par zdat10(dat), si la date est à zéro, remplace par 10 espaces.
Format "N8" (zf_iprintdate) : remplace le mot-clé par zdat8(dat).
Format "N8/" (zf_iprintdate) : remplace le mot-clé par zdat8(dat), si la date est à zéro, remplace par 10 espaces.
Format "X" (zf_iprintdate) : remplace le mot-clé par zdatalpha(dat)
Format "A" (zf_iprintdate) : remplace le mot-clé par zdatalpha(dat), si la date est à zéro, remplace par 26 espaces.

Si la fonction ne reconnaît pas le format, le message "zf_iprintalpha: Incorrect Format", suivi du format est affiché.
début


Fonction Bikini v 1.7.
Fonction RETOURNE LE MOT ENTRE PARENTHESE QUI SUIT LE MOT-CLE COURANT :
Prototype zf_inextword():$=16
Système Cible Tous systèmes
Exemple
mot=zf_inextword()
En entrée Rien.
En sortie Chaine de caractère comprise entre parenthèses (), suivant le mot-clé courant.
Si aucune parenthèse trouvée, blanc.
Description retourne la chaine de caractères qui se trouve entre parenthèses, et suit le mot-clé courant.
Par exemple: sur $CLIENT_ADRESS(2), zf_inextword retournera "2".
La parenthèse ouvrante ( doit suivre au caractère près la fin du mot-clé.

Fonctions associées : zf_inextwordc , zf_igoto , zf_irollback ,

début


Fonction Bikini v 1.7.
Fonction RETOURNE LE MOT ENTRE CROCHETS QUI SUIT LE MOT-CLE COURANT :
Prototype zf_inextwordc():$=16
Système Cible Tous systèmes
Exemple
mot=zf_inextwordc()
En entrée Rien.
En sortie Chaine de caractère comprise entre crochets [ ], suivant le mot-clé courant.
Si aucun crochet trouvé, blanc.
Description retourne la chaine de caractères qui se trouve entre crochets, et suit le mot-clé courant.
Par exemple: sur $CLIENT_ADRESS[2], zf_inextword retournera "2".
La fonction cherche au delà des parenthèses qui suivent éventuellement le mot-clé. Exemple: $CLIENT_ADRESSE(W30)[2].
La fonction sert typiquement à identifier un élément d'un tableau.

Fonctions associées : zf_inextword , zf_igoto , zf_irollback ,

début


Fonction Bikini v 1.7.
Fonction VA A UN MOT-CLE PLUS LOIN DANS LE DOCUMENT :
Prototype zf_igoto(keyword$=16):%
Système Cible Tous systèmes
Exemple down=1:next,err,clients,300
if (err = 0) ; S'il y a encore un client
zf_irollback("$DEBUT_BOUCLE") ; Revient au début de l'édition du client
endif
En entrée Mot-clé vers lequel aller.
En sortie Code erreur:
0 = pas d'erreur.
48 = Mot-clé non trouvé.
56 = zf_iinit non fait.
Description Va juste après le mot clé passé en paramètre.
Typiquement, cette fonction sert à ne pas exécuter une condition présente dans le document source.

Fonctions associées : zf_inextword , zf_inextwordc , zf_irollback ,

début


Fonction Bikini v 1.7.
Fonction RETOURNE A UN MOT-CLE PRECEDENT :
Prototype zf_irollback(keyword$=16):%
Système Cible Tous systèmes
Exemple
if (client_pays <> "France")
zf_igoto("$ENDIF")
endif
En entrée Mot-clé sur lequel revenir.
En sortie Code erreur:
0 = pas d'erreur.
64 = Mot-clé non trouvé.
56 = zf_iinit non fait.
Description Revient juste après le mot clé passé en paramètre.
Typiquement, cette fonction sert à exécuter des boucles dans le document source.

Fonctions associées : zf_inextword , zf_inextwordc , zf_igoto

début


Fonction Bikini v 1.7.
Fonction RETOURNE LE NUMERO DE LA LIGNE COURANTE :
Prototype zf_igetline_number():%
Système Cible Tous systèmes
Exemple
if (zf_igetline_number > 66)
zf_igoto("$SAUT_PAGE")
endif
En entrée Rien.
En sortie Numéro de la ligne dans la page courante
Description Cette fonction est à utiliser pour gérer les sauts de pages dans les éditions Ascii.

Fonctions associées : zf_igetpage_number , zf_isetpage_number

début


Fonction Bikini v 1.7.
Fonction RETOURNE LE NUMERO DE LA PAGE COURANTE :
Prototype zf_igetpage_number():%
Système Cible Tous systèmes
Exemple
case "$PAGE"
zf_iprintpourc( zf_igetpage_number() )
En entrée Rien.
En sortie Numéro de la page
Description Cette fonction est à utiliser pour imprimer le numéro de page dans les éditions Ascii.

Fonctions associées : zf_igetline_number , zf_isetpage_number

début


Fonction Bikini v 1.7.
Fonction CHANGE LE NUMERO DE LA PAGE COURANTE :
Prototype zf_isetpage_number(np%):%
Système Cible Tous systèmes
Exemple
zf_isetpage_number(1)
En entrée Numéro de la page.
En sortie Rien
Description Cette fonction change le numéro de la page courante.
Par exemple, si l'on réalise une impression de lettres de relances pour un ensemble de clients, pour chaque client, on recommence la numérotation des pages.

Fonctions associées : zf_igetline_number , zf_igetpage_number ,

début


Fonction Bikini v 1.8.
Fonction BOITE DE MESSAGE YES/NO AVEC NO PAR DEFAUT :
Prototype zmesno_yes(msg$=240):%
Système Cible Tous systèmes
Exemple
if (zmesno_yes("Supprimer le client ?") = 0)
....
En entrée Message à afficher.
En sortie 0 si oui.
1 si non.
Description Fonction identique à zmesyes_no mais positionne le NON par défaut au lieu du OUI.
Même paramètre de sortie.
Cette fonction permet d'éviter d'utiliser les fonctions zmesnodefault et zmesyesdefault.
début


Fonction Bikini v 1.8.
Fonction GESTION DU CHANGEMENT DE VALEUR D'UNE SAISIE :
Prototypes zask_ismodif():%
zaskrollback_restore(ptr z_handle$=16)
Système Cible Tous systèmes
Exemple
zaskalpha(zask,code_client?)
if (zafter = 1)
	if (zask_ismodif() = 1)		;si ask modifié...
		; controle de validite de la saisie
		zaskrollback_restore(zask?)	; mauvaise valeur
		; => retour saisie avec restauration valeur initiale
	endif
endif
En entrée zaskrollback_restore: zask.
En sortie zask_ismodif: 1 si valeur modifiée en saisie, sinon 0.
zaskrollback_restore: zask modifié pour retourner à la saisie que l'on vient de quitter.
Description Les fonctions zaskalpha, zaskbcd etc... sauvegardent maintenant la valeur de la saisie avant que l'utilisateur aie éventuellement modifié cette saisie dans ces fonctions zaskalpha....
La fonction zask_ismodif, employée en traitement APRES la saisie, permet de savoir si la valeur initiale avant l'exécution de zaskalpha a été modifiée ou pas.
La fonction zaskrollback_restore est équivalente à la fonction zaskrollback, SAUF QUE, la valeur initiale avant modification par l'utilisateur est restaurée dans la saisie.
Ces fonctions permettent d'éviter de sauvegarder la valeur avant saisie pour contrôler le changement de cette valeur par l'utilisateur, typiquement :
old_client	=client
zaskalpha(zask,client?)
if (zafter = 1)
	if (client <> old_client)
		search dans fichier client
		if (err = 78)
			client = old_client
			zaskrollback(zask)
		endif
	endif
endif
Peut être avantageusement remplacée par :

zaskalpha(zask,client?)
if (zafter = 1)
	if (zask_ismodif() = 1)
		search dans fichier client
		if (err = 78)
			zaskrollback_restore(zask)
		endif
	endif
endif

L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV18.AT


Fonctions associées : zdialog_ismodif & zdialog_notmodif , zask_getoldalpha & fonctions associées , zaskoblig & zask_notoblig

début


Fonction Bikini v 1.8.
Fonction REND VALEUR SAISIE AVANT MODIFICATION PAR L'UTILISATEUR :
Prototypes zask_getoldalpha():$=256
zask_getolddiese():#
zask_getoldpourc():%
zask_getoldbcd():=12
zask_getolddate():$=8
zask_getoldradio():%
zask_getoldcheck():$=1
Système Cible Tous systèmes
Exemple
zaskalpha(zask,code_client?)
if (za = 0)
	if (zask_ismodif() = 1)		; si saisie modifiée...
		; Met à jour journal des modifications :
		update_journal("code_client",zask_getoldalpha(),code_client)
	endif
endif
En entrée Rien.
En sortie ancienne valeur en entrée des fonctions zaskalpha etc... avant modification par l'utilisateur.
Description Ces fonctions s'utilisent en traitement après une saisie.
Elle permettent de retrouver la valeur intiale de la saisie avant modification par l'utilisateur.

Fonctions associées : zask_ismodif & zaskrollback_restore , zdialog_ismodif & zdialog_notmodif , zaskoblig & zask_notoblig

début


Fonction Bikini v 1.8.
Fonction BOITE DE DIALOGUE MODIFIEE ? :
Prototypes zdialog_ismodif():%
zdialog_notmodif()
Système Cible Tous systèmes
Exemple
zaskbout(zask)		; Bouton ESCAPE
if (za = 0)
	if (zdialog_ismodif() = 1)		; si BDial modifiée...
		if (zmesno_yes("Abandonner les modifications ?") <> 0)
			zaskgoto(zask,1)
		endif
	endif
endif
En entrée Rien.
En sortie 1 si au moins une saisie a été modifiée, sinon 0.
Description Rend 1 si au moins une saisie (zaskalpha, zaskbcd, zasktext...) a été modifiée dans la boite de dialogue, sinon 0.
Permet facilement d'afficher un message de confirmation lorsque l'utilisateur quitte une boite de dialogue, UNIQUEMENT s'il a modifié cette boite de dialogue.

Note:
L'appui sur un push-bouton ou un bouton-onglet est considéré comme une modification, car un traitement peut être enclenché sur cette action.
La sélection d'un élément dans une liste également.

Le développeur peut déterminer que l'appui sur un push-bouton ou un bouton-onglet particuliers ne soit pas considéré comme une modification en utilisant la fonction zdialog_notmodif en traitement après (if za = 0) ou (if zafter = 1) du push-bouton ou du bouton-onglet.
Dans ce cas, même si l'utilisateur appuie sur cet élément, la fonction zdialog_ismodif rendra 0.


Fonctions associées : zask_ismodif & zaskrollback_restore , zaskoblig & zask_notoblig , zask_getoldalpha & fonctions associées

début


Fonction Bikini v 1.8.
Fonction CREATION ET SUPPRESSION BOITE DE DIALOGUE PAINTER :
Prototypes zdialog(z_name$=16,z_no%,z_flag%):%
zdialog_end()
Système Cible Tous systèmes
Exemple
e	=zdialog("FICHE_CLIENT",zwinfree(0),0)
if (e <> 0)
	zmesserr("Dialog FICHE CLIENT: erreur ="+conv$(e))
endif
...
zaskbegin(zask,0)
while (za > 0)
	...
wend
zdialog_end()
exit

En entrée zdialog: z_name = nom de la ressource boite de dialogue Bikini.
zdialog: z_no% = Numéro de la fenêtre à créer (typiquement égal à zwinfree(0) )
zdialog: z_flag% = même flag d'affichage que zdialog_box
zdialog_end: Rien.
En sortie sur zdialog: Code erreur (équivalent à celui de zdialog_box), sinon 0.
Description La fonction zdialog est équivalente à zdialog_box sauf qu'elle sauvegarde auparavent la boite de dialogue courante (zaskpush).
La fonction zdialog_end supprime la fenêtre créée par zdialog, et restaure la boite de dialogue sauvegardée avant zdialog.
Ces fonction sont plus logiques d'emploi que les séries :
	zaskpush()
	zdialog_box(...)
	...
	zwinclear()
	zaskpop()
	...

remplacé avantageusement par :

	zdialog(...)
	...
	zdialog_end()
début


Fonction Bikini v 1.8.
Fonction DEFINITION D'UNE ZONE DE SAISIE COMME OBLIGATOIRE :
DEBLOQUAGE DE CETTE ZONE :
Prototypes zaskoblig(noask%)
zask_notoblig(noask%)
Système Cible Tous systèmes
Exemple
e	=zdialog("FICHE_CLIENT",zwinfree(0),0)
zaskoblig(13)			; La saisie 13 est obligatoire !
...
zaskbegin(zask,0)
while (za > 0)
	case 1
	...
	case 2
	...
	case 13			; Saisie CODE CLIENT OBLIGATOIRE
		zaskalpha(zask,client_code?)
		if (zafter = 1)
			search... code client	; Recherche client
			if (e = 0)		; Client trouvé
				; On est ici certain que le client a été choisi
				; et qu'il existe dans le fichier.
				zask_notoblig(13); Saisie client DEBLOQUEE
			endif
		endif
	case 14
	...
	case 100		; Bouton OK
		zaskbout(zask)
		; TANT QUE le programme n'aura pas exécuté ZASK_NOTOBLIG, l'appui sur OK
		; retournera automatiquement à la saisie 13, comme un zaskgoto !
	endsel
wend
zdialog_end()
exit

En entrée Numéro USER de la saisie.
En sortie Rien.
Description Ces 2 fonction permettent d'éviter de REPORTER les traitements après saisies sur le bouton OK.
En effet, il suffit de définir, soit par Zlib (zaskoblig), soit par le painter qui intègre cette fonction les saisies obligatoires de la boite de dialogue.
Lors de l'exécution de la boite de dialogue, lorsque l'on est certain que la ou les saisies ont été correctement renseignées, il suffit d'utiliser zask_notoblig.
Dans le cas contraire, l'appui sur le bouton O.K provoque le retour du programme sur la 1ère saisie obligatoire non rendue obligatoire par zask_notoblig.
Dans le cas d'une suite d'onglets, l'onglet contenant la saisie non renseignée est automatiquement activé.
On peut utiliser une série de fonctions zask_notoblig pour débloquer une série de saisies.
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV18.AT


Fonctions associées : zask_ismodif & zaskrollback_restore , zdialog_ismodif & zdialog_notmodif , zask_getoldalpha & fonctions associées

début


Fonction Bikini v 1.8.
Fonction MODIFIE DYNAMIQUEMENT LES CARACTERISTIQUES (COULEUR, FONTE) D'UNE COLONNE LORS DE L'AFFICHAGE D'UNE LISTE :
Prototypes zcol_modif(nocol%,larg%)
Système Cible Tous systèmes
Exemple
proc affiche_ligne(ptr a$,b%)

	if (client_encours > 0)		; Si le client doit de l'argent
		zcol_color(0,11)	; Affichage encours sur fond jaune
		zcol_font(1)		; Fonte en GRAS
	else				; Sinon
		zcol_color(0,7)		; Couleur par défaut
		zcol_font(4)		; Fonte par défaut
	endif
	zcol_modif(3,0)			; Modifie la colonne 3 sur la ligne courante
	zprintline(100,code_client+chr$(179)+nom_client+chr$(179)+conv$(client_encours))
endproc
....
	; Déclaration des colonnes de la liste :
	zaskdcl(3,50,4,"W","W")			; Liste SI des clients
	zliscolor(0,3)
	zlisframe(1)
	zlifdcl(8+32,1,50,4,22,11)
	zcol_color(0,7)			; Définition statique des colonnes
	zcol_font(4)			; (liste évoluée)
	zcol_add(10)			; Code client
	zcol_add(30)			; Nom client
	zcol_add(10)			; Encours client
	...				; Cette définition peut se faire dans le painter
					; à l'aide des VUES.

	; Traitement avant de la liste :
	if (zbefore = 1)
		...
		p	=proc ptr affiche_ligne
		zlifline(p)
		...
	endif
	zasklalpha(zask,client_code,client_key,zlis?)
En entrée Nocol = Numéro de la colonne.
larg = Nouvelle largeur de la colonne ou 0 si la largeur est inchangée.
En sortie Rien.
Description Cette fonction permet, LORS DE L'AFFICHAGE DE LA LIGNE DE LA LISTE par la fonction callback définie dans ZLISLINE ou ZLIFLINE, de modifier la couleur, le fond, la fonte et la largeur de n'importe quelle colonne de la liste.
La fonction prend la couleur courante (définie par zcol_color) et la fonte courante (définie par zcol_font)
Les fonctions zcol_color et zcol_font peuvent être employées dans la fonction d'affichage de la ligne.
La modification dynamique de la largeur des colonnes (2ième paramètre de zcol_modif) permet, pour une même liste, d'afficher plusieurs types de données.
Zcol_modif n'affecte pas la ligne ayant le focus.
ATTENTION ! Les lignes affichées, lors de l'exécution, après la ligne courante sont également impactées par le dernier zcol_modif employé: Il faut donc redéfinir les paramètres des colonnes pour chaque ligne affichée.

L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV18.AT, ainsi que dans l'exemple EXLISTS.AT.

début


Fonction Bikini v 1.8.
Fonction PARAMETRAGE DES TRIS AUTOMATIQUES SUR LES LISTES :
Prototypes zfile2mem_config(file2mem%):%
zfile2mem_search(avec_search%):%
zfile2mem_delay (delai%):%

Système Cible Tous systèmes
Exemple
dcl old_file2mem%		; Pour sauvegarder contexte
dcl old_avec_search%
dcl old_delai%
endloc

	old_file2mem	=zfile2mem_config(1)	; Liste fichiers => mémoire
	old_avec_search	=zfile2mem_search(0)	; Pas de search en cours
						; de naviguation dans la liste
	old_delai	=zfile2mem_delay(15)	; Délai de chargement
						; maximum = 1,5 seconde
	...
	Liste évoluée
	...
	zfile2mem_config(old_file2mem)		; Restauration contexte listes évoluées
	zfile2mem_search(old_avec_search)
	zfile2mem_delay	(old_delai)

En entrée file2mem = 1 <=> Activation fonction de chargement mémoire des listes fichiers.
= 0 Désactivation fonction de chargement mémoire des listes fichiers.
avec_search = 1 Le pointeur sur le fichier est conservé lors de la naviguation dans la liste.
= 0 Le pointeur fichier n'est pas conservé.
delai = Délai de chargement maximum de la liste en mémoire en 1/10e de seconde.
En sortie Ancienne valeur associée à la fonction avant utilisation de la fonction.
Description Une liste évoluée est une liste avec les colonnes définies, soit par le painter (par les VUES), soit par zlib+ (fonction zcol_add).

Par défaut, à partir de Bikini V 1.8, les listes suivantes peuvent être triées par l'utilisateur par simple click dans la barre de titre de la liste :

=> Liste FICHIER (Si/Mc) évoluée avec callback d'affichage de la ligne définie par zlifline.
=> Liste mémoire ou sur fichier Ascii évoluée.

Pour réaliser ce tri, zlib+ utilise le mécanisme suivant :
Elle appelle, pour toutes les lignes de la liste, la fonction callback définie par zlifline, qui elle même appelle zprintline. Le contenu de chaque ligne est lu (mais pas affiché) dans zprintline, et zlib+ peut réaliser le tri, car elle connaît le contenu des colonnes.

Lors de l'affichage initial de la liste fichier, zlib+ charge en mémoire le maximum de records du fichier pendant la période DELAI définie par zfile2mem_delay. Puis la liste est affichée dans une liste mémoire avec ascenseur.

Si toutes les réponses ne sont pas chargées en mémoire, l'utilisateur peut provoquer le chargement de la suite de la liste par manipulation de l'ascenseur, ou utilisation des flèches ainsi que de PgDn et PgUp, afin qu'il puisse parcourir toutes les réponses du fichier de manière transparente.

L'appui d'une touche par l'utilisateur en cours d'affichage de la liste (fonction ZLIFREPOSIT) recharge automatiquement la liste.

Il se peut que lors de l'affichage de la ligne de la liste, le développeur utilise le pointeur sur le fichier (avec DOWN et UP) pour réaliser certaines opérations. Dans ce cas il est nécessaire que zlib+ conserve le record courant (par des DOWN et UP internes), ce qui est le cas lorsque zfile2mem_search est positionnée à 1.

Il n'est pas conseillé d'utiliser cette fonction avec comme paramètre 1, car celà ralentit fortement l'affichage de la liste lorsque celle ci n'est pas triée dans l'ordre de l'index courant, car par exemple Flèche bas peut provoquer X down ou up.

Les valeurs par défaut sur ZINIT sont les suivantes :

zfile2mem_config	= 1 (Chargement des listes fichier évoluées activé)
zfile2mem_search	= 0 (pas de search pendant la naviguation)
zfile2mem_delay		= 10 (1 seconde)
Les fonctions zfile2mem_config, zfile2mem_search, zfile2mem_delay agissent sur toutes les listes qui suivent l'exécution de ces fonctions.

Le fait de récupérer en sortie sur ces fonctions les anciens paramètres permet de paramétrer une liste donnée dans une fonction sans se préoccupper du comportement préalablement défini (voir exemple donné ci-dessus).

début


Fonction Bikini v 1.8.
Fonction POSITIONNE L'INDICATEUR DE TRI SUR UNE COLONNE DANS LA BARRE DE TITRE :
Prototypes zcol_setdefault(nocol%,ntri%)
Système Cible Tous systèmes
Exemple
	; Traitement avant de la liste :
	if (zbefore = 1)
		...
		p	=proc ptr affiche_ligne
		zlifline(p)
		zcol_setdefault(2,1)	; Indique colonne 2 triée croissant
		...
	endif
	zasklalpha(zask,client_code,client_key,zlis?)
En entrée Nocol = Numéro de la colonne.
ntri = 1 Croissant / 2=Décroissant.
En sortie Rien.
Description Une liste évoluée peut être triée par l'utilisateur par click dans la barre de titre.
Cette fonction positionne l'indicateur de tri (flèche bas ou haut), dans la barre de titre de la liste, sur la colonne triée.
Cette fonction ne réalise pas de tri, elle positionne simplement l'indicateur de tri lorsque l'utilisateur affiche la liste.
L'EMPLOI DE CETTE FONCTION EST ILLUSTRE DANS L'EXEMPLE EXBIKV18.AT

début


Fonction Bikini v 1.8.
Fonction DEFINIT UN CALLBACK SUR LE TRI DE LA LISTE :
Prototypes zcol_changesort(proc p):proc
Système Cible Tous systèmes
Exemple
;		noask = Numéro de la saisie (No User)	
;		numcol = Numéro de la colonne triée
;		ntri = 1 Croissant, 2 = décroissant
;		pbuffer = Pointeur sur la clé du fichier
proc mon_tri(noask%,numcol%,ntri%,pbuffer$=5):%
field=m,pbuffer
	ptr pbuf$
endloc

...
	zmesval("L'utilisateur demande le tri de la colonne "+conv$(ncol)+'
	" dans le sens "+conv$(ntri))
	exit(0)
endproc
...
	; Traitement avant de la liste :
	if (zbefore = 1)
		...
		p	=proc ptr mon_tri
		zcol_changesort(p)
		...
	endif
	zasklalpha(zask,client_code,client_key,zlis?)
En entrée p = pointeur sur fonction callback.
En sortie Ancien pointeur sur fonction callback s'il y en a un.
FONCTION CALLBACK :
En entrée noask = Numéro de la saisie (No User)
numcol = Numéro de la colonne triée
ntri = 1 Croissant, 2 = décroissant
pbuffer = Pointeur sur la clé du fichier
En sortie 0 = zlib+ réalise elle-même le tri.
1 = Le développeur doit réaliser le tri.
Description La fonction callback est appelée lorque l'utilisateur déclique après avoir cliqué sur la barre de titre de la liste.
Cette fonction callback permet typiquement de réaliser des affichages complémentaires associés au nouveau tri dans la boite de dialogue courante.
Si le paramètre de retour est 1, zlib+ ne réalise pas le tri mais ré-affiche la liste juste au retour de la fonction callback. Le tri doit être programmé dans la fonction callback, de la même manière qu'il le serait en traitement avant la liste.


début


Fonction Bikini v 1.9.
Fonction POSITIONNE ET DIMENSIONNE LA FENETRE WEXA :
Prototypes zwexa_iconize()
zwexa_resize(larg%,haut%)
zwexa_move_resize(x%,y%,larg%,haut%)
zwexa_center(larg%,haut%)
Système Cible Windows uniquement
Exemple
	; Réduit la fenêtre wexa dans la barre de tâches.
	zwexa_iconize()			
	; La fenêtre fait 800x600 et reste à la position courante.
	zwexa_resize(800,600)
	; Positionne la fenêtre Wexa en (100,50), de taille (800,600)
	zwexa_move_resize(100,50,800,600)
	zwexa_center(800,600)

En entrée x=coordonnée graphique x.
y=coordonnée graphique x.
larg=largeur en pixels.
haut=hauteur en pixels.
En sortie rien.
Description Ces fonctions permettent de positionner, de dimensionner et de centrer la fenêtre de Wexa sur le bureau.

fonctions associées :zwindow_title
début


Fonction Bikini v 1.9.
Fonction RETOURNE A UNE SAISIE ET RAFFRAICHIT LA LISTE ASSOCIEE, OU SEULEMENT LA LIGNE COURANTE DE LA LISTE :
Prototypes zaskgoto_listrefresh(ptr handle$=16,no%)
zaskgoto_linerefresh(ptr handle$=16,no%)
Système Cible Tous systèmes.
Exemple
if (zafter = 1)
	zaskgoto_linerefresh(zask,2)	; revient à la saisie 2
	; et raffraîchit la ligne courante de la liste associée.
endif
En entrée handle = zask handke.
no = numéro de saisie.
En sortie rien.
Description La fonction zaskgoto_linerefresh ré-affiche la ligne courante de la liste associée à la saisie vers laquelle on va.
La fonction zaskgoto_listrefresh remplace plus simplement la séquence zaskgoto + zlisrefresh.
début


Fonction Bikini v 1.9.
Fonction ASSOCIE UN POSITIONNEMENT SUR UN INDEX SECONDAIRE A UNE LISTE FICHIER ZSI :
Prototypes zlifposit_zi (handle$=16,nidx%,mini$=1024,maxi$=1024)
zlifposit_zid (handle$=16,nidx%,mini$=1024,maxi$=1024)
zlifposit_xzi (handle$=16,nidx%,mini_ini$=1024,mini$=1024,maxi$=1024)
zlifposit_xzid(handle$=16,nidx%,mini_ini$=1024,mini$=1024,maxi$=1024)

Système Cible Windows uniquement.
Exemple
if (zbefore = 1)
	zfilezi(1,2,"fichiers/clients",10,256)
	; nlog=1, type=ZSI, lgclé=10, lgdada=256
	zlifposit_zi(zask,2,"SMITH     ","SMITHZZZZZ")	; equivalent à SMITH*
endif
zasklapha(zask,client_code?,client_buffer,zlis?)
En entrée handle = zask handke.
nidx = numéro d'index secondaire tel que défini dans la fonction zi_xclink.
mini = clé minimum sur laquelle se positionner sur l'index secondaire.
maxi = clé maximum sur laquelle se positionner sur l'index secondaire.
En sortie rien.
Description Il était possible d'utiliser dans Bikini des fichiers d'un autre format que Criteria: les fichiers "zsi".
Les fonctions ZSI

Il est maintenant possible d'associer des listes à ces fichiers, comme pour des fichiers Criteria.
Ces fonctions s'utilisent de la même manière que les fonctions zlifposit.
La différence est qu'elles n'agissent pas sur les fichiers Criteria mais sur des fichiers Zsi.
ZSI ne supportant pas les requêtes MC, il est nécessaire de définir les clés secondaires mini et maxi
correspondant à une recherche. La liste sera bornée par ces 2 clés.
L'association de la liste Bikini au fichier ZSI se fait par la fonction zfilezi
Pour une liste ZSI sur l'index principal et non sur un index secondaire, il suffit d'utiliser zfilezi (sans zlifposit_zi).

Les extensions correspondent à :
_zi: positionnement sur la clé mini.
_zid: positionnement sur la clé maxi (index inversé).
_xzi: positionnement sur la clé mini / positionnement initial différent.
_xzid: positionnement sur la clé maxi (index inversé) / positionnement initial différent.

Les fonctions d'extension _xzi/_xzid :
Permettent un positionnement initial différent du positionnement par HOME et END dans la liste.
Par exemple,
La liste des clients est triée par nom: HOME va sur le 1er " ", END va sur le dernier "ZZZZZZZZZZ"
Mais le client courant est "SMITH", donc on souhaite qu'il ait le focus lorsque l'on rentre dans la liste. On va écrire :

zlifposit_xzi(zask,2,"SMITH ","ZZZZZZZZZZ"," ","ZZZZZZZZZZ")

Les fonctions zlifposit_x et fonctions rattachées sont équivalentes sur des fichiers Criteria.

Fonctions associées: zfilezi
début


Fonction Bikini v 1.9.
Fonction CREE UNE NOUVELLE LISTE MEMOIRE :
Prototypes zlist_create(no%,lg_item%):%
Système Cible Windows uniquement.
Exemple
	zlist_create(1,140)		; crée la liste 1 (lg item de 140)
En entrée no = numéro de liste.
lg_item = taille d'un item.
En sortie 0 = pas d'erreur.
50 = numéro de liste incorrect.
63 = taille buffer incorrecte.
41 = liste déjà créée.
Description Crée une liste mémoire évoluée, comme on créerait un fichier.
Le numéro de liste doit être compris entre 1 et 64.
La taille du item entre 1 et 8192.

Fonctions associées : zlist_destroy

début


Fonction Bikini v 1.9.
Fonction SUPPRIME UNE LISTE MEMOIRE :
Prototypes zlist_destroy(no%):%
Système Cible Windows uniquement.
Exemple
	zlist_destroy(1)		; crée la liste 1 (lg item de 512)
En entrée no = numéro de liste.
lg_item = taille d'un item.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Supprime une liste mémoire évoluée, ainsi que tous ses items.

Fonctions associées : zlist_create

début


Fonction Bikini v 1.9.
Fonction AJOUTE UN ITEM A UNE LISTE MEMOIRE :
Prototypes zlist_additem(no%,enreg$=8192):%
Système Cible Windows uniquement.
Exemple
	zlist_additem(1,client)	; ajoute un item
En entrée no = numéro de liste.
enreg = item.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Ajoute un nouveau item dans la liste mémoire évoluée.
L'item est ajouté à la FIN de la liste !

Fonctions associées : zlist_getitem , zlist_moditem , zlist_delitem , zlist_insitem

début


Fonction Bikini v 1.9.
Fonction LIT UN ITEM D'UNE LISTE MEMOIRE :
Prototypes zlist_getitem(no%,num=8,item$=8192):%
Système Cible Windows uniquement.
Exemple
	zlist_getitem(1,500,client?)	; Lit l'item no 500 de la liste 1.
En entrée no = numéro de liste.
num = numéro de l'item.
item = buffer pour contenir l'item.
En sortie item = item lu. 0 = pas d'erreur.
116 = liste inexistante.
78 = item inexistant.
Description Retourne l'item numéro num dans la liste mémoire évoluée.

Fonctions associées : zlist_additem , zlist_moditem , zlist_delitem , zlist_insitem

début


Fonction Bikini v 1.9.
Fonction MODIFIE UN ITEM D'UNE LISTE MEMOIRE :
Prototypes zlist_moditem(no%,num=8,item$=8192):%
Système Cible Windows uniquement.
Exemple
	zlist_moditem(1,500,client)	; modifie l'item no 500 de la liste 1.
En entrée no = numéro de liste.
num = numéro de l'item.
item = item.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
78 = item inexistant.
Description Modifie l'item numéro num dans la liste mémoire évoluée.
L'item ne change pas de numéro d'ordre dans la liste.

Fonctions associées : zlist_additem , zlist_getitem , zlist_delitem , zlist_insitem

début


Fonction Bikini v 1.9.
Fonction SUPPRIME UN ITEM D'UNE LISTE MEMOIRE :
Prototypes zlist_delitem(no%,num=8):%
Système Cible Windows uniquement.
Exemple
	zlist_delitem(1,500)		; supprime l'item no 500 de la liste 1.
En entrée no = numéro de liste.
num = numéro de l'item.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
78 = item inexistant.
Description Supprime l'item numéro num dans la liste mémoire évoluée.
Les numéros des items suivants sont décalés de -1.

Fonctions associées : zlist_additem , zlist_getitem , zlist_moditem , zlist_delitem , zlist_insitem

début


Fonction Bikini v 1.9.
Fonction INSERE UN ITEM DANS UNE LISTE MEMOIRE :
Prototypes zlist_insitem(no%,num=8,item$=8192):%
Système Cible Windows uniquement.
Exemple
	zlist_insitem(1,500,client)	; insère l'item no 500 de la liste 1.
En entrée no = numéro de liste.
num = numéro de l'item.
item = item.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Insère l'item numéro num dans la liste mémoire évoluée.
Les numéros des items suivants sont décalés de +1.
2 items identiques peuvent être présents dans la liste !

Fonctions associées : zlist_additem , zlist_getitem , zlist_moditem , zlist_delitem

début


Fonction Bikini v 1.9.
Fonction RETOURNE LE NOMBRE D'ITEMS D'UNE LISTE MEMOIRE :
Prototypes zlist_getnbitems(no%):=8
Système Cible Windows uniquement.
Exemple
	; Affiche le nombre d'items de la liste 1.
	zmesval(conv$( zlist_getnbitems(1) ))
En entrée no = numéro de liste.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Retourne le nombre d'items présents dans la liste.

Fonctions associées : zlist_getnewlist

début


Fonction Bikini v 1.9.
Fonction RETOURNE LE PREMIER NUMERO DE LISTE VIDE :
Prototypes zlist_getnewlist():%
Système Cible Windows uniquement.
Exemple
	; Affiche le premier numéro de liste inutlisé.
	zmesval(conv$( zlist_getnewlist() ))
En entrée rien
En sortie numéro de liste ou -1 si aucun numéro n'est disponible.
Description Retourne le premier numéro de liste vide.
Ceci permet degérer dynamiquement les numéros de listes.

Fonctions associées : zlist_getnbitems

début


Fonction Bikini v 1.9.
Fonction TRIE UNE LISTE MEMOIRE :
Prototypes zlist_sort(no%,adrs%,lg%):%
Système Cible Windows uniquement.
Exemple
dcl client_code$=10
dcl client_nom$=30			; pos = 11 / lg = 30
dcl client_adresse$=100
endloc
...
	zlist_sort(1,11,30)	; Trie la liste 1 sur le NOM DU CLIENT.
En entrée no = numéro de liste
adrs = adresse (en commençant à 1) de la zone sur laquelle il faut trier la liste.
lg = taille de cette zone.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Re-trie la liste selon un nouvel «index».
L'"index" est une partie de l'item contenu dans la liste: il faut donner sa position et sa taille.
Tous les numéros d'ordre des items sont ré-attribués !.

Fonctions associées : zlist_create , zlist_additem , zlist_destroy , zlist_browse

début


Fonction Bikini v 1.9.
Fonction ASSOCIE UNE LISTE MEMOIRE A UNE SAISIE :
Prototypes zlist_browse(zask$=16,no%,proc pline):%
Système Cible Windows uniquement.
Exemple
...
dcl client$=140
field=m,client
	dcl client_code$=10
	dcl client_nom$=30			; pos = 11 / lg = 30
	dcl client_adresse$=100


...
proc aff_ligne(focus%,x%,y%,item$=140)

	client	=item
	zprintline(142,client_code+chr$(179)+client_nom+chr$(179)+client_adresse)

endproc

...
dcl proc paff_ligne
endloc
...
	if (zbefore = 1)
		zlist_browse(zask,1,paff_ligne)
	endif
	zaskalpha(zask,client?)
...
En entrée zask = ask-handle
no = numéro de liste
pline = pointeur sur la fonction d'affichage de la ligne.
En sortie 0 = pas d'erreur.
116 = liste inexistante.
Description Permet d'associer la liste à une liste mémoire Bikini.
La liste mémoire doit être définie par zlib+ ou par le painter.

Prototype Fonction callback :

En entrée :
focus = 0=la ligne n'a pas le focus, 1=la ligne a le focus, 2=la ligne est grisée.
x = 0
y = numéo de ligne.
item = contenu de l'item à afficher.


Fonctions associées : zlist_create , zlist_destroy , zlist_additem , zlist_sort

début


Fonction Bikini v 2.0.
Fonction LIT UNE CLE D'UNE SECTION D'UN FICHIER .INI
Prototype extern proc zget_profstrcom(fichier$=512,section$=512,rubrique$=512,' defaut$=512,resultat$=512,comment$=512):%
Système Cible Windows 32 ou 64 bits
Exemple
dcl fichier$=512
...
zget_profstrcom("gestion.ini","clients","mode_recherche","3",resultat?,'
		comment?)
msg	=print(($," :",$),comment,resultat)
zmesval( msg )

gestion.ini:
[clients]
creation=Oui		# création des clients autorisée Oui/Non
Modification=Non	# modification des clients autorisée Oui/Non
Mode_Recherche=2	# mode de recherche par défaut des clients

La fonction rendra "2" avec l'exemple ci-dessus.
En entrée fichier = Nom du fichier .ini à lire.
section = Nom de la section (sans les crochets [])
rubrique = Nom de la clé à lire.
defaut = Valeur par défaut à lire si la clé n'existe pas.
resultat = Variable servant au retour de la fonction.
comment = Commentaire situé derrière le caractère #
En sortie La longueur de la chaîne lue.
La dernière variable (resultat dans l'exemple), est mis à jour par le système.
Description Permet de lire dans les fichiers texte de type .ini


fonctions associées :zwrite_profstr , zwrite_profstrcom , zget_profstr
début




Fonction Bikini v 2.0.
Fonction ECRIT UNE CLE D'UNE SECTION D'UN FICHIER .INI
Prototype extern proc zwrite_profstrcom(fichier$=512,section$=512,rubrique$=512,' resultat$=512,comment$=512):%
Système Cible Windows 32 ou 64 bits
Exemple
dcl fichier$=512
...
zwrite_profstrcom("gestion.ini","clients","mode_recherche","3",'
		  "mode de recherche par défaut des clients")


gestion.ini:
[clients]
creation=Oui			# création des clients autorisée Oui/Non
Modification=Non		# modification des clients autorisée Oui/Non
Mode_Recherche=2		# mode de recherche par défaut des clients


La fonction vient d'écrire "3" et le commentaire dans l'exemple ci-dessus.
En entrée fichier = Nom du fichier .ini à lire.
section = Nom de la section (sans les crochets [])
rubrique = Nom de la clé à lire.
resultat = Valeur à écrire après le signe = de la clé.
comment = Commentaire situé derrière le caractère #
En sortie 0 si la fonction s'est bien exécutée, -1 si le fichier ou la section n'est pas trouvé.
Description Permet d'écrire dans les fichiers texte de type .ini.

ATTENTION !
Si la section N'EXISTE PAS, elle ast automatiquement CREEE par la fonction.
Si la clé N'EXISTE PAS dans la section, elle ast automatiquement CREEE par la fonction.
Si la valeur passée est à BLANC, la clé est supprimée du fichier.



fonctions associées :zget_profstr , zget_profstrcom , zget_profstr
début




Fonction Bikini v 2.0.
Fonction REDIRIGE LES AFFICHAGES LIGNE STATUS VERS DES BULLES D'AIDE :
Prototypes zstatus2bubble(yes%):%
Système Cible Windows uniquement.
Exemple
	zstatus2bubble(1)	; Tous les messages ligne status s'afficheront
				; automatiquement dans des bulles d'aide.
En entrée 1 = redirection
0 = pas de redirection
En sortie ancienne valeur 0 ou 1.
Description Bikini V2 permet d'afficher des bulles d'aide automatiquement lorsque le curseur souris passe les saisies.
Cette fonction fait automatiquement afficher la ligne status dans ces bulles d'aide.
Ceci évite de reconstruire un nouveau système d'aide en ligne, alors que la ligne status est renseignée.

ATTENTION! Seuls les messages de la ligne status issus du PAINTER sont ainsi redirigés.
En effet, les messages status présents dans le traitement avant des saisies (zstatus), ne peuvent être connus de Zlib en début d'exécution des boites de dialogue.


Où se positionnent les bulles d'aide ?
Les bulles se positionnent automatiquement au dessous du pointeur de la souris.
Celà peut être génant sur les listes car la bulle cache une partie de celle-ci.
Cela est résolu car si le pointeur de la souris s'approche trop de la bulle, celle-ci se déplace automatiquement.
Si une partie importante de la liste est ainsi cachée, il suffit de déplacer la souris vers cette partie pour déplacer la bulle.

début


Fonction Bikini v 2.0.
Fonction AFFICHE LE CLAVIER VIRTUEL PAVE NUMERIQUE (pour les écrans tactiles) :
Prototypes zkeyboard_show(type%,x%,y%):%
Système Cible Windows uniquement.
Exemple
	while (za > 0)

		select za
		case 1,2,6
			if (zbefore = 1)
				; Affiche le pavé numérique à l'écran
				; en coordonnées 10,10.
				zkeyboard_show(1,60,18)
			endif
			if (zafter = 1)
				select za
				case 1,2,6
				default
					zkeyboard_hide()
				endsel
			endif
		default		; si escape, ne passe pas par zafter=1
			zkeyboard_hide()
		endsel

		select za
		case 1
			zaskpourc(zask,billets?)
		...
En entrée type = 1. (autres valeurs = réservé pour extensions)
x,y = Corrdonnées d'affichage
En sortie ancienne valeur 0 ou 1.
Description Bikini V2 gère la souris de manière à ce que les écrans tactiles multitouch soient correctement gérés.
Cette fonction permet d'afficher un pavé numérique virtuel à l'écran lors d'une saisie numérique.
Bien sûr, les chiffres pointés du doigt s'affichent automatiquement dans cette saisie.
Ce pavé numérique est dans une vraie fenêtre windows qui peut être déplacée par l'utilisateur.

fonctions associées :zkeyboard_hide
début


Fonction Bikini v 2.0.
Fonction EFFACE LE CLAVIER VIRTUEL PAVE NUMERIQUE (pour les écrans tactiles) :
Prototypes zkeyboard_hide():%
Système Cible Windows uniquement.
Exemple voir fonction zkeyboard_show
En entrée rien
En sortie 0 ou 40 si le clavier n'est pas affiché.
Description Cette fonction permet d'effacer de l'écran le pavé numérique virtuel après une saisie numérique.

fonctions associées :zkeyboard_show
début


Fonction Bikini v 2.0.
Fonction CREE UNE NOUVELLE BARRE D'OUTILS :
Prototypes ztoolbar_create(no%,type%,x%,y%,l%,h%,titre$=41,proc p):%
Système Cible Windows uniquement.
Exemple
; Fonction Callback de gestion des outils :
proc prog_tools_call(id%):%

	select id		; Numéro d'outil
	case 1			; Quitter le logiciel
		if (zmesyes_no("Quitter le logiciel ?") = 0)
			exit(-1); Fait faire un stop par Zlib
		endif
	.....
	
proc toolbar1()
dcl proc pcallback
endloc
...
	pcallback	=proc ptr prog_tools_call
	e	=ztoolbar_create(1,1,120,2,14,26,"Raccourcis",pcallback)
	; Crée un barre d'outils (en mémoire) aux coordonnées 120,1
	; de 14 colonnes de large et 26 lignes de haut.
	; Cette barre d'outils porte le numéro 1, elle est de type 1.
	; Le titre est "Raccourcis"
	; La gestion des outils se fait dans la fonction pcallback

En entrée no = numéro de barre d'outils [1->15]
type = type de fenêtre:
1=Type toolbar avec boutons de fermeture
2=Type classique sans bouton de fermeture
x,y = Corrdonnées de la barre d'outils en mode texte
l,h = largeur et hauteur de la barre en caractères
titre = Titre qui sera affiché dans la barre de titre de la fenêtre de la barre.
pcallback = Fonction callback de gestion de la barre.
En sortie Code erreur ou 0.
Liste des ererurs :
41 = barre déjà créée.
51 = Numéro de barre incorrect
Description Cette fonction définit une barre d'outils en mémoire.
Bien que l'écran Bikini soit limité à 120 colonnes, les barres d'outils peuvent être positionnée au dela de 120 colonnes.
Elles peuvent occuper l'espace jusqu'à 160 colonnes.
160 colonnes x 41 lignes occupent un espace équivalent à 16/9e, ce qui correspond au standard actuel des écrans du marché.
En mode petites polices, l'application occupera entièrement un écran 16/9e de portable 15 pouces wide, ou de 19 pouces Wide.
En mode grandes polices, l'application occupera entièrement un écran 16/9e de 22 pouces Wide.
Pour pouvoir utiliser les outils, il faudra ensuite créer les outils dans la barre, puis afficher la barre.

La barre d'outils est active en parallèle avec l'application. Les outils sont donc disponibles tout le temps de la vie de la barre.
Même à l'intérieur des saisies, des listes etc..., les outils peuvent êter utilisés.

Plusieurs barres d'outils peuvent être utilisées simultanément. Chacune portant un numéro différent.
Les barres d'outils sont affichées dans des fenêtres windows différentes de la fenêtre exécuteur.
Elles peuvent être déplacées par l'utilisateur en dehors de la fenêtre exécuteur.
Cependant, si la fenêtre exécuteur est déplacée, les barres d'outils sont automatiquement déplacées en même temps par Bikini.

Losque l'on clique sur la barre d'outils, ou sur un outil, la fenêtre de la barre prend le focus au détriment de la fenêtre exécuteur.
Cependant, lorsque l'utilisateur frappe un caractère au clavier, le focus est automatiquement redonné à la fenêtre exécuteur, et le caractère est envoyé dans le buffer clavier de Wexa.

Prototype de la fonction callback :

proc ma_fonction(id%):%
Input:	id = ID de l'outil activé par l'utilisateur (passé en paramètre à ztoolbar_addtool)
Output:	0 ou -1
-1 indique que Bikini stoppe le déroulement de l'application.
(Pour pouvoir réaliser un bouton Quitter)

fonctions associées :ztoolbar_addtool , ztoolbar_show , ztoolbar_remove
début


Fonction Bikini v 2.0.
Fonction AJOUTE UN OUTIL A UNE BARRE D'OUTILS :
Prototypes ztoolbar_addtool(no%,ID%,x%,y%,l%,h%,bitmap$=512,text$=64,comment$=240):%
Système Cible Windows uniquement.
Exemple
	lc	=zw_getgrx(2) - 1
	select lc
	case 8
		hbout	=45
		dbout	=2
		ybout	=4
	case 10
		hbout	=56
		dbout	=4
		ybout	=10
	case 12
	endsel

	e	=ztoolbar_addtool	(1,1,15,ybout,100,hbout,"quitter"," ",'
					"quitter l'application")
	if (e <> 0)	: zmesserr("Err "+e+" ztoolbar_addtool")
	ybout		=ybout + hbout + dbout

	e	=ztoolbar_addtool	(1,2,15,ybout,100,hbout,"compta"," ",'
					"accéder directement à la compta")
	if (e <> 0)	: zmesserr("Err "+e+" ztoolbar_addtool")
	ybout		=ybout + hbout + dbout
En entrée no = numéro de barre d'outils [1->15]
ID = numbre identifiant l'outil [1-32000]
x,y = coordonnées en PIXELS dans la barre d'outils.
l,h = Largeur et hauteur en PIXELS dans la barre d'outils.
bitmap = Nom du bitmap .JPG affiché dans la barre d'outils.
text = Texte affiché dans la barre d'outils.
comment = Texte d'aide correspondant à l'outil.
En sortie Code erreur ou 0
Liste des ererurs :
40 = barre inexistante.
51 = Numéro de barre incorrect
Description Cette fonction doit impérativement être utilisée après ztoolbar_create, et avant ztoolbar_show.
Elle ajoute un bouton à la barre.
L'ID sera envoyée par Zlib à la fonction callback de ztoolbar_create pour différencier les outils.
On peut passer des ID différents d'une barre d'outils à l'autre, de cette manière il est possible de ne
définir qu'une seule fonction callback pour plusieurs barres d'outils.
Dans l'outil, est affiché :
Le bitmap de fond de l'outil (obligatoire).
Le texte est affiché par dessus, si le text n'est pas blanc.

Si le nom du bitmap ne comporte pas l'extension .JPG, celle ci est ajoutée automatiquement de la manière suivante :
--> .jpg en petites polices.
--> _big.jpg en grandes polices.
--> _huge.jpg en très grandes polices.
Le nom du bitmap sera préfixé par ZBMP_PATH s'il ne comporte pas de path.

fonctions associées :ztoolbar_remove , ztoolbar_remove , ztoolbar_create
début


Fonction Bikini v 2.0.
Fonction AFFICHE UNE BARRE D'OUTILS :
Prototypes ztoolbar_show(no%):%
Système Cible Windows uniquement.
Exemple ztoolbar_show(1)
En entrée no = numéro de barre d'outils [1->15]

En sortie Code erreur ou 0
Liste des ererurs :
40 = barre inexistante.
51 = Numéro de barre incorrect
Description Cette fonction affiche la barre d'outils, UNE FOIS QUE TOUS LES OUTILS ONT ETE CREES !

fonctions associées :ztoolbar_addtool , ztoolbar_remove , ztoolbar_create
début


Fonction Bikini v 2.0.
Fonction EFFACE UNE BARRE D'OUTILS :
Prototypes ztoolbar_remove(no%):%
Système Cible Windows uniquement.
Exemple ztoolbar_remove(1)
En entrée no = numéro de barre d'outils [1->15]

En sortie Code erreur ou 0
Liste des ererurs :
40 = barre inexistante.
51 = Numéro de barre incorrect
Description Cette fonction détruit la barre d'outils en mémoire, et l'efface de l'écran.

fonctions associées :ztoolbar_addtool , ztoolbar_show , ztoolbar_create
début


Fonction Bikini v 2.0.
Fonction REND LE NOMBRE DE COLONNES MAXI DE L'ECRAN (pour placer les barres d'outils) :
Prototypes zget_maxx_tools():%
Système Cible Windows uniquement.
Exemple max =zget_maxx_tools()
En entrée rien
En sortie Nombre de colonnes
Description En Bikini, la largeur maxi de l'écran est de 120 colonnes.
Cependant, on peut placer les barres d'outils au delà des 120 colonnes, jusqu'à 160 colonnes.
Cette fonction rend le nombre maxi de colonnes disponibles pour les barres d'outils.
Par exemple, dans une résolution 1024x768, cette fonction rendra 120.
Dans ce cas, on ne peut pas mettre de barre d'outils à droite, si on utilise les 120 colonnes.
En résolution supérieure, elle pourra rendre jusqu'à 160

fonctions associées :ztoolbar_addtool , ztoolbar_show , ztoolbar_create
début


Fonction Bikini v 2.0.
Fonction DEFINIT UN MESSAGE LIGNE STATUS (dans DCL de la boite de dialogue) :
Prototypes zstatusdcl( msg$=240 ):%
Système Cible Tous systèmes.
Exemple
	zaskdcl		(3,.....
	zstatusdcl	( "Taper le code client. F1 pour obtenir la liste" )
	; Le message d'aide sera associé à la saisie 3
	; autant pour la ligne status que pour les bulles d'aide.
En entrée message
En sortie rien.
Description Afin que les messages ligne status puissent être repris dans le nouveau système de bulles d'aide, il est nécessaire que zlib+ connaissent ces messages avant l'exécution de l'automate.
Or la fonction zstatus est utilisée en traitement avant une saisie, et ne peut donc être prise en compte dans ce système de bulles d'aide.
La fonction zstatusdcl s'emploie dans les déclarations de la boite de dialogue, après une déclaration de saisie, radio, push bouton etc...

fonctions associées :zlabeldcl
début


Fonction Bikini v 2.0.
Fonction DEFINIT UN LABEL (dans DCL de la boite de dialogue) :
Prototypes zlabeldcl( x%,y%,larg%,haut%,coul%,fond%,font%,text$=120 ):%
Système Cible Tous systèmes.
Exemple
	zaskdcl		(3,.....
	zlabeldcl	( 10,20,15,1,0,7,1,"Code client" )
	; Le label sera associé à la saisie 3
En entrée x,y = Coordonnées texte
larg,haut = Dimensions en caractères
coul,fond = Couleur et couleur de fond
font = Numéro de fonte
text = Texte du label
En sortie rien.
Description Les labels étaient complexes à mettre en oeuvre avec zlibrary.

Cette fonction permet de déclarer un label dans les déclarations de la boite de dialogue, après une déclaration de saisie, radio, push bouton etc...
Le label sera mémorisé et affiché ou masqué automatiquement lors de l'exécution, en fonction des zaskhide et zaskshow.
Les labels peuvent faire 2 lignes, dans ce cas ils sont centrés en hauteur à l'intérieur d'un rectangle de 2 lignes.
fonctions associées :zstatusdcl
début


Fonction Bikini v 2.2.
Fonction DEFINIT UNE PROGRESS BAR :
Prototypes zprogress_create(text$=240,max=8,flag%)
Système Cible Windows uniquement.
Exemple
	zprogress_create("Edition extrait de compte",10000,1)
	do
		down...
		if (zprogress_nextone("Interrompre le traitement ?") <> 0) : break
	loop
	zprogress_clear()
En entrée text = Message à afficher dans la progress bar.
max = Nombre de zprogress_nextone prévus
flag = 1 => Boite interruptible. flag = 0 => Boite non interruptible
En sortie rien.
Description Ces fonctions remplacent les fonctions zwaitbox. Elles présentent les avantages suivants :
- Utilisation de vraies fenêtres windows déplaçables en cours de traitement.
- Possibilité de fermer la fenêtre à l'aide de la souris.
- Possibilité d'empiler des progress bars jusqu'à 8 niveaux.

Crée et affiche une boite d'attente.
Si le paramètre flag est à 1, la boite présentera un bouton de fermeture.

fonctions associées :zprogress_nextone zprogress_clear
début


Fonction Bikini v 2.2.
Fonction INCREMENTE UNE PROGRESS BAR :
Prototypes zprogress_nextone(text$=240):%
Système Cible Windows uniquement.
Exemple
	zprogress_create("Edition extrait de compte",10000,1)
	do
		down...
		if (zprogress_nextone("Interrompre le traitement ?") <> 0) : break
	loop
	zprogress_clear()
En entrée text = Message à afficher dans la progress bar.
En sortie 1 si l'utilisateur a frappé ESCAPE ou cliqué sur le bouton de fermeture, sinon 0.
Description Incrémente la progress bar d'un cran.
Si le dernier paramètre de zprogress_create est à 1, c'est à dire que la boite est interruptible,
L'utilisateur a la possibilité de fermer à boite à l'aide de la souris, ou en frappant ESCAPE
Dans ce cas la fonction sort 1 :
Le développeur doit alors typiquement interrompre le traitement associé à zprogress_bar.

Si plusieurs progress bars sont simultanément présentes à l'écran, la fonction incrémente la dernière progress bar créée
Les progress bars sont gérées comme une pile.


fonctions associées :zprogress_create zprogress_clear
début


Fonction Bikini v 2.2.
Fonction FERME UNE PROGRESS BAR :
Prototypes zprogress_clear():%
Système Cible Windows uniquement.
Exemple
	zprogress_create("Edition extrait de compte",10000,1)
	do
		down...
		if (zprogress_nextone("Interrompre le traitement ?") <> 0) : break
	loop
	zprogress_clear()
En entrée Rien.
En sortie Rien.
Description Ferme la boite d'attente préalablement créée avec zprogress_create
Si plusieurs progress bars sont simultanément présentes à l'écran, ferme la dernière progress bar créée

fonctions associées :zprogress_create zprogress_nextone
début


Fonction Bikini v 2.3.
Fonction FUSIONNE UN FICHIER D'IMPRESSION ASCII AVEC UN TABLEAU EXCEL ET IMPRIME LE RESULTAT
Prototype zimp_excelprintex(impr_exceldoc$=512,impr_excelcsv$=512,nbexemplaires%):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_excelprint("exbikv16.xls","exbikv16.csv",2)
En entrée impr_exceldoc: Tableau Excel vide destiné à être alimenté avec les données.
impr_excelcsv: fichier ASCII type CSV contenant les données.
nbexemplaires: Nombre d'exemplaires à imprimer.
En sortie Erreur = 0 = Ok, ou code erreur.
Description La fonction réalise les opérations suivantes :
=> Si Excel n'est pas chargé, la fonction charge Excel.
=> Elle provoque le chargement du tableau "impr_exceldoc".
=> Elle fusionne le fichier Ascii avec le tableau Excel (voir fonction zimp_excelpreview).
=> Elle imprime le tableau Excel résultat sur l'imprimante par défaut. (fonction Ctrl P d'Excel), puis quitte Excel.
La fonction zimp_excelprint est utilisée dans l'exemple EXBIKV16.

fonctions associées : zimp_excelprint , zimp_excelconfig , zimp_getexcelpath , zimp_excelpreview , zimp_excelsave

début


Fonction Bikini v 2.3.
Fonction POSITIONNE L'IMPRIMANTE PAR DEFAUT DE WINDOWS
Prototype zimp_setdefprinter(imprimante$=240):%
Système Cible Windows 32 ou 64 bits
Exemple zimp_setdefprinter("PDFCreator")
En entrée Imprimante: Nom exact de l'imprimante.
En sortie Erreur = 0 = Ok, ou -1 => la fonction a échoué.
Description Permet de changer l'imprimante par défaut de windows.
Si l'imprimante sélectionné n'existe pas, la fonction rend -1.

Fonctions associées : zimp_getprinter, zimp_getprinterex , zimp_impprint , zimp_imppreview


début


Fonction Bikini v 3.2.
Fonction LIT LA VALEUR D'UNE CLE DE LA BASE DE REGISTRES
Prototype zgetregvalue(sect%,path$=1024,cle$=64,ret$=1024):%
Système Cible Windows 32 ou 64 bits
Exemple
if (zgetregvalue(3,"Network\Z","RemotePath",chemin?) = 0) ; Le lecteur réseau Z:\ existe
zmesval("Chemin réseau de Z:\ :"+chemin)
endif


En entrée sect: Numéro de la section dans la base de registres :
1 = HKEY_CLASSES_ROOT
2 = HKEY_CURRENT_CONFIG
3 = HKEY_CURRENT_USER
4 = HKEY_LOCAL_MACHINE
5 = HKEY_USERS

path: Chemin suivant la section, sans la clé à lire.
(chaque élément du path doit être séparé par un "\")
cle: nom de la clé à lire.

En sortie Erreur = 0 = Ok / ret contient la valeur retournée de la clé (1024 caractères maximum)
Erreur = -1 => La clé n'existe pas ou la valeur retournée est supérieure à 1024 caractères.

ret contient la valeur de la clé :

Si la clé est alpha (types REG_SZ, REG_EXPAND_SZ, REG_LINK), la valeur retournée est alpha.
(dans ce cas le caractère zéro binaire retourné par windows en fin de chaine est enlevé)
Si la clé est numérique (types REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_QWORD),
la valeur retournée est le nombre décimal converti en alpha.
(exemple: REG_DWORD 0x00000100 => valeur retournée = "256")
Si la clé est binaire (types REG_BINARY, REG_MULTI_SZ, REG_NONE), la valeur retournée est telle quelle.

Description Permet de lire la valeur d'une clé de la base de registres de windows.

Exemple: Lecture de la valeur "*" dans DBS_REG_32:
; La valeur 3 indique qu'on cherche dans HKEY_CURRENT_USER
if (zgetregvalue(3,"Software\Prologue Software\Configuration\Criteria\DBS_REG_32","*",chemin?) = 0)
zmesval("Valerur associée à * dans le configurateur Abal :"+chemin)
endif

Fonctions associées :


début


Fonction Bikini v 3.2.
Fonction CHANGE DE FONTE DANS LES SAISIES :
Prototype zask_winfont(fonte%):%
Système Cible Windows 32 ou 64 bits
Exemple
zask_winfont(1)			; Définit la fonte Arial
zaskdcl...
zaskdcl...
En entrée fonte: Numéro de fonte parmi :
-1 = fonte non proportionelle Zfont
0 = fonte automatique
1 = fonte proportionelle Arial (en fait fonte sysème de bikini)
2 = fonte proportionnelle Arial Black (en fait fonte des gros boutons de bikini)
En sortie ancienne fonte parmi (-1, 0, 1 ou 2)
Description Change la fonte courante des prochaines saisies déclarées.
La fonction agit sur les ZASKDCL qui la suivent.

Mode automatique (fonte = 0) :
Si saisie texte = Arial.
Si saisie double hauteur = Arial Black sauf si numérique, zfont.
Si saisie numérique (bcd, # ou %) ou date, Zfont, sinon Arial.

Le painter dans la version 3.2 permet d'associer à chaque saisie une fonte.

Fonctions associées : zfont_default


début


Fonction Bikini v 3.2.
Fonction DEPLACE UN MENU :
Prototype zmenu_moveto(x%,y%):%
Système Cible Windows 32 ou 64 bits
Exemple
zmenu_moveto(10,10)
En entrée x,y: Nouvelles coordonnées du menu.
En sortie rien
Description Déplace le menu aux coordonnées indiquées.
Un menu appartenant à une chaine de menus conçu par le mainter trouve sa position automatiquement en fonction des autres menus.
Cette fonction permet de fixer sa position, dans le cas où le placement automatique ne convient pas.


début