GUIDE - KITODBC - v1770
GUIDE - KITODBC - v1770
GUIDE - KITODBC - v1770
Evolution
La documentation correspond à la version référencée. Entre deux versions, des mises à jour du logiciel peuvent être
opérées sans modification de la documentation. Toutefois, un additif peut être joint à la documentation existante
pour présenter les modifications et améliorations apportées à ces mises à jour.
Les noms de produits ou de sociétés, toute image, logo ou représentation visuelle mentionnés dans ce document
ne son utilisés que dans un but d’identification et peuvent constituer des marques déposées par leurs propriétaires
respectifs.
© 2013 Sage
Table des matières
© 2013 Sage
Chapitre 1 – Généralités
sur le programme
Définition d’ODBC
La norme ODBC (Open Database Connectivity) permet de se connecter à une source d’informations
externe et d’utiliser ses données. Elle est gérée par le Gestionnaire ODBC qui contient les drivers
nécessaires à cette procédure. Ce gestionnaire se place automatiquement dans le Panneau de
configuration de Microsoft Windows lors de l’installation de la plupart des bases de données. Les drivers
des fichiers que vous souhaitez interroger sont, en général, installés automatiquement avec la plupart des
applications.
Principe de fonctionnement
La norme ODBC permet aux applications qui l’utilisent, d’exploiter la pleine puissance du langage de
requête SQL (Structured Query Language). Elle est généralement utilisée pour les connexions aux bases
implantées sur des serveurs. Des drivers ODBC sont disponibles pour Oracle, Microsoft SQL Server, Sybase
SQL Server et de nombreux autres gestionnaires de bases de données sur un grand nombre de plates-
formes.
Le schéma ci-après permet de comprendre le fonctionnement d’ODBC. L’application envoie une requête
SQL. Le Driver Manager intercepte cet appel et le redirige vers le bon driver ODBC. Ce driver analyse
alors la requête SQL puis récupère les données par l’intermédiaire de la source de données. Ces données
sont alors renvoyées à l’application. La source de données est donc le lien entre l’application et le fichier
physique.
© 2013 Sage 3
Chapitre 1 – Généralités
sur le programme
© 2013 Sage 4
Chapitre 1 – Généralités
sur le programme
Bases Bijou
Les fichiers d’exemples sont ceux de la base BIJOU, à savoir C_Bijou.Mae, G_Bijou.Gcm, IM_Bijou.Imo et
T_Bijou.Mdp.
Exemple sur Crystal Report version 9 : COMPTET.RPT
Exemple d’état créé avec Crystal Report : Grand-livre des Tiers.
Fichier texte : T_Descri.txt
Descriptif de toutes les tables, champs ODBC.
Fichier texte : fonction.txt
Déclaration des fonctions évoluées dans Visual Basic (Visual Basic, Access et Excel), Delphi et Visual
FoxPro.
Fichier texte : erreurs.txt
Description de l'ensemble des codes erreurs pour l'écriture dans les bases de données Sage 100 Windows.
Fichier ActiveX.Txt
Description de l’ensemble des objets de l’activeX ASD100.Dll avec leurs propriétés et méthodes.
Sources de données
Définition
Une source de données est le lien entre l’application et le driver ODBC. Elle est composée de 2 éléments :
Un Driver ODBC,
Un ou plusieurs fichiers physiques associés.
Vous trouverez ci-dessous les différents cas suivant le type de base de données Sage 100.
Comptabilité 100
Driver : Sage Comptabilité 100
Fichier physique : fichier comptable (*.MAE)
Gestion Commerciale 100
Driver : Sage Gestion commerciale 100
Fichiers physiques :
- fichier commercial (*.GCM)
- fichier comptable (*.MAE)
Les mots de passe de ces fichiers (mots de passe des applications Comptabilité 100 et Gestion
Commerciale 100) doivent être identiques, sinon la connexion échouera.
Immobilisations 100
Driver : Sage Immobilisations 100
Fichiers physiques :
- fichier immobilisations (*.IMO)
- fichier comptable (*.MAE)
Manager 100
Driver : Sage Manager 100
Fichiers physiques :
- fichier bibliothèque (*.CHP)
- fichier annexe (*.CHL)
© 2013 Sage 5
Chapitre 1 – Généralités
sur le programme
Ce type de sources de données est utile lorsque vous voulez par exemple exécuter une tâche
planifiée pour un programme que vous avez créé. Le compte sous lequel va s’exécuter la tâche est
généralement le compte SYSTEM ou un compte qui n’est pas celui avec lequel vous testez votre
programme.
Si vous utilisez une source de données « Utilisateur » la tâche planifiée provoquera une erreur, mais
fonctionnera correctement si vous utilisez une source de données de type SYSTEM.
Fichier
Les sources de données File DSN fournies sont
ComptaC_Bijou.dsn
GestcomG_Bijou.dsn
MPaiement_Bijou.dsn
Immo_Bijou.dsn
Manager_Expert.dsn
PaieP_Essai.dsn
Ce fichier a le format suivant :
[ODBC]
DSN=Nom_Source_de_données_existante (système ou utilisateur)
La source de données système ou utilisateur doit exister sur votre poste.
© 2013 Sage 6
Chapitre 1 – Généralités
sur le programme
2. Cliquez sur le bouton Ajouter et sélectionnez le pilote du type « Sage Gestion commerciale 100 »
© 2013 Sage 7
Chapitre 1 – Généralités
sur le programme
5. Cliquez alors sur le bouton OK pour terminer la création de cette source de données.
Le premier fichier est obligatoire, le deuxième est facultatif. Cette association vous permet d'ouvrir
directement toutes les tables de gestion commerciale et de comptabilité, ou toutes les tables
d'immobilisations et de comptabilité, de même pour les autres bases.
Pour l'exemple ci-dessus, si vous utilisez Microsoft QUERY, en sélectionnant la source de données
Gestcom_Sage100 vous verrez alors à la fois les tables de gestion commerciale et de comptabilité,
comme ci-dessous.
© 2013 Sage 8
Chapitre 1 – Généralités
sur le programme
Lorsque le paramétrage est effectué, cliquez sur le bouton OK pour enregistrer cette Source de Données.
L’écriture des informations relatives à cette source de données s’effectue dans la Base de Registre de
Windows.
Sur environnement 64 bits, l’administrateur de sources de données ODBC doit être lancé en se
plaçant sous le répertoire Windows\SysWOW64, puis en exécutant le fichier odbcad32.exe.
Manuellement
Il n’est pas possible de créer directement des sources de données de type fichier par l’administrateur
ODBC 32 bits. Vous devez créer ce fichier de toute pièce. Voici ci-dessous un exemple d’un tel fichier :
édition du fichier ComptaC_Bijou.dsn
[ODBC]
DSN=ComptaC_Bijou
Il suffit donc d’indiquer dans la première ligne :
[ODBC]
Sur la deuxième ligne, indiquer :
DSN= et le nom d’une source de données utilisateur ou système existante, ici ComptaC_Bijou.
Enregistrer ensuite ce fichier dans le répertoire Program Files\Fichiers communs\ODBC\Data Sources
avec l’extension .DSN. Ce répertoire par défaut peut être changé grâce à l’administrateur ODBC 32 bits.
© 2013 Sage 9
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
Introduction générale
Vous avez accès dans Sage 100 Kit ODBC à différentes fonctions évoluées. Ces fonctions avancées sont
disponibles pour la comptabilité, la gestion commerciale, la Paie Maestria et la Paie Windows. Ces
fonctions ont été créées afin de faciliter les développements. Les fonctions telles que le calcul du CA Net
Client ou le total TTC d’un document auraient nécessité un développement important et compliqué si vous
aviez du les réaliser vous-même.
Celles-ci sont stockées dans les différentes librairies fournies avec ce kit :
CptaLib.Dll
CialLib.Dll
ImmoLib.Dll
TresLib.Dll
FSalLib.Dll
PMS1Lib.Dll
Il existe deux méthodes pour appeler ces fonctions :
La première consiste à l’appel de fonctions externes (API Sage). Ces fonctions se trouvent dans la
DLL CBODBC32.DLL. Cette méthode est utilisable par tous les logiciels 32 bits capables d’appeler
des fonctions externes.
La seconde consiste à l’utilisation d’une DLL ActiveX (ASD100.DLL). Cette méthode est utilisable
par tous les logiciels 32 bits capables d’utiliser la technologie ActiveX.
© 2013 Sage 10
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
Ces fonctions ne sont utilisables que si une connexion a été effectuée auparavant avec la base
concernée.
De même, il faut impérativement respecter la syntaxe Minuscules/Majuscules de ces fonctions, sinon
cela ne fonctionnera pas.
De même, il faut bien respecter les types de données des paramètres de ces fonctions. Des
exemples d’utilisation sous ACCESS, VISUAL BASIC, VISUAL FOX PRO, DELPHI et WINDEV sont
fournis en Annexe.
Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la base
comptable.
Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée, via ODBC, à la
base comptable et à la base commerciale.
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total du mouvement débit
TotalMvtCredit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total des mouvements crédit connaissant le compte général CG_Num,
le compte tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la date
de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb et Fin peuvent être à vide, par contre il faut que l’un des trois champs suivants ait une
valeur non nulle, à savoir CG_NUM, CT_NUM ou JO_NUM.
© 2013 Sage 11
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total du mouvement crédit
TotalMvtSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le solde des mouvements connaissant le compte général CG_Num, le
compte tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la date de
fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb et Fin peuvent être à vide, par contre il faut que l’un des trois champs suivants ait une
valeur non nulle, à savoir CG_NUM, CT_NUM ou JO_NUM.
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Solde
TotalDevDebit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total des débits en devise connaissant le compte général CG_Num, le
compte tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la date de
fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb et Fin peuvent être à vide, par contre il faut que l’un des trois champs suivants ait une
valeur non nulle, à savoir CG_NUM, CT_NUM ou JO_NUM.
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total des débits en devise
© 2013 Sage 12
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total crédit en devise
TotalDevSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le solde en devise connaissant le compte général CG_Num, le compte
tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb et Fin peuvent être à vide, par contre il faut que l’un des trois champs suivants ait une
valeur non nulle, à savoir CG_NUM, CT_NUM ou JO_NUM.
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Solde en devise
TotalRepDebit (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total des mouvements débit connaissant le compte reporting
CR_Num, le code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit obligatoirement avoir une valeur non
nulle.
En Entrée
CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
© 2013 Sage 13
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total du mouvement débit
TotalRepCredit (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total des mouvements crédit connaissant le compte reporting
CR_Num, le code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit obligatoirement avoir une valeur non
nulle.
En Entrée
CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Résultat (Double) : Total du mouvement crédit
TotalRepSolde (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le solde des mouvements connaissant le compte reporting CR_Num, le
code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit obligatoirement avoir une valeur non
nulle.
En Entrée
CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Solde (Double) : Solde
TotalRepDevDebit (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total des débits en devise connaissant le compte reporting CR_Num,
le code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit obligatoirement avoir une valeur non
nulle.
© 2013 Sage 14
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
RepDevDebit (Double) : Total des débits en devise
TotalRepDevCredit (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le total crédit en devise connaissant le compte reporting CR_Num, le
code journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit obligatoirement avoir une valeur non
nulle.
En Entrée
CR_Num (Chaîne Alphanumérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
DevCredit (Double) : Total crédit en devise
TotalRepDevSolde (CR_Num, JO_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer le solde en devise connaissant le compte reporting CR_Num, le code
journal JO_Num, la période définie par la date de début Deb et la date de fin Fin.
On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquel
cas, le critère de recherche s’étendrait à toutes les valeurs de ces champs.
Les champs Deb, Fin, JO_Num sont facultatifs, mais CR_Num doit avoir une valeur non nulle.
En Entrée
CR_Num (Chaîne Alphanumérique maj. 13 caractères) : Numéro de compte reporting
JO_Num (Chaîne de caractères 6 caractères max) : Code Journal
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
DevSolde (Double) : Solde en devise
RealisationBudg (BD_Num, Deb, Fin, Resultat)
Cette fonction permet de calculer la réalisation budgétaire connaissant le code budget, la date de début
de période et la date de fin de période.
Les champs Deb et Fin peuvent être à vide, alors que BD_Num doit obligatoirement avoir une valeur non
nulle.
© 2013 Sage 15
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
BD_Num (Chaîne Alphanumérique Maj. 13 caractères max) : Numéro budgétaire
Deb (Chaîne de caractères au format ‘jjmmaa’) : Date de début
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Realisation (Reel) : Réalisation budgétaire
JournalNouvPiece (JO_Num, JM_Date, Resultat)
Cette fonction permet de calculer le nouveau numéro de pièce en saisie d’un journal défini par son code
journal JO_Num et sa période JM_Date.
En Entrée
JO_Num (Chaîne Alphanumérique Maj. 7 caractères max) : Code journal
JM_Date (Chaîne de caractères au format ‘jjmmaa’) : Date de début
En Sortie
Err (Entier) : Code erreur retourné par la fonction.
Resultat (Chaîne de caractères) : Numéro de pièce
En Entrée
DL_NO (Entier long): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du HT.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneMontantTTC (DL_No, Resultat)
Calcul du montant TTC pour une ligne de document. Ce champ est présent pour un souci de compatibilité
avec les versions précédentes du driver ODBC. A partir de la version 11, le TTC est stocké à la ligne de
document (champ DL_MontantTTC). Il est préférable d’utiliser le champ DL_MontantTTC pour vos
développements futurs.
En Entrée
DL_NO (Entier long): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du TTC.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneRemiseGlobal (DL_No, Resultat)
Calcul du taux de remise global pour une ligne de document.
© 2013 Sage 16
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
DL_NO (Entier long): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du taux de remise global.
Err (Entier) : Code erreur retourné par la fonction.
CIALLignePrixUNet (DL_No, Resultat)
Calcul du prix unitaire net pour une ligne de document.
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du prix unitaire net.
Err (Entier) : Code erreur retourné par la fonction.
CIALLignePrixUNetTTC (DL_No, Resultat)
Calcul du prix unitaire net TTC pour une ligne de document.
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du prix unitaire net TTC.
Err (Entier) : Code erreur retourné par la fonction.
CIALLignePrixUNetDevise (DL_No, Resultat)
Calcul du prix unitaire net en devise pour une ligne de document.
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Valeur du prix unitaire net en devise.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneMontantTaxes (DL_No, Resultat)
Calcul du montant des taxes pour une ligne de document.
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Montant total des taxes.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneMontantHTSigne (DL_No, Resultat)
Calcul du montant HT signé en fonction du type de document (positif ou négatif).
En Entrée
DL_NO (Entier): Numéro interne de la ligne
© 2013 Sage 17
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double): Montant HT signé.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneMontantTTCSigne (DL_No, Resultat)
Calcul du montant TTC signé en fonction du type de document (positif ou négatif).
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Montant TTC signé.
Err (Entier) : Code erreur retourné par la fonction.
CIALLigneQteSigne (DL_No, Resultat)
Calcul de la quantité, signée en fonction du type de document (positif ou négatif).
En Entrée
DL_NO (Entier): Numéro interne de la ligne
En Sortie
Résultat (Double): Total quantité signé.
Err (Entier) : Code erreur retourné par la fonction.
© 2013 Sage 18
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
© 2013 Sage 19
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
fin si
CIALDocTotalHT (DO_Type, DO_Piece, Resultat)
Calcul du montant total HT pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant HT du document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocEscompte (DO_Type, DO_Piece, Resultat)
Calcul du montant de l’escompte pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Valeur de l’escompte.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalHTNet (DO_Type, DO_Piece, Resultat)
Calcul du montant total HT net pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant HT net du document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocBaseTaxes (DO_Type, DO_Piece, Ntaxe, Resultat)
Cette fonction permet de calculer la base de taxe pour le document défini par son type et son numéro de
pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
NTaxe (Entier): Numéro de taxe
En Sortie
Résultat (Double): Base de taxes.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocMontantTaxes (DO_Type, DO_Piece, Ntaxe, Resultat)
Calcul du montant des taxes pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
© 2013 Sage 20
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double): Montant des taxes.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocMontantTotalTaxes (DO_Type, DO_Piece, Resultat)
Calcul du montant total des taxes pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant total des taxes.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalTTC (DO_Type, DO_Piece, Resultat)
Calcul du montant total TTC pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant TTC du document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalPrixRevient (DO_Type, DO_Piece, Resultat)
Calcul du prix de revient pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant du prix de revient pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalMarge (DO_Type, DO_Piece, Resultat)
Cette fonction permet de calculer la marge pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Marge du document.
Err (Entier) : Code erreur retourné par la fonction.
© 2013 Sage 21
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant du net à payer pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocMontantEcheance (DO_Type, DO_Piece, Resultat)
Calcul du montant échéance pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En sortie
Résultat (Double): Montant échéance pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocPoidsNet (DO_Type, DO_Piece, Resultat)
Calcul du poids net pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Poids net pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocPoidsBrut (DO_Type, DO_Piece, Resultat)
Calcul du poids brut pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Poids brut pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocQuantites (DO_Type, DO_Piece, Resultat)
Calcul du total des quantités pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
© 2013 Sage 22
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double): Total quantités pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocQtesColisee (DO_Type, DO_Piece, Resultat)
Calcul du total des quantités colisées pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Total quantités pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalHTDev (DO_Type, DO_Piece, Resultat)
Calcul du total HT en devise pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Total HT en devise pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocEscompteDev (DO_Type, DO_Piece, Resultat)
Cette fonction permet de calculer l’escompte en devise pour le document défini par son type et son
numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Total de l’escompte en devise pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalHTNetDev (DO_Type, DO_Piece, Resultat)
Calcul du total HT Net en devise pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Total HT Net en devise pour le document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocMontantTaxesDev (DO_Type, DO_Piece, Ntaxe, Resultat)
Calcul du montant des taxes en devise pour le document défini par son type et son numéro de pièce.
© 2013 Sage 23
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
NTaxe (Entier): Numéro de taxe
En Sortie
Résultat (Double): Montant des taxes en devise.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocMontantTotalTaxesDev (DO_Type, DO_Piece, Resultat)
Calcul du montant total des taxes en devise pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant total des taxes en devise.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocTotalTTCDev (DO_Type, DO_Piece, Resultat)
Calcul du montant total TTC en devise pour le document défini par son type et son numéro de pièce.
En Entrée
DO_Type (Entier): Type de document
DO_Piece (Chaîne de caractères): Numéro de pièce du document
En Sortie
Résultat (Double): Montant TTC en devise du document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocNouvPiece (DO_Type, DO_Souche, Resultat)
Fonction retournant le prochain numéro de document disponible, en fonction du numéro de souche du
document.
En Entrée
DO_Type (Entier): Type de document
DO_Souche (Entier) : Numéro de souche du document
En Sortie
Résultat (Chaîne de caractères): Nouveau numéro de document.
Err (Entier) : Code erreur retourné par la fonction.
CIALDocNouvPiece2 (DO_Type, DO_Souche, DO_Provenance Resultat)
Fonction retournant le prochain numéro de document disponible, en fonction du numéro de souche du
document.
En Entrée
DO_Type (Entier): Type de document
DO_Souche (Entier) : Numéro de souche du document
DO_Provenance (Entier) : Provenance du document
© 2013 Sage 24
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Chaîne de caractères): Nouveau numéro de document.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersCAHTBrut (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Brut pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type
de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : CA HT Brut.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersCAHTNet (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Net pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type
de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : CA HT Net.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersCATTC (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA TTC pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type de
document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 25
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : CA HT Brut.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersPrixRevient (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du Prix de revient pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le
type de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Prix de revient.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersQuantites (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités pour le client ou fournisseur CT_NUM, avec une sélection sur la période et
sur le type de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total Quantités pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersQtesColisee (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités colisées pour le client ou fournisseur CT_NUM, avec une sélection sur la
période et sur le type de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur les toutes dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 26
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total Quantités colisées pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersPoidsNet (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du poids net pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type
de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids net pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersPoidsBrut (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du poids brut pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type
de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids brut pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersMarge (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Cette fonction permet de calculer la marge pour le client ou fournisseur CT_NUM, avec une sélection sur
la période et sur le type de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 27
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total de la Marge pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersRemise (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Cette fonction permet de calculer le pourcentage de remise pour le client ou fournisseur CT_NUM, avec
une sélection sur la période et sur le type de document.
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum) : Client ou fournisseur
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Calcul du pourcentage de remise pour le tiers.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersSolde (CT_Num, Resultat)
Cette fonction permet de calculer le solde à la date système (volet solvabilité de la fiche Tiers de la
Gestion Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Solde.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersEchus1 (CT_Num, Resultat)
Cette fonction permet de calculer le solde échu à 1 mois (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Solde échus à 1 mois.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersEchus2 (CT_Num, Resultat)
Cette fonction permet de calculer le solde échu à 2 mois (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Solde échus à 2 mois.
Err (Entier) : Code erreur retourné par la fonction.
© 2013 Sage 28
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Solde échus à 3 mois.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersNonEchus (CT_Num, Resultat)
Cette fonction permet de calculer le solde non échu (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Solde non échus.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersDepassement1 (CT_Num, Resultat)
Cette fonction permet de calculer le dépassement (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Dépassement.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersDepassement2 (CT_Num, Resultat)
Cette fonction permet de calculer le dépassement (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Dépassement.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersBLFA(CT_Num, Resultat)
Cette fonction permet de calculer le portefeuille BL et BA (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Portefeuille BL et BA.
© 2013 Sage 29
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Risque réel.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersBC (CT_Num, Resultat)
Cette fonction permet de calculer le portefeuille BC (volet solvabilité de la fiche Tiers de la Gestion
Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Double): Portefeuille BC.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersFact (CT_Num, Resultat)
Cette fonction permet de calculer la date de la dernière facture (volet solvabilité de la fiche Tiers de la
Gestion Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Date): Date de la dernière facture.
Err (Entier) : Code erreur retourné par la fonction.
CIALTiersRegl (CT_Num, Resultat)
Cette fonction permet de calculer la date de dernier règlement (volet solvabilité de la fiche Tiers de la
Gestion Commerciale).
En Entrée
CT_NUM (Chaîne de caractères : 17 maximum): Client ou fournisseur
En Sortie
Résultat (Date): Date de la dernière facture.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCAHTBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Brut pour l’article défini par sa référence article AR_Ref, avec une sélection sur le tiers,
la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
© 2013 Sage 30
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total du CA HT Brut pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCAHTNet (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Net pour l’article défini par sa référence article AR_Ref, avec une sélection sur le tiers,
la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA HT Net pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCATTC (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA TTC pour l’article défini par sa référence article AR_Ref, avec une sélection sur le tiers, la
période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 31
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total du CA TTC pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtRemise (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du taux de remise moyen pour l’article défini par sa référence article AR_Ref, avec une sélection
sur le tiers, la période et sur le type de document.
En Entrée
AR_Ref (Ch aîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du taux de remise moyen pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPrixRevient (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total prix de revient pour l’article défini par sa référence article AR_Ref, avec une sélection sur
le tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du Prix de revient pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtMarge (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Cette fonction permet de calculer la Marge pour l’article défini par sa référence article AR_Ref, avec une
sélection sur le tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
© 2013 Sage 32
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Marge pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtQuantites (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités pour l’article défini par sa référence article AR_Ref, avec une sélection sur
le tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total quantités pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtQtesColisee (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités colisées pour l’article défini par sa référence article AR_Ref, avec une
sélection sur le tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
© 2013 Sage 33
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total quantité colisée pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPoidsNet (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total poids net pour l’article défini par sa référence article AR_Ref, avec une sélection sur le
tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids net pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPoidsBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total poids brut pour l’article défini par sa référence article AR_Ref, avec une sélection sur le
tiers, la période et sur le type de document.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids brut pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtMarge (AR_REF, CT_NumA, CT_NumDe, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul de la marge pour l’article défini par sa référence article AR_Ref, avec une sélection sur le tiers, la
période et sur le type de document.
© 2013 Sage 34
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Marge pour l’article.
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCompteA (AR_Ref, Domaine, CatCompta, Resultat)
Calcul de la section analytique, pour un article, une catégorie comptable et un domaine (Vente, Achat,
Stock).
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
Domaine (Entier) : 0=Vente, 1=Achat, 2=Stock
CatCompta (Entier) : Catégorie comptable
En Sortie
Résultat (Chaîne de caractères) : Section analytique
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCompteG (AR_Ref, Domaine, CatCompta, Resultat)
Calcul du compte général, pour un article, une catégorie comptable et un domaine (Vente, Achat, Stock).
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
Domaine (Entier) : 0=Vente, 1=Achat, 2=Stock
CatCompta (Entier) : Catégorie comptable
En Sortie
Résultat (Chaîne de caractères) : Compte général
Err (Entier) : Code erreur retourné par la fonction.
CIALArtTaxe1 (AR_Ref, Domaine, CatCompta, Resultat)
Calcul du compte de taxe 1, pour un article, une catégorie comptable et un domaine (Vente, Achat,
Stock).
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
Domaine (Entier) : 0=Vente, 1=Achat, 2=Stock
CatCompta (Entier) : Catégorie comptable
© 2013 Sage 35
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Chaîne de caractères) : Compte de taxe 1
Err (Entier) : Code erreur retourné par la fonction.
CIALArtTaxe2 (AR_Ref, Domaine, CatCompta, Resultat)
Calcul du compte de taxe 2, pour un article, une catégorie comptable et un domaine (Vente, Achat,
Stock).
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
Domaine (Entier) : 0=Vente, 1=Achat, 2=Stock
CatCompta (Entier) : Catégorie comptable
En Sortie
Résultat (Chaîne de caractères) : Compte de taxe 2
Err (Entier) : Code erreur retourné par la fonction.
CIALArtTaxe3 (AR_Ref, Domaine, CatCompta, Resultat)
Calcul du compte de taxe 3, pour un article, une catégorie comptable et un domaine (Vente, Achat,
Stock).
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
Domaine (Entier) : 0=Vente, 1=Achat, 2=Stock
CatCompta (Entier) : Catégorie comptable
En Sortie
Résultat (Chaîne de caractères) : Compte de taxe 3
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPrixCat (AR_Ref, CatTarif, AG_No1, Ag_No2, Resultat)
Calcul du prix de vente pour l’article, la catégorie tarifaire, la gamme 1 et la gamme 2 respectivement
définis par AR_REF, CatTarif, AG_NO1 et AG_NO2.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CatTarif (Entier) : Catégorie tarifaire (1 à 32)
AG_No1 : Numéro interne de l’énuméré de gamme 1 ; si l’article n’a pas de gamme, mettre la valeur à 0
AG_No2 : Numéro interne de l’énuméré de gamme 2 ; si l’article n’est pas à double gamme, mettre la
valeur à 0
En Sortie
Résultat (Double) : Prix de vente
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCoefCat (AR_Ref, CatTarif, Resultat)
Calcul du coefficient pour l’article, la catégorie tarifaire respectivement définis par AR_REF et CatTarif,.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CatTarif (Entier) : Catégorie tarifaire (1 à 32)
© 2013 Sage 36
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Coefficient
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPrixClient (AR_Ref, CT_Num, CatTarif, AG_No1, AG_No2, Resultat)
Calcul du prix de vente pour l’article, le tiers, la catégorie tarifaire, la gamme 1 et la gamme 2
respectivement définis par AR_REF, CT_NUM, CatTarif, AG_NO1 et AG_NO2. Si le tiers n’existe pas, le prix
est calculé par rapport à la catégorie tarifaire CatTarif
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NUM (Chaîne de caractères : 17 maximum) : Client
CatTarif (Entier) : Catégorie tarifaire (1 à 32)
AG_No1 : Numéro interne de l’énuméré de gamme 1 ; si l’article n’a pas de gamme, mettre la valeur à 0
AG_No2 : Numéro interne de l’énuméré de gamme 2 ; si l’article n’est pas à double gamme, mettre la
valeur à 0
En Sortie
Résultat (Double) : Prix de vente
Err (Entier) : Code erreur retourné par la fonction.
CIALArtCoefClient (AR_Ref, CT_Num, CatTarif, Resultat)
Calcul du coefficient pour l’article, le tiers, la catégorie tarifaire respectivement définis par AR_REF,
CT_NUM et CatTarif.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum) : Référence article
CT_NUM (Chaîne de caractères : 17 maximum) : Client
CatTarif (Entier) : Catégorie tarifaire (1 à 32)
En Sortie
Résultat (Double) : Coefficient
Err (Entier) : Code erreur retourné par la fonction.
CIALArtPrixFourniss (AR_Ref, CT_Num, AG_NO1, AG_NO2, Resultat)
Calcul du prix d’achat pour le fournisseur CT_Num de l’article AR_Ref.
En Entrée
AR_Ref (Chaîne de caractères : 18 maximum): Référence article
CT_NUM (Chaîne de caractères : 17 maximum): Client
AG_No1 : Numéro interne de l’énuméré de gamme 1 ; si l’article n’a pas de gamme, mettre la valeur à 0
AG_No2 : Numéro interne de l’énuméré de gamme 2 ; si l’article n’est pas à double gamme, mettre la
valeur à 0
En Sortie
Résultat (Double): Coefficient
CIALFamCAHTBrut (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du CA HT Brut pour la famille d’articles définie par son code famille, avec une sélection sur le
tiers, la période et sur le type de document.
© 2013 Sage 37
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA HT Brut pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamCAHTNet (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du CA HT Net pour la famille d’articles définie par son code famille, avec une sélection sur le tiers,
la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA HT Net pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamCATTC (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du CA TTC pour la famille d’articles définie par son code famille, avec une sélection sur le tiers, la
période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
© 2013 Sage 38
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA TTC pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamRemise (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du taux de remise moyen pour la famille d’articles définie par son code famille, avec une sélection
sur le tiers, la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du taux de remise moyen pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamPrixRevient (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du total prix de revient pour la famille d’articles définie par son code famille, avec une sélection
sur le tiers, la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 39
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total du Prix de revient pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamMarge (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Cette fonction permet de calculer la Marge pour la famille d’articles définie par son code famille, avec
une sélection sur le tiers, la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Marge pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamQuantites (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du total des quantités pour la famille d’articles définie par son code famille, avec une sélection sur
le tiers, la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total quantités pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamQtesColisee (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe,
TypeDocA, Resultat)
Calcul du total quantité colisée pour la famille d’articles définie par son code famille, avec une sélection
sur le tiers, la période et sur le type de document.
© 2013 Sage 40
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
Fa_CodeFamille (Chaîne de caractères : 18 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu’à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total quantité colisée pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamPoidsNet (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du total poids net pour la famille définie par son code famille, avec une sélection sur le tiers, la
période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids net pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALFamPoidsBrut (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,
Resultat)
Calcul du total poids brut pour la famille d’articles définie par son code famille, avec une sélection sur le
tiers, la période et sur le type de document.
En Entrée
Fa_CodeFamille (Chaîne de caractères : 10 maximum) : Code Famille
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
© 2013 Sage 41
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids brut pour la famille d’articles.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepCAHTBrut (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Brut pour le représentant défini par son numéro RE_No, avec une sélection sur le tiers,
l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA HT Brut pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepCAHTNet (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA HT Net pour le représentant défini par son numéro RE_No, avec une sélection sur le tiers,
l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
© 2013 Sage 42
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA HT Net pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepCATTC (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du CA TTC pour le représentant défini par son numéro RE_No, avec une sélection sur le tiers,
l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du CA TTC pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
© 2013 Sage 43
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du taux de remise moyen pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepPrixRevient (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total prix de revient pour le représentant défini par son numéro RE_No, avec une sélection sur le
tiers, l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
© 2013 Sage 44
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total du Prix de revient pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepMarge (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Cette fonction permet de calculer la Marge pour le représentant défini par son numéro RE_No, avec une
sélection sur le tiers, l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Marge pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepQuantites (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités pour le représentant défini par son numéro RE_No, avec une sélection sur le
tiers, l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
© 2013 Sage 45
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu'à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total quantités pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepQtesColisee (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total des quantités colisées pour le représentant défini par son numéro RE_No, avec une
sélection sur le tiers, l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu’à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total quantité colisée pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepPoidsNet (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total poids net pour le représentant défini par son numéro RE_No, avec une sélection sur le
tiers, l’article, la famille, la période et sur le type de document.
© 2013 Sage 46
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu’à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat (Double) : Total poids net pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALRepPoidsBrut (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe,
FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Resultat)
Calcul du total poids brut pour le représentant défini par son numéro RE_No, avec une sélection sur le
tiers, l’article, la famille, la période et sur le type de document.
En Entrée
RE_No (Entier long) : Numéro représentant
CT_NumDe (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers jusqu'au Tiers (CT_NumA)
CT_NumA (Chaîne de caractères : 17 maximum) : Client ou fournisseur (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)
AR_RefDe (Chaîne de caractères : 18 maximum) : Référence article (Borne inférieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles jusqu'à l’article (AR_RefA)
AR_RefA (Chaîne de caractères : 18 maximum) : Référence article (Borne supérieure) ; si la chaîne est
vide alors la sélection porte sur tous les articles à partir de l’article (AR_RefDe)
Fa_CodeFamilleDe (Chaîne de caractères : 10 maximum) : Code Famille (Borne inférieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)
Fa_CodeFamilleA (Chaîne de caractères : 10 maximum) : Code Famille (Borne supérieure) ; si la chaîne
est vide alors la sélection porte sur toutes les familles à partir de la famille (Fa_CodeFamilleDe)
Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors la
sélection porte sur toutes les dates jusqu’à la date de fin.
Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélection
porte sur toutes les dates à partir de la date de début.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
© 2013 Sage 47
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Total poids brut pour le représentant.
Err (Entier) : Code erreur retourné par la fonction.
CIALStockVal (DE_No, AR_Ref, AG_No1, AG_No2, Date, Resultat)
Calcul de la valeur en stock à la date DATE.
En Entrée
DE_No (Entier Long): Numéro interne du dépôt
AR_Ref (Chaîne de caractères : 18 maximum): Référence article
AG_No1 : Numéro interne de l’énuméré de gamme 1 ; si l’article n’a pas de gamme, mettre la valeur à 0
AG_No2 : Numéro interne de l’énuméré de gamme 2 ; si l’article n’est pas à double gamme, mettre la
valeur à 0
Date (Date): Calcul de la valeur en stock jusqu'à cette date.
En Sortie
Résultat (Double) : Valeur en stock
Err (Entier) : Code erreur retourné par la fonction.
CIALStockQte (DE_No, AR_Ref, AG_No1, AG_No2, Date, Resultat)
Calcul de la quantité en stock à la date DATE.
En Entrée
DE_No (Entier Long): Numéro interne du dépôt
AR_Ref (Chaîne de caractères : 18 maximum): Référence article
AG_No1 : Numéro interne de l’énuméré de gamme 1 ; si l’article n’a pas de gamme, mettre la valeur à 0
AG_No2 : Numéro interne de l’énuméré de gamme 2 ; si l’article n’est pas à double gamme, mettre la
valeur à 0
Date (Date): Calcul de la quantité en stock jusqu'à cette date.
En Sortie
Résultat (Double) : Quantité en stock
Err (Entier) : Code erreur retourné par la fonction.
GetParamValeurStr (TypeBase, NomTable, NomChamp, Resultat)
Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurStr
retourne la valeur en chaîne de caractères, du champ NomChamp, de la page paramètre NomTable, de la
base de type TypeBase.
Si la table NomTable est une table de type fichier (table commençant par F_), alors GetParamValeurStr
retourne la valeur en chaîne de caractères, du champ NomChamp, de la table NomTable, de la base de
type TypeBase, pour le dernier enregistrement écrit par ODBC (ajout ou modification).
C’est utile si on veut connaître les valeurs des champs de l’enregistrement que l’on vient de créer,
principalement des champs calculés ou mis à jour par le driver.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
© 2013 Sage 48
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Chaîne de caractères) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
GetParamValeurDbl (TypeBase, NomTable, NomChamp, Resultat)
Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurDbl
retourne la valeur de type double, du champ NomChamp, de la page paramètre NomTable, de la base de
type TypeBase.
Si la table NomTable est une table de type fichier (table commençant par F_), alors GetParamValeurDbl
retourne la valeur en double, du champ NomChamp, de la table NomTable, de la base de type TypeBase,
pour le dernier enregistrement écrit par ODBC (ajout ou modification).
C’est utile si on veut connaître les valeurs des champs de l’enregistrement que l’on vient de créer,
principalement des champs calculés ou mis à jour par le driver.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
En Sortie
Résultat (Double) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
GetParamValeurEnt (TypeBase, NomTable, NomChamp, Resultat)
Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurEnt
retourne la valeur en entier long, du champ NomChamp, de la page paramètre NomTable, de la base de
type TypeBase.
Si la table NomTable est une table de type fichier (table commençant par F_), alors GetParamValeurEnt
retourne la valeur en Entier long, du champ NomChamp, de la table NomTable, de la base de type
TypeBase, pour le dernier enregistrement écrit par ODBC (ajout ou modification).
C’est utile si on veut connaître les valeurs des champs de l’enregistrement que l’on vient de créer,
principalement des champs calculés ou mis à jour par le driver.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
En Sortie
Résultat (Entier) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
GetParamValeurDate (TypeBase, NomTable, NomChamp, Resultat)
Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurDate
retourne la valeur en chaîne de caractères au format ‘jjmmaa’, du champ NomChamp, de la page
paramètre NomTable, de la base de type TypeBase.
Si la table NomTable est une table de type fichier (table commençant par F_), alors GetParamValeurDate
retourne la valeur en chaîne de caractères au format ‘jjmmaa’, du champ NomChamp, de la table
NomTable, de la base de type TypeBase, pour le dernier enregistrement écrit par ODBC (ajout ou
modification).
© 2013 Sage 49
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
C’est utile si on veut connaître les valeurs des champs de l’enregistrement que l’on vient de créer,
principalement des champs calculés ou mis à jour par le driver.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
En Sortie
Résultat (Chaîne de caractères : format ‘jjmmaa’) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
GetParamReplication (TypeBase, Resultat)
Retourne le numéro de réplication de la base définie par TypeBase.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
En Sortie
Résultat (Entier) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
GetParamType (TypeBase, Fichier, Field, Resultat)
Retourne le type du champ « Field » de la table « Fichier » :
Type calcul : valeur = 2
Type Extra : valeur = 3
Type Information libre : valeur = 4
Type Standard : valeur = 0
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
Fichier (Chaîne de caractères) : Nom de la table
Field (Chaîne de carctères) : Nom du champ
En Sortie
Résultat (Entier) : Valeur du champ
Err (Entier) : Code erreur retourné par la fonction.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
© 2013 Sage 50
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
FSALCumulbase (SA_Num, RB_Num, Debut, Fin, Resultat)
Calcul du Cumul pour le salarié SAL_Num, de la valeur affectée à la colonne Montant base de la rubrique
RB_Num, pour la période comprise entre date de début et date de fin.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Chaîne de caractères) : Date de début ; Si Début=’’ alors Début=P_SDOSSIER.SD_DebutExo (Date
de début de l’exercice courant)
Fin (Chaîne de caractères) : Date de Fin ; Si Fin=’’ alors Fin=P_SDOSSIER.SD_FinExo (Date de Fin de
l’exercice courant)
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
FSALCumulCotPat (SA_Num, RB_Num, Debut, Fin, Resultat)
Calcul du Cumul pour le salarié SAL_Num, de la valeur affectée à la colonne Cotisation Patronale de la
rubrique RB_Num, pour la période comprise entre date de début et date de fin.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Chaîne de caractères) : Date de début ; Si Début=’’ alors Début=P_SDOSSIER.SD_DebutExo (Date
de début de l’exercice courant)
Fin (Chaîne de caractères) : Date de Fin ; Si Fin=’’ alors Fin=P_SDOSSIER.SD_FinExo (Date de Fin de
l’exercice courant)
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
FSALCumulRes (SA_Num, RB_Num, Debut, Fin, Resultat)
Calcul du Cumul pour le salarié SAL_Num, de la valeur affectée à la colonne Gain ou Retenue de la
rubrique RB_Num si la Qualité de cette rubrique est Gain dans le premier cas ou Déduction ou Cotisation
dans le second, pour la période comprise entre date de début et date de fin.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Chaîne de caractères) : Date de début ; Si Début=’’ alors Début=P_SDOSSIER.SD_DebutExo (Date
de début de l’exercice courant)
Fin (Chaîne de caractères) : Date de Fin ; Si Fin=’’ alors Fin=P_SDOSSIER.SD_FinExo (Date de Fin de
l’exercice courant)
© 2013 Sage 51
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
FSALCumulTaux (SA_Num, RB_Num, Debut, Fin, Resultat)
Calcul du Cumul pour le salarié SAL_Num, de la valeur affectée à la colonne Nombre Taux de la rubrique
RB_Num, pour la période comprise entre date de début et date de fin.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Chaîne de caractères) : Date de début ; Si Début=’’ alors Début=P_SDOSSIER.SD_DebutExo (Date
de début de l’exercice courant)
Fin (Chaîne de caractères) : Date de Fin ; Si Fin=’’ alors Fin=P_SDOSSIER.SD_FinExo (Date de Fin de
l’exercice courant)
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
FSALCumulTauxPat (SA_Num, RB_Num, Debut, Fin, Resultat)
Calcul du Cumul pour le salarié SAL_Num, de la valeur affectée à la colonne Taux Patronal de la rubrique
RB_Num, pour la période comprise entre date de début et date de fin.
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Chaîne de caractères) : Date de début ; Si Début=’’ alors Début=P_SDOSSIER.SD_DebutExo (Date
de début de l’exercice courant)
Fin (Chaîne de caractères) : Date de Fin ; Si Fin=’’ alors Fin=P_SDOSSIER.SD_FinExo (Date de Fin de
l’exercice courant)
En Sortie
Résultat (Double) : Valeur du Cumul.
Err (Entier) : Code erreur retourné par la fonction.
Introduction
Un composant ActiveX est une unité de code exécutable qui suit la spécification ActiveX dans le but de
fournir des objets. Ces objets sont utilisables par tous les logiciels de développement capables d’utiliser
cette technologie (Visual Basic, Delphi etc...).
L’intérêt d’utiliser une DLL activeX pour les fonctions évoluées est multiple :
Manipulation d’un objet avec des propriétés
Plus besoin de déclarer l’ensemble des fonctions évoluées
Facilité d’utilisation
Possibilité d’utilisation dans Microsoft Visual Interdev pour développer des applications Intranet ou
Internet
© 2013 Sage 52
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte général.
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max.) : Numéro de compte tiers.
JO_Num (Chaîne de caractères 6 caractères max.) : Code Journal.
Deb (Date) : Date de début.
Fin (Date) : Date de fin.
En Sortie
Résultat de la propriété (Double) : Total du mouvement débit.
© 2013 Sage 53
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
DL_NO (Entier long) : Numéro interne de la ligne
En Sortie
Résultat de la propriété (Double) : Valeur du HT.
TiersCAHTBrut (CT_Num, Debut, Fin, TypeDocDe, TypeDocA)
Calcul du CA HT Brut pour le client ou fournisseur CT_NUM, avec une sélection sur la période et sur le type
de document.
En Entrée
CT_NUM (Chaîne de caractères: 17 maximum) : Client ou fournisseur
Debut (Date) : Date de début.
Fin (Date) : Date de fin.
TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE
TypeDocA (Entier) : Type de document (borne supérieure) ; valeur dans DO_TYPE
En Sortie
Résultat de la propriété (Double) : CA HT Brut.
Les champs Debut et Fin sont bien des champs de type DATE contrairement aux fonctions évoluées
où le type était une chaîne de cractères au format « jjmmaa ». Ce sera le cas pour tous les champs
de type DATE.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre), IMO (Base Immobilisation)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
En Sortie
Résultat de la propriété (Chaîne de caractères) : Valeur du champ
© 2013 Sage 54
Chapitre 2 – Fonctions
avancées et DLL Active X : déclaration des fonctions
En Entrée
SA_Num (Chaîne Alpha Maj 5 car max) : Numéro du salarié
RB_Num (Chaîne Alphanum en Maj 5 car max) : Numéro de la rubrique
Debut (Date) : Date de début.
Fin (Chaîne de caractères) : Date de Fin ; Fin=P_SDOSSIER.SD_FinExo (Date de Fin de l’exercice courant)
En Sortie
Résultat de la propriété (Double) : Valeur du Cumul.
© 2013 Sage 55
Chapitre 3 – Description
des exemples fournis avec le Kit ODBC
Introduction
La base ACC2000EX.MDB a été développée sous Microsoft Access. Elle permet d’une part, de comprendre
la structure des bases de données Sage 100, et d’autre part, de voir ce qu’on peut réellement faire avec
Sage 100 Kit ODBC (Lecture, écriture, fonctions avancées).
© 2013 Sage 56
Chapitre 3 – Description
des exemples fournis avec le Kit ODBC
© 2013 Sage 57
Chapitre 3 – Description
des exemples fournis avec le Kit ODBC
Vous allez utiliser cette base pour votre utilisation personnelle. Il est fortement conseillé d’en faire
une copie et de renommer cette nouvelle base sous le nom de votre choix (*.MDB) et utiliser alors
cette base personnalisée.
Vous pourrez alors reprendre ODBCNEW2000.MDB lorsque vous recréerez une nouvelle base sur des
données Sage. La procédure sera identique à ce qui est décrit ci-dessus.
Lorsque vous créez des requêtes et que vous sélectionnez deux tables avec des relations (jointures)
entre elles, celles-ci s’affichent alors à l’écran.
Néanmoins, certaines jointures possèdent des critères supplémentaires pour être valides. Par exemple
F_COMPTEG et F_ECRITUREC, respectivement table des comptes généraux et table des écritures
comptables, ont la jointure suivante.
© 2013 Sage 58
Chapitre 3 – Description
des exemples fournis avec le Kit ODBC
Le formulaire Tables_champs est utilisé quant à lui par le formulaire précédent. Ne l’activez donc pas
avant celui-ci sous risque d’erreur.
© 2013 Sage 59
Annexe 1 – Rappel sur
le langage SQL
Remarques générales
Utilisez les cotes ‘’ pour spécifier une chaîne de caractères (pas les guillemets "").
Une date, au format SQL, se présente sous la forme d’une chaîne de caractères formatée par des {
}, du type ‘{d AAAA-MM-JJ}’, ou AAAA représente l’année, MM le mois, et JJ le jour.
Le SQL fait la différence entre les majuscules et les minuscules sur les chaînes de caractères.
Rechercher le client Boby ne revient pas au même que rechercher le client BOBY.
Les commandes SQL peuvent être tapées indifféremment en minuscules ou en majuscules.
Modification d’enregistrements
Utilisation de la clause UPDATE
UPDATE F_CompteG
SET CG_Classement = ‘CLASS_01’, CG_Saut = 2
WHERE N_Nature = 1
AND CG_Type = 0
Cette requête va modifier le classement et le saut de ligne de tous les comptes de tiers client qui sont du
type détail. Si vous ne désirez modifier qu’un seul enregistrement, il faudra utiliser les champs qui
permettent de rendre cet enregistrement unique, dans la clause WHERE.
Suppression d’Enregistrements
Utilisation de la clause DELETE FROM.
DELETE FROM F_CompteT
WHERE CG_Num = ‘411TOTO’
AND CG_Type = 0
Tout comme la modification d’enregistrement, il est possible d’effectuer une suppression en ‘cascade’,
mais attention à ne pas supprimer d’autres enregistrements...
© 2013 Sage 60
Annexe 1 – Rappel sur
le langage SQL
Exemples de requêtes
Le driver ODBC permet l’utilisation de fonctions opérant sur les chaînes de caractères telles que LCASE ou
UCASE, LEFT... afin de pouvoir récupérer ou identifier plus facilement des enregistrements.
Voici quelques requêtes de sélection utilisant la grammaire et les fonctions SQL évoluées gérées par Sage
100 Kit ODBC.
Exemple 1
Lister tous les articles qui n’ont pas été vendus et qui ne font pas partis d’une nomenclature d’un
produit.
Select F_Article.AR_Ref, Ucase (F_Article.AR_Design)
From F_Article
Where F_Article.AR_Ref NOT IN
(Select F_DocLigne.AR_Ref
From F_DocLigne
Where (F_DocLigne.DO_Type Between 0 And 7))
And F_Article.AR_Ref NOT IN
(Select F_NomenClat.NO_RefDet
From F_Nomenclat)
Order By F_Article.AR_Ref
Exemple 2
Somme des débits/crédits de tous les comptes fournisseurs pour l’année 1995.
Select F_CompteT.CT_Intitule, Sum ( (EC_Montant * (1-EC_Sens))) AS SommeDebit,
Sum ( (EC_Montant * EC_Sens)) AS SommeCredit
From F_CompteT, F_EcritureC
Group by F_CompteT.CT_Num, F_EcritureC.CT_Num, F_CompteT.CT_Intitule,
Year (F_EcritureC.JM_Date), Left (F_EcritureC.CG_Num,3)
Having ( (F_CompteT.CT_Num = F_EcritureC.CT_Num)
And (Year (F_Ecriturec.JM_Date) = 1995)
And (Left (F_EcritureC.CG_Num,3) = '411'))
Order By LCase (F_CompteT.CT_Intitule)
Exemple 3
Sélection de tous les comptes de Tiers qui ont été associés, au moins une fois, à une écriture comptable
dont le numéro de compte général commence par 411, au cours du 1er trimestre 96.
Select Distinct F_CompteT.CT_Num, F_CompteT.CT_Intitule
from F_CompteT, F_EcritureC
Where F_CompteT.CT_Num = F_EcritureC.CT_Num
And (F_EcritureC.JM_Date Between ‘{d 1996-01-01}’ and ‘{d 1996-03-01}’)
And F_EcritureC.CG_Num Like '411%'
© 2013 Sage 61
Annexe 2 – Fonctions
SQL supportées par Sage 100 Kit ODBC
© 2013 Sage 62
Annexe 2 – Fonctions
SQL supportées par Sage 100 Kit ODBC
Cette fonction retourne les NB caractères les plus à droite de la chaîne CHAINE. Le résultat est une
chaîne.
Exemple
Exemple d’utilisation avec Microsoft QUERY (Les 3 caractères les plus à droite de l’intitulé du compte
général)
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, RIGHT (CG_INTITULE, 3)
‘3CARDROITE’
FROM F_COMPTEG F_COMPTEG
UCASE (CHAINE)
Cette fonction met en majuscule tous les caractères de la chaîne CHAINE.
Exemple
Exemple d’utilisation avec QUERY (Intitulé du compte général en majuscule).
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, UCASE (CG_INTITULE) ‘MAJUSCULE’
FROM F_COMPTEG F_COMPTEG
LCASE (CHAINE)
Cette fonction met en minuscule tous les caractères de la chaîne CHAINE.
Exemple
Exemple d’utilisation avec QUERY (Compte général en minuscule).
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, LCASE (CG_INTITULE) ‘MINUSCULE’
FROM F_COMPTEG F_COMPTEG
LOCATE (CHAINE1, CHAINE2, [START])
Cette fonction recherche la première occurrence de la chaine CHAINE1 à l’intérieur de la chaîne CHAINE2.
Si l’option START est omise la recherche est effectuée à partir du premier caractère de la chaîne
CHAINE2, sinon la recherche commence à partir du START ième caractère de CHAINE2.
Si le test échoue la fonction retourne 0.
Exemple
Exemple d’utilisation avec QUERY (Recherche du premier 0 dans le Compte général).
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, LOCATE (‘0’, CG_NUM) ‘0INCG_NUM’
FROM F_COMPTEG F_COMPTEG
RTRIM (CHAINE)
Cette fonction renvoie la chaîne CHAINE sans les blancs de début de chaîne.
Exemple
Exemple d’utilisation avec QUERY.
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, RTRIM (‘TESTRTRIM ‘)
‘TESTRTRIM ‘
FROM F_COMPTEG F_COMPTEG
LEFT (CHAINE, NB)
Cette fonction renvoie les NB caractères les plus à gauche de la chaîne CHAINE.
Exemple
Exemple d’utilisation avec QUERY (les 3 caractères les plus à gauche de l’intitulé du compte général).
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, LEFT (CG_INTITULE, 3) ‘3
CARGAUCHE’
FROM F_COMPTEG F_COMPTEG
LTRIM (CHAINE)
Cette fonction renvoie la chaîne CHAINE sans les blancs de fin de chaîne.
Exemple
Exemple d’utilisation avec QUERY (Enlever les blancs dans la chaîne ‘ TESTRTRIM’
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, LTRIM (‘ TESTRTRIM’) ‘
TESTRTRIM’
FROM F_COMPTEG F_COMPTEG
SUBSTRING (CHAINE, DEBUT, LONG)
© 2013 Sage 63
Annexe 2 – Fonctions
SQL supportées par Sage 100 Kit ODBC
Cette fonction retourne une chaîne dérivée de CHAINE commençant à la position DEBUT et de LONG
caractères. Exemple : SUBSTRING (‘TESTCHAINE, 7, 2)=’AI’
Exemple
Exemple d’utilisation avec QUERY :
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, SUBSTRING (CG_INTITULE, 4, 2)
‘SUBSTRING’
FROM F_COMPTEG F_COMPTEG
Fonction numérique
MOD (ENTIER1, ENTIER2)
Cette fonction retourne le reste modulo de la division de ENTIER1 par ENTIER2.
Exemple
Exemple d’utilisation avec QUERY (Reste module de 10 / 6, soit 4)
SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, MOD (10, 6) ‘MOD’
FROM F_COMPTEG F_COMPTEG
© 2013 Sage 64
Annexe 2 – Fonctions
SQL supportées par Sage 100 Kit ODBC
ORDER BY F_ECRITUREC.CG_NUM
YEAR (DATE)
Cette fonction retourne l’année pour le champ DATE.
Exemple
Exemple d’utilisation dans QUERY:
SELECT F_ECRITUREC.CG_NUM, F_ECRITUREC.JM_DATE, F_ECRITUREC.EC_DATE, MONTH
(EC_DATE), CURTIME (), DAYOFWEEK (EC_DATE)
FROM F_ECRITUREC F_ECRITUREC
ORDER BY F_ECRITUREC.CG_NUM
Fonctions système
DATABASE ()
Cette fonction retourne le fichier physique associé à la source de données en cours d’utilisation.
Exemple
Exemple d’utilisation dans QUERY:
SELECT P_DOSSIER.D_RAISONSOC, DATABASE ()
FROM P_DOSSIER P_DOSSIER
USER ()
Cette fonction retourne le nom de l’utilisateur connecté.
Exemple
Exemple d’utilisation dans QUERY:
SELECT P_DOSSIER.D_RAISONSOC, DATABASE (), USER ()
FROM P_DOSSIER P_DOSSIER
© 2013 Sage 65
Annexe 3 – Conseils
d’optimisation
© 2013 Sage 66
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 67
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 68
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 69
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 70
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 71
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 72
Annexe 4 – Les codes
erreurs Sage
-3595, Si le type de réglement n'est pas de type acompte, seuls RG_Date(Cont), RG_Reference,
RG_Libelle, RG_Montant, N_Reglement,RG_Impaye ,CG_Num(cont) ou JO_Num sont modifiables
-3596, Un réglement est passé à un document de vente, certains champs ne sont pas modifiables
-3597, Les champs suivants AL_MontantHT, AL_MontantTTC, AL_FactPoids et AL_Escompte doivent
être à zéro
-3598, Les champs suivants DL_MontantHT, DL_MontantTTC, DL_FactPoids et DL_Escompte doivent
être à zéro
-3599, Le champ DO_Provenance ne peut avoir la valeur 3
-3600, Le champ DO_Replication n'est pas modifiable
-3601, Le champ DO_Replication doit être à 0
-3602, Le champ CP_Type n'est pas modifiable
-3603, Le champ CP_champ n'est pas modifiable
-3604, Le champ ACP_TypeFacture n'est pas modifiable
-3605, Le champ FCP_Champ n'est pas modifiable
-3606, Le champ FCP_TypeFacture n'est pas modifiable
-3607, Le champ EF_No n'est pas modifiable
-3608, La date n'est pas dans la liste des exercices de la base
-3609, EF_No doit être à 0
-3610, Référence à un compte général inexistant ou qui n'est pas de type détail
-3611, Le compte général est utilisé dans le fichier EFINANCIER (donc non supprimable)
-3612, Le compte bancaire est utilisé dans le fichier FINANCIER (donc non supprimable)
-3613, Le code journal n'est pas modifiable
-3614, Le compte tiers est utilisé dans le fichier EFINANCIER (donc non supprimable)
-3615, Le compte analytique est utilisé dans le fichier EFINANCIERA (donc non supprimable)
-3616, La taxe est utilisée dans le fichier EFINANCIER (donc non supprimable)
-3617, Suppression impossible, l'article possède des cumuls de stock
-3618, Le fichier n'existe pas
-3619, Suppression impossible. Des fichiers multimédia sont rattachés à l'immobilisation à
supprimer
-3620, Suppression impossible car il existe au moins un fichier multimédia pour ce tiers
-3621, Le fichier multimédia n'existe pas
-3622, Le fichier multi-média n'existe pas
-3623, Suppression impossible, l'article est associé à un fichier multi-média
-3624, Suppression impossible car le lot comporte encore des échéances.
-3625, Nombre de lignes du lot incorrect.
-3626, Incohérence du montant entre les lots et les échéances du lot.
-3627, Le prix énuméré de gamme doit être unique
-3628, Le payeur origine n'est pas de type alphanumérique et majuscule ou est de longueur > 17
caractères
-3629, Le code barres énuméré doit être unique
-3630, La référence énuméré doit être unique
-3631, Le client ou le fournisseur n'est pas en majuscule (avec longueur <= 17 car ), ou la catégorie
tarifaire n'est pas de longueur = 3 car ou la première lettre <> 'a' ou les 2 derniers caractères non
numériques (et compris entre 1 et 32)
© 2013 Sage 73
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 74
Annexe 4 – Les codes
erreurs Sage
-3674, Champs non valide pour une famille ou une immobilisation non soumise à taxe véhicule de
tourisme
-3675, Le champ Article non livré ne peut pas être modifié
-3676, Le document est clôturé
-3677, Les éléments de caisse (CA_No,CO_NoCaissier,DO_Cloture) ne sont pas modifiables
-3679, Suppression impossible, l'énuméré de gamme est rattaché à une ligne de ticket d'archive
-3680, Suppression impossible, l'article est rattaché à une ligne de commande en attente
-3681, Suppression impossible, l'article est rattaché à une ligne de ticket d'archive
-3682, Suppression impossible, l'article est rattaché à un raccourci clavier
-3683, Le code taxe n'est pas modifiable
-3684, Le taux de taxe n'est pas modifiable
-3685, Le taux de remise n'est pas modifiable
-3686, L'unité de vente n'est pas modifiable
-3687, L'énuméré de gamme 2 n'est pas modifiable
-3688, L'énuméré de gamme 1 n'est pas modifiable
-3689, La référence article n'est pas modifiable
-3690, La référence article n'existe pas
-3691, L'énuméré de gamme 2 n'existe pas
-3692, L'énuméré de gamme 1 n'existe pas
-3693, Le numéro de pièce n'est pas modifiable
-3694, CL_No n'est pas modifiable
-3695, CL_No doit être unique
-3696, La commande en attente n'existe pas
-3697, La commande en attente possède des lignes
-3698, Le numéro de pièce n'est pas modifiable
-3699, Le numéro de pièce existe déjà
-3700, Le numéro de dépôt n'est pas modifiable
-3701, Le contact existe déjà
-3702, Le dépôt n'existe pas
-3703, Suppression impossible, le représentant est rattaché à un agenda
-3704, Suppression impossible, le représentant est rattaché à une ligne de ticket d'archive
-3705, Suppression impossible, le représentant est rattaché à un ticket d'archive
-3706, Suppression impossible, le représentant est rattaché à un règlement
-3707, Suppression impossible, le représentant est rattaché à une ligne d'abonnement
-3708, Suppression impossible, le représentant est rattaché à un entête d'abonnement
-3709, Suppression impossible, le représentant est rattaché à une ligne de document
-3710, Suppression impossible, le représentant est rattaché à un document
-3711, Suppression impossible, le représentant est rattaché à une caisse
-3712, Suppression impossible, le représentant est déjà utilisé dans une caisse
-3713, Suppression impossible, le dépôt possède des contacts
-3714, Le code interbancaire existe déjà en ajout
-3715, Le Contact Dossier existe déjà
© 2013 Sage 75
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 76
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 77
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 78
Annexe 4 – Les codes
erreurs Sage
-3844, On ne peut ajouter de lignes d'extraits que dans le dernier extrait et extrait manuel
-3845, On ne peut supprimer des lignes d'extraits rapprochées
-3846, On ne peut supprimer un extrait car il existe des lignes d'extrait
-3847, PIECE n'est pas modifiable
-3848, MONTANTCPTA n'est pas modifiable
-3849, EE_MONTANT n'est pas modifiable
-3850, N_REJET n'est pas modifiable
-3851, CODEINTERBANCAIRE n'est pas modifiable
-3852, CODEINTERNE n'est pas modifiable
-3853, EE_DATEVAL n'est pas modifiable
-3854, EE_DATEOP n'est pas modifiable
-3855, EE_ETAT et EE_LETTRE non modifiables
-3856, Une ligne d'extrait existe déjà avec un EE_LIGNE identique
-3857, On ne peut supprimer que le dernier extrait
-3858, Suppression impossible car rapproché
-3859, NOUVDATE n'est pas modifiable
-3860, EX_ANCSOLD n'est pas modifiable
-3861, EB_NO n'est pas modifiable
-3862, EX_NO n'est pas modifiable
-3863, EX_ANCDATE n'est pas modifiable
-3864, Le champ EX_AncSolde doit prendre la valeur du solde de l'extrait précédent
-3865, Le champ EX_AncDate doit prendre la valeur de la date de l'extrait précédent
-3866, L'ajout d'un nouvel extrait se fait obligatoirement à la fin
-3867, Il existe déjà un extrait
-3868, EE_LETTRE doit être vide
-3869, Nb de décimales de MONTANTCPTA incorrect
-3870, EE_MONTANT est invalide
-3871, Date de valeur obligatoire
-3872, Date opération obligatoire
-3873, On ne peut ajouter des lignes d'extrait dans un état rapproché
-3874, EE_LIGNE invalide
-3875, Nb de décimales de EX_ANCSOLD incorrect
-3876, EX_ETAT doit être à 0
-3877, EX_REF obligatoire
-3878, EB_NO inexistant
-3879, EX_TYPE doit être à 0
-3880, EX_NO invalide
-3881, Le pays existe déjà
-3882, Nb de décimales de PA_TRANSPORT incorrect
-3883, Nb de décimales de PA_ASSURANCE incorrect
-3884, Intitulé du pays obligatoire
-3885, N_Analytique et EA_Rupture non modifiables
© 2013 Sage 79
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 80
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 81
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 82
Annexe 4 – Les codes
erreurs Sage
-4006, Le numéro de dépôt doit être égal à 0 pour un article qui n'est pas suivi en stock
-4007, Le compte analytique n'existe pas dans le plan affaire, ou n'est pas du type détail
-4008, Ce fournisseur ne fait pas parti de la liste des fournisseurs de cet article
-4009, Le glossaire n'existe pas dans F_DOCLIGNETEXT
-4010, L'entête de document n'existe pas
-4011, Le type du prix (TTC ou HT) doit être en HT pour une ligne faisant référence à aucun article
-4012, Le représentant doit être égal à 0
-4013, Le type du prix (TTC ou HT) doit être en HT pour un document de type achat
-4014, L'article est vide ou n'est pas de type C39 ou est de longueur > 18
-4015, Une remise de pied ne peut pas être combinée avec une remise exceptionnelle
-4016, L'énuméré référence article est unique
-4017, Le numéro de l'énuméré de gamme 2 n'est pas modifiable
-4018, Le numéro de l'énuméré de gamme 1 n'est pas modifiable
-4019, L'énuméré article est unique
-4020, La gamme 2 n'existe pas
-4021, La gamme 1 n'existe pas
-4022, L'énuméré article n'est pas de type C39 ou est de longueur > 18
-4023, La gamme 1 doit être renseignée : valeur non nulle
-4024, Le compte de contrepartie n'existe pas
-4025, L'état du stock ne permet pas de créer la ligne
-4026, Le type de taxe 3 ne peut pas être modifié
-4027, Le type de taux de taxe 3 ne peut pas être modifié
-4028, Le taux de taxe 3 ne peut pas être modifié
-4029, La référence énuméré conditionnement existe déjà
-4030, La référence énuméré conditionnement n'est pas de type C39
-4031, S'il y a une devise ou un prix de vente, PV/PR doit être nul
-4032, Changement d'article à gamme, modification impossible car existe dans F_ARTENUMREF ou
suppression impossible
-4033, Dans l'article la gamme 1 ou la gamme 2 n'est pas de type produit
-4034, On n'a pas le droit de supprimer un glossaire dans un document
-4035, EG_CHAMP de F_ARTCLIENT ne fait pas référence à un champ de P_GAMME de type quantité
ou montant
-4036, Ce glossaire n'existe pas ou GL_DOMAINE n'est pas de type article
-4037, AGL_NUM doit être à 0
-4038, Le numéro interne doit être <> 0
-4039, L'article est vide ou n'est pas de type C39 ou est de longueur > 18
-4040, Le numéro de pièce ne peut pas être modifié
-4041, Le type de document ne peut pas être modifié
-4042, Le domaine ne peut pas être modifié
-4043, Le numéro interne de l'échéance ne peut pas être modifié
-4044, Le numéro interne de règlement ne peut pas être modifié
-4045, Ce numéro de pièce n'existe pas pour ce type de document
© 2013 Sage 83
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 84
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 85
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 86
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 87
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 88
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 89
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 90
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 91
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 92
Annexe 4 – Les codes
erreurs Sage
-4393, Le tiers est vide ou n'est pas de type alphanumérique et majuscule ou est de longueur > 17
caractères
-4394, La famille est vide ou n'est pas de type alphanumérique et majuscule ou est de longueur >
10 caractères
-4395, Domaine de validité du champ incorrect, veuillez vous référer à la documentation.
-4396, L'article n'existe pas
-4397, Le fournisseur n'existe pas
-4398, Le client n'existe pas
-4399, La famille n'existe pas
-4400, Différence entre Qté et QtéRestante.
-4401, En ajout IM_DotEco,IM_DotFiscal,IM_TotCession doivent être nulle.
-4402, En ajout l'immobilisation ne peut pas faire référence à une écriture.
-4403, En ajout MajCpta doit être 0.
-4404, En ajout TypeCession doit être sur CessionNulle.
-4405, En ajout IM_Etat incorrect.
-4406, L'immobilisation existe déjà.
-4407, L'immobilisation n'existe pas.
-4408, Il existe un bloc-notes pour cette immobilisation donc non supprimable.
-4409, Le bloc note existe déjà.
-4410, L'énuméré statistique n'existe pas.
-4411, L'énuméré statistique existe.
-4412, Le fichier des lieux de biens doit contenir un lieu principal.
-4413, Le fichier des lieux de biens doit contenir un lieu principal.
-4414, Le lieu n'existe pas.
-4415, Le lieu existe déjà.
-4416, En ajout LI_No doit être 0.
-4417, Le compte analytique est déjà rattaché à cette ventilation analytique.
-4418, Suppression impossible, il existe des enregistremetns dans FamAnal ou dans ImmoAnal.
-4419, Champs non valide pour une famille ou une immobilisation non suivie.
-4420, Taux modifiable qu'en exceptionnel.
-4421, Seul le taux peut être modifié.
-4422, Champs non valide pour une famille de type total.
-4423, La nature de bien n'est plus modifiable s'il existe des immobilisations ou des FAMAMORT pour
la famille.
-4424, FA_CodeFamille et FA_Type ne sont jamais modifiables.
-4425, Pour une famille de type TOTAL seul l'intitulé est modifiable.
-4426, La famille n'existe pas.
-4427, La famille existe déjà.
-4428, Coeff. nul en mode dégressif.
-4429, Coeff. non nul en mode autre que dégressif.
-4430, Si la famille n'est pas suivie en amortissement les 2 durées doivent être nulles.
-4431, CO_NO fait référence à un collaborateur inexistant, ou doit être égal à 0 pour une
utilisation sans la gestion commerciale
© 2013 Sage 93
Annexe 4 – Les codes
erreurs Sage
-4432, DE_NO fait référence à un dépôt inexistant, ou doit être égal à 0 pour une utilisation sans la
gestion commerciale
-4433, L'écriture générale ne peut être supprimée car elle est rapprochée
-4434, Ce compte analytique ne peut être utilisé par une écriture analytique car le compte a
l'option 'Mise en sommeil' de coché
-4435, Le compte tiers de contrepartie n'existe pas
-4436, Le nombre de décimales des dotations Quantité du poste budgétaire est supérieure à celui
paramètré dans la base (A Propos de)
-4437, Le compte tiers de contrepartie n'existe pas
-4438, Le compte tiers de contrepartie est de longueur > 13 caractères
-4439, Cet élément de banque est utilisé dans un extrait bancaire, il ne peut donc pas être
supprimé
-4440, Ce RIB existe déjà
-4441, Champs non valides pour une famille ou une immobilisation soumise à la taxe
professionnelle.
-4442, Le journal est utilisé dans un modèle analytique, il ne peut donc pas être supprimé.
-4443, Le code de taxe doit être unique
-4444, On ne peut modifier la date de création du compte de tiers
-4445, La suppression d'un compte analytique utilisé dans les écritures reporting est impossible
-4446, Le nombre de décimales des dotations Quantité pour les répartitions du compte analytique
est supérieure à celui paramètré dans la base (A Propos de)
-4447, La répartition Quantité de type Equilibre ou % doit être égale à 0
-4448, On ne peut modifier la date de création du compte analytique
-4449, Le nombre de décimales des dotations Quantité du compte analytique est supérieure à celui
paramètré dans la base (A Propos de)
-4450, La répartition Quantité de type Equilibre ou % doit être égale à 0
-4451, Le nombre de décimales des dotations Quantité pour les répartitions du compte est
supérieure à celui paramètré dans la base (A Propos de)
-4452, Le nombre de décimales des dotations Quantité du compte est supérieure à celui paramètré
dans la base (A Propos de)
-4453, La suppression d'un compte général utilisé dans les écritures reporting est impossible
-4454, On ne peut modifier la date de création du compte général
-4455, Affectation d'un budget de type autre que détail
-4456, Le champ N_ANALYTIQUE doit être à 0 pour un modèle de grille de type général, ou doit
être compris entre 1 et 10 pour un modèle de type analytique
-4457, Pour modifier le compte général principal d'un tiers, ce compte général doit d'abord être
associé à ce tiers dans la table F_COMPTETG
-4458, Suppression impossible car il existe des enregistrements concernant ce tiers dans la table
F_COMPTETG
-4459, L'écriture doit être non clôturée
-4460, Cet énuméré statistique existe déjà
-4461, L'intitulé est vide ou de longueur > 21
-4462, Ce registre taxe existe déjà
-4463, Le code journal analytique est utilisé dans les écritures d'OD et reports analytiques
-4464, Le compte de Taxe (1 à 5) fait référence à un compte de taxe incorrect
-4465, Le numéro de compte tiers fait référence à un tiers incorrect
© 2013 Sage 94
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 95
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 96
Annexe 4 – Les codes
erreurs Sage
-4541, Il existe déjà un élément de budget de même type et de même BD_VREPART associé à un
autre budget
-4542, Cet élément de budget fait référence à un budget inexistant
-4543, Le numéro de compte général de l'élément de budget n'existe pas
-4544, Cet élément de budget existe déjà
-4545, Le numéro interne fait référence à un budget inexistant
-4546, Le budget est utilisé par un autre budget (donc non supprimable)
-4547, Le champ BD_VREPART n'est pas modifiable
-4548, Le type de répartition n'est pas modifiable
-4549, Le numéro de budget n'est pas modifiable
-4550, Le type n'est pas modifiable
-4551, Le numéro interne n'est pas modifiable
-4552, Pour BD_TREPART>=11, BD_VREPART ne correspond pas à un énuméré statistique existant
-4553, Pour BD_TREPART>=1 et BD_TREPART<=10, BD_VREPART ne correspond pas à un compte
analytique existant
-4554, Le numéro de budget centralisateur ne correspond pas à un budget existant de type=2
-4555, Ce budget existe déjà
-4556, Le numéro de compte général est à vide ou n'est pas de type compte
-4557, Le numéro interne doit être nul
-4558, Pour BD_TREPART=0, BD_VREPART doit être nul
-4559, L'intitulé est vide ou de longueur > 35
-4560, Le numéro de budget est à vide ou n'est pas de type alphanumérique et majuscule ou de
longueur > 13
-4561, L'intitulé du libellé existe déjà
-4562, Le raccourci n'est pas du type alphanumérique et majuscule ou de longueur > 6
-4563, L'intitulé est vide ou de longueur > 35
-4564, Ce modèle existe déjà dans EMODELEA (donc non supprimable)
-4565, Le nombre de décimales de EA_MONTANT est incorrect (montant)
-4566, Cette date d'abonnement existe déjà
-4567, Référence à un modèle d'abonnement inexistant
-4568, Le numéro interne n'est pas modifiable
-4569, L'intitulé du modèle d'abonnement existe déjà
-4570, Le type de journal n'est pas le même que celui de la pièce
-4571, Référence à une pièce inexistante
-4572, Référence à un code journal inexistant
-4573, Le numéro interne doit être à 0
-4574, Champs non valides pour une famille ou une immobilisation non soumise à la taxe
professionnelle.
-4575, Il existe des loyers clôturés pour cette immobilisation donc non supprimable.
-4576, La date de début est supérieure à la date de Fin
-4577, Le code journal est vide ou de longueur > 6
-4578, L'intitulé est vide ou de longueur > 35
-4579, Ce modèle existe déjà dans EMODELER (donc non supprimable)
© 2013 Sage 97
Annexe 4 – Les codes
erreurs Sage
© 2013 Sage 98
Annexe 4 – Les codes
erreurs Sage
-4617, Pour PA_TMONTANT=3 ou 4, le nombre de décimales de PA_VMONTANT ne peut pas être > 4,
(double), pour PA_TMONTANT=0 ou 1, le nombre de décimales de PA_VMONTANT est incorrect
(montant)
-4618, La pièce est utilisée dans le fichier des modèles analytiques (donc non supprimable)
-4619, Le numéro analytique n'est pas modifiable
-4620, Cette pièce analytique existe déjà
-4621, Référence à une pièce générale inexistante
-4622, Le numéro de compte analytique est inexistant
-4623, Le Champ PG_LIGNE n'est pas modifiable
-4624, Cette pièce générale existe déjà
-4625, Ce numéro interne ne correspond pas à celui d'une pièce existante
-4626, Ce numéro de compte tiers n'existe pas
-4627, Le compte général de contrepartie n'existe pas
-4628, Le numéro de compte général n'existe pas
-4629, Le type de journal n'est pas modifiable
-4630, Le numéro de pièce n'est pas modifiable
-4631, Cet intitulé de pièce existe déjà
-4632, L'énuméré statistique Taxe Professionnelle n'existe pas.
-4633, Incohérence entre le type de répartition et sa valeur.
-4634, Erreur sur le champ CA_NUM
-4635, Le montant est de longueur > 17 caractères
-4636, La quantité est de longueur > 17 caractères
-4637, La parité est de longueur > 17 caractères
-4638, L'échéance est de longueur > 6 caractères
-4639, L'intitulé est de longueur > 35 caractères
-4640, Le numéro de compte tiers est de longueur > 17 caractères
-4641, Le compte général de contrepartie est de longueur > 13 caractères
-4642, Le numéro de compte général est vide ou n'est pas de type compte
-4643, La référence pièce est de longueur > 17 caractères
-4644, La pièce est de longueur > 13 caractères
-4645, Le jour est de longueur > 2 caractères
-4646, Le numéro interne doit être à 0
-4647, L'intitulé est vide est de longueur > 35 caractères
-4648, BQ_NO utilisé dans les éléments de banque (donc non supprimable)
-4649, Mauvais RIB (EB_AGENCE, EB_GUICHET, EB_COMPTE ou EB_CLE incorrect)
-4650, Ce code journal d'élément de banque ne correspond pas à un journal de type Trésorerie
-4651, Référence à un code journal inexistant
-4652, L'immobilisation n'est pas de type Biens ou n'est pas soumise à Taxe professionnelle: Champ
non modifiable !
-4653, Référence à une banque inexistante
-4654, Le compte est vide ou n'est pas de type alphanumérique et en majuscule ou est de longueur
> 11 caractères
-4655, Le guichet est vide ou est de longueur > 5 caractères
© 2013 Sage 99
Annexe 4 – Les codes
erreurs Sage
Avant propos
Généralement, les erreurs ODBC sont obtenues au moment de la connexion ou lors des opérations
d’écriture. Il est extrêmement rare d’obtenir une erreur ODBC en lecture, mis à part un problème lié à
une faute de syntaxe SQL.
Vous trouverez ci-dessous les principaux codes erreurs Sage rencontrés lors des opérations de connexion et
d’écriture.
Refus d'autorisation erreur Sage 1807 obtenue au moment de l’exécution d’une requête
d’écriture.
Ce message indique que la table où vous essayez d’écrire est une table en lecture seule (ex : tables
paramètres commence par P_). Ces tables ne sont pas modifiables par Sage 100 Kit ODBC.
Les informations nécessaires à l’écriture dans chaque table vous sont fournies dans le premier
manuel sur la structure des tables des bases de données Sage 100. Veuillez vous référer à ce
manuel pour connaître les différents champs obligatoires en insertion et les valeurs à renseigner
pour ne pas avoir ce message d’erreur.
Introduction
Il existe différentes méthodes d’accès aux données sous Visual Basic :
ADO (ActiveX Data Objects), généralise l’accès aux données via ODBC (OLE DB).
DAO (Data Access Object), utilisée principalement par Access (Moteur jet),
Les objets d’accès aux données ADO sont les plus récents. Ils utilisent la technologie ActiveX, ce qui
permet leur utilisation dans de nombreuses applications. Si vous le pouvez, il est préférable d’utiliser les
ADO pour accéder aux bases ODBC, et en particulier avec les bases de données Sage 100.
Les objets d’accès aux données DAO sont livrés en standard avec Access, Excel et Visual Basic. Ces objets
ne sont pas optimisés pour l’accès aux données ODBC.
Vous trouverez ci-dessous des exemples d’utilisation de VB avec ces différents objets d’accès aux
données.
Les ADO
Pour utiliser les objets d’accès aux données des ADO, votre application doit utiliser la librairie “ Microsoft
OLE DB ActiveX Data Objects 1.0 Library”, ou une autre librairie plus récente des ADO (Microsoft OLE DB
ActiveX Data Objects x.xx Library).
ActiveX Data Objects (ADO) est une collection d’objets qui permettent l’accès aux données de tout type.
Ces objets sont généralement utilisés pour l’accès aux bases de données en Internet ou Intranet
(utilisation d’Active Server Pages avec IIS). L’intérêt d’un objet ActiveX est qu’il peut être employé à
partir de n’importe quelle application capable d’utiliser les objets OLE (Delphi ou C entre autre).
Connexion Déconnexion
La connexion à une base de données, via ODBC, est réalisée à l’aide de l’objet Connection. Ce dernier
prend en paramètre une chaîne de connexion ODBC, le nom de l’utilisateur et son mot de passe. La chaîne
de connexion permet d’identifier le nom de la source de données à utiliser (DSN=), et elle peut aussi
identifier le nom et le mot de passe à utiliser, si ces derniers ne sont pas renseignés dans les deuxième et
troisième paramètres.
La déconnexion est réalisée à l’aide de la méthode Close.
Remarques :
Même si le nom et le mot de passe ne sont pas renseignés, aucune boîte de dialogue de connexion
Sage n’apparaîtra.
Contrairement aux DAO, la connexion ODBC est réellement rompue après l’emploi de la méthode
Close sur l’objet Connection.
Exemple
‘Exemple de connexion et de Déconnexion. Source de données utilisée > ComptaC_Bijou
Dim cnxCPTA As ADODB.Connection ‘Identifiant de la connexion ODBC
Dim strConnect as String ‘Chaîne de connexion ODBC
Dim strUID as String ‘Nom utilisé pour la connexion à la base
Dim strPWD as String ‘Mot de passe associé
‘Construction de la chaîne de connexion.
‘Les différents paramètres de la chaîne de connexion sont séparés par un point virgule ( ;)
‘DSN identifie le nom de la source de données
‘Il est possible de renseigner le nom et le mot de passe à utiliser à l’aide des commandes UID et PWD
strConnect = "DSN=ComptaC_Bijou; "
‘Création de l’objet ActiveX
Set cnxCPTA = New ADODB.Connection
cnxCPTA.ConnectionTimeout = 15 ‘Définition du TimeOut de connexion
cnxCPTA.CommandTimeout = 30 ‘Définition du TimeOut d’exécution de requêtes
‘Connexion à la source de données ODBC
‘Le nom de connexion utilisé est ADMIN, et le mot de passe associé est 123. Ces paramètres sont
facultatifs si les bases Sage ne sont pas protégées.
cnxCPTA.Open strConnect, "ADMIN", "123"
‘Code Visual Basic
‘Fermeture de la connexion
cnxCPTA.Close
‘Destruction de l’objet
Set cnxCPTA = Nothing
Recherche d’enregistrements
La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’une
requête est réalisée en deux phases :
Définition de la requête (syntaxe SQL et paramètres) : utilisation de l’objet Command
Exécution de la requête et récupération des enregistrements : utilisation de l’objet Recordset
Remarque :
La requête est directement envoyée au driver ODBC.
Exemple
‘Exemple d’exécution de requête de sélection et de parcours des enregistrements
‘Recherche de tous les clients dont le code commence par C
‘L’objet Connection cnxCPTA a été ouvert
Dim cmdSQL As ADODB.Command‘Objet contenant la définition de la requête
Dim rsClient As ADODB. Recordset‘Objet contenant le résultat de la requête
Dim strSQL as String ‘Variable contenant la requête SQL
‘Syntaxe SQL
‘Construction de la requête SQL de sélection
‘Critères :
‘ CT_Type = 0 > sélection des clients
‘ CT_Num like ‘C%’ > Sélection des codes clients commençant par C
strSQL = "Select CT_Num, CT_Intitule From F_CompteT " & _
"Where CT_Type = 0 And CT_Num Like ‘C%’ "
‘Création de l’objet ActiveX Command
Set cmdSQL = New ADODB.Command
‘Création de l’objet ActiveX Recordset
Set rsClient = New ADODB.Recordset
Exemple
‘Exemple d’exécution d’une requête de modification.
‘Les clients de la Moselle (dept. 57) changent de représentant. Désormais, c’est Gendron (identifié par
CO_No = 3)
‘qui se charge de ce secteur.
‘L’objet Connection cnxCPTA a été ouvert
Dim strSQL as String ‘Variable contenant la définition de la requête
‘Syntaxe SQL
‘Construction de la requête SQL de modification
‘Critères :
‘ CT_Type = 0 > sélection des clients
‘ CT_CodePostal like ‘57%’ > Sélection des codes clients dont le code département commence par
57
‘Valeur à modifier
‘ CO_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la table
F_Collaborateur)
strSQL = "Update F_CompteT " & _
" Set CO_No = 3 " & _
" Where CT_Type = 0 And CT_CodePostal like ‘57%’ "
‘Exécution de la requête
cnxCPTA.Execute strSQL
Une description de l’erreur (message en français dans le cas d’une erreur Sage), à l’aide de la
propriété Description,
La provenance de l’erreur, à l’aide de la propriété Source.
Exemple
‘Exemple de récupération des erreurs ODBC
‘En entête de procédure, on trouve l’instruction ON ERROR GOTO MonLable. Cela veut dire que dès
qu’une
‘erreur est détectée (ODBC ou autre), le programme fait un saut au label indiqué (ici MonLabel).
‘Si aucune erreur n’est détectée, il ne faudra pas effectuer ce traitement d’erreur > d’où l’emploi de
l’instruction
‘EXIT SUB afin de sortir de la procédure avant la partie concernant le traitement de l’erreur.
Dim strErreur As String ‘Variable contenant le message d’erreur à afficher
Dim ErrorADO As ADODB.Error ‘Objet contenant les erreurs RDO
Dim i As Integer ‘Compteur utilisé pour le parcours des erreurs
‘Si aucune erreur n’est rencontrée, il n’est pas nécessaire d’effectuer le traitement d’erreur > sortie du
‘programme (EXIT SUB pour une procédure, EXIT FUNCTION pour une fonction)
Exit Sub
Les DAO
Pour utiliser les objets d’accès aux données des DAO, votre application doit utiliser la librairie “ Microsoft
DAO 2.5/.35 compatibility Library ”, ou une autre librairie plus récente des DAO (Microsoft DAO x.xx
Compatibility Library).
Connexion Déconnexion
La connexion à une base de données, via ODBC, est réalisée à l’aide de la méthode OpenDatabase ().
Cette dernière prend en paramètre une chaîne de connexion ODBC. Cette chaîne permet d’identifier la
source de données à exploiter, ainsi que le nom et le mot de passe à utiliser.
La déconnexion est réalisée à l’aide de la méthode Close.
Remarques :
Pour ne pas voir apparaître la boîte de connexion Sage, il est impératif de renseigner le nom et le
mot de passe dans la chaîne de connexion (paramètres UID et PWD).
Microsoft Jet ne rompt pas réellement la connexion ODBC lors de l’emploi de la méthode Close. La
connexion reste toujours active, ce qui peut être gênant lors d’une utilisation avec les versions de
Sage 100 Kit ODBC inférieure à la version 8.0 (dans le cas d’une consolidation de société par
exemple). En effet, ces versions de Sage 100 Kit ODBC ne permettent pas l’ouverture simultanée
de plusieurs bases de même type simultanément (ex : 2 bases comptables). Etant donné que Jet ne
rompt pas la connexion, il sera donc impossible de récupérer, au sein d’un même programme, des
données provenant de plusieurs fichiers de même type (ex : 2 fichiers comptables).
Par défaut, le moteur Jet rompt les connexions ODBC au bout de 10 mn (600 secondes) si aucune
requête n’est exécutée. Ce paramètre peut être changé dans la base de registre.
Jet 3.0 (VB 4.0, Office 95)
Clé : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.0\Engines\ODBC
Entrée : ConnectionTimeout Type : DWord Valeur par défaut : 600.
Jet 3.5 (VB 5.0, Office 97)
Clé : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\ODBC
Entrée : ConnectionTimeout Type : DWord Valeur par défaut : 600.
Exemple
‘Exemple de connexion et de Déconnexion. Source de données utilisée > ComptaC_Bijou
Dim dbCPTA As DAO.Database ‘Identifiant de la base de données
Dim strConnect as String ‘Chaîne de connexion
Recherche d’enregistrements
Pour optimiser les temps de traitement, il est préférable d’exécuter une requête de sélection. En effet,
les méthodes FindFirst et FindNext ne permettent pas d’utiliser les index des bases. La recherche d’un
enregistrement revient, dans ce cas, à parcourir tous les enregistrements et à effectuer une comparaison
sur les champs.
Remarques :
La Méthode Seek ne peut pas être utilisée sur une table ODBC. En effet, cette méthode est
utilisable uniquement sur un Recordset de type TABLE (une table ODBC est du type DYNASET ou
SNAPSHOT)
Normalement, une requête DAO passe par le moteur Jet avant d’être envoyée au driver ODBC. La
requête envoyée à Jet par VB n’est pas une vraie requête SQL, c’est une requête “ Access ”
(syntaxe particulière). Si vous désirez utiliser la syntaxe SQL, vous devez utiliser le paramètre
dbSQLPassThrough. Ce paramètre permet d’envoyer une requête SQL directement au driver
ODBC, sans passer par le moteur Jet.
Exemple
‘Exemple d’exécution de requête de sélection et de parcours des enregistrements
‘Syntaxe SQL
‘Construction de la requête SQL de sélection
‘Critères :
‘ CT_Type = 0 > sélection des clients
‘ CT_Num like ‘C%’ > Sélection des codes clients commençant par C
strSQL = "Select CT_Num, CT_Intitule From F_CompteT " & _
"Where CT_Type = 0 And CT_Num Like ‘C%’ "
‘Exécution de la requête > Utilisation du paramètre dbSQLPassThrough pour l’envoyer directement à
ODBC
Set rsClient = dbCPTA.OpenRecordset (strSQL, dbSQLPassThrough)
‘Parcours des enregistrements
While Not rsClient.EOF
‘Affichage du code et de l’intitulé du client dans la fenêtre d’Exécution
Debug.Print rsClient ("CT_Num"), rsClient ("CT_Intitule")
‘Passe à l’enregistrement suivant
rsClient.MoveNext
Wend
‘Fermeture de l’objet RecordSet
rsClient.Close
‘Destruction de l’objet
set rsClient = Nothing
‘Syntaxe SQL
‘Construction de la requête SQL de modification
‘Critères :
‘ CT_Type = 0 > sélection des clients
‘ CT_CodePostal like ‘57%’ > Sélection des codes clients dont le code département commence par
57
‘Valeur à modifier
‘ CO_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la table
F_Collaborateur)
strSQL = "Update F_CompteT " & _
" Set CO_No = 3 " & _
" Where CT_Type = 0 And CT_CodePostal like ‘57%’ "
‘Exécution de la requête
dbCPTA.Execute strSQL, dbSQLPassThrough
‘Si aucune erreur n’est rencontrée, il n’est pas nécessaire d’effectuer le traitement d’erreur > sortie du
‘programme (EXIT SUB pour une procédure, EXIT FUNCTION pour une fonction)
Exit Sub
Introduction
L’accès aux données via ODBC, sous Windev se fait exclusivement par l’exécution de requêtes SQL. Il
existe des fonctions de connexion, de déconnexion, d’exécution de requêtes et de parcours des
enregistrements.
La version 4.0 de Windev ne permet pas l’accès à plusieurs sources de données simultanément, ce qui
rend son utilisation très difficile avec les produits Sage 100 (en particulier avec la gestion commerciale et
les immobilisations), car les bases sont étroitement liées les unes aux autres.
Pour une utilisation avec les bases Sage 100, il est préférable d’utiliser une version de Windev supérieure
à la version 4.0
Connexion Déconnexion
La connexion à une base de données, via ODBC, est réalisée à l’aide de la fonction SQLConnect (). Cette
dernière prend en paramètre le nom de la source de données, le nom de l’utilisateur et son mot de passe.
La déconnexion est réalisée à l’aide de la procédure SQLDisconnect (). Cette procédure déconnecte la
connexion courante. Pour changer de connexion, utiliser la procédure SQLChangeConnection () qui prend
en paramètre l’identificateur de la connexion.
Remarques :
Même si le nom et le mot de passe ne sont pas renseignés, aucune boîte de dialogue de connexion
Sage n’apparaîtra.
La connexion ODBC est réellement rompue après l’emploi de la procédure SQLDisconnect ().
Exemple
//Exemple de connexion et de Déconnexion. Source de données utilisée > ComptaC_Bijou
strSource est une chaîne //Nom de la source de données
IdCPTA est un entier long //Identifiant de la connexion
Source = "ComptaC_Bijou"
//Connexion à la source de données ODBC ComptaC_Bijou
//Le nom de connexion utilisé est ADMIN, et le mot de passe associé est 123. Ces paramètres sont
facultatifs. Si ces
//derniers ne sont pas renseignés, la boîte de connexion Sage n’apparaîtra pas.
IdCPTA = SQLConnect (Source,"ADMIN","123")
//Si la valeur de retour est égale à 0, alors il y a eu un problème lors de la connexion
SI IdCPTA <> 0 alors //Pas de problème de connexion
//Code Windev
Recherche d’enregistrements
La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’une
requête est réalisée à l’aide de la fonction SQLExec (). Cette fonction prend en paramètre le code SQL de
la requête, ainsi que son nom. Cette fonction retourne un booléen indiquant si son exécution s’est
correctement déroulée.
Une fois la requête exécutée, le parcours de ses enregistrements se fait à l’aide des fonctions
SQLPremier, SQLDernier, SQLSuivant et SQLPrecedent. La récupération des données est réalisée par la
fonction SQLCol.
La recherche d’un enregistrement précis revient à exécuter une requête de sélection prenant en compte
tous les critères spécifiques de cet enregistrement.
Remarques :
La requête est directement envoyée au driver ODBC.
La requête est exécutée sur la connexion courante. Pour changer de connexion, utilisez la
procédure SQLChangeConnexion ()
Il n’est pas nécessaire d’utiliser SQLChangeConnexion () si vous n’ouvrez qu’une seule source de
données. Par contre, si vous en ouvrez plusieurs, il sera nécessaire de l’employer, afin d’identifier
la connexion active.
Exemple
//Exemple d’exécution de requête de sélection et de parcours des enregistrements
//Recherche de tous les clients dont le code commence par C
//La connexion ODBC est active et identifiée par la variable idCPTA
SELECT_QUERY est une chaîne //Nom de la requête SQL
strSQL est une chaîne //Variable contenant la requête SQL
Remarques :
La requête est directement envoyée au driver ODBC.
La requête est exécutée sur la connexion courante. Pour changer de connexion, utilisez la
procédure SQLChangeConnexion ().
Il n’est pas nécessaire d’utiliser SQLChangeConnexion () si vous n’ouvrez qu’une seule source de
données. Par contre, si vous en ouvrez plusieurs, il sera nécessaire de l’employer, afin d’identifier
la connexion active.
Exemple
//Exemple d’exécution d’une requête de modification.
//Les clients de la Moselle (dept. 57) changent de représentant. Désormais, c’est Gendron (identifié par
CO_No = 3)
//qui se charge de ce secteur.
//La connexion ODBC est active et identifiée par la variable idCPTA
UPDATE_QUERY est une chaîne //Nom de la requête SQL
strSQL est une chaîne //Variable contenant la définition de la requête
‘Exécution de la requête
SI SQLExec (strSQL, UPDATE_QUERY) ALORS
//La requête s’est correctement déroulée
SINON
//Gestion de l’erreur
FIN
SQLFerme (UPDATE_QUERY)
Fonctions disponibles
Si <Nom_Requête> est précisée, SQLInfoGene met à jour les variables donnant les informations sur
l'exécution de la requête <Nom_Requête>.
SQL.Erreur est une chaîne de caractères et est égale à "00000" si aucune erreur, sinon contient le
code de l'erreur (erreur interne au driver, donc non exploitable)
SQL.MesErreur est une chaîne de caractères et contient le libellé de l'erreur
SQL.NbLig est un entier contenant le nombre de lignes du résultat
SQL.EnCours est un entier et contient le numéro de la ligne en cours
SQL.NbCol est un entier contenant le nombre de colonnes du résultat
SQL.TitreCol[n] est une chaîne de caractères et contient le titre par défaut de la même colonne
SQL.Connexion est un entier qui contient le numéro de la connexion en cours (demandée par
SQLConnecte)
SQL.Requete est un entier qui contient le numéro de la requête en cours
Si <Nom_Requête> n'est pas précisée, SQLInfoGene retourne le résultat de la connexion par
SQLConnecte :
SQL.Erreur est une chaîne de caractères et est égale à "00000" si aucune erreur, sinon contient le
code de l'erreur
SQL.MesErreur est une chaîne de caractères et contient le libellé de l'erreur
SQL.Connexion est un entier qui contient le numéro de la connexion en cours (demandée par
SQLConnecte)
Exemple
//Exemple de récupération des erreurs ODBC
//Interception d’une erreur de connexion et d’une erreur d’exécution de requête
//Nous ne nous attarderons pas sur la méthode de connexion et d’exécution de requête
Source = "ComptaC_Bijou"
//Connexion à la source de données ODBC ComptaC_Bijou
IdCPTA = SQLConnect (Source,"","")
//Si la valeur de retour est égale à 0, alors il y a eu un problème lors de la connexion
SI IdCPTA <> 0 alors //Pas de problème de connexion
//Code Windev
//Exécution d’une requête SQL
SI SQLExec (strSQL, SELECT_QUERY) ALORS
//La requête s’est correctement déroulée
//Suite du traitement
SINON
//Gestion de l’erreur d’exécution d’une requête SQL
//Génère les erreurs de la requête SELECT_QUERY
SQLInfoGene (SELECT_QUERY)
strMessageErreur = "Erreur lors de l’exécution de la requête"
//Code erreur
strMessageErreur = strMessageErreur Caract (13) "Code Erreur: " SQL.Erreur
//Message d’erreur
strMessageErreur = strMessageErreur Caract (13) "Message: " SQL.MesErreur)
//Affiche l’erreur
Erreur (strMessageErreur)
FIN
//Ferme la requête SQL
SQLFerme (UPDATE_QUERY)
SINON //Problème lors de la connexion
//Traitement de l’erreur de connexion
//Génère les erreurs
SQLInfoGene ()
Introduction
L’accès aux données, avec Visual FroxPro, peut se faire de deux manières :
Utilisation des Remotes views (vues distantes en français) pour exécuter des requêtes de sélection,
Utilisation du code pour se connecter, se déconnecter, exécuter des requêtes, parcourir des
enregistrements etc...
Ce document traitera essentiellement des accès ODBC via le code FoxPro. Seule la première partie de ce
chapitre sera consacrée à l’utilisation des Remotes Views.
Recherche d’enregistrements
La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’une
requête est réalisée à l’aide de la fonction SQLEXEC (). Cette fonction prend en paramètre l’identifiant de
la connexion (valeur retournée par la fonction SQLCONNECT), le code SQL de la requête et le nom de
l’objet Cursor. Cet objet va contenir le résultat de la requête de sélection.
SQLEXEC ( ) renvoie le nombre de résultats s'il y en a plus d'un. La fonction SQLEXEC ( ) renvoie 0 si elle
est en cours d'exécution et 1 si elle est terminée. SQLEXEC ( ) renvoie 1 en cas d’erreur au niveau de la
connexion.
La méthode Seek ne fonctionne pas avec les accès ODBC. Il faudra donc utiliser d’autres
instruments de recherche tel que Scan.
La recherche d’un enregistrement précis revient à exécuter une requête de sélection prenant en
compte tous les critères spécifiques à cet enregistrement.
Exemple
&&Exemple d’exécution de requête de sélection et de parcours des enregistrements
&&Recherche de tous les clients dont le code commence par C
&&La connexion ODBC est active et identifiée par la variable idCPTA
&&Syntaxe SQL
&&Construction de la requête SQL de sélection
&&Critères :
&& CT_Type = 0 > sélection des clients
&& CT_Num like ‘C%’ > Sélection des codes clients commençant par C
strSQL = "Select CT_Num, CT_Intitule From F_CompteT "
strSQL = strSQL "Where CT_Type = 0 And CT_Num Like ‘C%’ "
&&Exécution de la requête sur la source de données identifiée par idCPTA
&&Le résultat de la requête sera identifié par l’objet MyCursor
inrRep = SQLEXEC (idCPTA, strSQL, 'MyCursor')
IF intRep >=0 &&La requête a fonctionné
&&S’il existe des enregistrements dans l’objet MyCursor, le programme va parcourir
&&tous les enregistrements
IF USED ('MyCursor')
SCAN
&&Affichage des informations
? MyCursor.CT_NUM, MyCursor.CT_INTITULE
ENDSCAN
ENDIF
ELSE La requête a échoué
&&traitement de l’erreur
END IF
‘Exécution de la requête
7 Toujours à nul
Chaque fois que vous exécuterez une fonction d’accès à ODBC (connexion, exécution d’une
requête...), il faudra tester si la valeur retournée est négative (ou égal à 0 pour les fonctions de
connexion). Si oui, il faudra utiliser la fonction AERROR () afin de connaître l’origine du problème.
La commande ON ERROR Do MonProgramme ; ne peut pas être utilisée pour une erreur ODBC. Il
faut obligatoirement tester la valeur retournée par les fonctions.
Exemple
&&Exemple de récupération des erreurs ODBC
&&Interception d’une erreur de connexion et d’une erreur d’exécution de requête
&&Nous ne nous attarderons pas sur la méthode de connexion et d’exécution de requête
Introduction
Afin de standardiser la gestion des bases de données, Delphi utilise des alias, faisant référence à des
sources de données ou des bases de données. Il est donc nécessaire de créer ces alias avant de pouvoir
programmer. Pour se faire, il faut utiliser l’utilitaire de Configuration BDE.
Il faut donc, dans un premier temps, créer un nouveau pilote ODBC, à l’aide de cet utilitaire :
Dans le feuillet “ pilotes ”, cliquez sur “ Nouveau pilote ODBC ”.
Renseignez le nom de ce pilote, son type (Sage Gestion commerciale 100, Sage comptabilité
100...), ainsi que le nom de la source de données associé à ce pilote, car un pilote ne fait
référence qu’à une seule source de données.
Une fois ce Pilote créé, il ne reste plus qu’à lui associer un alias. Pour se faire, allez dans le feuillet
“ Alias ” et faites “ Nouvel Alias ”. Renseignez le nom de votre alias, ainsi que le nom du pilote à utiliser
(type de l’alias), avant de cliquer sur “ OK ”.
Remarques :
Le nom des pilotes ODBC commencent tous par “ ODBC_ ”.
A partir de la version 3.0 de Delphi, il n’est plus nécessaire de créer des Alias ; delphi est capable
d’attaquer en direct une source de données.
Quelque soit la base de données utilisée (ODBC ou autre), Delphi ne fait pas de différence ; toutes
les méthodes standard sont utilisables.
Connexion Déconnexion
Que vous utilisiez un objet TTable ou Tquery, la connexion sera réalisée au moment où vous utiliserez la
méthode Open pour l’objet TTable, ou au moment de l’emploi de la méthode ExecQuery (ou la propriété
Active à vrai) pour l’objet Tquery. Sous Delphi, il n’y a pas d’objet permettant d’identifier une connexion
à proprement dit, comme on pourrait le trouver dans les autres langages (ex : objet connexion comme
sous VB, ou ID de connexion comme sous Windev ou Visual FoxPro).
La déconnexion est réalisée à l’aide de la méthode Close. Cette méthode est utilisable par les deux
objets.
Lors de la première connexion à une source de données Sage, Delphi va afficher une boîte de
connexion. A priori, il n’est pas possible de renseigner le nom et le mot de passe à utiliser afin de ne
pas voir apparaître cette boîte de connexion.
Exemple
{Exemple d’ouverture de la table F_CompteT de la comptabilité}
{La source de données utilisée est ComptaC_Bijou}
{Le nom de l’objet TTable est TCompta}
{Avant toute manipulation sur l’objet TCompta, on s’assure que ce dernier n’est pas déjà connecté}
{Traitement Delphi}
{Fermeture de la table}
TCompta.Close;
L’utilisation de l’objet Tquery est traitée dans le chapitre cidessous.
Recherche d’enregistrements
Il existe plusieurs méthodes de recherche d’enregistrements. La plus adaptée est celle effectuée à l’aide
de l’objet Query. En effet, il suffit de lui indiquer à quel alias faire référence, ainsi que la requête à
exécuter. Cette méthode est la mieux adaptée car elle permet de lier des informations qui proviennent de
plusieurs tables. De plus, c’est le driver ODBC qui se charge de trouver l’index (ou les index) optimal pour
l’exécution de cette requête. Le résultat de cette dernière pourra être envoyé à un autre objet du type
DBGrid par exemple, via l’objet DataSource.
L’autre méthode de recherche (utilisée essentiellement pour une recherche avant mise à jour ou
suppression) est basée sur les méthodes Goto (GotoKey, GotoNearest etc...) ou Locate qui s’appliquent
aux objets de type TTable. Ces méthodes nécessitent l’utilisation des index de recherche des tables Sage
100 (ces index sont référencés pour chaque table dans le manuel décrivant la structure des bases Sage
100). L’index à utiliser sera renseigné, ainsi que la valeur des champs qui composent cet index. Cette
méthode vous permettra de vous placer sur l’enregistrement à modifier ou à supprimer, par exemple.
Vous trouverez cidessous un exemple de ces deux méthodes de recherche.
Var
strSQL : String ; {Varaible contenant la requête SQL de sélection}
strMessage : String ; {Message affiché à l’écran utilisé pour le parcours des enregistrements}
Begin
{Syntaxe SQL}
{Construction de la requête SQL de sélection}
{Critères :}
{ CT_Type = 0 > sélection des clients}
{ CT_Num like ‘C%’ > Sélection des codes clients commençant par C}
strSQL = ‘Select CT_Num, CT_Intitule From F_CompteT ‘
strSQL = strSQL ‘Where CT_Type = 0 And CT_Num Like ‘’C%’’ ‘
{Avant toute manipulation sur l’objet QClient, on s’assure que ce dernier n’est pas déjà connecté}
{à une source de données}
If QClient.Active Then QClient.Close;
{Renseigne le nom de la source de données > ComptaC_Bijou}
QClient.DatabaseName := ‘ComptaC_Bijou’;
{Supprimer la requête SQL précedente}
QClient.SQL.Clear;
{Affecte la requête SQL à l’objet TQuery}
QClient.SQL.Add (strSQL);
Var
strMessage : String ; {Message affiché à l’écran utilisé pour le parcours des enregistrements}
Begin
{Avant toute manipulation sur l’objet TCompta, on s’assure que ce dernier n’est pas déjà connecté}
{à une source de données}
If not TCompta.Active then TCompta.Close;
{affecte le nom de la source de données à utiliser}
TCompta.DatabaseName := 'ComptaC_Bijou';
{Nom de la table à ouvrir}
TCompta.TableName := 'F_COMPTET';
{Index à utiliser. L’index ICT_TYPE se compose des champs CT_Type et CT_Num. Il sera donc}
{nécessaire de les renseigner}
TCompta.IndexName := 'ICT_TYPE';
{Ouvre la table TCompta}
TCompta.Open;
{Indique que les valeurs des champs des index vont être renseignées}
TCompta.SetKey;
TCompta['CT_TYPE'] := 0;
TCompta['CT_NUM'] := '';
{Recherche l’enregistrement le plus proche}
TCompta.GotoNearest;
{Tant que l’on est pas à la fin de la table et que le type du Tiers est client (CT_Type = 0)}
While not TCompta.EOF And TCompta['CT_TYPE'] = 0 Do
Begin
{Affiche le code du client}
strMessage := TCompta['CT_NUM'];
MessageDlg (strMessage, mtInformation,[mbOk], 0);
{Passe à l’enregistrement suivant}
TCompta.Next;
End;
{Ferme la connexion de TCompta}
TCompta.Close ;
End ;
‘Exécution de la requête
{Avant toute manipulation sur l’objet QClient, on s’assure que ce dernier n’est pas déjà connecté}
{à une source de données}
If QUpdateQuery.Active Then QUpdateQuery.Close;
{Renseigne le nom de la source de données > ComptaC_Bijou}
QUpdateQuery.DatabaseName := ‘ComptaC_Bijou’;
{Supprimer la requête SQL précedente}
QUpdateQuery.SQL.Clear;
{Affecte la requête SQL à l’objet TQuery}
QUpdateQuery.SQL.Add (strSQL);
{Exécute la requête SQL d’écriture}
QUpdateQuery.ExecQuery.;
QUpdateQuery.Close ;
End :
Var
strSQL : String ; {Variable contenant la requête SQL de sélection}
Begin
{Avant toute manipulation sur l’objet TCompta, on s’assure que ce dernier n’est pas déjà connecté}
{à une source de données}
If not TCompta.Active then TCompta.Close;
{affecte le nom de la source de données à utiliser}
TCompta.DatabaseName := 'ComptaC_Bijou';
{Nom de la table à ouvrir}
TCompta.TableName := 'F_COMPTET';
{Index à utiliser. L’index ICT=TYPE se compose des champ CT_Type et CT_Num. Il sera donc}
{nécessaire de les renseigner}
TCompta.IndexName := 'ICT_TYPE';
{Ouvre la table TCompta}
TCompta.Open;
{Indique que les valeurs des champs des index vont être renseignées}
TCompta.SetKey;
TCompta['CT_TYPE'] := 0;
TCompta['CT_NUM'] := '';
{Recherche l’enregistrement le plus proche}
TCompta.GotoNearest;
{Tant que l’on est pas à la fin de la table et que le type du Tiers est client (CT_Type = 0)}
While not TCompta.EOF And TCompta['CT_TYPE'] = 0 Do
Begin
If Tcompte[‘CT_Ville’] = ‘Metz’ Then {Si la ville du client est Metz, alors}
{on effectue la modification}
Begin
{Modification du n° de représentant}
TCompta.Edit;
{Change le n° de représentant CO_No = 3}
TCompta[‘CO_NO']:= 3;
{Valide le changement à l’aide de la méthode Post}
TCompta.Post;
End ;
{Passe à l’enregistrement suivant}
TCompta.Next;
End;
{Ferme la connexion de TCompta}
TCompta.Close ;
End ;
Si aucune erreur ne s’est produite, le code gérant les exceptions (qui se trouve entre Except et End), ne
sera pas exécuté.
Plusieurs types d’erreurs peuvent se produire :
Les erreurs de connexion, d’ouverture de table, de champ spécifié non trouvé... Ces erreurs se
trouvent dans la classe EDatabaseError.
Les erreurs concernant les tests de cohérence et d’intégrité retournés par le driver ODBC. Ces
erreurs se trouvent dans la classe EDBEngineError.
Il existe d’autres types d’exception, mais ils ne seront pas traités ici, car ils ne concernent pas les erreurs
de connexion, où celles retournées par les drivers ODBC Sage.
Les méthodes de récupération des erreurs pour ces deux classes d’Objet sont différentes.
L'exception EDatabaseError est déclenchée lorqu'une erreur de base de données est détectée par un
composant. Elle ne contient qu’une seule erreur et pour obtenir son message d’erreur en clair, il faut
utiliser la méthode message.
Une exception de type EDBEngineErreur, est déclenchée lorsqu’une erreur BDE se produit. L’exception
contient deux propriétés public : Errors (TBDError) qui contient une liste de toute la pile des erreurs
retournées par le moteur de base de données Borland, et ErrorCount qui contient le nombre total
d’erreurs contenues dans la propriété Errors. Errors possède cinq propriétés public permettant de détailler
les erreurs (ErrorCode, Cotegory, SubCode, NativeError et Message).
Exemple
L’exemple suivant vous montre comment gérer les exceptions retournées par le driver ODBC Sage .
var
S :String;
i,j :Longint;
ErrSql:TDBError;
begin
try
{Code Delphi}
except
(* La suite du code n’est exécuté que si une exception s’est produite *)
On ErrEngine: EDBEngineError do (* Une erreur DBE s’est produite *)
begin
(* Une exception du type EDBEngineError est composée de plusieurs erreurs. *)
(* Il faut donc la parcourir afin de récupérer l’ensemble des erreurs *)
for i:=0 to ErrEngine.ErrorCount1
do begin
ErrSql:=ErrEngine.Errors[i];
j:=ErrSql.NativeError;
Str (j,s);
(* Affiche le n° de l’erreur retourné par le driver ODBC *)
MessageDlg ('Erreur n° ' s, mtInformation,[mbOk], 0);
(* Affiche le texte de l’erreur retourné par le driver ODBC *)
MessageDlg (ErrSql.message, mtInformation,[mbOk], 0);
end;
end;
On ErrDatabase: EDatabaseError do (* Erreur de base de données détectée *)
MessageDlg (ErrDatabase.message, mtInformation,[mbOk], 0);
else
MessageDlg ('Autre erreur', mtInformation,[mbOk], 0);
end;
end;
Introduction
Comme décrit dans les chapitres précédents.
Remarques :
Les fonctions avancées Sage ont un accès natif aux bases de données ; elles ne passent pas par le
driver ODBC.
Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la
base comptable.
Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée, via
ODBC, à la base comptable et à la base commerciale. Ceci est normalement toujours le cas car une
source de données de gestion commerciale utilise la base de comptabilité et la base de gestion
commerciale.
Il existe deux méthodes pour appeler ces fonctions :
La première consiste à l’appel de fonctions externes (API Sage). Ces fonctions se trouvent dans la
DLL CBODBC32.DLL. Cette méthode est utilisable par tous les logiciels 32 bits capables d’appeler
des fonctions externes.
La seconde consiste à l’emploi d’une DLL ActiveX (ASD100.DLL). Cette méthode est utilisable par
tous les logiciels 32 bits capables d’utiliser la technologie ActiveX.
API Sage
Pour utiliser ces fonctions, vous devez les déclarer, en faisant attention à la syntaxe de la fonction
(minuscule et majuscule). La librairie Sage se nomme CBODBC32.DLL. Les fonctions retournent un code
erreur (entier). Si ce code erreur vaut 0, alors le résultat de la fonction est correct, sinon le code retour
identifie l’erreur. L’erreur la plus fréquente est 2013 : dossier non ouvert. Cette erreur indique qu’il n’y a
pas de connexion ODBC aux bases Sage. Les fonctions évoluées ont plusieurs paramètres. L’information
que vous recherchez est toujours retournée par le dernier paramètre. Le format date est une chaîne de
caractère au format JJMMAA.
DLL ActiveX
Un composant ActiveX est une unité de code exécutable qui suit la spécification ActiveX dans le but de
fournir des objets. Ces objets sont utilisables par tous les logiciels de développement capables d’utiliser
cette technologie (Visual Basic 6.0, Delphi 3.0 etc...).
L’intérêt d’utiliser une DLL activeX pour les fonctions évoluées est multiple :
Manipulation d’un objet avec des propriétés
Plus besoin de déclarer l’ensemble des fonctions évoluées
Facilité d’utilisation
Possibilité d’utilisation dans Microsoft Visual Interdev pour développer des applications Intranet ou
Internet
Remarques
Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la
base comptable.
Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée, via
ODBC, à la base comptable et à la base commerciale.
Principe d’utilisation
La DLL ActiveX est ASD100.DLL (Active Sage Data 100). Cette DLL est stockée dans Windows\System32
(SysWOW64 sur environnement 64 bits). A l’intérieur de cette DLL sont stockées l’ensemble des fonctions
évoluées.
Cette DLL est composée de 4 objets :
CPTA : fonctions évoluées de comptabilité 100
CIAL : fonctions évoluées de gestion commerciale 100
FSAL : fonctions évoluées de la paie Maestria
PARAM : fonctions évoluées relatives aux pages paramètres et utilitaires
Chaque objet expose ses propriétés, qui sont les fonctions évoluées du driver Sage ODBC.
Contrairement aux fonctions évoluées qui retournent un code erreur, chaque propriété de l’objet retourne
le résultat. Le code erreur retourné par la fonction est récupérable par la propriété Erreur. De plus, le
format date n’est plus une chaîne de caractères, mais bel et bien un format date de l’application.
En Entrée
CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de compte
général
CT_Num (Chaîne Alphanumérique Maj. 17 caractères max.) : Numéro de compte tiers
JO_Num (Chaîne de caractères 6 caractères max.) : Code Journal
Deb (Date) : Date de début
Fin (Date) : Date de fin
En Sortie
Résultat de la fonction (Double) : Solde
CIALDocNouvPiece (DO_Type, DO_SOUCHE, [Résultat])
Retourne la valeur du nouveau numéro de pièce disponible en fonction de la souche.
En Entrée
DO_Type (Entier) : Type de document
DO_Souche (Entier) : Numéro de souche du document
En Sortie
Résultat de la fonction (Double) : Montant TTC en devise du document.
GetParamValeurDate (TypeBase, NomTable, NomChamp, [Résultat])
Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurDate
retourne la valeur en Date, du champ NomChamp, de la page paramètre NomTable, de la base de type
TypeBase.
Si la table NomTable est une table de type fichier (table commençant par F_), alors GetParamValeurDate
retourne la valeur en Date, du champ NomChamp, de la table NomTable, de la base de type TypeBase,
pour le dernier enregistrement écrit par ODBC (ajout ou modification).
C’est utile si on veut connaître les valeurs des champs de l’enregistrement que l’on vient de créer,
principalement des champs calculés ou mis à jour par le driver.
En Entrée
TypeBase (Chaîne de caractères) : Type de la base : CPTA (Base comptable), CIAL (Base commerciale),
FSAL (Base salarié), FPAR (Base paramètre)
NomTable (Chaîne de caractères) : Nom de la table de type paramètre (table commençant par P_)
NomChamp (Chaîne de caractères) : Nom du champ de la page paramètre.
En Sortie
Résultat de la fonction (Date) : Valeur du champ
Visual Basic
Avant de pouvoir utiliser une fonction avancée Sage, il faut que Visual basic soit connecté aux bases Sage.
Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la base
comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée,
via ODBC, à la base comptable et à la base commerciale.
La connexion aux bases ODBC peut être réalisée à l’aide de n’importe quelle méthode disponible à partir
de Visual Basic.
Pour les exemples suivants, on supposera que la connexion a déjà été réalisée.
API Sage
TotalMvtSolde ()
Déclaration
‘La fonction API Sage retourne un code erreur (c’est un entier).
‘Le dernier paramètre est un paramètre d’E/S. C’est un numérique (double). Il est donc passé par
référence.
‘N’oubliez pas de respecter les majuscules/minuscules
Declare Function TotalMvtSolde Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num As String, _
ByVal JO_Num As String, ByVal debut As String, ByVal fin As String, Resultat As Double) As Integer
Utilisation
Dim intCodeErr as Integer ‘Variable utilisée pour recueillir le code erreur de la fonction.
Dim dblResult as Double ‘Variable utilisée pour recueillir le résultat.
Déclaration
‘La fonction API Sage retourne un code erreur (c’est un entier).
‘Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (String). Il est donc
passé
‘par valeur.
‘N’oubliez pas de respecter les majuscules/minuscules
Declare Function CIALDocNouvPiece Lib "CBODBC32" (ByVal DO_Type As Integer, _
ByVal DO_Souche As Integer, ByVal Resultat As String) As Integer
Utilisation
Dim intCodeErr as Integer ‘Variable utilisée pour recueillir le code erreur de la fonction.
Dim strResult as String * 13 ‘Variable utilisée pour recueillir le résultat.
Déclaration
‘La fonction API Sage retourne un code erreur (c’est un entier).
‘Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (String). Il est donc
passé
‘par valeur.
‘N’oubliez pas de respecter les majuscules/minuscules
Declare Function GetParamValeurDate Lib "CBODBC32" (ByVal TypeBase As String, _
ByVal NomTable As String, ByVal NomChamp As String, ByVal ValChamp As String) As Integer
Utilisation
Dim intCodeErr as Integer ‘Variable utilisée pour recueillir le code erreur de la fonction.
Dim strResult as String * 7 ‘Variable utilisée pour recueillir le résultat.
DLL ActiveX
Pour utiliser la DLL ActiveX Sage sous Visual Basic, vous devez faire référence à “ ASD100 Type librairie
x.xx ”.
TotalMvtSolde ()
‘TotalMvtSolde est une fonction de la comptabilité. L’objet à utiliser est donc ASD100Lib.Cpta
‘La propriété à utiliser est TotalMvtSolde
Dim objCPTA As ASD100Lib.Cpta ‘Déclaration de l’objet Cpta
Dim dblResult as double ‘Variable utilisée pour recueillir le résultat.
‘Création de l’objet
Set objCPTA = New ASD100Lib.Cpta
‘Appel à la propriété TotalMvtSolde. Le résultat est stocké dans la variable dblResult.
‘ Compte général : 4010000
‘ Compte de Tiers : non précisé
‘ Code journal : ACH journal des achats
‘ Date de début de période : 01/01/1996
‘ Date de fin de période : 31/12/1996
dblResult = objCPTA.TotalMvtSolde ("4010000", "", "ACH", #1/1/96#, #12/31/96#)
If objCPTA.Erreur = 0 Then ‘Pas d’erreur
‘Affiche le résultat dans la fenêtre d’exécution
Debug.Print dblResult
Else ‘Une erreur est détectée
‘Affiche le code erreur
Debug.Print "Erreur n°", objCPTA.Erreur
End If
CIALDocNouvPiece ()
‘CIALDocNouvPiece est une fonction de la gestion commerciale. L’objet à utiliser est donc
ASD100Lib.Cial
‘La propriété à utiliser est DocNouvPiece
Dim objCIAL As ASD100Lib.Cial ‘Déclaration de l’objet Cial
Dim strResult as string ‘Variable utilisée pour recueillir le résultat.
‘Création de l’objet
Set objCIAL = New ASD100Lib.Cial
‘Appel à la propriété DocNouvPiece. Le résultat est stocké dans la variable strResult.
‘ Type de document : 1 BC de vente
‘ Souche : 0 N° de pièce pour Bijou SA
strResult = objCIAL.DocNouvPiece (1, 0)
If objCIAL.Erreur = 0 Then ‘Pas d’erreur
‘Affiche le résultat dans la fenêtre d’exécution
Debug.Print strResult
Else ‘Une erreur est détectée
‘Affiche le code erreur
Debug.Print "Erreur n°", objCIAL.Erreur
End If
GetParamValeurDate ()
‘GetParamValeurDate est une fonction concernant les tables paramètres (P_). L’objet à utiliser est
‘donc ASD100Lib.Param
‘La propriété à utiliser est GetParamValeurDate
Dim objParam As ASD100Lib.Param ‘Déclaration de l’objet Param
Dim dResult as Date ‘Variable utilisée pour recueillir le résultat.
‘Création de l’objet
Set objParam = New ASD100Lib.Param
‘Appel à la propriété GetParamValeurDate. Le résultat est stocké dans la variable dResult.
‘ Type de base : CPTA base comptable
‘ Nom de la table : P_DOSSIER
‘ Nom du champ : D_DebutExo01
dResult = objParam.GetParamValeurDate ("CPTA", "P_DOSSIER", "D_RaisonSoc")
If objParam.Erreur = 0 Then ‘Pas d’erreur
‘Affiche le résultat dans la fenêtre d’exécution
Debug.Print dResult
Else ‘Une erreur est détectée
‘Affiche le code erreur
Debug.Print "Erreur n°", objParam.Erreur
End If
WinDev
Avant de pouvoir utiliser une fonction avancée Sage, il faut que Windev soit connecté aux bases Sage.
Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la base
comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée,
via ODBC, à la base comptable et à la base commerciale.
Remarques :
Il est nécessaire de charger la librairie avant de pouvoir appeler les fonctions (Utilisation de la
fonction ChargeDLL).
La définition du passage de paramètre (par valeur ou par référence) se définit lors de l’exécution
de la fonction (utilisation du caractère &).
La librairie Sage 100 est une librairie 32 bits. Il est donc impératif d’utiliser la fonction AppelDll32
(Ne pas utiliser AppelDll ni AppelDllLong).
Pour les exemples suivants, on supposera que la connexion a déjà été réalisée.
API Sage
Il n’existe pas de déclaration de fonction proprement dit sous Windev. En effet, ce dernier charge la DLL
où se situent les fonctions (dans notre cas CBODBC32.DLL), avant d’appeler les fonctions.
Remarques :
Il est important de respecter les majuscules/minuscules lors de l’appel aux fonctions Sage
Il ne faut pas oublier de décharger la DLL après sont utilisation, sinon cette dernière restera en
mémoire.
TotalMvtSolde ()
Utilisation
dblResult est un réel double //Variable utilisée pour recueillir le résultat.
IdChargeDll est une entier long //Identifiant de la DLL Sage CBODBC32.DLL
IdAppelDLL est entier sans signe //Utilisé pour le retour de l’appel à la fonction Correspond
normalement au code
// erreur de la fonction Sage.
//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement le résultat
de l’appel de
// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera donc plus
difficile
//d’interpréter l’erreur Sage.
Utilisation
strResult est une Chaîne ASCIIZ sur 14 //Variable utilisée pour recueillir le résultat.
IdChargeDll est une entier long //Identifiant de la DLL Sage CBODBC32.DLL
IdAppelDLL est entier sans signe //Utilisé pour le retour de l’appel à la fonction Correspond
normalement au code
// erreur de la fonction Sage.
//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement le résultat
de l’appel de
// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera donc plus
difficile
//d’interpréter l’erreur Sage.
Utilisation
strResult est une Chaîne ASCIIZ sur 7 //Variable utilisée pour recueillir le résultat.
IdChargeDll est une entier long //Identifiant de la DLL Sage CBODBC32.DLL
IdAppelDLL est entier sans signe //Utilisé pour le retour de l’appel à la fonction Correspond
normalement au code
// erreur de la fonction Sage.
//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement le résultat
de l’appel de
// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera donc plus
difficile
//d’interpréter l’erreur Sage.
Info ( strResult)
SINON //Une erreur est détectée
//Affiche le code erreur
Info ( VersChaîne ( IdAppelDLL ))
FIN
//Décharge la librairie
DechargeDLL (IdChargeDLL)
DLL ActiveX
La version 4.1 de Windev ne supporte pas la technologie ActiveX. Il est donc impossible d’utiliser les
objets Sage de la DLL ActiveX ASD100 avec Windev.
Visual FoxPro
Avant de pouvoir utiliser une fonction avancée Sage, il faut que Visual FoxPro soit connecté aux bases
Sage. Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la
base comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être
connectée, via ODBC, à la base comptable et à la base commerciale.
Pour les exemples suivants, on supposera que la connexion a déjà été réalisée.
API Sage
TotalMvtSolde ()
Déclaration
&&La fonction API Sage retourne un code erreur (c’est un entier).
&&Le dernier paramètre est un paramètre d’E/S. C’est un numérique (double). Il est donc passé par
référence
&&> Utilisation du symbole @ pour indiquer que le paramètre peut varier. Ce caractère sera aussi
utilisé lors
&&de l’appel à la fonction
&&N’oubliez pas de respecter les majuscules/minuscules
DECLARE SHORT TotalMvtSolde IN CBODBC32 STRING CG_Num, STRING CT_Num, STRING JO_Num,
STRING debut, STRING fin, DOUBLE @Total
Utilisation
&&Appel de la fonction Sage
&& Compte général : 4010000
&& Compte de Tiers : non précisé
&& Code journal : ACH journal des achats
&& Date de début de période : 010196 01/01/1996
&& Date de fin de période : 311296 31/12/1996
intCodeerr = TotalMvtSolde ("4010000", "", "ACH", "010196", "311296", @dblResult)
IF intCodeErr = 0 &&Pas d’erreur
&&Affiche le résultat dans une boîte de dialogue
= MESSageBOX (STR (dblResult), 16, "")
ELSE ‘Une erreur est détectée
‘Affiche le code erreur
Déclaration
&&La fonction API Sage retourne un code erreur (c’est un entier).
&&Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (String). Il est donc
passé
&&par valeur > le caractère @ ne sera pas utilisé pour la déclaration. Par contre, il sera utilisé lors
de l’appel de
&&la fonction Sage
&&N’oubliez pas de respecter les majuscules/minuscules
DECLARE SHORT CIALDocNouvPiece IN CBODBC32 INTEGER DO_Type, INTEGER DO_Souche,
STRING Resultat
Utilisation
&&‘Initialisation de la variable strResult
strResult = SPACE (13)
&&Appel de la fonction Sage
&& Type de document : 1 BC de vente
&& Souche : 0 N° de pièce pour Bijou SA
intCodeerr = CIALDocNouvPiece (1, 0, @strResult)
IF intCodeErr = 0 &&Pas d’erreur
&&Affiche le résultat dans une boîte de dialogue
= MESSageBOX (strResult, 16, "")
ELSE ‘Une erreur est détectée
‘Affiche le code erreur
= MESSageBOX (STR (intCodeErr), 16, "")
ENDIF
GetParamValeurDate ()
Déclaration
&&La fonction API Sage retourne un code erreur (c’est un entier).
&&Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (String). Il est donc
passé
&&par valeur > le caractère @ ne sera pas utilisé pour la déclaration. Par contre, il sera utilisé lors
de l’appel de
&&la fonction Sage
&&N’oubliez pas de respecter les majuscules/minuscules
DECLARE SHORT GetParamValeurDate IN CBODBC32 STRING TypeBase, STRING NomTable,
STRING NomChamp, STRING ValChamp
Utilisation
&&Initialisation de la variable strResult
strResult = SPACE (7)
&&Appel de la fonction Sage
Delphi
Avant de pouvoir utiliser une fonction avancée Sage, il faut que Delphi soit connecté aux bases Sage. Pour
utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à la base
comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée,
via ODBC, à la base comptable et à la base commerciale.
Pour les exemples suivants, on supposera que la connexion a déjà été réalisée.
API Sage
TotalMvtSolde ()
Déclaration
{La fonction API Sage retourne un code erreur (c’est un entier).}
{Le dernier paramètre est un paramètre d’E/S. C’est un numérique (double). Il est donc passé par
référence}
{> utilisation du paramètre Var}
{N’oubliez pas de respecter les majuscules/minuscules}
Function TotalMvtSolde (CG_Num:Pchar; CT_Num:Pchar; JO_Num:Pchar; Debut:Pchar; Fin:Pchar;
Var Total:Double): smallInt; stdcall; external 'cbodbc32.dll';
Utilisation
intCodeErr : Integer ; {Variable utilisée pour recueillir le code erreur de la fonction.}
dblResult : Double ; {Variable utilisée pour recueillir le résultat.}
strResult : String ; {Variable utilisée pour l’affichge du résultat}
Déclaration
{La fonction API Sage retourne un code erreur (c’est un entier).}
{Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (PChar). Il est donc
passé}
{par valeur > pas d’utilisation de l’instruction Var.}
{N’oubliez pas de respecter les majuscules/minuscules}
Function CIALDocNouvPiece (DO_Type: Integer; DO_Souche: Integer; Resultat: Pchar)
:smallInt; stdcall; external 'cbodbc32.dll';
Utilisation
intCodeErr : Integer ; ‘Variable utilisée pour recueillir le code erreur de la fonction.
StrResult : Pchar ; ‘Variable utilisée pour recueillir le résultat.
Begin
{Conversion du code erreur en chaîne}
Str (intCodeErr, strResult);
{Affiche le code erreur dans une boîte de dialogue}
MessageDlg (strResult, mtInformation,[mbOk], 0);
End ;
GetParamValeurDate ()
Déclaration
‘La fonction API Sage retourne un code erreur (c’est un entier).
{Le dernier paramètre est un paramètre d’E/S. C’est une chaîne de caractères (PChar). Il est donc
passé}
{par valeur > pas d’utilisation de l’instruction Var.}
‘N’oubliez pas de respecter les majuscules/minuscules
Function GetParamValeurDate (TypeBase: PChar; NomTable: PChar; NomChamp: PChar;
ValChamp: PChar):smallInt;stdcall;external 'cbodbc32.dll';
Utilisation
intCodeErr : Integer ; ‘Variable utilisée pour recueillir le code erreur de la fonction.
StrResult : Pchar ; ‘Variable utilisée pour recueillir le résultat.
DLL ActiveX
Pour utiliser la DLL ActiveX sous Delphi, vous devez utiliser l’unité OleAuto.dcu. Cette dernière à besoin
que les unités suivantes soient présentes : ole2.dcu et olectl.dcu.
TotalMvtSolde ()
//TotalMvtSolde est une fonction de la comptabilité. L’objet à utiliser est donc ASD100Lib.Cpta
//La propriété à utiliser est TotalMvtSolde
objCPTA : Variant ;//Déclaration de l’objet Cpta
dblResult : Double ; //Variable utilisée pour recueillir le résultat.
//Création de l’objet
objCPTA :=CreateOleObject ('ASD100.Cpta');
//Appel à la propriété TotalMvtSolde. Le résultat est stocké dans la variable dblResult.
// Compte général : 4010000
// Compte de Tiers : non précisé
// Code journal : ACH journal des achats
// Date de début de période : 01/01/1996
// Date de fin de période : 31/12/1996
dblResult := objCPTA.TotalMvtSolde (‘4010000’, ‘’, ‘ACH’, StrToDate (‘01/01/1996’), StrToDate
(‘31/12/1996’)) ;
If objCPTA.Erreur = 0 Then //Pas d’erreur
begin
{Conversion d’une double en chaîne}
Str (dblResult:12:2, strResult);
{Affiche le résultat dans une boîte de dialogue}
MessageDlg (strResult, mtInformation,[mbOk], 0);
End ;
Else {Une erreur est détectée}
Begin
{Conversion du code erreur en chaîne}
Str (intCodeErr, strResult);
{Affiche le code erreur dans une boîte de dialogue}
MessageDlg (strResult, mtInformation,[mbOk], 0);
End ;
CIALDocNouvPiece ()
//CIALDocNouvPiece est une fonction de la gestion commerciale. L’objet à utiliser est donc
ASD100Lib.Cial
//La propriété à utiliser est DocNouvPiece
objCIAL : Variantl ; //Déclaration de l’objet Cial
strResult : String ; //Variable utilisée pour recueillir le résultat.
//Création de l’objet
objCIAL :=CreateOleObject ('ASD100.Cial');
‘Appel à la propriété DocNouvPiece. Le résultat est stocké dans la variable strResult.
‘Création de l’objet
objParam :=CreateOleObject ('ASD100.Cial');
‘Appel à la propriété GetParamValeurDate. Le résultat est stocké dans la variable dResult.
‘ Type de base : CPTA base comptable
‘ Nom de la table : P_DOSSIER
‘ Nom du champ : D_DebutExo01
dResult := objParam.GetParamValeurDate ("CPTA", "P_DOSSIER", "D_RaisonSoc")
If objParam.Erreur = 0 Then //Pas d’erreur
begin
{Conversion d’une date en chaîne}
Str (dResult, strResult);
{Affiche le résultat dans une boîte de dialogue}
MessageDlg (strResult, mtInformation,[mbOk], 0);
End ;
Else {Une erreur est détectée}
Begin
{Conversion du code erreur en chaîne}
Str (intCodeErr, strResult);
{Affiche le code erreur dans une boîte de dialogue}
MessageDlg (strResult, mtInformation,[mbOk], 0);
End ;
Evolution
La documentation correspond à la version référencée. Entre deux versions, des mises à jour du logiciel peuvent être
opérées sans modification de la documentation. Toutefois, un additif peut être joint à la documentation existante
pour présenter les modifications et améliorations apportées à ces mises à jour.
Les noms de produits ou de sociétés, toute image, logo ou représentation visuelle mentionnés dans ce document
ne son utilisés que dans un but d’identification et peuvent constituer des marques déposées par leurs propriétaires
respectifs.