Exemple n° 1 : programme L4G utilisant le modèle IMPETAT

Objet IMPETAT : EDTFAC "Impression des factures clients"
          
Declaration
          ETAT : ”CR_FACT”
FinDeclaration
FinObjet

 

Dans l'exemple ci-dessus, nous avons écrit un objet EDTFAC qui dérive du modèle IMPETAT et qui ne fera ni plus ni moins que ce que fait la fonction "Test" de l'éditeur. La seule différence étant que cet objet peut-être lancé depuis le menu général ou depuis le bouton d'un écran (et cela sans utiliser l'éditeur d'état).

Exemple n° 2 : programme extrait de l'exemple CRDEMO.L4G du projet CRDEMO.IDE

Objet IMPETAT : EDT_CAV_DCLI "Edition des chiffres d'affaires client"

Declaration
          ETAT : ”CR_DCLI4”
FinDeclaration
Methode LSTCLI_SELECTION           //Evénement déclenché pour chaque fiche lue
          Si CAF=0 Alors
                   Rejeter               //refuse l'impression de la fiche en cours
          FinSi
FinMethode                              

Methode LSTCLI_PAGINATION
          //Evénement déclenché pour chaque fiche correspondant à la sélection
          //pendant la mise en page des listes
          Si CAF - CAR > 10000 Alors
                   Cacher "LSTCLI_CORPS3"
                   RendreVisible "LSTCLI_CORPS2"
          Sinon
                   Cacher "LSTCLI_CORPS2"
                   RendreVisible "LSTCLI_CORPS3"
          FinSi
FinMethode
FinObjet

 

L'exemple ci-dessus montre l'utilisation des événements SELECTION et PAGINATION  associés à une liste de code LSTCLI. L'état contient essentiellement une liste parcourant la table des clients DCLI.

On utilise la méthode SELECTION pour rejeter les clients dont le chiffre d'affaire facturé est nul :

 

Methode LSTCLI_SELECTION           //Evénement déclenché pour chaque fiche lue
          Si CAF=0 Alors
                   Rejeter               //refuse l'impression de la fiche en cours
          FinSi
FinMethode                              

 

La méthode PAGINATION est utilisée pour imprimer une section différente suivant le "reste dû" du client. Dans notre exemple le client sera imprimé en rouge si son "reste dû" est supérieur à 10000.

 

Methode LSTCLI_PAGINATION
          //Evénement déclenché pour chaque fiche correspondant à la      sélection
          //pendant la mose en page des listes
          Si CAF - CAR > 10000 Alors
                   Cacher "LSTCLI_CORPS3"
                    RendreVisible "LSTCLI_CORPS2"
          Sinon
                   Cacher "LSTCLI_CORPS2"
                   RendreVisible "LSTCLI_CORPS3"
          FinSi
FinMethode

 

En fait, l'état contient deux sections de type Corps l'une en rouge, l'autre en bleu et c'est l'objet qui décide celle qui convient en fonction des données du client.

 

 

Exemple n° 3 : impression PDF directe

Objet IMPETAT : IMPR_PDF

       Declaration

             TABLE : …

             ETAT  : …

             PERIPH: D

       FinDeclaration

 

       Methode DEBUT_FICHIER_PDF

             Parametres :

                    Chaine Reference pNomFichier

                    Chaine Reference pRepertoire

                    Chaine Reference pTitre

                    Entier Reference pUI

             pNomFichier = "test.pdf"

             pRepertoire = "D:\TEMP"

             pTitre = "Mon test PDF"

             pUI = 0

       FinMethode

 

       Methode FIN_FICHIER_PDF

             Parametres :

                    Chaine vFichierGenere

                    Entier vOuvrir

             // pour ne jamais ouvrir le fichier PDF (sinon il suffit de ne pas mettre AppliquerDefaut)

             vOuvrir = Faux

             AppliquerDefaut FIN_FICHIER_PDF (vFichierGenere, vOuvrir)                        

       FinMethode

FinObjet