pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Des exemples d'utilisation des fonctions du WLangage

Rien de tel qu'un exemple pour comprendre une fonction de WLangage. Dans cette section, vous trouverez des exemples simples.

Des exemples évolués, où la fonction est utilisée en contexte, sont également disponible sur ce site.

Aller à la page des exemples évolués

iApercu (en anglais iPreview)

SI iConfigure() ALORS iAperçu (1, "Liste des fonctions")


Début de la page

iApercu (en anglais iPreview)

//Impression au format HTML
iAperçu ( iHTML , "c:\Mes documents\MonEtat.HTM")
// "c:\Mes documents\MonEtat.HTM" correspond au nom et
// au chemin du fichier HTM qui sera créé avec l'état "MonEtatRécap"
iImprimeEtat(MonEtatRécap)


Début de la page

iApercu (en anglais iPreview)

//Impression au format PDF
NomFichier est une chaîne = ComplèteRep(fRepEnCours()) + ...
                            "f" + Facture + Client + ConnexionOccurrence()+ ".PDF"
iAperçu ( iPDF , NomFichier)
iImprimeEtat(Etat_Facture, Client, Facture)
FichierAffiche(NomFichier, "application/pdf")


Début de la page

iCadre (en anglais iBorder)

iImprime ( iPosX ( 50 ) + CL.NOMCLI )
// Encadre le texte avec un trait de 2 points Pica
// Le fond du cadre est d'un gris à 50%

iCadre
( 0 , 0 , iLargeurPage (), 10 , 2 , 50 )


Début de la page

iCadreArrondi (en anglais iRoundBorder)

// début d'impression : Impression directe
iAperçu( iImprimante )
// impression d'une ellipse
iCadreArrondi (50,50,130,150,10,10,1,100,RVB(0,0,0),...
               iPointillé , iDiagonaleDescendante )
// termine l'impression
iFinImprime()


Début de la page

iConfigure (en anglais iConfigure)

SI iConfigure () ALORS
    // Crée une police de 48 points Pica
    iCréePolice(1, 48, iGras + iItalique , iRoman )
    // Imprime un texte avec cette police
    iImprime(iPolice(1) + "Texte de taille 48")
    // Termine l'impression
    iFinImprime
FIN


Début de la page

iConfigure (en anglais iConfigure)

SI iConfigure ("ImprimanteServeur") ALORS
   // Crée une police de 48 points Pica
   iCréePolice(1, 48, iGras + iItalique , iRoman )
   // Imprime un texte avec cette police
   iImprime(iPolice(1) + "Texte de taille 48")
   // Termine l'impression
   iFinImprime
FIN


Début de la page

iConfigureEtat (en anglais iConfigureReport)

SI iConfigureEtat (MonEtat) = Vrai ALORS
   iImprimeEtat(MonEtat)
SINON  
   Info("Configuration de l'état abandonnée")
FIN
 


Début de la page

iCreePolice (en anglais iCreateFont)

// Crée une police de 48 points Pica
iCréePolice
( 1 , 48 , iGras + iItalique , iRoman )
// Imprime un texte avec cette police

iImprime
( iPolice ( 1 ) + "Texte de taille 48" )


Début de la page

iDernierFichier (en anglais iLastFile)

// Impression en mode PDF
iDestination( iPDF )
// Impression de l'état en mode PDF
iImprimeEtat(Etat1)
// Ouverture du fichier
LanceAppliAssociée( iDernierFichier )


Début de la page

iDestination (en anglais iDestination)

//Impression au format HTML
iDestination ( iHTML , "c:\Mes documents\MonEtat.HTM")
// "c:\Mes documents\MonEtat.HTM" correspond au nom et
// au chemin du fichier HTM qui sera créé avec l'état "MonEtatRécap"
iImprimeEtat(MonEtatRécap)


Début de la page

iDestination (en anglais iDestination)

//Impression au format PDF
NomFichier est une chaîne = ComplèteRep(fRepEnCours()) + ...
                            "f" + Facture + Client + ".PDF"
iDestination ( iPDF , NomFichier)
iImprimeEtat(Etat_Facture, Client, Facture)


Début de la page

iDestination (en anglais iDestination)

// Imprimante PCL à utiliser
iDestination ( iPCL , "\\MonRéseau\MonImprimante")
// Impression au format PCL : iDestination(iPCL, "\Mes documents\MonFichier.PCL")


Début de la page

iEllipse (en anglais iEllipse)

// Impression d' une ellipse
iEllipse (50, 50, 150, 130, 1, 100, RVB(0,0,0), ...
            iPointillé , iCroisée )


Début de la page

iEscape (en anglais iEscape)

sSequenceEscape est une chaîne
i est une entier
iConfigure("Epson LQ-2170 ESC/P 2")
iDestination( iImprimante ,"Retour d'étiquettes")
//3 fois 6 demandes de retour de 7/216ieme de pouce
// pour revenir en arrière de 3 étiquettes
// (pour l'imprimante utilisée)
POUR i=1 A 6*3
   sSequenceEscape+= ESC +"j7"
FIN
//Envoi des commandes Escape en une seule fois
iEscape (sSequenceEscape)
iFinImprime()


Début de la page

iFenetreAbandon (en anglais iWindowCancel)

// Change le titre de la fenêtre et affiche une ligne
iFenêtreAbandon ( Vrai , "Patientez", "Impression de la page#P")
iImprimeEtat(NomEtat)


Début de la page

iFermeEtat (en anglais iCloseReport)

// Fin de l'impression
SI MoiMême..Source.NomClient = "MOULIN" ALORS
   iFermeEtat ()
FIN


Début de la page

iFinEtat (en anglais iEndReport)

// Fin de l'impression si le fichier texte n'est pas trouvé
GLOBAL
   gfsLigne est une chaîne = ""
   // Identifiant du fichier texte
   gfnIdFichier est un entier = 0

LOCAL
   sFichierTexte est une chaîne = fRepEnCours() +"\Etats\Produit.txt"

// Ouvrir le fichier texte
gfnIdFichier = fOuvre(sFichierTexte, foLecture)
SI gfnIdFichier = -1 ALORS
   Erreur(ErreurInfo())
   iFinEtat () // Arrêter l'impression de l'état
FIN


Début de la page

iFinEtat (en anglais iEndReport)

// Fin de l'impression forcée lors de l'impression d'un enregistrement
SI MoiMême..Source.NomClient = "MOULIN" ALORS
   iFinEtat ()
FIN


Début de la page

iFinImprime (en anglais iEndPrinting)

iImprime ( "Liste des clients" )
iSauteLigne

// Traitement

iFinImprime


Début de la page

iForceComplement (en anglais iForceComplement)

iForceComplément ()


Début de la page

iHautBasPageImbrique (en anglais iNestedHeaderFooter)

// Impression de l'état "Etat_Imb2" en conservant son Haut et bas de page
iHautBasPageImbriqué ( Vrai )
IImprimeEtat(Etat_imb2)


Début de la page

iHauteurImage (en anglais iImageHeight)

// Imprime les dimensions de l'image (en mm)
iImprime("Largeur de l'image : " + iLargeurImage("WINDEV.BMP") + "mm")
iImprime("Hauteur de l'image : " +
iHauteurImage ("WINDEV.BMP") + "mm")
iFinImprime


Début de la page

iHauteurPage (en anglais iPageHeight)

// Imprime les dimensions de la feuille (en mm)
iImprime("Largeur de la page : " + iLargeurPage() + "mm")
iImprime("Hauteur de la page : " + iHauteurPage () + "mm")
iFinImprime


Début de la page

iHauteurRestantePage (en anglais iPageHeightLeft)

// Saut de page si le bloc ne rentre pas
SI Bloc..Hauteur < iHauteurRestantePage () ALORS
   iTerminePage()
FIN


Début de la page

iHauteurTexte (en anglais iTextHeight)

x est un entier = iHauteurTexte (iPolice(2)+CL.NOMCLI)
iImprimeMot("La hauteur du nom du client est égale à : ")
iImprime(x)
iFinImprime


Début de la page

iHauteurZone (en anglais iZoneHeight)

//Sélectionne une police de caractères
iPolice(NumPolice)
// Récupère la hauteur de la colonne
dHauteur est un réel = iHauteurZone ("Mon Texte", 100)
// Trace un cadre
iCadre(0, 0, dHauteur*2, 200)


Début de la page

iImpressionAbandonnee (en anglais iDocumentCanceled)

SI iImpressionAbandonnée ALORS
   Info("Vous avez annulé l'impression en cours")
FIN


Début de la page

iImpressionDemandee (en anglais iDocumentPrinted)

iAperçu( iPage )
iImprime("Texte")
iFinImprime()
SI iImpressionDemandée () ALORS
    Info("Vous avez demandé l'impression du document")
FIN


Début de la page

iImprime (en anglais iPrint)

iImprime (iPolice(2) + "Texte en police 2")
iSautePage
// Nom du client sur la première ligne à 50 mm du bord
iImprime(iPosX(50) + Cl.NomCli)
iFinImprime


Début de la page

iImprimeBloc (en anglais iPrintBlock)

// Impression du bloc FIN_DOCUMENT
iImprimeBloc (FIN_DOCUMENT)
// Impression d'un bloc d'itération
iImprimeBloc (ITERATION1)


Début de la page

iImprimeCodeBarre (en anglais iPrintBarCode)

// Impression de code-barres
// Code-barres de type Interleaved 2 of 5
iImprimeCodeBarre ("12345678905", CB_INTER2OF5 , 10, 10, 23, 50)
// Code-barres de type UPCA
iImprimeCodeBarre ("12345678905+22", CB_UPCA , 10, 10, 23, 50)


Début de la page

iImprimeComplementCorps (en anglais iPrintBodyComplement)

// Code avant impression du Haut de document
iImprimeComplémentCorps (iHauteurRestantePage() - MoiMême..Hauteur)


Début de la page

iImprimeEtat (en anglais iPrintReport)

// Impression simple sur imprimante
iImprimeEtat
( MonEtat )


Début de la page

iImprimeEtat (en anglais iPrintReport)

// Impression avec aperçu avant impression
iApercu( i100 )
iImprimeEtat (MonEtat)


Début de la page

iImprimeEtat (en anglais iPrintReport)

// Création d'un nom de fichier unique
Fichier est une chaîne = fRepDonnées()+"\"+DateSys()+...
                         HeureSys()+".pdf"
// Impression de l'état dans un fichier PDF
iDestination( iPDF , Fichier)
// Impression de l'état basé sur la table "TableClient"
iImprimeEtat (EtatClient)
// Affichage de l'état au format PDF
FichierAffiche(Fichier, "application/pdf"")
// Suppression du fichier
fSupprime(Fichier)


Début de la page

iImprimeImage (en anglais iPrintImage)

// Imprime Fleur.BMP ligne 20 mm, colonne 50 mm sans étirement ni réduction
iImprimeImage ("Fleur.BMP", 20, 50)
iFinImprime


Début de la page

iImprimeMot (en anglais iPrintWord)

iImprimeMot (iPolice(1) + "Texte en police 1")
iImprimeMot(iPolice(2) + "Texte en police 2")
iImprime()
iFinImprime


Début de la page

iImprimeZone (en anglais iPrintZone)

iImprimeZone ("Mon Texte", 0, 0, dHauteur, 200, iCentreH + iCentreV )


Début de la page

iImprimeZoneRTF (en anglais iPrintZoneRTF)

iImprimeZoneRTF ( TexteRTF , 0 , 0 , dHauteur , 200 )


Début de la page

iInfoImprimante (en anglais iInfoPrinter)

// Récupération des caractéristiques de l'imprimante en cours
sImprimanteEnCours est une chaîne = iInfoImprimante ()

// Récupération des caractéristiques de l'imprimante par défaut
sImprimanteDéfaut est une chaîne = iInfoImprimante ( Faux )

// Affichage d'une boîte d'information
Info("L'imprimante en cours est : " + sImprimanteEnCours + RC +...
      "L'imprimante par défaut est : " + sImprimanteDéfaut)


Début de la page

iInitRequeteEtat (en anglais iInitReportQuery)

iInitRequêteEtat (BulletinScolaire, "Dupond", "1994")
iImprimeEtat(BulletinScolaire)


Début de la page

iInitRequeteEtatConnexion (en anglais iInitReportQueryConnection)

// Initialisation de la requête
iInitRequêteEtatConnexion (BulletinScolaire, ...
                           hRequêteSansCorrection , "MaConnexion_Oracle", "Dupond", "1994")
// Impression de l'état
iImprimeEtat(BulletinScolaire)


Début de la page

iInitRequeteEtatConnexion (en anglais iInitReportQueryConnection)

// Initialisation de la requête (connexion Oracle)
iInitRequêteEtatConnexion (BulletinScolaire,"MaConnexion_Oracle" , "Dupond","1994")
// Impression de l'état
iImprimeEtat(BulletinScolaire)


Début de la page

iLargeurImage (en anglais iImageWidth)

// Imprime les dimensions de l'image (en mm)
iImprime
( "Largeur de l'image : " + iLargeurImage ( "LOGO.BMP" ) + "mm" )
iImprime
( "Hauteur de l'image : " + iHauteurImage ( "LOGO.BMP" ) + "mm" )
iFinImprime


Début de la page

iLargeurPage (en anglais iPageWidth)

// Imprime les dimensions de la feuille (en mm)
iImprime("Largeur de la page : " + iLargeurPage () + "mm")
iImprime("Hauteur de la page : " + iHauteurPage() + "mm")
iFinImprime


Début de la page

iLargeurTexte (en anglais iTextWidth)

x est un entier = iLargeurTexte (iPolice(5)+CL.NOMCLI)
iImprimeMot("La largeur du nom du client est égale à : ")
iImprime(x)
iFinImprime


Début de la page

iLien (en anglais iLink)

iDestination( iHTMLCSS , "MaPage")
iImprime("Sur la ligne suivante, un lien vers une page")
iLien("Tout savoir sur WinDev", "http://www.pcsoft.fr")
iFinImprime()


Début de la page

iLigne (en anglais iNewLine)

// Trace une ligne rouge en continu
iLigne (50, 10, 50, 200, iContinu , 12, iRougeClair )
// Trace un ligne noire en continu
iLigne (50, 10, 5, 100, iContinu , 12, iNoir )
// Lance l'impression
iFinImprime()


Début de la page

iListeEtatsImbriques (en anglais iListNestedReports)

ListeEtat est une chaîne = iListeEtatsImbriqués ()
SI ExtraitChaîne(ListeEtat,1) = "EtatRequête2" ALORS
   MonChamp = "J'appartiens à l'état EtatRequête2"
FIN


Début de la page

iListeImprimante (en anglais iListPrinter)

sListeImprimante est une chaîne
sListeImprimante
= iListeImprimante ()


Début de la page

iMagentaTransparent (en anglais iTransparentMagenta)

// Imprime Image1.BMP : le magenta est transparent
iMagentaTransparent( Vrai )
iImprimeImage("Image1.BMP")
// Imprime Image2.BMP : le magenta est utilisé normalement
iMagentaTransparent( Faux )
iImprimeImage("Image2.BMP")


Début de la page

iMarge (en anglais iMargin)

iMarge (20, 11, 20, 11)
// Connaître les marges physiques d'une imprimante
iMarge(0, 0, 0, 0)
MargeH = (HauteurPapier - iHauteurPage())/2
MargeL = (LargeurPapieriLargeurPage())/2


Début de la page

iMMVersPica (en anglais iMMToPica)

Largeur est un réel
LargeurPica est un réel
Largeur = iLargeurImage("Fleur.BMP")
LargeurPica = iMMversPica (Largeur)


Début de la page

iNumPage (en anglais iPageNum)

// Imprime le numéro de page
iImprime(iPosX(200)+ iNumPage ())
// Force le numéro de page à 10
iNumPage(10)
...
iFinImprime


Début de la page

iParametre (en anglais iParameter)

// Impression en mode portrait
iParamètre("ORIENTATION = PORTRAIT")
// Modifier la hauteur de la page
iParamètre("HAUTEURPAGE = 2000")
iParamètre("COPIES=2")
iParamètre("ASSEMBLE=OUI")
SI iParamètre () ALORS
   // Crée une police de 48 points Pica
   iCréePolice(1, 48, iGras + iItalique , iRoman )
   // Imprime un texte avec cette police
   iImprime(iPolice(1) + "Texte de taille 48")
   // Termine l'impression
   iFinImprime
   // Les paramètres reprennent leur valeur par défaut
FIN


Début de la page

iParametre (en anglais iParameter)

// Sélection de la destination :
// Impression sur une imprimante infrarouge

iDestination
( iPCL , "IRDA:" )
// Type d'imprimante à utiliser

iParamètre
( "TypeImprimante=Deskjet 350" )
// Impression de l'état

iImprimeEtat
( EtatClient )


Début de la page

iParametre (en anglais iParameter)

// L'utilisateur configure l'imprimante
iParamètre()
// Affichage des paramètres de l'imprimante
Trace( "------------------------------------------------------------------")
Trace( "Orientation = "+iParamètre( iOrientation ))
Trace( "FormatPapier = "+iParamètre( iFormatPapier ))
Trace(" HauteurPage = "+iParamètre( iHauteurPapier ))
Trace( "LargeurPage = "+iParamètre( iLargeurPapier ))
Trace( "NbCopie = "+iParamètre( iNbCopie ))
Trace( "AlimentationPapier = "+iParamètre ( iAlimentationPapier ))
Trace( "ResolutionY = "+iParamètre( iRésolutionY ))
Trace( "Couleur = "+iParamètre( iCouleur ))
Trace( Assemble = "+iParamètre( iAssemblé ))
ParamètresSpécifiques est un Buffer=iParamètre ( iParamètresSpécifiques )
Trace( taille Spécifique = "+Taille ( ParamètresSpécifiques ))
Trace( "Spécifique = "+ParamètresSpécifiques )
Trace( "------------------------------------------------------------------" )


Début de la page

iParametreApercu (en anglais iparameterPreview)

// Aucun bouton dans l'aperçu
iParamètreAperçu ( iBoutonAucun )
iAperçu()
iImprimeEtat(MonEtat)


Début de la page

iParametreApercu (en anglais iparameterPreview)

// Affichage uniquement des boutons imprimantes
iParamètreAperçu ( iBoutonImprimante )
iAperçu()
iImprimeEtat(MonEtat)


Début de la page

iParametreApercu (en anglais iparameterPreview)

// Affichage des boutons Imprimante, PDF et WORD
iParamètreAperçu ( iBoutonImprimante + iBoutonPdf + iBoutonWord )
iAperçu()
iImprimeEtat(MonEtat)


Début de la page

iParametreApercu (en anglais iparameterPreview)

// Suppression des boutons Email de l’aperçu avant impression
iParamètreAperçu ( iBoutonTous  + iBoutonEMail - iBoutonEMailPDF )
iAperçu()
iImprimeEtat(MonEtat)


Début de la page

iParametreEtat (en anglais iParameterReport)

SI iParamètreEtat (MonEtat) = Vrai ALORS
   iImprimeEtat(MonEtat)
SINON 
    Info("Configuration de l'état abandonnée")
FIN


Début de la page

iParametrePDF (en anglais iParameterPDF)

// protection du PDF contre l'impression
// et contre la sélection et le copier/coller
iParametrePDF ( iProtectionImpression + iProtectionSelection )
// création du PDF
iAperçu( iPDF , ":\Temp\MonPDF.PDF")
// code d'impression
iCreePolice(1,16, iGras , iRoman )
ImprimeTitre()
ImprimeTexte()
// fin de l'impression et fermeture du fichier PDF créé
iFinImprime()


Début de la page

iPicaVersMM (en anglais iPicaToMM)

PosX est un entier = iPicaVersMM (50)
PosY est un entier = iPicaVersMM (50, Faux )


Début de la page

iPolice (en anglais iFont)

iImprimeMot ( iPolice ( 2 ) + CL.Nom + iPosX ( 200 ) + CL.Prénom )
iSauteLigne
iImprime
( iPolice ( 1 ) + iPosX ( 100 ) + CL.Société )
iFinImprime


Début de la page

iPoliceDidot (en anglais iDidotFont)

iPoliceDidot ( Vrai )
// Crée une police de 48 points Didot
iCréePolice(1, 48, iGras + iItalique , iRoman )
iPoliceDidot ( Faux )
// Crée une police de 32 points Pica
iCréePolice(2, 32, iGras + iItalique , iRoman )
// Imprime un texte avec cette police
iImprime(iPolice(1) + "Texte de taille 48 points Didot")
// Termine l'impression
iFinImprime


Début de la page

iPosX (en anglais iXPos)

// Traçage de traits verticaux tous les deux millimètres
// sur toute la largeur de la page
iTraitV(0, iHauteurPage(), 1) // Trace un trait
iPosX( iPosX () + 2)   // Décale de 2
iTraitV(0, iHauteurPage(), 3) // Trace un trait
iFinImprime


Début de la page

iPosY (en anglais iYPos)

// Traçage de traits horizontaux tous les deux millimètres
// sur toute la hauteur de la page
iTraitH(0, iLargeurPage(), 1)  // Trace un trait
iPosY( iPosY () + 2)  // Positionne le curseur 2 mm plus bas
iTraitH(0, iLargeurPage(), 3)  // Trace un second trait
iFinImprime


Début de la page

iRAZ (en anglais iRAZ)

// Modifier les paramètres dans WIN.INI
Ini Ecrit("HP LaserJet 4L, LPT1", "Paper", "9")
iRAZ ()
// Création de polices, impressions, etc.


Début de la page

iSauteLigne (en anglais iSkipLine)

// Impression d'un texte
iImprime
("Bonjour")
// Saut de ligne
iSauteLigne
// Impression d'un texte
iImprime("Nous sommes le" + DateSys())
// Lancement de l'impression
iFinImprime


Début de la page

iSautePage (en anglais iSkipPage)

// Impression d'un texte
iImprime
("Bonjour")
// Saut de page
iSautePage
// Impression d'un texte
iImprime("Nous sommes le" + DateSys())
// Lancement de l'impression
iFinImprime


Début de la page

iSelectPolice (en anglais iSelectFont)

NumPol est un entier
NumPol = iSelectPolice (1, Vrai , "Arial", 8, iGras + iSouligné , iRougeClair )
SI NumPol = 0 ALORS
    TraiteErreur()
FIN


Début de la page

iStatusImpressionEtat (en anglais iStatusReportPrinting)

// Fin de l'impression
SELON iStatusImpressionEtat ()
   CAS -2 : Trace("Impression abandonnée")
   CAS 0 : Trace("Impression en cours")
   CAS 1 : Trace("Etat vide : aucune données à imprimer")
FIN


Début de la page

iSubstBloc (en anglais iSubstBlock)

// Substitution du haut de page
iSubstBloc (HautPage, Itération1)
// Fin de la substitution du haut de page
iSubstBloc (HautPage, "")


Début de la page

iTerminePage (en anglais iPageEnd)

// Saut de page
iTerminePage ()


Début de la page

iTrait (en anglais iLine)

// Trace un trait sur toute la largeur de la page
// Épaisseur : 2.5 points Pica
iTrait (10, 10, 30, 25, 2.5)
iFinImprime


Début de la page

iTraitH (en anglais iHLine)

// Trace un trait sur toute la largeur de la page
// Epaisseur : 2.5 points Pica
iTraitH (0, iLargeurPage(), 2.5)
iFinImprime


Début de la page

iTraitV (en anglais iVLine)

// Trace un trait vertical entre la ligne 5 (mm)
// et la ligne 10 (mm), d'épaisseur 2 points Pica
iTraitV (5, 10, 2)
iFinImprime


Début de la page