Kit ODBC 100. Version Référence

Dimension: px
Commencer à balayer dès la page:

Download "Kit ODBC 100. Version 12.00. Référence"

Transcription

1 Kit ODBC 100 Version Référence

2 COMPOSITION DU PROGICIEL PROPRIETE & USAGE CONFORMITE & MISE EN GARDE EVOLUTION LA FICHE SUGGESTION MARQUES Votre progiciel est composé d'un boîtier de rangement comprenant : le CD-ROM sur lequel est enregistré le programme, la documentation correspondante Tout usage, représentation ou reproduction intégral ou partiel, fait sans le consentement de Sage France est illicite (Loi du 11 Mars Loi du 3 Juillet 1985). Ils constitueraient une contrefaçon sanctionnée par les articles 425 et suivants du Code Pénal. Tous droits réservés dans tous pays. Logiciel original développé par Sage France. Documentation Sage France. Toute utilisation, à quelque titre que ce soit, non autorisée dans le cadre de la convention de licence, est strictement interdite sous peine de sanctions pénales (Loi du 3 Juillet 1985, Art. 46). Compte tenu des contraintes inhérentes à la présentation sous forme papier, les spécifications visées dans la présente documentation constituent une illustration aussi proche que possible des spécifications. Il appartient au client, parallèlement à la documentation, de mettre en œuvre le progiciel pour permettre de mesurer exactement l'adéquation de ses besoins aux fonctionnalités. Il est important, pour une utilisation sûre et opérationnelle du progiciel, de lire préalablement la documentation. 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. Sage France recherche une constante amélioration du progiciel et de sa documentation. Nous invitons notre clientèle à nous faire parvenir ses suggestions et les éventuels défauts ou erreurs qu'elle pourrait relever sur la fiche suggestion figurant en dernière page du manuel. Ligne 30 est une marque déposée appartenant à Sage France. Ligne 100 est une marque déposée appartenant à Sage France. Ligne 500 est une marque déposée appartenant à Sage France. Windows 2000, Windows 98, Windows 95, Windows, MS-DOS sont des marques déposées de Microsoft Corporation. Macintosh, MAC/OS est une marque déposée de Apple Computer Inc.

3 Sommaire général Sommaire Chapitre 1 Généralités sur le programme 1 Définition d ODBC 2 Principe de fonctionnement 2 Compatibilité avec les bases de la ligne 100 Windows 3 Principe d utilisation dans les applications 4 Contenu du Kit ODBC Base de Données : ACC2000EX.MDB de Microsoft ACCESS... 5 Base de Données: ODBCNEW2000.MDB de Microsoft ACCESS... 5 Exemple d utilisation du Driver ODBC 100 avec Excel et Visual Basic (ExExc2000.XLS)... 5 Bases Bijou... 5 Exemple sur Crystal Report version 8 : COMPTET.RPT... 5 Fichier texte : t_descri.txt... 5 Fichier texte : fonction.txt... 6 Fichier texte : erreurs.txt... 6 Fichier ActiveX.Txt... 6 Sources de données 7 Définition... 7 Comptabilité Gestion Commerciale Immobilisations Manager Moyen de Paiement Paie Windows Types de Sources de Données... 9 Utilisateur...9 Système...9 Fichier...9 Création d une source de données Sage Création d une DSN de type fichier...14 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 15 Les fonctions avancées Sage 16 Introduction générale Description des fonctions de l API Sage Introduction...17 Description des fonctions avancées de la comptabilité TotalMvtDebit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat)...18 TotalMvtCredit (CG_Num, CT_Num, JO_Num, Deb, Fin, Credit)...18 I Sage France

4 Sommaire général TotalMvtSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) TotalDevDebit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) TotalDevCredit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) TotalDevSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) TotalRepDebit (CR_Num, JO_Num, Deb, Fin, Resultat) TotalRepCredit (CR_Num, JO_Num, Deb, Fin, Resultat) TotalRepSolde (CR_Num, JO_Num, Deb, Fin, Resultat) TotalRepDevDebit (CR_Num, JO_Num, Deb, Fin, Resultat) TotalRepDevCredit (CR_Num, JO_Num, Deb, Fin, Resultat) TotalRepDevSolde (CR_Num, JO_Num, Deb, Fin, Resultat) RealisationBudg (BD_Num, Deb, Fin, Resultat) JournalNouvPiece (JO_Num, JM_Date, Resultat ) Description des fonctions avancées de la Gestion Commerciale CIALLigneMontantHT (DL_No, Resultat) CIALLigneMontantTTC (DL_NO, RESULTAT) CIALLigneRemiseGlobal (DL_NO, RESULTAT) CIALLignePrixUNet (DL_NO, RESULTAT) CIALLignePrixUNetTTC (DL_NO, RESULTAT) CIALLignePrixUNetDevise (DL_NO, RESULTAT) CIALLigneMontantTaxes (DL_NO, RESULTAT)...29 CIALLigneMontantHTSigne (DL_NO, RESULTAT)...29 CIALLigneMontantTTCSigne (DL_NO, RESULTAT)...29 CIALLigneMontantQteSigne (DL_NO, RESULTAT)...30 Algorithme de calcul des quantités signées...30 CIALDocTotalHT (DO_Type, DO_Piece, Résultat)...32 CIALDocEscompte (DO_TYPE, DO_PIECE, RESULTAT)...32 CIALDocTotalHTNet (DO_TYPE, DO_PIECE, RESULTAT)...32 CIALDocBaseTaxes (DO_Type, DO_Piece, Ntaxe)...33 CIALDocMontantTaxes (DO_Type, DO_Piece, Ntaxe)...33 CIALDocMontantTotalTaxes (DO_TYPE, DO_PIECE, RESULTAT)...33 CIALDocTotalTTC (DO_TYPE, DO_PIECE, RESULTAT)...34 CIALDocTotalPrixRevient (DO_TYPE, DO_PIECE, RESULTAT)...34 CIALDocTotalMarge (DO_TYPE, DO_PIECE, RESULTAT)...34 CIALDocNetaPayer (DO_TYPE, DO_PIECE, RESULTAT)...35 CIALDocMontantEcheance (DO_TYPE, DO_PIECE, RESULTAT)...35 CIALDocPoidsNet (DO_TYPE, DO_PIECE, RESULTAT)...35 CIALDocPoidsBrut (DO_TYPE, DO_PIECE, RESULTAT)...36 CIALDocQuantites (DO_TYPE, DO_PIECE, RESULTAT)...36 II Sage France

5 Sommaire général CIALDocQtesColisee (DO_TYPE, DO_PIECE, RESULTAT) CIALDocTotalHTDev (DO_TYPE, DO_PIECE, RESULTAT) CIALDocEscompteDev (DO_TYPE, DO_PIECE, RESULTAT) CIALDocTotalHTNetDev (DO_TYPE, DO_PIECE, RESULTAT) CIALDocMontantTaxesDev (DO_Type, DO_Piece, Ntaxe, RESULTAT) CIALDocMontantTotalTaxesDev (DO_TYPE, DO_PIECE, RESULTAT) CIALDocTotalTTCDev (DO_TYPE, DO_PIECE, RESULTAT) CIALDocNouvPiece (DO_Type, DO_SOUCHE, RESULTAT) CIALTiersCAHTBrut (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersCAHTNet (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersCATTC (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersPrixRevient (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersQuantites (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersQtesColisee (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersPoidsNet (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersPoidsBrut (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersMarge (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersRemise (CT_Num, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) CIALTiersSolde(CT_NUM, Résultat) CIALTiersEchus1(CT_NUM, RESULTAT)...45 CIALTiersEchus2(CT_NUM, RESULTAT)...45 CIALTiersEchus3(CT_NUM, RESULTAT)...46 CIALTiersNonEchus(CT_NUM, RESULTAT)...46 CIALTiersDepassement1(CT_NUM, RESULTAT)...46 CIALTiersDepassement2(CT_NUM, RESULTAT)...47 CIALTiersBLFA(CT_NUM, RESULTAT)...47 CIALTiersRisque(CT_NUM, RESULTAT)...47 CIALTiersBC(CT_NUM, RESULTAT)...48 CIALTiersFact(CT_NUM, RESULTAT)...48 CIALTiersRegl(CT_NUM, RESULTAT)...48 CIALArtCAHTBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...49 CIALArtCAHTNet (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...49 CIALArtCATTC (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...50 CIALArtRemise (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...51 CIALArtPrixRevient (AR_R ef, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 51 CIALArtMarge (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...52 CIALArtQuantites (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...53 CIALArtQtesColisee (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...53 III Sage France

6 Sommaire général CIALArtPoidsNet (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALArtPoidsBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALArtMarge (AR_REF, CT_NumA, CT_NumDe, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALArtCompteA (AR_Ref, Domaine, CatCompta, Résultat) CIALArtCompteG (AR_Ref, Domaine, CatCompta, Résultat) CIALArtTaxe1 (AR_Ref, Domaine, CatCompta, Taxe1) CIALArtTaxe2 (AR_Ref, Domaine, CatCompta, Résultat) CIALArtTaxe3 (AR_Ref, Domaine, CatCompta, Résultat) CIALArtPrixCat (AR_Ref, CatTarif, AG_No1, Ag_No2, Résultat) CIALArtCoefCat (AR_Ref, CatTarif, Résultat) CIALArtPrixClient (AR_Ref, CT_Num, CatTarif, AG_No1, AG_No2, Résultat) CIALArtCoefClient (AR_Ref, CatTarif, Résultat) CIALArtPrixFourniss(AR_Ref, CT_NUM,AG_NO1, AG_NO2, Résultat) CIALFamCAHTBrut (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALFamCAHTNet (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALFamCATTC (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALFamRemise (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...62 CIALFamPrixRevient (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...63 CIALFamMarge (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...64 CIALFamQuantites (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...64 CIALFamQtesColisee (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...65 CIALFamPoidsNet (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...66 CIALFamPoidsBrut (Fa_CodeFamille, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...66 CIALRepCAHTBrut (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...67 CIALRepCAHTNet (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...68 CIALRepCATTC (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat)...69 CIALRepRemise (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, IV Sage France

7 Sommaire général Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepPrixRevient (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepMarge (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepQuantites (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepQtesColisee (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepPoidsNet (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALRepPoidsBrut (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) CIALStockVal(DE_No, AR_REF, AG_NO1,AG_NO2, Date, Résultat) CIALStockQte(DE_No, AR_REF, AG_NO1,AG_NO2, Date, Résultat) GetParamValeurStr (TypeBase, NomTable, NomChamp, Résultat) GetParamValeurDbl (TypeBase, NomTable, NomChamp, Résultat) GetParamValeurEnt (TypeBase, NomTable, NomChamp, Résultat)...79 GetParamValeurDate (TypeBase, NomTable, NomChamp, Résultat)...79 GetParamReplication (TypeBase, Résultat)...80 GetParamType (TypeBase, Fichier, Field, Résultat)...80 Description des fonctions avancées de la Paie Maestria Windows FSalCumul (SA_Num, RB_Num, Debut, Fin, Résultat)...82 FSALCumulbase (SA_Num, RB_Num, Debut, Fin, Résultat)...82 FSALCumulCotPat (SA_Num, RB_Num, Debut, Fin, Résultat)...83 FSALCumulRes (SA_Num, RB_Num, Debut, Fin, Résultat)...83 FSALCumulTaux (SA_Num, RB_Num, Debut, Fin, Résultat)...84 FSALCumulTauxPat (SA_Num, RB_Num, Debut, Fin, Résultat)...84 Description des objets de l ActiveX Sage 85 Introduction Principe d utilisation de L ActiveX Sage Exemple de Propriétés de l objet CPTA (base comptable) TotalMvtDebit (CG_Num, CT_Num, JO_Num, Deb, Fin)...87 Exemple de propriétés de l objet CIAL (Gestion Commerciale) LigneMontantHT (DL_NO)...88 V Sage France

8 Sommaire général TiersCAHTBrut (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA) Propriétés de l objet Param (pages paramètres) GetParamValeurStr (TypeBase, NomTable, NomChamp) Propriétés de l objet Fsal (la paie Maestria Windows) FSalCumul (SA_Num, RB_Num, Debut, Fin) Chapitre 3 Description des exemples fournis avec le Kit ODBC 91 Base Exemple ACC2000EX.MDB sous Microsoft Access Introduction Contenu de la base ACC2000EX.MDB Visualisation de tous les Champs des tables de la Base Etat : Annuaire Client Etat : Palmarès Client Etat : Grand Livre Tiers Etat : Distribution Analytique Etat : balance des comptes Etat : Mouvements articles Etat : tarifs par catégorie tarifaire Exemple d écriture dans un journal Exemple d écriture dans un Document de vente Utilisation des fonctions avancées de Comptabilité et de Gestion Commerciale Exemple de génération automatique de documents en gestion commerciale...94 Exemple de génération automatique d articles...95 Exemple de génération automatique d écritures comptables...95 Base de Données ODBCNEW2000.MDB sous Microsoft Access Contenu de la base de données Utilisation des formulaires fournis Aide à la création de requêtes et états...97 Visualisation des champs de toutes les tables de votre base...97 Fichier Exemple Exc2000odbc.xls sous Microsoft Excel Contenu de cet exemple...98 Etat CompteT.rpt sous Crystal Reports Contenu de cet exemple...98 Annexe 1 Rappel sur le langage SQL 99 Remarques générales 100 Ajout d un enregistrement Modification d enregistrements Suppression d Enregistrements Exemples de requêtes Exemple VI Sage France

9 Sommaire général Exemple Exemple Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne Grammaire SQL supportée par le driver 104 Fonctions de la grammaire ODBC supportées par le driver Sage Ligne Fonctions sur les chaînes de caractères CONCAT (Chaîne1, Chaîne2) LENGTH (CHAINE) RIGHT (CHAINE, NB) UCASE (CHAINE) LCASE (CHAINE) LOCATE (CHAINE1, CHAINE2, [START]) RTRIM (CHAINE) LEFT (CHAINE, NB) LTRIM (CHAINE) SUBSTRING (CHAINE, DEBUT, LONG) MOD (ENTIER1, ENTIER2) Fonctions sur les dates CURDATE () DAYOFMONTH (DATE) MONTH (DATE) CURTIME () DAYOFWEEK (DATE) YEAR (DATE) Fonctions système DATABASE () USER () Annexe 3 Conseils d optimisation 112 Les éléments perturbants 113 Annexe 4 Les codes erreurs Sage 114 Description des erreurs générales CBASE 115 Description des codes erreurs des fonctions évoluées 117 Erreurs en écriture dans les différentes applications 121 Annexe 5 Les erreurs les plus fréquentes 178 Avant propos 179 Mauvaise version de fichier Erreur Sage 5002 obtenue au moment de l exécution d une requête d écriture Refus d'autorisation erreur Sage 1807 obtenue au moment de l exécution d une requête d écriture VII Sage France

10 Sommaire général Domaine de validité du champ incorrect, veuillez vous référer à la documentation Annexe 6 Utilisation d ODBC avec Visual Basic 181 Introduction 182 Les ADO Connexion Déconnexion Recherche d enregistrements Ecriture dans les bases Récupération des erreurs Les DAO Connexion Déconnexion Recherche d enregistrements Ecriture dans les bases Récupération des erreurs Annexe 7 Utilisation d ODBC avec Windev 201 Introduction 202 Connexion Déconnexion Recherche d enregistrements 204 Ecriture dans les bases 206 Récupération des erreurs Syntaxe de la procédure SQLInfoGene Fonctions disponibles Annexe 8 Utilisation d ODBC avec Visual FoxPro 211 Introduction 212 Les vues distantes Programmation en Visual FoxPro Connexion Déconnexion Recherche d enregistrements Ecriture dans les bases Récupération des erreurs Annexe 9 Utilisation d ODBC avec Delphi 221 Introduction 222 Connexion Déconnexion 223 Recherche d enregistrements 224 Utilisation de l objet TQuery Utilisation de l objet TTable Ecriture dans les bases 229 Utilisation de l objet TQuery Utilisation de l objet TTable Récupération des erreurs 234 VIII Sage France

11 Sommaire général Annexe 10 Utilisation des fonctions avancées Sage 237 Introduction 238 API Sage DLL ActiveX Principe d utilisation Descriptif des fonctions utilisées dans les exemples TotalMvtSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, [Résultat] ) CIALDocNouvPiece (DO_Type, DO_SOUCHE, [Résultat] ) GetParamValeurDate (TypeBase, NomTable, NomChamp, [Résultat] ) Visual Basic 242 API Sage TotalMvtSolde () CIALDocNouvPiece () GetParamValeurDate () DLL ActiveX TotalMvtSolde () CIALDocNouvPiece () GetParamValeurDate () GetParamValeurDate () DLL ActiveX Visual FoxPro 253 API Sage TotalMvtSolde () CIALDocNouvPiece () GetParamValeurDate () DLL ActiveX Déclaration des fonctions avancées Sage Delphi 257 API Sage TotalMvtSolde () CIALDocNouvPiece () GetParamValeurDate () DLL ActiveX TotalMvtSolde () CIALDocNouvPiece () GetParamValeurDate () Déclaration des fonctions avancées Sage Déclaration des fonctions avancées Sage WinDev 248 API Sage TotalMvtSolde () CIALDocNouvPiece () IX Sage France

12 Chapitre 1 Généralités sur le programme Définition d ODBC 2 Principe de fonctionnement 2 Compatibilité avec les bases de la ligne 100 Windows 3 Principe d utilisation dans les applications 4 Contenu du Kit ODBC Sources de données 7 Définition 7 Types de Sources de Données 9 Création d une source de données Sage 11 1

13 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. 2

14 Chapitre 1 Généralités sur le programme Compatibilité avec les bases de la ligne 100 Windows Avec Sage Kit ODBC 100, vous pouvez accéder aux bases (fichier physique) des principaux produits de la ligne 100 propriétaire, à savoir : Comptabilité 100, Gestion Commerciale 100, Saisie de Caisse Décentralisée 100 Immobilisations 100 Moyen de paiement 100 Manager 100 Paie Windows 100 La plupart des tables sont en lecture/écriture. Vous trouverez plus avant le détail de chaque table en lecture et écriture. 3

15 Chapitre 1 Généralités sur le programme Principe d utilisation dans les applications Chaque application compatible ODBC peut se connecter aux bases de la ligne 100 Windows. Les applications compatibles ODBC testées sont décrites en Annexe de ce guide. Le principe est en fait le même pour chaque application. On se connecte à une source de données qui permet d accéder aux données que l on désire via des requêtes SQL. Les données peuvent être alors lues à partir d un système de gestion de bases de données comme Microsoft Access ou de générateurs de requêtes comme Query de Microsoft Excel qui utilisent le gestionnaire ODBC. Vous pouvez ainsi générer dans Microsoft Access vos propres modèles d impression en sélectionnant les données dont vous avez réellement besoin et en les présentant sous la forme de formulaires ou d états que vous paramétrez très facilement. De plus, il vous est possible avec Microsoft Excel par l intermédiaire de Microsoft Query, de créer des graphiques complexes avec vos données de gestion. Pour l écriture dans les bases de la ligne 100 Windows, des explications et des exemples sont fournis dans ce guide. Néanmoins, pour l écriture, il vaut mieux utiliser un outil de développement comme par exemple Visual basic ou Delphi pour pouvoir gérer les différents cas possibles d erreurs. Ces erreurs sont gérées par le driver. Si par exemple vous détruisez un compte alors qu il y a des écritures associées, le driver renverra une erreur et ne créera pas le compte. Il faudra intercepter cette erreur et en fonction du type de l erreur agir en conséquence. 4

16 Chapitre 1 Généralités sur le programme Contenu du Kit ODBC 100 Base de Données : ACC2000EX.MDB de Microsoft ACCESS La base de données ACC2000EX.MDB fournie avec le kit, vous permet de vous familiariser avec la structure des Fichiers ligne 100 via ODBC (en l occurrence pour l exemple fourni, ceux de la Comptabilité 100, la Gestion commerciale 100) et vous montre au travers de certains Formulaires et Etats ce que l on peut faire réellement avec ODBC au travers notamment d exemples d écriture dans les bases Sage. Base de Données: ODBCNEW2000.MDB de Microsoft ACCESS Cette base de données contient plusieurs formulaires déjà fournis dans la base de données exemple ACC2000EX.MDB. Vous pouvez toutefois, vous en servir si vous créez votre propre base avec des attaches de tables du Kit ODBC 100. Le premier formulaire vous permet de créer automatiquement les jointures entre les tables, le deuxième vous montre les champs de toutes les tables de votre base et le troisième vous permet de créer le descriptif de chaque champ des tables ODBC. Exemple d utilisation du Driver ODBC 100 avec Excel et Visual Basic (ExExc2000.XLS) Ce classeur vous présente des exemples de connexion à ODBC avec Microsoft Excel via Visual Basic. 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 8 : 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. 5

17 Chapitre 1 Généralités sur le programme 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 la ligne 100 Windows. Fichier ActiveX.Txt Description de l ensemble des objets de l activex ASD100.Dll avec leurs propriétés et méthodes. 6

18 Chapitre 1 Généralités sur le programme 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 Ligne 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) 7

19 Chapitre 1 Généralités sur le programme Manager 100 Driver : Sage Manager 100 Fichiers physiques : fichier bibliothèque (*.CHP) fichier annexe (*.CHL) Moyen de Paiement 100 Driver : Sage Moyen de Paiement 100 Fichiers physiques : Fichier moyens de paiement (*.MDP) fichier comptable (*.MAE) Paie Windows 100 Driver : Sage Paie 100 Fichier physique : fichier paie (*.PRH) 8

20 Chapitre 1 Généralités sur le programme Types de Sources de Données Il existe 3 types de sources de données : Utilisateur, Système, Fichier. Utilisateur Une source de données de type «Utilisateur» n est visible que par l utilisateur connecté sur sa machine et uniquement sur celle-ci. Un utilisateur connecté sur un poste Windows NT sous le login «DUPONT» ne verra donc que les sources de données que celui-ci a créées sur cette machine. Système Une source de données de type «Système» est visible par tous les utilisateurs connectés sur sa machine et uniquement sur celle-ci. Un utilisateur connecté sur un poste Windows NT sous le login «DUPONT» verra donc toutes les sources de données créées sur cette machine. 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 Param_Bijou.dsn Immo_Bijou.dsn PaieP_Essai.dsn 9

21 Chapitre 1 Généralités sur le programme 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. 10

22 Chapitre 1 Généralités sur le programme Création d une source de données Sage La création d une source de données Sage s effectue via l administrateur ODBC 32 bits du Panneau de configuration. Ci-dessous est explicité un exemple de création d une source de données Utilisateur de type «Gestion commerciale 100» : GestCom_Ligne Cliquez sur l icône «ODBC 32 bits» sous Windows 95 ou 98, ou sur «Sources de données (ODBC)» dans «Outils d administration» sous Windows NT 4, 2000 ou XP. 11

23 Chapitre 1 Généralités sur le programme 2. Cliquez sur le bouton Ajouter. 3. Cliquez sur le bouton Terminer. 4. Sélectionnez dans la fenêtre «Installation CBase», les fichiers respectivement de comptabilité et de gestion commerciale (*.GCM) et (*.MAE). 12

24 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_Ligne100 vous verrez alors à la fois les tables de gestion commerciale et de comptabilité, comme ci-dessous. 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. 13

25 Création d une DSN de type fichier Automatiquement à la création de DSN utilisateur ou DSN système Lorsque vous créez des sources utilisateurs ou systèmes, une source de données de type fichier (File DSN) est automatiquement créée avec le nom de la source de données utilisateur ou système avec l extension.dsn. 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. Intérêt de ce type de sources de données Certains programmes, comme Microsoft Query, demandent exclusivement des sources de données de type fichier (File DSN). Le seul moyen pour que cela fonctionne avec ce logiciel est de créer auparavant des File DSN, comme ci-dessus, soit manuellement, soit automatiquement. Vous pourrez ensuite avoir accès à cette source de données dans Microsoft Query et l utiliser, comme toute autre source de données. 14

26 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Les fonctions avancées Sage 16 Introduction générale 16 Description des fonctions de l API Sage 17 Description des fonctions avancées de la comptabilité 18 Description des fonctions avancées de la Gestion Commerciale 27 Description des fonctions avancées de la Paie Maestria Windows 82 Description des objets de l ActiveX Sage 85 Introduction 85 Principe d utilisation de L ActiveX Sage 86 Exemple de Propriétés de l objet CPTA (base comptable) 87 Exemple de propriétés de l objet CIAL (Gestion Commerciale) 88 Propriétés de l objet Param (pages paramètres) 89 Propriétés de l objet Fsal (la paie Maestria Windows) 90 15

27 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Les fonctions avancées Sage Introduction générale Vous avez accès dans Sage ODBC 100 à 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. 16

28 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Description des fonctions de l API Sage Introduction Chaque fonction retourne un code erreur qui indique si la procédure s est bien exécutée. Si un paramètre est incorrect, un code erreur est retourné par la fonction. Si la valeur du code erreur est 0, cela indique que la fonction a retourné un résultat. Le résultat que vous recherchez est toujours le dernier paramètre de la fonction (paramètre d entrée / sortie). Ces fonctions ne sont utilisables que si une connexion a été effectuée auparavant avec la base concernée. De même,i l 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. 17

29 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Description des fonctions avancées de la comptabilité TotalMvtDebit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) Cette fonction permet de calculer le total des mouvements débit 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 du mouvement débit TotalMvtCredit (CG_Num, CT_Num, JO_Num, Deb, Fin, Credit) 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. 18

30 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 19

31 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 TotalDevCredit (CG_Num, CT_Num, JO_Num, Deb, Fin, Resultat) Cette fonction permet de calculer le total crédit 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 20

32 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 21

33 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 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 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 22

34 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 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. En Entrée CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting 23

35 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 24

36 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 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 25

37 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions En Sortie Err (Entier) : Code erreur retourné par la fonction. Resultat (Chaîne de caractères) : Numéro de pièce 26

38 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Description des fonctions avancées de la Gestion Commerciale CIALLigneMontantHT (DL_No, Resultat) Calcul du montant HT 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.00, le HT est stocké à la ligne de document (champ DL_MontantHT). Il est préférable d utiliser le champ DL_MontantHT 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 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. En Entrée DL_NO (Entier long): Numéro interne de la ligne 27

39 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 28

40 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 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. 29

41 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALLigneMontantQteSigne (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. Algorithme de calcul des quantités signées Si la référence article est vide ou remise de pied ou remise exceptionnelle alors 0 fin si Si domaine des ventes et le document n est pas un devis alors Si Type de document = Bon de livraison ou (type de document = facture et le type de pièce livrée = facture) alors -Quantité sinon si le type de document est une reprise alors Quantité sinon si le type de document est une facture et le type de pièce livrée est un bon de retour alors -Quantité sinon si le type de document est une archive alors -Quantité fin si sinon si domaine d achat alors Si Type de document = Bon de livraison ou (type de document = facture et le type de pièce livrée = facture) alors -Quantité 30

42 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions sinon si le type de document est une reprise alors Quantité sinon si le type de document est une facture et le type de pièce livrée est un bon de retour alors -Quantité sinon si le type de document est une archive alors si le mouvement de stock est une entrée ou une sortie alors Quantité fin si fin si sinon si le type de document est un mouvement d entrée alors Quantité sinon si le type de document est un mouvement de sortie alors -Quantité sinon si (le type de document est un virement ou le type est un bon de fabrication) alors si le mouvement de stock est une sortie alors -Quantité sinon Quantité fin si sinon si le type de document est une archive alors si le mouvement de stock est une entrée Quantité fin si fin si 31

43 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALDocTotalHT (DO_Type, DO_Piece, Résultat) 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. 32

44 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALDocBaseTaxes (DO_Type, DO_Piece, Ntaxe) 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) 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 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. 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 33

45 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 34

46 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. CIALDocNetaPayer (DO_TYPE, DO_PIECE, RESULTAT) Calcul du net à payer 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 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 35

47 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 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 36

48 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 37

49 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 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. 38

50 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 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. 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. 39

51 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) : 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 40

52 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) : 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. 41

53 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALTiersQuantites (CT_NUM, Debut, Fin, TypeDocDe, TypeDocA, RESULTAT) Calcul du total 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 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 En Sortie Résultat (Double) : Total Quantités colisées pour le tiers. Err (Entier) : Code erreur retourné par la fonction. 42

54 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 43

55 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 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. 44

56 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALTiersSolde(CT_NUM, Résultat) Cette fonction permet de calculer le solde à la date système (volet solvalibité 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 échus à 1 mois (volet solvalibité 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 échus à 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. 45

57 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALTiersEchus3(CT_NUM, RESULTAT) Cette fonction permet de calculer le solde échus à 3 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 à 3 mois. Err (Entier) : Code erreur retourné par la fonction. CIALTiersNonEchus(CT_NUM, RESULTAT) Cette fonction permet de calculer le solde non échus (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. 46

58 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. Err (Entier) : Code erreur retourné par la fonction. CIALTiersRisque(CT_NUM, RESULTAT) Cette fonction permet de calculer le risque réel (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): Risque réel. Err (Entier) : Code erreur retourné par la fonction. 47

59 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 48

60 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtCAHTBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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) 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 l article. Err (Entier) : Code erreur retourné par la fonction. CIALArtCAHTNet (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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) 49

61 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 HT Net pour l article. Err (Entier) : Code erreur retourné par la fonction. CIALArtCATTC (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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 En Sortie Résultat (Double) : Total du CA TTC pour l article. Err (Entier) : Code erreur retourné par la fonction. 50

62 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtRemise (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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_R Résultat) ef, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, 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) 51

63 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 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, Résultat) 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 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. 52

64 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtQuantites (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) Calcul du total 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, Résultat) Calcul du total quantité colisée 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) 53

65 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 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, Résultat) 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. 54

66 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtPoidsBrut (AR_Ref, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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, Résultat) 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. 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) 55

67 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) : Marge pour l article. Err (Entier) : Code erreur retourné par la fonction. CIALArtCompteA (AR_Ref, Domaine, CatCompta, Résultat) 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, Résultat) 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 56

68 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Taxe1) 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 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, Résultat) 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. 57

69 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtTaxe3 (AR_Ref, Domaine, CatCompta, Résultat) 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, Résultat) Calcul du prix de vente pour l article, la catégorie tarifaire et les gamme 1 et 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. 58

70 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtCoefCat (AR_Ref, CatTarif, Résultat) 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) En Sortie Résultat (Double ) : Coefficient Err (Entier) : Code erreur retourné par la fonction. CIALArtPrixClient (AR_Ref, CT_Num, CatTarif, AG_No1, AG_No2, Résultat) Calcul du prix de vente pour l article, le tiers, la catégorie tarifaire et les gamme 1 et 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. 59

71 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALArtCoefClient (AR_Ref, CatTarif, Résultat) 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, Résultat) 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, Résultat) 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. En Entrée Fa_CodeFamille (Chaîne de caractères :10 maximum) : Code Famille 60

72 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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 61

73 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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) 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, Résultat) 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 62

74 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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 63

75 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, Résultat) 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, Résultat) Calcul du total 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 64

76 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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. 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 65

77 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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, Résultat) 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 66

78 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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 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, Résultat) 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) 67

79 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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) 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) 68

80 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 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, Résultat) 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. 69

81 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 CA TTC pour le représentant. Err (Entier) : Code erreur retourné par la fonction. CIALRepRemise (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) Calcul du taux de remise moyen 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 70

82 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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. 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 71

83 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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. 72

84 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) Calcul du total 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) 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. 73

85 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALRepQtesColisee (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) Calcul du total quantité colisée 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. 74

86 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALRepPoidsNet (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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. 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. 75

87 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALRepPoidsBrut (RE_No, CT_NumDe, CT_NumA, AR_RefDe, AR_RefA, FA_CodeFamilleDe, FA_CodeFamilleA, Debut, Fin, TypeDocDe, TypeDocA, Résultat) 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 En Sortie Résultat (Double) : Total poids brut pour le représentant. Err (Entier) : Code erreur retourné par la fonction. 76

88 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions CIALStockVal(DE_No, AR_REF, AG_NO1,AG_NO2, Date, Résultat) 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, Résultat) 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. 77

89 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions GetParamValeurStr (TypeBase, NomTable, NomChamp, Résultat) 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. En Sortie Résultat (Chaîne de caractères) : Valeur du champ Err (Entier) : Code erreur retourné par la fonction. GetParamValeurDbl (TypeBase, NomTable, NomChamp, Résultat) 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_) 78

90 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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, Résultat) 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, Résultat) 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). 79

91 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, Résultat) 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, Résultat) 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 80

92 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions 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. 81

93 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Description des fonctions avancées de la Paie Maestria Windows FSalCumul (SA_Num, RB_Num, Debut, Fin, Résultat) Calcul du Cumul Borné pour le salarié SAL_Num de la rubrique RB_Num, sur 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. FSALCumulbase (SA_Num, RB_Num, Debut, Fin, Résultat) 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. 82

94 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions FSALCumulCotPat (SA_Num, RB_Num, Debut, Fin, Résultat) 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, Résultat) 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) En Sortie Résultat (Double) : Valeur du Cumul. Err (Entier) : Code erreur retourné par la fonction. 83

95 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions FSALCumulTaux (SA_Num, RB_Num, Debut, Fin, Résultat) 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, Résultat) 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. 84

96 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Description des objets de l ActiveX Sage 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 85

97 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Principe d utilisation de L ActiveX Sage La DLL ActiveX est ASD100.DLL (Active Sage Data 100). Cette DLL est stockée dans Windows\System. 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 la comptabilité 100 CIAL : fonctions évoluées de la gestion commerciale 100 FSAL : fonctions évoluées de la paie Maestria PARAM : fonctions paramètres 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. Le format date n est plus une chaîne de caractères (cf : API Sage), mais bel et bien un format date de l application. Ces objets ne sont utilisables que si une connexion a été effectuée auparavant avec la base concernée. 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. Vous trouverez ci-dessous quelques exemples de propriétés de l ACTIVE X ASD100. Ces propriétés sont les mêmes que les fonctions décrites ci-dessus, exceptées qu elles retournent donc le résultat et non plus le code erreur et que le nom des propriétés de l objet CIAL ne commence plus par CIAL. 86

98 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Exemple de Propriétés de l objet CPTA (base comptable) TotalMvtDebit (CG_Num, CT_Num, JO_Num, Deb, Fin) Cette fonction permet de calculer le total des mouvements débit 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 (Date) : Date de début. Fin (Date) : Date de fin. En Sortie Résultat de la propriété (Double) : Total du mouvement débit. 87

99 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Exemple de propriétés de l objet CIAL (Gestion Commerciale) LigneMontantHT (DL_NO) Calcul du montant HT pour une ligne de document. 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. 88

100 Chapitre 2 Fonctions avancées et DLL Active X : déclaration des fonctions Propriétés de l objet Param (pages paramètres) Ce sont toutes les propriétés du type «GETPARAMVALEUR*», dont voici un exemple. GetParamValeurStr (TypeBase, NomTable, NomChamp) 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), 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 89

101 Propriétés de l objet Fsal (la paie Maestria Windows) FSalCumul (SA_Num, RB_Num, Debut, Fin) Calcul du Cumul Borné pour le salarié SAL_Num de la rubrique RB_Num, sur 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 (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. 90

102 Chapitre 3 Description des exemples fournis avec le Kit ODBC Base Exemple ACC2000EX.MDB sous Microsoft Access Introduction 92 Contenu de la base ACC2000EX.MDB 92 Base de Données ODBCNEW2000.MDB sous Microsoft Access Contenu de la base de données 96 Utilisation des formulaires fournis 97 Fichier Exemple Exc2000odbc.xls sous Microsoft Excel Etat CompteT.rpt sous Crystal Reports

103 Chapitre 3 Description des exemples fournis avec le Kit ODBC Base Exemple ACC2000EX.MDB sous Microsoft Access 2000 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 la ligne 100 Windows, et, d autre part, de voir ce qu on peut réellement faire avec SAGE ODBC Ligne 100 (Lecture, écriture, fonctions avancées). Contenu de la base ACC2000EX.MDB Cette base utilise respectivement la base comptable C_BIJOU.MAE et la base commerciale G_BIJOU.GCM. Vous trouverez ci-dessous le contenu détaillé de cette base. Au lancement de cette base, les différents menus vous donnent le choix entre : Visualisation de tous les Champs des tables de la base, Etat : Annuaire Client, Etat : Palmarès Client, Etat : Grand Livre Tiers, Etat : Distribution Analytique, Etat : Balance des comptes, Etat : Mouvements Articles, Etat : Tarifs par catégorie tarifaire, Exemple d écriture dans un journal via un formulaire de saisie, Exemple d écriture dans un document des ventes, via un formulaire de saisie, Utilisation des fonctions avancées de Comptabilité et de Gestion Commerciale, Exemple de génération automatique de documents de Vente, Achat, Stock avec chacun 10 lignes de document. Les articles sont pris aléatoirement dans la base, Exemple de génération aléatoire d articles, Exemple de génération aléatoire d écritures comptables via un modèle de saisie. 92

104 Chapitre 3 Description des exemples fournis avec le Kit ODBC Pour exécuter chacune de ces options, cliquez sur l option du menu correspondant. Les formulaires et états s exécuteront. Visualisation de tous les Champs des tables de la Base Ce formulaire vous permet de visualiser tous les champs des tables de la base ouverte, avec leurs types de données (entier, réel et texte) et leurs longueurs pour les champs de type Texte. Etat : Annuaire Client Cet état vous permet d obtenir pour chaque client : son Code Client, son libellé, son adresse, sa ville, son premier numéro de téléphone et son premier numéro de télécopie. Etat : Palmarès Client Cet état vous permet d obtenir pour chaque client, dont on connaît le code client, son libellé et sa ville, le Chiffre d Affaires TTC, le pourcentage du Chiffre d Affaires TTC par rapport au total, le pourcentage cumulé du Chiffre d Affaires et enfin le Palmarès du client. Le Chiffre d Affaires TTC est calculé en additionnant toutes les écritures comptables des clients dont le type de journal est uniquement de Vente. Etat : Grand Livre Tiers Le Grand-livre des tiers existe déjà dans la Comptabilité. Il permet d obtenir pour chaque tiers le détail de ses écritures comptables, avec la date de l écriture, le code journal, le n de pièce, le libellé de l écriture, le montant de l écriture en débit ou en crédit et le solde progressif ainsi qu un total des écritures par tiers. Etat : Distribution Analytique Cet état vous permet d obtenir pour chaque compte général, le détail des écritures analytiques pour ce compte et une répartition de ses écritures suivant trois fourchettes de sections analytiques possibles. Les fourchettes de sections analytiques seront saisies dans un formulaire. Le plan analytique est fixé au premier (dans notre exemple, ce sera Activite).Vous avez la possibilité de trois fourchettes possibles dont les valeurs sont à sélectionner dans une liste pour chacune. 93

105 Chapitre 3 Description des exemples fournis avec le Kit ODBC Etat : balance des comptes Cet état vous permet d obtenir pour une période donnée et pour chaque compte général, le total des mouvements Débit et Crédit ainsi que les soldes correspondants. Etat : Mouvements articles Cet état vous permet d obtenir pour chaque article, les quantités achetées, mouvementées en stock, vendues et le solde progressif, l ensemble échelonné par mois. Etat : tarifs par catégorie tarifaire Cet état vous permet d obtenir pour chaque article, le prix de vente pour chaque catégorie tarifaire définie en colonne. Un maximum de 4 catégories tarifaires est autorisé. Exemple d écriture dans un journal Cet exemple permet de comprendre comment fonctionne l'écriture dans les bases de la ligne 100 Windows au travers d'un exemple d'écriture dans un journal. On peut créer ou modifier une écriture existante. Exemple d écriture dans un Document de vente Cet exemple permet de comprendre comment fonctionne l'écriture dans les bases de la ligne 100 Windows au travers d'un exemple d'écriture dans un document de vente. On peut, au travers de cet exemple créer un document de vente, créer ou modifier des lignes dans ce document. Utilisation des fonctions avancées de Comptabilité et de Gestion Commerciale Ces formulaires permettent de comprendre le fonctionnement et l'utilisation des fonctions avancées de comptabilité et de gestion commerciale. Exemple de génération automatique de documents en gestion commerciale Cet exemple permet de générer automatiquement des documents de tous les types avec chacun 10 lignes générées avec des articles choisis de façon aléatoire dans la base (écriture dans F_DOCENTETE et F_DOCLIGNE). 94

106 Chapitre 3 Description des exemples fournis avec le Kit ODBC Cet exemple permet surtout de comprendre quels sont les champs à renseigner en insertion et les valeurs par défaut utilisées par l application (récupération d informations de l article ou du tiers par exemple). Le code n est pas protégé. Il vous est donc facile de comprendre comment ces lignes ont été générées. Exemple de génération automatique d articles Cet exemple permet de générer automatiquement des articles de façon aléatoire avec génération de valeurs par défaut dans les autres tables liées aux articles. Ces valeurs par défaut sont celles générées par l application Gestion commmerciale 100 en création d un nouvel article. Exemple de génération automatique d écritures comptables Cet exemple permet de générer automatiquement des écritures comptables dans un journal de Vente, et ce pour toutes les périodes via un modèle de saisie prédéfini. 95

107 Chapitre 3 Description des exemples fournis avec le Kit ODBC Base de Données ODBCNEW2000.MDB sous Microsoft Access 2000 Contenu de la base de données La base de données ODBCNEW2000.MDB fournie avec Sage ODBC Ligne 100 peut vous servir de modèle pour la création d une nouvelle base utilisant vos propres sources de données Sage. Le formulaire Creation Relations Entre les Tables permet la création automatique des jointures entre les tables de la ligne 100 Windows de votre base de données Microsoft Access. Le formulaire Visualisation des Champs de la Base permet de visualiser comme dans les bases Exemple, tous les champs des tables de votre base. Le formulaire Descriptif Champs Tables permet de créer le descriptif de chaque champ ODBC de votre base (indique le nom en clair des champs). 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. 96

108 Chapitre 3 Description des exemples fournis avec le Kit ODBC Utilisation des formulaires fournis Vous venez d attacher vos tables. Les formulaires fournis pourront vous aider pour la création de requêtes et d états. Aide à la création de requêtes et états Le formulaire Creation Relations Entre les Tables crée automatiquement les différentes relations entre les tables de la ligne 100 de votre base. Pour cela ouvrez le formulaire Creation Relations Entre les Tables et cliquez sur le bouton, ce qui créera les bonnes relations. Ces relations seront stockées dans la base et elles seront présentes lors de chaque utilisation de votre base. Ces relations sont visibles, d une part dans la fenêtre des relations et, d autre part lorsque vous créez une nouvelle requête et que vous sélectionnez des tables. Il est à noter que lorsque vous activez ce formulaire et appuyez sur le bouton pour lancer la création des relations, s il existe déjà des relations, celles ci seront détruites. Cela évite ainsi les mauvaises relations, source d erreur. Aussi, s il vous arrivait de supprimer certaines relations et que vous vouliez les recréer, il vous suffirait de relancer ce formulaire. 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. F_COMPTEG.CG_NUM = F_ECRITUREC.CG_NUM avec CG_TYPE = 0 (Type détail) (lien sur les comptes généraux avec type détail) Dans ce cas, si vous sélectionnez ces tables, le lien entre CG_NUM sera créé, mais il faudra sélectionner le champ CG_TYPE et mettre 0 dans sa zone critère. Vous ferez de même pour les autres jointures possédant des critères particuliers. Pour cela, reportezvous à la partie expliquant les jointures des tables de la ligne 100 Windows. Visualisation des champs de toutes les tables de votre base Il vous sera peut être utile de visualiser pour chaque table, le nom de ces champs associés. Ce formulaire vous permettra de le faire. Ouvrer le formulaire Visualisation des Champs de la Base 97

109 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. Fichier Exemple Exc2000odbc.xls sous Microsoft Excel 2000 Contenu de cet exemple Ce classeur contient plusieurs feuillets Un menu principal dans la feuille Présentation, vous permet d'exécuter certaines requêtes et fonctions Visual Basic de ce classeur. Vous pouvez visualiser la source correspondant à chaque bouton et peut être vous en inspirer pour d'éventuels développements avec Microsoft Excel 97 et Visual Basic pour applications (VBA). Les exemples utilisent les bases Bijou. Etat CompteT.rpt sous Crystal Reports 8.0 Contenu de cet exemple Ce rapport est un grand livre des Tiers basé sur les données de la comptabilité. 98

110 Annexe 1 Rappel sur le langage SQL Annexe 1 Rappel sur le langage SQL Remarques générales 100 Ajout d un enregistrement 100 Modification d enregistrements 101 Suppression d Enregistrements 101 Exemples de requêtes

111 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. Ajout d un enregistrement Utilisation de la clause INSERT INTO. INSERT INTO F_CompteG (CG_Num, CG_Type, CG_Intitule, CG_Classement, N_Nature, CG_Saut) VALUES ( 411TOTO, 0, Compte Tiers TOTO, 411TOTO, 1, 1) Les enregistrements sont ajoutés un par un. Tous les champs de F_CompteG ne sont pas présents dans cette requête d ajout. Les champs (qui ne sont pas définis dans la requête) prendront la valeur par défaut, à savoir 0 pour tout ce qui est numérique, et pour tout ce qui est du type chaîne de caractères. Les dates éventuelles seront à NULL. 100

112 Annexe 1 Rappel sur le langage SQL 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... 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 le driver ODBC Sage Ligne 100. 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 101

113 Annexe 1 Rappel sur le langage SQL 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 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 } and {d } ) And F_EcritureC.CG_Num Like '411%' 102

114 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 Grammaire SQL supportée par le driver 104 Fonctions de la grammaire ODBC supportées par le driver Sage Ligne Fonctions sur les chaînes de caractères 106 Fonctions sur les dates 109 Fonctions système

115 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 Grammaire SQL supportée par le driver SELECT FROM WHERE GROUP BY HAVING ORDER BY BETWEEN IN OPERATION : MIN, MAX, SUM, AVG, COUNT UNION LEFT OUTER JOIN SOUS REQUETE 104

116 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 Fonctions de la grammaire ODBC supportées par le driver Sage Ligne 100 Les fonctions suivantes font partie intégrante du driver ODBC 32 Bits. Vous pouvez les utiliser dans les requêtes SQL Direct. Les requêtes SQL Direct sont interprétées directement par le driver. Si vous utilisez ACCESS et les requêtes graphiques, les fonctions ci-dessous ne fonctionneront pas. ACCESS possède en interne les mêmes types de fonctions. Utilisez dans ce cas ses fonctions. Par contre, si vous utilisez du SQL Direct les fonctions ci-dessous fonctionneront. Les exemples ci-dessous sont testés avec Microsoft Query. Les requêtes sont en effet directement interprétées par le driver. 105

117 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 Fonctions sur les chaînes de caractères CONCAT (Chaîne1, Chaîne2) Cette fonction concatène les chaînes Chaîne1 et Chaîne2. Le résultat est une chaîne. Exemple Exemple d utilisation avec Microsoft QUERY (Concaténation du champ CG_NUM et de la chaîne TEST. SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, CONCAT (CG_NUM, TEST ) CONCATENATION FROM F_COMPTEG F_COMPTEG LENGTH (CHAINE) Cette fonction retourne le nombre de caractères de la chaîne Chaîne. Le résultat est un Entier. Exemple Exemple d utilisation avec Microsoft QUERY (Nombre de caractères de l intitulé du compte général) SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, LENGTH (CG_INTITULE) NB FROM F_COMPTEG F_COMPTEG RIGHT (CHAINE, NB) 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. 106

118 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 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 107

119 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 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) 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 108

120 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 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 Fonctions sur les dates CURDATE () Cette fonction retourne la date système. Exemple Exemple d utilisation avec QUERY : SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, CURDATE () DATE COURANTE FROM F_COMPTEG F_COMPTEG DAYOFMONTH (DATE) Cette fonction retourne le jour dans le mois pour le champ DATE. C est un entier compris entre 1 et 31. Exemple Exemple d utilisation avec QUERY : SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, CURDATE () DATE COURANTE, DAYOFMONTH (CURDATE ()) JOUR MOIS FROM F_COMPTEG F_COMPTEG 109

121 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 MONTH (DATE) Cette fonction retourne le mois pour le champ DATE. C est en entier compris entre 1 et 12. Exemple Exemple d utilisation dans QUERY: SELECT F_ECRITUREC.CG_NUM, F_ECRITUREC.JM_DATE, F_ECRITUREC.EC_JOUR, MONTH (JM_DATE) FROM F_ECRITUREC F_ECRITUREC ORDER BY F_ECRITUREC.CG_NUM CURTIME () Cette fonction retourne l heure courante. Exemple Exemple d utilisation dans QUERY: SELECT F_ECRITUREC.CG_NUM, F_ECRITUREC.JM_DATE, F_ECRITUREC.EC_JOUR, MONTH (JM_DATE), CURTIME () FROM F_ECRITUREC F_ECRITUREC ORDER BY F_ECRITUREC.CG_NUM DAYOFWEEK (DATE) Cette fonction retourne le jour comme un entier de 1 à 7 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 110

122 Annexe 2 Fonctions SQL supportées par Sage ODBC Ligne 100 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 111

123 Annexe 3 Conseils d optimisation Annexe 3 Conseils d optimisation Les éléments perturbants

124 Annexe 3 Conseils d optimisation Les éléments perturbants Plusieurs critères peuvent influer sur le temps d exécution d une requête. Le mode trace ODBC doit être désactivé. En effet, chaque requête envoyée au driver ODBC peut être enregistrée dans un fichier texte (plusieurs lignes par requête). L écriture dans ce type de fichier prend énormément de temps. La requête SQL elle-même influe sur les performances. En effet, si une jointure entre deux tables n est pas complète, le driver ODBC ne pourra pas utiliser les index de recherche et il devra parcourir tous les enregistrements. Le choix des critères de sélection et des regroupements est aussi important. En effet, il est préférable de poser des critères de sélection sur des champs indexés afin d éviter le parcours de tous les enregistrements (renseigner de préférence les premiers champs d un index). Sage ODBC Ligne 100 (à partir de la version 7.0) dispose de champs virtuels afin de récupérer directement des informations provenant des pages paramètres. Ces champs n existent pas physiquement dans la base, mais sont calculés par le driver ODBC (le nom de ces champs commence par INT_ ou FNT_). Si un critère de sélection est posé sur un de ces champs, le driver devra parcourir tous les enregistrements, calculer la valeur du champ INT_, puis comparer avec le critère de sélection. De plus, lors de la création d une requête de sélection, afin d optimiser les temps d exécution, il est important de sélectionner uniquement les champs nécessaires (ne pas rapatrier des informations superflues, en particulier les champs INT_ et FNT_ qui sont calculés par le driver ODBC Sage). 113

125 Annexe 4 Les codes erreurs Sage Annexe 4 Les codes erreurs Sage Description des erreurs générales CBASE 115 Description des codes erreurs des fonctions évoluées _ 117 Erreurs en écriture dans les différentes applications

126 Annexe 4 Les codes erreurs Sage Description des erreurs générales CBASE 4999, Fin de fichier atteinte! 4998, Ressource non disponible! 4997, Mauvaise version de dossier! 4996, Taille trop petite en création! 4995, Dossier non ouvert! 4994, Le bloc lu n'est pas un bloc! 4993, Le bloc écrit n'est pas un bloc! 4992, Erreur de longueur de cellule! 4991, Numéro d'index illégal! 4990, Numéro de page poubelle illégal! 4989, Longueur de chaîne supérieure à la longueur déclarée! 4988, Le dossier est saturé, veuillez l'agrandir au plus vite! 4987, Le dossier est saturé, veuillez l'agrandir au plus vite! 4986, Mauvaise longueur de page poubelle! 4985, Numéro de fichier inexistant! 4984, Bloc détruit! 4983, Bloc libéré! 4982, Fonction invalide! 4981, Trop d'utilisateurs en cours! 4980, Trop de verrouillages! 4979, Libération d'un fichier non verrouillé! 4978, Incohérence du fichier.flg! 4977, Erreur de lecture du fichier.flg! 4976, Erreur d'écriture du fichier.flg! 4975, Le dossier est saturé, veuillez faire une recopie et l'agrandir au plus vite! 115

127 Annexe 4 Les codes erreurs Sage 4974, Opération annulée , Version de DLL incompatible! 4972, Index modifié! 4971, Trop d'index temporaires! 4970, Version de serveur incompatible! 4969, Fonction serveur non implantée! 4968, Le serveur a été déconnecté! 4967, Erreur d'index! 4966, Erreur inconnue! 4965, Mauvaise version de fichier! 4964, Type de fichier déjà ouvert! 116

128 Annexe 4 Les codes erreurs Sage Description des codes erreurs des fonctions évoluées 1, Fin de fichier atteinte! 2000, Ressource non disponible! 2001, Mauvaise version de dossier! 2002, Taille trop petite en création! 2013, Dossier non ouvert! 2017, Le bloc lu n'est pas un bloc! 2018, Le bloc écrit n'est pas un bloc! 2100, Erreur de longueur de cellule! 2374, Numéro d'index illégal! 2376, Numéro de page paramètre illégal! 2415, Longueur de chaîne supérieure à la longueur déclarée! 2416, Impossible d'insérer un enregistrement, veuillez l'agrandir au plus vite! 2417, Impossible d'insérer une page d'index, veuillez l'agrandir au plus vite! 2418, Trop de bases en ligne 2419, Mauvaise longueur de page paramètre! 2426, Numéro de fichier inexistant! 2428, Bloc détruit! 2429, Bloc libéré! 2430, Fonction invalide! 2502, Trop d'utilisateurs en cours! 2503, Trop de verrouillages! 2504, Libération d'un fichier non verrouillé! 2505, Incohérence du fichier.flg! 2506, Erreur de lecture du fichier.flg! 2507, Erreur d'écriture du fichier.flg! 117

129 Annexe 4 Les codes erreurs Sage 4975, Le dossier est saturé, veuillez faire une recopie et l'agrandir au plus vite! 2602, Opération annulée , Version de DLL incompatible! 2607, Le document, la ligne, L'article, la famille ou le représentant n'existe pas. 2609, Index modifié! 2610, Trop d'index temporaires! 2700, Version de serveur incompatible! 2701, Fonction serveur non implantée! 2704, Le serveur a été déconnecté! 3005, Erreur d'accès 4966, Erreur inconnue! 4965, Mauvaise version de fichier! 4964, Type de fichier déjà ouvert! 1100, Erreur de longueur de compte analytique 1101, Erreur de longueur de compte général 1102, Erreur de longueur de compte EDI 1103, Erreur de longueur de compte reporting 4700, La base paramètre n'est pas ouverte 4701, La rubrique n'existe pas 4702, Le salarié n'existe pas 4703, Domaine de validité du champ incorrect, veuillez vous référer à la documentation 7000, La famille n'existe pas 7001, Le client n'existe pas 7002, Le fournisseur n'existe pas 7003, L'article n'existe pas 7004: Domaine de validité du champ incorrect, veuillez vous référer à la documentation 63536, Ressource non disponible 118

130 Annexe 4 Les codes erreurs Sage 63535, Numéro de version illégale 63534, Taille trop petite en création 63523, Base non ouverte 63519, Le bloc lu n'est pas un bloc 63518, Le bloc écrit n'est pas un bloc 63436, Erreur longueur de cellules 63127, Suppression enregistrement non lu ou inexistant 63126, Modification enregistrement non lu ou inexistant 63125, Marqueur illégal 63121, Longueur chaîne supérieure à la longueur déclarée 63120, Impossible d'insérer une page enregistrement (base pleine) 63118, Trop de bases en ligne 63108, Bloc détruit 63107, Bloc libéré 63036, Base en cours d'utilisation 63035, Erreur permission 63034, Trop d'utilisateurs en cours 63031, Incohérence base multi utilisateurs (.flg) 63030, Erreur lecture (.flg) 63029, Erreur écriture (.flg) 63025, Fichier locké en destruction 63024, Enregistrement locké en modification 63023, Fichier locké en modification 62936, Pas assez de mémoire 62934, Opération annulée 62933, Version de DLL incompatible 62929, Enregistrement non trouvé 119

131 Annexe 4 Les codes erreurs Sage 62928, Index dupliqué 62927, Index modifié 62836, Version de serveur incompatible 62832, Serveur déconnecté 62831, Fichier inexistant 62830, Erreur accès fichier 62829, Trop de fichiers ouverts 62828, Espace disque insuffisant 62827, Erreur E/S 120

132 Annexe 4 Les codes erreurs Sage Erreurs en écriture dans les différentes applications 3567, Le code rattaché n'est pas modifiable si l'immobilisation n'est pas de type Biens 3568, L'immobilisation n'est pas de type Biens, le code rattaché doit être vide 3569, Le couple AR_REF et GL_No doit être unique 3570, Le champ DL_PrixUnitaire ne peut pas être modifié pour les documents TTC 3571, La quantité livrée doit être >= , La quantité commandée doit être >= , Le champ CG_Num est modifiable si le règlement n'est pas clôturé ou si il ne possède pas d'échéance 3574, Les champs RG_Reference, RG_Impaye, RG_DateEchCont, CG_NumCont sont modifiables si le règlement n'est pas clôturé 3575, Les champs LS_Peremption, LS_Fabrication ou LS_SERIE doivent être vide 3576, Les champs LS_Peremption ou LS_Fabrication ne peuvent être modifiés en stock que pour les documents d'entrées ou de sortie 3577, On ne peut modifier la date de création de l'article 3578, Le champ DL_PUBC n'est pas modifiable 3579, Le champ AR_RefCompose ne peut etre vide si l'article est à nomenclature commerciale composé ou composant 3580, La valeur de DL_Valorise est incompatible avec le type de nomenclature de l'article (composé ou composant) 3581, La gestion des gammes est incompatible avec les articles de subtitution 3582, Les champs LS_Peremption ou LS_Fabrication doivent avoir un suivi de stock de type série ou lot 3583, Les champs LS_Peremption ou LS_Fabrication ne peuvent pas être modifiés pour les documents de type vente 3585, Le champ DL_TYPEPL est modifiable que dans les documents de type facture 3586, Le numéro de série ne peut pas être modifié en sortie de stock 3587, Le lot de sortie n'existe pas 121

133 Annexe 4 Les codes erreurs Sage 3588, Le lot d'entrée n'existe pas 3589, Les champs DL_MontantTTC, DL_MontantHT, DL_Escompte, DL_FactPoids ne sont pas modifiables 3590, En modification les articles suivis en SERIE ou en LOT doivent être de type mouvement d'entrée, mouvement sortie, bon de commande ou de reprise 3591, Les champs de contrepartie ne sont pas modifiables 3592, Le champ échéance doit être obligatoire 3593, Le champ DL_Frais est saisissable qu'avec un document d'achat de type facture ou un bon de livraison si l'article n'est pas suivi en stock 3594, Si le type de règlement est de type acompte, seul JO_Num est modifiable 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 , Le champ DO_Replication n'est pas modifiable 3601, Le champ DO_Replication doit être à , 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 122

134 Annexe 4 Les codes erreurs Sage 3610, Référence à un compte général inexistant ou qui n'est pas de type détail 3611, EE_Comptabilise est non modifiable 3612, Le champ CG_Num n'est pas modifiable 3613, Le champ CG_Num n'est pas modifiable 3614, EE_Comptabilise doit être égal à , Le numéro de compte général est vide ou n'est pas de type compte 3616, Référence à un compte de tiers inexistant 3617, Référence à un compte général inexistant ou qui n'est pas de type détail 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 multimédia n'existe pas 3623, 19/08/2002 BRSC V11 erreur ERRECH_EXISTESCOMPTE 3623, Suppression impossible, l'article est associé à un fichier multimé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) 123

135 Annexe 4 Les codes erreurs Sage 3632, La référence client doit être unique 3633, La référence client ne peut pas être renseignée pour les catégories tarifaires 3634, La référence client doit être de type C39 avec une de longueur <= 18 ou vide 3635, Le code barres fournisseur doit être unique 3636, Le code barres doit être unique 3637, Le code barres n'est pas de type C39 ou est de longueur > , Le numéro de lieu n'est pas modifiable 3639, Le contact existe déjà 3640, Suppression impossible, le lieu possède des contacts 3641, Les cumuls et la date de mise à jour comptable ne sont pas modifiables 3642, Les cumuls et la date de mise à jour comptable de l'immobilisation doivent être nuls 3643, ER_PIECE non modifiable 3644, JA_NUM non modifiable 3645, ER_NO non modifiable 3646, CG_NUM non modifiable 3647, CA_NUM non modifiable 3648, N_ANALYTIQUE non modifiable 3649, ER_DATE non modifiable 3650, Le code journal analytique n'existe pas 3651, Le nombre de décimales de ER_QUANTITEA est incorrect (quantité) 3652, Le nombre de décimales de ER_MONTANTA est incorrect (montant) 3653, Le tiers du document est différent de celui du règlement 3654, La borne supérieure ne peut pas être modifiée 3655, Le compte général ne peut pas être modifié 3656, Le représentant ne peut pas être modifié 3657, Le représentant n'est pas de type vendeur 3658, ECH_No est non modifiable 124

136 Annexe 4 Les codes erreurs Sage 3659, Le code taxe n'existe pas 3660, Le compte général n'existe pas 3661, L'échéance est déjà liée à des écritures comptables 3662, Le registre Taxe existe déjà 3663, L'échéance n'existe pas en ajout d'un registre Taxe 3664, Le motif économique existe déjà 3665, Suppression impossible car il existe des registres taxes 3666, La banque intermédiaire n'existe pas 3667, Le compte de frais n'existe pas 3668, Le Pays n'existe pas 3669, Le motif économique n'existe pas 3670, Il existe déjà un registre taxe 3671, L'immobilisation rattachée n'est pas de type Biens 3672, Suppression impossible. Des virements poste à poste existent 3673, Suppression impossible. Des historiques existent 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,RE_NoCaissier,DO_Cloture) ne sont pas modifiables 3678, Suppression impossible, l'article est rattaché à une ligne de commande en attente 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 125

137 Annexe 4 Les codes erreurs Sage 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 126

138 Annexe 4 Les codes erreurs Sage 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à 3716, Le numéro de registre Taxe existe déjà 3717, Le code Taxe n'existe pas en ajout d'un registre taxe 3718, Le code Taxe n'existe pas 3719, Suppression impossible car il existe des contacts 3720, Le contact existe déjà dans la banque 3721, L'abrégé du RIB existe déjà 3722, Suppression impossible, la taxe est utilisée dans une écriture 3723, Suppression impossible, la taxe est utilisée dans le compte général 3724, TA_CODE estb non modifiable 3725, Le contact existe déjà 3726, Suppression impossible car il existe déjà des contacts 3727, Le code Taxe n'existe pas 3728, Le règlement doit être unique 3729, EG_CHAMP de F_FAMTARIF ne fait pas référence à un champ de P_GAMME de type quantité ou montant 3730, EG_CHAMP de F_FAMFOURNISS ne fait pas référence à un champ de P_GAMME de type quantité ou montant 3731, EG_CHAMP de F_ARTFOURNISS ne fait pas référence à un champ de P_GAMME de type quantité ou montant 3732, AS_QteComCM n'est pas modifiable 3733, AS_QteResCM n'est pas modifiable 3734, AS_Principal n'est pas modifiable 3735, AS_QteCom n'est pas modifiable 3736, AS_QteRes n'est pas modifiable 127

139 Annexe 4 Les codes erreurs Sage 3737, AS_QteSto n'est pas modifiable 3738, AS_MontSto n'est pas modifiable 3739, DE_No n'est pas modifiable 3740, EG_Ligne n'est pas modifiable 3741, EG_LIGNE doit être à 0 en ajout 3742, La gamme 2 ne peut pas être modifiée 3743, La gamme 1 ne peut pas être modifiée 3744, Le prix unitaire TTC doit être égal à , La catégorie comptable ne peut pas être modifiée, car des lignes sont associées à ce document 3746, AL_VALORISE n'est pas modifiable 3747, Le type d'abonnement n'est pas modifiable, car c'est un modèle 3748, Le modèle d'abonnement doit être unique 3749, FT_CATEGORIE n'est pas modifiable 3750, EG_CHAMP n'est pas modifiable, car il existe des enregistrements dans F_FAMTARIFQTE 3751, CT_NUM n'est pas modifiable 3752, EG_CHAMP n'est pas modifiable, car il existe des enregistrements dans F_FAMTARIFQTE 3753, Le type de gamme n'est pas de type quantité ou montant 3754, La catégorie tarifaire n'existe pas dans F_FAMCLIENT 3755, Le Tiers n'existe pas dans F_FAMFOURNISS 3756, Suppression impossible du fournisseur principal 3757, Le type de gamme n'est pas de type quantité ou montant 3758, EC_CHAMP n'est pas modifiable 3759, EG_CHAMP n'est pas modifiable 3760, Le journal de règlement de vente n'est pas renseigné 3761, Le journal de règlement d'achat n'est pas renseigné 128

140 Annexe 4 Les codes erreurs Sage 3762, Suppression impossible, car l'imputation n'est pas de type règlement 3763, Suppression impossible, car le règlement n'est pas de type règlement 3764, Modification du type vendeur impossible, car il existe des commissions 3765, Suppression impossible ou modification du type vendeur impossible 3766, Le représentant n'existe pas 3767, Le code dépôt doit être unique 3768, L'énuméré statistique article existe déjà 3769, L'intitulé de l'événement n'existe pas dans F_AGENDADET 3771, Saisie du compte tiers obligatoire pour ce compte général. 3772, La famille pas de type détail 3773, L'enregistrement de ARTCOMPTA est vide 3774, L'enregistrement de FAMCOMPTA est vide 3775, FA_TYPE et FA_CODEFAMILLE sont non modifiables 3776, Le code barre doit être unique 3782, Suppression impossible, car ce dépôt est utilisé dans un agenda 3783, Suppression impossible, car ce dépôt est utilisé dans une ligne d'abonnement 3784, Suppression impossible, car ce dépôt est utilisé dans un entête d'abonnement 3785, Suppression impossible, car ce dépôt est utilisé dans un dépôt article 3786, Suppression impossible, car ce dépôt est utilisé dans un entête de document 3787, Suppression impossible, car ce dépôt est utilisé dans une ligne de document 3788, Le type de barème ne peut pas être modifié 3789, Le représentant n'existe pas 3790, RE_NO doit être égal à , Le barème n'existe pas 3792, TF_NO doit être égal à , La quantité du lien ne peut pas être augmentée 3794, Le numéro de la ligne d'achat ne peut pas être modifié 129

141 Annexe 4 Les codes erreurs Sage 3795, Le numéro de la ligne de vente ne peut pas être modifié 3796, Le total des liens est supérieur à la quantité de la ligne d'achat 3797, Le total des liens est supérieur à la quantité de la ligne de sortie 3798, Ajout, modification et suppression impossible, car il existe un enregistrement dans le fichier des liens entre les règlements et les échéances 3799, Le statut du document d'achat n'est pas valide 3800, Le statut du document de vente n'est pas valide 3801, L'article des lignes n'est pas à contremarque 3802, La référence article des lignes est vide 3803, Les deux lignes n'ont pas la même référence article 3804, Le type de la ligne d'achat est incorrect 3805, Le type de la ligne de vente est incorrect 3806, La ligne d'achat n'existe pas 3807, La ligne de vente n'existe pas 3808, Le numéro de série ne peut pas être modifié 3809, La quantité doit être négative 3810, La quantité doit être négative pour les factures d'avoir ou de retour 3811, Le N de lot est utilisé en commande client 3812, Le numéro de série/lot est inexistant 3813, Le numéro de série/lot existe déjà 3814, L'état du stock ne permet pas de modifier la ligne 3815, L'état du stock ne permet pas la suppression 3816, Suppression impossible, car ce modèle est utilisé 3817, Le numéro du dépôt de stockage ne peut pas être modifié 3818, Suppression impossible, L'entête d'abonnement doit d'abord être supprimée 3819, Le numéro du représentant ne peut pas être modifié 3820, Le représentant existe déjà 130

142 Annexe 4 Les codes erreurs Sage 3821, Suppression impossible, car des commissions/représentant sont associées 3822, Suppression impossible, car des tarifs/quantités sont associés 3823, Suppression impossible, car des tarifs/quantités sont associés 3824, Suppression impossible, car des tarifs sont associés 3825, Suppression impossible, car des familles/comptabilité sont associées 3826, Suppression impossible, car des modèles sont associés 3827, Suppression impossible, car des fournisseurs sont associés 3828, Suppression impossible, car des clients sont associés 3829, Le numéro tarif de tarif représentant ne peut pas être modifié 3830, Le numéro représentant de tarif représentant ne peut pas être modifié 3831, Le tarif représentant existe déjà 3832, Suppression impossible, car des remises de tarif sont associées 3833, Suppression impossible, car des applications de tarif sont associées 3834, Le numéro de remise de tarif/barème ne peut pas être modifié 3835, La remise de tarif/barème existe déjà 3836, L'application de tarif/barème existe déjà 3837, Le numéro d'application de tarif/barème ne peut pas être modifié 3838, Le numéro de tarif/barème ne peut pas être modifié 3839, Le tiers ne peut pas être modifié 3840, Le code famille ne peut pas être modifié 3841, Le champ d'agenda ne peut pas être modifié 3843, La date d'opération doit être < à la date du nouveau solde 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 131

143 Annexe 4 Les codes erreurs Sage 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 132

144 Annexe 4 Les codes erreurs Sage 3876, EX_ETAT doit être à , EX_REF obligatoire 3878, EB_NO inexistant 3879, EX_TYPE doit être à , 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 3886, L'énuméré analytique existe déjà 3887, L'intitulé de l'énuméré analytique est obligatoire 3888, EC_DATE non modifiable 3889, L'enregistrement COMPTEGA existe déjà 3890, CG_AVREPART doit être à , Nb de décimales de CG_AVREPART incorrect 3892, Suppression impossible, car des périodes sont associées 3893, L'intervalle de période d'abonnement existe déjà 3894, Suppression impossible, car des règlements sont associés 3895, L'entête d'abonnement n'existe pas 3896, L'entête d'abonnement doit être unique 3897, L'abonnement est obligatoire en saisie d'abonnement 3898, Suppression impossible, car des lignes sont associées à cet abonnement 3899, La catégorie comptable ne peut pas être modifiée 3900, Le tiers ne peut pas être modifié 3901, Le Numéro d'abonnement ne peut pas être modifié 133

145 Annexe 4 Les codes erreurs Sage 3902, La catégorie tarifaire ne peut pas être modifiée, car des lignes sont associées à cet abonnement 3903, Le compte analytique ne peut pas être modifié, car des lignes sont associées à cet abonnement 3904, La devise ne peut pas être modifiée, car des règlements sont associés à cet abonnement 3905, La devise ne peut pas être modifiée, car des lignes sont associées à cet abonnement 3906, Le taux de conversion en devise ne peut pas être modifié, car des règlements sont associés à cet abonnement 3907, Le taux d'escompte ne peut pas être modifié, car des règlements sont associés à cet abonnement 3908, Le compte général n'existe pas 3909, Le modèle d'abonnement ne peut être modifié 3910, Le client de l'abonnement ne peut être modifié 3911, Le numéro d'abonnement ne peut être modifié 3912, Le modèle n'existe pas 3913, L'article comptabilité doit être unique 3914, La famille comptabilité doit être unique 3915, Un dépôt principal est obligatoire 3916, L'intitulé de dépôt doit être unique 3920, La quantité minimale de commande doit être supérieure au colisage du fournisseur 3921, La famille centralisatrice est utilisée dans une famille 3922, La famille est utilisée dans un barème 3923, La famille est utilisée dans un article 3924, La famille centrale n'existe pas 3925, La famille existe déjà 3926, L'énuméré de conditionnement existe déjà 3927, L'énuméré de gamme existe déjà 3928, Le champ de l'énuméré statistique article n'est pas modifiable 134

146 Annexe 4 Les codes erreurs Sage 3929, Domaine de validité du champ incorrect, veuillez vous référer à la documentation. 3930, Le champ ne peut être modifié 3931, La clé RIB est incorrecte 3932, Suppression impossible. L'échéance possède des écritures associées 3933, Suppression impossible. L'échéance a fait l'objet d'une transmission 3934, L'écriture comptable n'existe pas 3935, Le compte effet n'existe pas 3936, La banque n'existe pas 3937, Le compte de TVA n'existe pas 3938, Le compte de tiers n'existe pas 3939, Le compte général n'existe pas 3940, L'intitulé du tarif doit être unique 3941, Certains champs ne peuvent pas être modifiés dans les lignes de commentaire 3942, Modification de DL_Frais possible, qu'avec un document d'achat de type facture ou un bon de livraison si l'article n'est pas suivi en stock 3943, L'échéance ne peut être modifiée car elle est associée à un entête. 3944, L'écriture est une écriture de centralisation 3945, L'écriture est lettrée 3946, La modification du numéro d'échéance est impossible 3947, Cette écriture est déjà associée à cette échéance 3948, L'échéance n'existe pas 3949, L'écriture comptable n'existe pas 3950, Ce raccourci existe déjà 3951, AR_RefCompose n'est pas modifiable 3952, DO_Ventile n'est pas modifiable 3953, DO_FinPeriod n'est pas modifiable 3954, DO_DebutPeriod n'est pas modifiable 135

147 Annexe 4 Les codes erreurs Sage 3955, DO_FinAbo n'est pas modifiable 3956, DO_DebutAbo n'est pas modifiable 3957, AB_No n'est pas modifiable 3958, L'abonnement n'existe pas 3959, La date n'est pas une date valide 3960, DO_Reliquat n'est pas modifiable 3961, La souche est invalide 3962, DO_souche n'est pas modifiable 3963, EC_ANTYPE est non modifiable 3964, Impossible de modifier la devise quand il y a des extraits associés 3965, Le compte payeur n'est du type du compte tiers 3966, Le nombre de décimales des quantités est incorrect 3966, Ce statut est invalide 3967, EB_NO est non modifiable 3968, EB_NO doit être à 0 en ajout 3969, La section analytique du compte de tiers n'existe pas 3970, La section analytique est déjà utilisée dans un compte de tiers 3971, La section analytique est déjà utilisée dans des répartitions analytiques 3972, Il existe déjà des répartitions analytiques 3973, Ce statut est invalide 3974, Si on modifie le statut du document, alors il faut que l'ancien statut soit valide et que le nouveau le soit aussi 3975, Le statut du document est invalide 3976, L'article est incompatible avec les articles liés 3977, L'article est incompatible avec les nomenclatures commerciales 3978, Dans F_ARTCLIENT, si on est sur Hors Remise, alors on ne peut pas affecter de gamme de remise 136

148 Annexe 4 Les codes erreurs Sage 3979, Dans F_ARTFOURNISS, si on est sur Hors Remise, alors on ne peut pas affecter de gamme de remise 3980, AR_NOMENCL ne peut être modifié. L'article fait partie d'un article commercial composé, composant ou lié 3981, Le compte général n'existe pas 3982, Le compte général n'existe pas 3983, Dans F_NOMENCLAT, la somme des % de répartitions ne doit être > à 100% 3984, Dans F_ARTCLIENT, on ne peut pas passer en Hors remise, s'il existe une gamme de remise pour cet article 3985, Dans F_ARTCLIENT, si on est sur Hors Remise, alors on ne peut pas affecter de remise 3986, Dans F_ARTFOURNISS, on ne peut pas passer en Hors remise, s'il existe une gamme de remise pour cet article 3987, Dans F_ARTFOURNISS, si on est sur Hors Remise, alors on ne peut pas affecter de remise 3988, L'article n'est pas une nomenclature 3989, Suppression impossible car l'article existe dans F_MODELE 3990, Le suivi de stock est incompatible avec les nomenclatures commerciales 3991, Champs non valides pour une famille ou une immobilisation non soumise à la taxe foncière. 3992, La date de fin doit être supérieure au dernier loyer clôturé! 3993, Les champs du contrat ne sont pas modifiables, il existe des loyers clôturés! 3994, Champs non modifiables pour une immobilisation de type Bien! 3995, Date de contrat invalide! 3996, L'immobilisation ne possède pas de date de début et fin de contrat alors que des champs relatifs aux contrats sont renseignés! 3997, Le coût ne doit pas être renseigné en mode ajout! 3998, L'immobilisation est de type Biens alors que des champs relatifs aux contrats sont renseignés! 3999, Le type d'origine de l'immobilisation ne doit être renseigné que si une date de rachat existe! 4000, La gamme 1 ne peut pas être vide car l'article possède une gamme 1 137

149 Annexe 4 Les codes erreurs Sage 4001, La gamme 2 doit être à vide, car l'article ne possède pas de gamme , La gamme 1 doit être à vide, car l'article ne possède pas de gamme , Le dépôt mouvementé n'existe pas 4004, Le représentant n'existe pas 4005, Le numéro de dépôt doit être différent de 0 pour un article suivi en stock 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 ou n'est pas associé à un document 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 à , 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 > , 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 > , 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é 138

150 Annexe 4 Les codes erreurs Sage 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 C , 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 à , Le numéro interne doit être <> , L'article est vide ou n'est pas de type C39 ou est de longueur > , 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 4046, Le numéro interne de l'échéance n'existe pas 4047, Le numéro interne du règlement n'existe pas 4048, Le numéro de pièce est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 8 caractères 4049, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domaine de document 4050, Le domaine doit être compris entre 0 et 1 139

151 Annexe 4 Les codes erreurs Sage 4051, Le montant imputé sur l'échéance ne peut pas être égal à , Le numéro interne de l'échéance ne peut pas être égal à , Le numéro interne du règlement ne peut pas être égal à , Le champ règlement imputé ne peut pas être modifié 4055, Le champ règlement comptabilisé ne peut pas être modifié 4056, Le type (client ou fournisseur) ne peut pas être modifié 4057, Le tiers payeur ne peut pas être modifié 4058, Le numéro interne ne peut pas être modifié 4059, Modification et suppression impossible, car il existe un enregistrement dans le fichier des liens entre les règlement et les échéances ayant le même numéro interne 4060, Le champ règlement comptabilisé doit être à , Le champ règlement imputé doit être à , Le numéro interne doit être à , L'écriture comptable associée n'existe pas 4064, Le journal n'est pas du type trésorerie 4065, Le journal n'existe pas 4066, Le code journal est à vide ou est de longueur > 6 caractères 4067, Le montant du règlement en devise doit être à , Le cours de la devise doit être à , Le montant du règlement doit être différent de , La date du règlement est obligatoire ou la date n'est pas valide 4071, Le Tiers payeur est vide ou n'est pas en Alphanum. Maj. ou est de longueur > 17 caractères pour les documents d'achat ou de vente, ou n'est pas vide pour les documents de type stock 4072, Suppression impossible d'un règlement d'équilibre 4073, Suppression impossible d'un règlement d'équilibre 4074, Le champ échéance réglée ne peut pas être modifié 4075, Le champ ligne d'équilibrage ne peut pas être modifié 140

152 Annexe 4 Les codes erreurs Sage 4076, Le type de règlement ne peut pas être modifié 4077, Le numéro de pièce du document ne peut pas être modifié 4078, Le type du document ne peut pas être modifié 4079, Le domaine du document ne peut pas être modifié 4080, Le numéro interne des acomptes et des échéances de document ne peut pas être modifié 4081, Ajout, modification et suppression impossible, car il existe un enregistrement dans le fichier des liens entre les règlement et les échéances ayant le même domaine, le même type et le même numéro de pièce 4082, le champ échéance réglée doit être à , La ligne d'équilibrage doit être égale à , Le montant en devise du règlement doit être égal à , Le numéro interne du règlement doit être égal à , Le numéro de l'écriture n'existe pas 4087, Le numéro interne de l'écriture ne peut pas être égal à , Le pourcentage, le montant du règlement et la ligne d'équilibrage ne peuvent pas être, tous les trois, égaux à , Dans le cas d'une ligne d'équilibrage, le pourcentage du règlement doit être égal à , Dans le cas d'une ligne d'équilibrage, le montant en devise du règlement doit être égal à , Dans le cas d'une ligne d'équilibrage, le montant du règlement doit être égal à , Le pourcentage et le montant en devise du règlement ne peuvent pas être, tous les deux, > , Le pourcentage et le montant du règlement ne peuvent pas être, tous les deux, > , Pour une échéance, le libellé doit être vide 4095, Pour un acompte, le champ échéance réglée doit être à non 4096, Pour un acompte, le montant du règlement ne peut pas être égal à , Pour un acompte, le pourcentage du règlement doit être égal à , Pour un acompte, le champ ligne d'équilibrage doit être à , Pour un acompte, le mode de règlement d'une échéance doit être égal à , Le libellé du règlement est de longueur > 35 caractères 141

153 Annexe 4 Les codes erreurs Sage 4101, Le type de règlement doit être compris entre 0 et , La date du règlement est obligatoire ou la date n'est pas valide 4103, Le numéro de pièce est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 8 caractères 4104, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domaine de document 4105, Le domaine doit être du type achat ou vente 4106, Suppression impossible, la ligne n'est pas du type devis, bon de commande, commande ou commande confirmée 4107, Ajout, modification et suppression impossible, car il existe un enregistrement dans le fichier des liens entre les règlements et les échéances ayant le même domaine, le même type et le même numéro de pièce 4108, Le numéro de dépôt mouvementé ne peut pas être modifié 4109, Le numéro interne DL_NOREF ne peut pas être modifié 4110, Le type de prix (HT ou TTC) ne peut pas être modifié 4111, Le conditionnement ne peut pas être modifié 4112, La référence fournisseur ne peut pas être modifiée 4113, La gamme 2 ne peut pas être modifiée 4114, La gamme 1 ne peut pas être modifiée 4115, Le champ ligne de type énuméré de gamme ne peut pas être modifié 4116, Le type de taxe 2 ne peut pas être modifié 4117, Le type de taux de taxe 2 ne peut pas être modifié 4118, Le taux de taxe 2 ne peut pas être modifié 4119, Le type de taxe 1 ne peut pas être modifié 4120, Le type de taux de taxe 1 ne peut pas être modifié 4121, Le taux de taxe 1 ne peut pas être modifié 4122, La référence de l'article ne peut pas être modifiée 4123, La remise exceptionnelle ne peut pas être modifiée 4124, La remise de pied ne peut pas être modifiée 142

154 Annexe 4 Les codes erreurs Sage 4125, Le numéro de ligne ne peut pas être modifié 4126, La date du bon de livraison ne peut pas être modifiée 4127, La date du bon de commande ne peut pas être modifiée 4128, Le numéro de pièce du bon de livraison ne peut pas être modifié 4129, Le numéro de pièce du bon de commande ne peut pas être modifié 4130, Le Tiers ne peut pas être modifié 4131, La date du document ne peut pas être modifiée 4132, Le numéro de pièce interne ne peut pas être modifié 4133, Le type de la ligne de document ne peut pas être modifié 4134, Le domaine de la ligne de document ne peut pas être modifié 4135, Le numéro interne de la ligne de document ne peut pas être modifié 4136, Différence entre Qté et QtéRestante. 4137, Une ligne de document, avec le même numéro de ligne existe déjà pour ce document 4138, Pour un document en devise, le type de prix (HT ou TTC) doit être en HT 4139, Le prix unitaire en devise doit être égal à , La gamme 2 n'existe pas 4141, La gamme 1 n'existe pas 4142, La gamme 1 doit être vide pour une ligne qui n'est pas du type énuméré de gamme 4143, Pour une ligne de type énuméré de gamme, gamme 1 et gamme 2 ne peuvent pas être vides tous les deux 4144, La gamme 2 ne peut pas être vide car l'article possède une gamme , La gamme 1 ne peut pas être vide car l'article possède une gamme , La gamme 2 doit être à vide, car l'article ne possède pas de gamme , La gamme 1 doit être à vide, car l'article ne possède pas de gamme , Le dépôt mouvementé n'existe pas 4149, Le représentant n'existe pas ou n'est pas de type vendeur 4150, Le numéro de dépôt doit être différent de 0 pour un article suivi en stock 143

155 Annexe 4 Les codes erreurs Sage 4151, Le numéro de dépôt doit être égal à 0 pour un article qui n'est pas suivi en stock 4152, Le compte analytique n'existe pas dans le plan affaire, ou n'est pas du type détail 4153, DL_NO doit être égal à , La date du document n'est pas identique à celle renseignée dans l'entête du document 4155, Le Tiers n'est pas identique à celui renseigné dans l'entête de document 4156, Ce fournisseur ne fait pas parti de la liste des fournisseurs de cet article 4157, Le glossaire n'existe pas ou n'est pas associé à un document 4158, L'entête de document n'existe pas 4159, L'article doit être non suivi en stock (F_ARTICLE.AR_SUIVISTOCK = 0) ou suivi au CMUP F_ARTICLE.AR_SUIVISTOCK = 2) 4160, Le champ DL_PUTTC ne peut pas être modifié pour les documents HT ou ayant une devise 4161, Le type du prix (TTC ou HT) doit être en HT pour une ligne faisant référence à aucun article 4162, Le représentant doit être égal à , Le type du prix (TTC ou HT) doit être en HT pour un document de type achat 4165, Le poids brut et le poids net doivent être à 0 pour une ligne avec une remise de pieds ou une remise exceptionnelle 4166, La quantité livrée doit être >= , La quantité livrée doit être égale à 0 pour un document de type devis ou commande 4168, La quantité commandée doit être >= , La quantité colisée doit être > , La quantité doit être > , La désignation est de longueur > 69 caractères 4172, L'article est vide ou n'est pas de type C39 ou est de longueur > , Une remise de pied ne peut pas être combinée avec une remise exceptionnelle 4174, Ligne de type nomenclature doit être égale à , Les champs DL_DateBL et DO_Date doivent être égaux pour les documents ne provenant pas d'une transformation 144

156 Annexe 4 Les codes erreurs Sage 4176, Les champs DL_DateBC et DO_Date doivent être égaux pour les documents ne provenant pas d'une transformation 4177, Le numéro de pièce et la date du bon de livraison doivent être à vide 4178, Le numéro de pièce et la date du bon de commande doivent être à vide 4179, La date du document est obligatoire ou la date n'est pas valide 4180, Le numéro du Tiers est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 17 caractères 4181, Le numéro de pièce est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 8 caractères 4182, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domaine de document 4183, Le domaine de la ligne de document doit être compris entre 0 et , Le taux d'escompte ne peut pas être modifié, car des règlements sont associés à ce document 4186, Suppression impossible, le document n'est pas du type vente ou achat 4187, Suppression impossible, car des règlements sont associés à ce document 4188, Suppression impossible, car des lignes sont associées à ce document 4189, Le Tiers payeur ne peut pas être modifié, car des règlements sont associés à ce document 4190, Le taux de conversion en devise ne peut pas être modifié, car des règlements sont associés à ce document 4191, La devise ne peut pas être modifiée, car des règlements sont associés à ce document 4192, La devise ne peut pas être modifiée, car des lignes sont associées à ce document 4193, Le dépôt de stockage ne peut pas être modifié, car des lignes sont associées à ce document 4194, AR_RefCompose doit être vide si l'article n'est pas à nomenclature commerciale composant ou composé 4195, La catégorie tarifaire ne peut pas être modifiée, car des lignes sont associées à ce document 4196, DL_Valorise n'est pas modifiable 4197, Le tiers ne peut pas être modifié 4198, La date du document ne peut pas être modifiée 145

157 Annexe 4 Les codes erreurs Sage 4199, Le numéro de pièce ne peut pas être modifié 4200, Le type de document ne peut pas être modifié 4201, Le domaine du document ne peut pas être modifié 4202, Le compte analytique n'existe pas dans le plan affaire, ou n'est pas du type détail 4203, Le dépôt de livraison n'existe pas ou n'appartient pas à ce tiers 4204, Le dépôt de stockage n'existe pas 4205, Ce représentant n'existe pas 4206, Ce numéro de pièce existe déjà dans un autre document 4207, Le type de mouvement d'une ligne de document n'est pas modifiable 4208, Le dépôt de livraison doit être égal à , Le représentant doit être égal à , Le dépôt de stockage doit être différent de , Un bon de livraison par facture doit être compris entre 0 et , Un bon de livraison par facture doit être égal à , Le Tiers payeur est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 17 caractères pour les documents d'achat ou de vente, ou n'est pas vide pour les documents de type stock 4214, Le taux de conversion doit être égal à , Le numéro du tiers est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 17 caractères 4216, La date du document est obligatoire ou la date n'est pas valide 4217, Le numéro de pièce est vide ou n'est pas en alphanumérique et majuscule ou est de longueur > 8 caractères 4218, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domaine de document 4220, Suppression impossible car existe dans F_ARTGLOSS 4221, Un glossaire associé à une ligne de document est non modifiable 4222, Le domaine du glossaire n'est pas modifiable 4223, Le numéro interne n'est pas modifiable 146

158 Annexe 4 Les codes erreurs Sage 4224, Le raccourci du glossaire doit être unique 4225, L'intitulé du glossaire doit être unique 4226, En ajout le numéro interne doit être à , Si c'est un glossaire rattaché à une ligne de document alors la période de fin doit être vide 4228, Si c'est un glossaire rattaché à une ligne de document alors la période de début doit être vide 4229, La période de début de doit pas être supérieure à la date de fin 4230, Si c'est un glossaire rattaché à une ligne alors le raccourci doit être à vide 4231, Si c'est un glossaire rattaché à une ligne alors l'intitulé n'est pas renseigné 4232, Si ce n'est pas un glossaire rattaché à une ligne alors l'intitulé est obligatoire 4233, Si c'est un glossaire rattaché à une ligne de document alors GL_DOMAINE doit être égal à , La date de début ou de fin doit être renseignée 4235, L'intéressé est non modifiable 4236, Le domaine est non modifiable 4237, La date de début doit être inférieure à la date de fin 4238, AG_DOMAINE de F_AGENDA doit correspondre à l'intéressé de P_AGENDAS 4239, Il existe déjà un représentant 4240, Ce dépôt existe déjà 4241, L'intitulé de l'événement n'existe pas dans F_AGENDADET 4242, L'intitulé de l'événement ne peut être vide 4243, Pour le domaine client ou fournisseur, la référence de l'intéressé est vide ou n'est pas en alphanumérique majuscule ou est de longueur > 17 caractères. Pour le domaine article, l'intéressé est vide ou n'est pas de type C39. Pour le domaine dépôt ou article, l'intéressé est vide ou n'est pas une chaîne de caractères numérique 4244, Le domaine de l'agenda doit être compris entre 0 et , Le numéro interne de conditionnement n'est pas modifiable 4246, Le numéro client ou la catégorie de clients n'est pas modifiable 4247, La référence article n'est pas modifiable 147

159 Annexe 4 Les codes erreurs Sage 4248, Le tarif de conditionnement est unique 4249, La catégorie tarifaire n'existe pas dans F_ARTCLIENT 4250, Le client n'existe pas dans F_ARTCLIENT 4251, L'article de F_TARIFCOND n'est pas le même que celui F_CONDITION, ou le conditionnement n'existe pas pour l'article 4252, Le client 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 2 derniers caractères non numériques (et compris entre 1 et 32) 4253, Le prix de l'élément de conditionnement ne doit pas être nul. 4254, Le numéro interne de l'élément de conditionnement ne doit pas être nul 4255, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4256, Suppression impossible car existe dans F_TARIFCOND 4257, La référence article n'est pas modifiable 4258, Le numéro interne n'est pas modifiable 4259, La quantité de conditionnement existe déjà 4260, L'article est à gamme, donc on ne peut avoir de conditionnement 4261, L'article ne possède pas de conditionnement 4262, Le numéro interne de l'élément de conditionnement doit être à 0 en ajout 4263, La quantité de l'énuméré de conditionnement doit être > , L'énuméré de conditionnement est vide ou est de longueur > 21 caractères 4265, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4266, L'article ne peut pas appartenir à sa nomenclature 4267, La référence article n'est pas modifiable 4268, La composante existe déjà 4269, L'énuméré de gamme 2 n'existe pas dans F_ARTGAMME 4270, L'énuméré de gamme 1 n'existe pas dans F_ARTGAMME 4271, L'énuméré de gamme 2 est non nul alors que la composante n'est pas à double gamme 4272, La composante est à double gamme alors que l'énuméré de gamme 2 est nul 148

160 Annexe 4 Les codes erreurs Sage 4273, L'énuméré de gamme 1 est non nul alors que la composante n'est pas à gamme 4274, La composante est à gamme alors l'énuméré de gamme 1 est nul 4275, L'article principal ne peut pas avoir de gamme 4276, La profondeur pour une nomenclature ne peut être >= , Une nomenclature ne peut contenir un article contenant lui même l'article principal 4278, S'il y a un énuméré de gamme 2, l'énuméré de gamme 1 doit être présent 4279, La quantité d'articles de détail dans l'article principal doit être non nul 4280, La référence de l'article de détail n'est pas de type C39 ou est de longueur > 18 caractères 4281, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4282, Le fournisseur, le client ou la catégorie tarifaire n'est pas modifiable 4283, La référence article n'est pas modifiable 4284, Cette tranche de tarification existe déjà 4285, La catégorie tarifaire n'existe pas dans F_ARTCLIENT 4286, Le Tiers n'existe pas dans F_ARTFOURNISS ou F_ARTCLIENT 4287, Le Tiers n'existe pas dans la base comptable 4288, Le type de la remise doit être compris entre 0 et , Le Tiers 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 2 derniers caractères non numériques (et compris entre 1 et 32) 4290, La borne supérieure de la remise doit être <> , La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4292, La référence article, le fournisseur ou la catégorie tarifaire, les numéros des énumérés de gamme 1 et 2 existent déjà 4293, Le numéro de l'énuméré de gamme 2 n'est pas modifiable 4294, Le numéro de l'énuméré de gamme 1 n'est pas modifiable 4295, Le tiers ou la catégorie tarifaire n'est pas modifiable 4296, La référence article n'est pas modifiable 4297, La catégorie tarifaire n'existe pas dans F_ARTCLIENT 149

161 Annexe 4 Les codes erreurs Sage 4298, Le client ou le fournisseur n'existe pas dans F_ARTCLIENT ou F_ARTFOURNISS 4299, La gamme 2 n'existe pas 4300, La gamme 1 n'existe pas 4301, L'article est à double gamme, le numéro interne de gamme 2 doit donc être non nul 4302, L'article ne possède pas de gamme 2, alors que le numéro interne de gamme2 est non nul 4303, L'article n'est pas à gamme 4304, Le tiers n'existe pas dans la base comptable 4305, 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) 4306, Le prix de l'élément de gamme doit être <> , La gamme 1 doit être renseignée : valeur non nulle 4308, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4309, Suppression impossible car l'article existe dans F_TARIFCOND 4310, Suppression impossible car l'article existe dans F_TARIFQTE 4311, Suppression impossible car l'article existe dans F_TARIFGAM 4312, Modification impossible de la gamme car un client ou une catégorie tarifaire existe déjà dans F_TARIFQTE 4313, La catégorie tarifaire n'est pas modifiable 4314, Le client n'est pas modifiable 4315, La référence article n'est pas modifiable 4316, La catégorie tarifaire doit être unique 4317, Le client doit être unique 4318, S'il y a une devise, le coefficient doit être nul 4319, S'il y a une devise, il ne doit y avoir aucun mode d'arrondi 4320, S'il y a une devise, le prix doit être HT 4321, Si aucune devise, le prix de vente en devise doit être nul 4322, Si on a une devise, le prix de vente doit être nul 150

162 Annexe 4 Les codes erreurs Sage 4323, On ne peut avoir à la fois une catégorie tarifaire et un client 4324, Impossible d'avoir une gamme montant ou quantité sans avoir de remise à gamme 4325, Impossible d'avoir une remise à gamme sans avoir de gamme de type quantité ou montant 4326, On ne peut avoir une remise générale et une tarification quantité ou montant 4327, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4328, Modification impossible de EG_CHAMP car existe dans F_TARIFQTE 4329, Suppression impossible car existe dans F_TARIFQTE 4330, Suppression impossible car existe dans F_TARIFGAM 4331, Suppression impossible du fournisseur principal 4332, Modification impossible du fournisseur principal 4333, Modification impossible du fournisseur 4334, Modification impossible de la référence article 4335, La référence fournisseur doit être unique 4336, Le fournisseur doit être unique 4337, Impossible d'avoir un prix d'achat en devise non nul sans avoir devise 4338, Impossible d'avoir une devise avec un prix d'achat non nul 4339, Impossible d'avoir une gamme montant ou quantité sans avoir de remise à gamme 4340, Impossible d'avoir une remise à gamme sans avoir de gamme 4341, On ne peut avoir une remise générale et une remise à gamme 4342, La quantité minimale de commande doit être > colisage fournisseur 4343, La référence fournisseur n'est pas de type C39 est de longueur > 18 caractères 4344, Le fournisseur est vide, est de longueur > 17 caractères ou n'est pas en majuscule 4345, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4346, Changement du type de gamme alors que l'article n'est pas à double gamme 4347, L'article n'est pas à gamme 4348, L'énuméré existe déjà 151

163 Annexe 4 Les codes erreurs Sage 4349, Modification impossible du type de gamme ou suppression impossible, car l'énuméré est utilisé dans F_TARIFGAM 4350, Modification impossible du type de gamme ou suppression impossible, car l'énuméré est utilisé dans F_GAMSTOCK 4351, Modification impossible du type de gamme ou suppression impossible, car l'énuméré est utilisé dans F_DOCLIGNE 4352, Modification impossible du type de gamme ou suppression impossible, car l'énuméré est utilisé dans F_NOMENCLAT 4353, La référence article est non modifiable 4354, Numéro interne non modifiable 4355, On ne peut avoir 2 énumérés de gamme avec le même nom 4356, Le numéro interne doit être égal à 0 en ajout 4357, La référence article est vide ou n'est pas de type C39 ou est de longueur > 18 caractères 4358, Suppression impossible car l'article existe dans P_PREFERENCE (article/escompte) 4359, Suppression impossible car l'article existe dans F_AGENDA 4360, Suppression impossible car l'article existe dans F_TARIFSELECT 4361, Suppression impossible car l'article existe dans F_TARIF 4362, Suppression impossible car l'article existe dans F_ARTCOMPTA 4363, Suppression impossible car l'article existe dans F_ARTGLOS 4364, Suppression impossible car l'article existe dans F_GAMSTOCK 4365, Suppression impossible car l'article existe dans F_TARIFQTE 4366, Suppression impossible car l'article existe dans F_ARTCLIENT 4367, Suppression impossible car l'article existe dans F_ARTFOURNISS 4368, Modification impossible de la référence article 4369, Changement du suivi de stock = Aucun > modification ou suppression impossible car l'article existe dans F_ARTSTOCK 4370, Changement de conditionnement, modification impossible de l'article car il existe dans F_TARIFCOND ou suppression impossible 152

164 Annexe 4 Les codes erreurs Sage 4371, Changement de conditionnement, modification impossible de l'article car il existe dans F_CONDITION ou suppression impossible 4372, Modification ou Suppression impossible car l'article existe dans F_NOMENCLAT 4373, Changement de gamme ou de suivi de stock. La modification est impossible car l'article existe dans F_DOCLIGNE, ou suppression impossible car il existe dans F_DOCLIGNE 4374, Changement de gamme, modification ou suppression impossible de l'article car il existe dans F_TARIFGAMME 4375, Changement de gamme, modification ou suppression impossible de l'article car il existe dans F_ARTGAMME 4376, L'énuméré n'existe pas 4377, Si l'article possède un raccourci, celui ci doit être unique 4378, Si l'article possède un article de substitution, il ne doit pas être à gamme 4379, L'article est unique 4380, Le suivi en stock de l'article, sérialisé ou par lot est incompatible avec un article à gamme ou à conditionnement ou géré en vente au débit 4381, L'article ne peut posséder un conditionnement et être géré en vente au débit 4382, L'article ne peut avoir une gamme et être géré en vente au débit 4383, L'article ne peut posséder une gamme et une nomenclature 4384, L'article ne peut être à gamme et posséder un conditionnement 4385, Si l'article est à double gamme, alors la gamme 1 et la gamme 2 doivent être renseignées. Si l'article ne possède qu'une seule gamme (gamme 1) alors seule la gamme 1 doit être renseignée 4386, L'article ne peut être son propre article de substitution 4387, Le code famille est vide ou n'est pas en Alpha Numérique Majuscule ou est de longueur > 10 caractères 4388, La désignation article est obligatoire 4389, L'article est vide ou n'est pas de type C39 ou est de longueur > , Le code famille n'est pas modifiable 4391, Le tarif est unique 4392, La remise générale ne doit pas être à 0 153

165 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 , 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 , Le compte analytique est déjà rattaché à cette ventilation analytique. 154

166 Annexe 4 Les codes erreurs Sage 4418, Suppression impossible, il existe des enregistrements 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, RE_NO fait référence à un représentant inexistant, ou doit être égal à 0 pour une utilisation sans la gestion commerciale 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à 155

167 Annexe 4 Les codes erreurs Sage 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 à , 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 à , 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 > , Ce registre taxe existe déjà 156

168 Annexe 4 Les codes erreurs Sage 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 4466, Le numéro interne n'est pas modifiable 4467, Ce registre révision existe déjà 4469, Le code journal analytique n'est pas modifiable 4470, Pour TA_TTAUX[i]=0, le nombre de décimales de RT_MONTANT[i] est incorrect (montant), pour TA_TTAUX[i]=1, le nombre de décimales de RT_MONTANT[i] ne peut pas être > 4, pour TA_TTAUX[i]=2, le nombre de décimales de RT_MONTANT[i] est incorrect (montant) 4471, Pour TA_TTAUX[i]=0, le nombre de décimales de RT_BASE[i] est incorrect (montant), pour TA_TTAUX[i]=1, RT_BASE[i] doit être à 0, pour TA_TTAUX[i]=2, le nombre de décimales de RT_BASE[i] est incorrect. 4472, Le nombre de décimales de TA_TAUX[i=1 à 5] ne peut pas être > 4 (double) 4473, La date de début est supérieure à la date de fin 4474, EC_NO utilisé dans REGTAXE (donc non supprimable) 4475, EC_NO utilisé dans REGREVISION (donc non supprimable) 4476, EC_NO utilisé dans ECRITUREA (donc non supprimable) 4477, On ne peut ajouter une écriture de type centralisatrice (EC_Ctype=1) avec EcritureCAddinJournal, car cela est gérée automatiquement 4478, Le champ EC_CLOTURE n'est pas modifiable 4479, Le champ EC_CTYPE n'est pas modifiable 4480, Le numéro de ligne doit être égal à , Le numéro de ligne ne doit pas dépasser , Le numéro de ligne doit suivre le numéro de ligne de la précédente écriture analytique 4483, Le jour, la pièce, le compte, le sens ou le montant de l'écriture a été modifié. L'écriture doit donc être enregistrée comme non imprimée (EC_Impression=0) 4484, Le numéro de ligne n'est pas modifiable 4485, Le numéro analytique n'est pas modifiable 157

169 Annexe 4 Les codes erreurs Sage 4486, Référence à un compte analytique inexistant 4487, L'écriture analytique existe déjà 4488, Référence à une écriture inexistante ou qui n'est pas de type NORMAL 4489, La période saisie pour le registre de taxe n'est pas identique à la période de l'écriture générale associée 4490, La suppression des écritures a été désactivée pour ce dossier 4491, L'écriture est rapprochée, donc non supprimable 4492, L'écriture est lettrée, donc non supprimable 4493, L'écriture est pointée, donc non supprimable 4494, L'écriture est de type centralisatrice (EC_Ctype=1), donc non supprimable 4495, L'écriture est clôturée, donc non supprimable 4496, EC_NOLINK ne peut être remis à , Le champ JO_NUM n'est pas modifiable 4498, Le champ JM_DATE n'est pas modifiable 4499, Le champ EC_NO n'est pas modifiable 4500, Le nombre de décimales de EC_MONTANT est incorrect (montant) 4501, Pour N_DEVISE=0, le nombre de décimales de EC_QUANTITE est incorrect (quantité), Pour N_DEVISE<>0, le nombre de décimales de EC_QUANTITE est incorrect. 4502, Le nombre de décimales de EC_PARITE ne peut pas être > 6 (double) 4503, Le délai d'échéance est dépassé 4504, Ce compte général ne peut être utilisé 4505, CT_NUM fait référence à un tiers incorrect 4506, Le numéro de compte général de contrepartie fait référence à un compte général (de type détail, CG_TYPE=0) incorrect 4507, Le numéro de compte général fait référence à un compte général (de type détail, CG_TYPE=0) incorrect 4508, Ce champ n'est pas modifiable 4509, Les écritures centralisatrices (EC_CTYPE=1) ne peuvent pas être ajouter, modifier ou supprimer 158

170 Annexe 4 Les codes erreurs Sage 4510, Le champ EC_IMPRESSION n'est pas modifiable 4511, Impossible d'ajouter une écriture dans un journal clôturé (option : 'A propos de' non cochée) 4512, Le journal associé à l'écriture n'est pas de JO_TYPE=2 4513, La date de l'écriture fait parti d'un exercice archivé 4514, JM_DATE+EC_JOUR ne constitue pas une date comprise dans les exercices de la base 4515, Référence à un journal inexistant 4516, Référence à un JMOUV inexistant 4517, Le nombre de décimales de EA_QUANTITE est incorrect (quantité) 4518, Le nombre de décimales de EA_MONTANT est incorrect (montant) 4519, Le numéro de compte analytique est à vide ou n'est pas de type alphanumérique et majuscule ou de longueur > , Le numéro analytique n'est pas dans [1..10] 4521, Si EC_NOLINK est non nul, il doit correspondre à un numéro d'écriture existante 4522, EC_NO doit être à , Pour EC_POINT=0, EC_POINTAGE doit être vide, pour EC_POINT=1, EC_POINTAGE ne doit pas être vide 4524, Pour EC_LETTRE=0, EC_LETTRAGE doit être en minuscule ou vide, pour EC_LETTRE=1, EC_LETTRAGE doit être en majuscule et non vide 4525, Le montant doit être différent de , Le numéro de compte général est à vide ou n'est pas de type compte 4527, La date de saisie n'est pas une date valide 4528, La période n'est pas une date valide ou le jour de JM_DATE est différent de , Le code journal est vide ou de longueur > , La période n'est pas dans la liste des exercices de la base 4531, Le JMOUV est utilisé dans le fichier des écritures (donc non supprimable) 4532, Dans J_MOUV, JM_CLOTURE doit être à 0 (non clôturé) 4533, Dans J_MOUV, JM_IMPRESSION doit être à 0 (non imprimé) 159

171 Annexe 4 Les codes erreurs Sage 4534, Ce JMOUV existe déjà 4535, Référence à un journal inexistant 4536, La période n'est pas une date valide ou le jour de JM_DATE est différent de , Le code journal est vide ou de longueur > , Le budget est déjà utilisé dans EBUDGET (donc non supprimable) 4539, Le nombre de décimales de BD_DOTATION est incorrect (montant) 4540, Le numéro de compte général de l'élément de budget n'est pas modifiable 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 160

172 Annexe 4 Les codes erreurs Sage 4559, L'intitulé est vide ou de longueur > , Le numéro de budget est à vide ou n'est pas de type alphanumérique et majuscule ou de longueur > , L'intitulé du libellé existe déjà 4562, Le raccourci n'est pas du type alphanumérique et majuscule ou de longueur > , L'intitulé est vide ou de longueur > , 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 à , 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 > , L'intitulé est vide ou de longueur > , Ce modèle existe déjà dans EMODELER (donc non supprimable) 4580, Pour ER_TREPART=1, ER_VREPART ne peut pas être différent de , Pour ER_TREPART=0, le nombre de décimales de ER_VREPART ne peut pas être > 4 (double), pour ER_TREPART=2, le nombre de décimales de ER_VREPART est incorrect (montant) 4582, Cet élément de modèle de règlement existe déjà 161

173 Annexe 4 Les codes erreurs Sage 4583, Ce modèle de règlement existe déjà 4584, Le numéro interne n'est pas modifiable 4585, L'intitulé du modèle de règlement existe déjà 4586, Les jours de tombée (1 à 6) ne sont pas triés par jour croissant 4587, L'intitulé est vide ou de longueur > , Le numéro interne doit être à , Modèle utilisé dans EMODELEG (donc non supprimable) 4590, Pour EG_QTRepart=1, EG_QVREPART ne peut pas être différent de , Pour EG_TREPART=1, EG_VREPART ne peut pas être différent de , Pour EG_QTREPART=0, le nombre de décimales de EG_QVREPART ne peut pas être > 4, (double), pour EG_QTREPART=2, le nombre de décimales de EG_QVREPART est incorrect (montant) 4593, Pour EG_TREPART=0, le nombre de décimales de EG_VREPART ne peut pas être > 4, (double), pour EG_TREPART=2, le nombre de décimales de EG_VREPART est incorrect (montant) 4594, Le numéro analytique n'est pas modifiable 4595, Référence à un modèle de grille inexistant 4596, Référence à un compte analytique inexistant 4597, Référence à un compte général inexistant 4598, Cet élément de modèle de grille existe déjà 4599, Le type n'est pas modifiable 4600, Le numéro interne n'est pas modifiable 4601, L'intitulé du modèle de grille existe déjà 4602, Le numéro de compte général ou analytique est à vide ou n'est pas de type alphanumérique et majuscule ou de longueur > , Le numéro interne doit être à , L'intitulé est vide ou est de longueur > 35 caractères 4605, La pièce est utilisée dans le fichier des pièces analytiques (donc non supprimable) 4606, La pièce est utilisée dans le fichier des pièces générales (donc non supprimable) 162

174 Annexe 4 Les codes erreurs Sage 4607, Pour PA_TQUANTITE=2, PA_VQUANTITE ne peut pas être différent de , Pour PA_TMONTANT=2, PA_VMONTANT ne peut pas être différent de , Le numéro de ligne analytique doit être égal à , Le numéro de ligne analytique ne doit pas dépasser , Le numéro de ligne analytique doit être conjoint (+1) au numéro de ligne analytique de la précédente pièce analytique 4612, Le numéro de ligne analytique n'est pas modifiable 4613, Le numéro de ligne doit être égal à , Le numéro de ligne ne doit pas dépasser , PG_LIGNE doit être conjoint (+1) au PG_LIGNE de la précédente pièce générale 4616, Pour PA_TQUANTITE=3 ou 4, le nombre de décimales de PA_VQUANTITE ne peut pas être > 4, (double), pour PA_TQUANTITE=0 ou 1, le nombre de décimales de PA_VQUANTITE est incorrect (montant) 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 163

175 Annexe 4 Les codes erreurs Sage 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 à , 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 164

176 Annexe 4 Les codes erreurs Sage 4656, L'agence est vide ou est de longueur > 5 caractères 4657, Le numéro interne n'est pas modifiable 4658, Cet abrégé de banque existe déjà 4659, Le numéro interne doit être à , L'abrégé est vide ou est de longueur > 17 caractères 4661, L'intitulé est vide ou est de longueur > 35 caractères 4662, Le code journal est utilisé dans le fichier des éléments de banque (donc non supprimable) 4663, Le code journal est utilisé dans le fichier JMOUV (donc non supprimable) 4664, Le numéro de compte général n'est pas modifiable 4665, Le type de journal n'est pas modifiable 4666, Le code journal n'est pas modifiable 4667, Ce code journal existe déjà 4668, Référence à un compte général inexistant 4669, L'option contrepartie/ligne n'est pas égale à 0 pour un type de journal <> , Pour JO_TYPE=0 ou JO_TYPE=1, le numéro de compte général doit être vide 4671, Si le type de code journal=2, le numéro de compte général ne peut être vide 4672, L'intitulé du code journal est vide ou est de longueur > 35 caractères 4673, Le code journal est vide ou de longueur > 6 caractères 4674, Non supprimable car existe dans les éléments de taxe 4675, Pour TA_TTAUX=0 ou 2, le nombre de décimales de TA_TAUX ne peut pas être > 4 (double), pour TA_TTAUX=1, le nombre de décimales de TA_TAUX est incorrect (montant) 4676, Le numéro de compte général n'est pas modifiable 4677, Cet élément de taxe existe déjà 4678, Le champ TA_NO n'est pas modifiable 4679, Ce code journal analytique existe déjà 4680, Référence à un compte général inexistant 4681, Le numéro interne n'est pas modifiable 165

177 Annexe 4 Les codes erreurs Sage 4682, Le compte général est à vide ou n'est pas de type compte 4683, L'intitulé de la taxe est vide ou est de longueur > 35 caractères 4684, Le compte tiers est utilisé dans le fichier des lieux de livraison client (donc non supprimable) 4685, Le compte tiers est utilisé dans le fichier des règlements tiers (donc non supprimable) 4686, Le compte tiers est utilisé dans le fichier des banques tiers (donc non supprimable) 4687, Pour RT_TREPART=1, RT_VREPART ne peut pas être différent de , L'intitulé de livraison existe déjà 4689, Pour type de répartition=0, le nombre de décimales de la valeur de répartition ne peut être > 4, pour type de répartition=2, le nombre de décimales de la valeur de répartition est incorrect (montant) 4690, Le nombre de décimales ne peut être > 4 pour CT_TAUX[i] (double) 4691, Nombre de décimales incorrect pour le plafond d'assurance crédit (montant) 4692, Nombre de décimales incorrect pour l'encours (montant) 4693, Ce tiers est tiers principal d'un compte général (donc non supprimable) 4694, Le numéro de compte général n'est pas modifiable 4695, Le CompteTG existe déjà 4696, Le numéro de compte général principal est à vide ou n'est pas de type compte 4697, Le lieu de livraison principal d'un tiers n'est pas supprimable 4698, Le numéro interne du lieu de livraison n'est pas modifiable 4699, Ce lieu de livraison doit être principal pour ce tiers 4700, Le numéro interne de lieu de livraison doit être à , Le règlement tiers existe déjà 4702, Cette banque est la banque principale d'un tiers (donc non supprimable) 4703, Le numéro de banque tiers n'est pas modifiable 4704, Référence à un compte tiers inexistant 4705, Le numéro de compte tiers est utilisé dans le fichier des registres de taxe (donc non supprimable) 166

178 Annexe 4 Les codes erreurs Sage 4706, Le numéro de compte tiers est utilisé dans le fichier des tiers (donc non supprimable) 4707, Le compte tiers est utilisé dans le fichier des écritures (donc non supprimable) 4708, Le type de tiers n'est pas modifiable 4709, Le numéro de compte tiers n'est pas modifiable 4710, Le compte tiers existe déjà 4711, Référence à un énuméré statistique inexistant 4712, Le numéro de compte tiers payeur fait référence à un tiers inexistant 4713, Référence à une banque tiers inexistante 4714, Référence à un compte général inexistant ou qui n'est pas de type détail 4715, L'intitulé du lieu de livraison est vide ou de longueur > 35 caractères 4716, RT_JOURTB n'est pas trié par jour croissant 4717, Les jours de tombée (1 à 6) ne sont pas dans [0..31] 4718, La valeur de répartition ne doit pas être à , Le numéro de banque tiers doit être à , Mauvais RIB (BT_AGENCE, BT_GUICHET, BT_COMPTE ou BT_CLE incorrect) 4721, L'intitulé de la banque tiers est vide ou est de longueur > 35 caractères 4722, Le numéro de compte général principal est à vide ou n'est pas de type compte 4723, L'intitulé du compte tiers est vide ou de longueur > 35 caractères 4724, Le numéro de compte tiers est à vide ou n'est pas de type alphanumérique et en majuscule ou de longueur > 17 caractères 4725, Le compte reporting est utilisé dans le fichier des comptes généraux (donc non supprimable) 4726, Le champ type n'est pas modifiable 4727, Le numéro de compte reporting n'est pas modifiable 4728, Le compte reporting existe déjà 4729, L'intitulé du compte reporting est vide ou de longueur > 35 caractères 4730, Le numéro de compte reporting est à vide ou n'est pas de type alphanumérique et en majuscule ou de longueur >

179 Annexe 4 Les codes erreurs Sage 4731, Le compte analytique est utilisé dans le fichier COMPTEABUDGETG (donc non supprimable) 4732, Le compte analytique est utilisé dans le fichier COMPTEABUDGET (donc non supprimable) 4733, Nombre de décimales incorrect pour CA_BGVREPART[i] (montant) 4734, Nombre de décimales incorrect pour CA_BDOTATION[i] (montant) 4735, Le Champ numéro de compte général n'est pas modifiable 4736, Référence à un compte général inexistant ou qui n'est pas de type détail 4737, CompteABudgetG existe déjà 4738, Champs non modifiables pour une famille ou une immobilisation non suivie. 4739, Le numéro de compte général est à vide ou n'est pas de type compte 4740, Référence à un compte analytique inexistant ou qui n'est pas de type détail 4741, Le CompteABudget existe déjà 4742, L'intitulé du code journal analytique est vide ou est de longueur > 35 caractères 4743, Le compte analytique est utilisé dans le fichier des Budgets Analytiques des comptes généraux (donc non supprimable) 4744, Le compte analytique est utilisé dans le fichier des Budgets (donc non supprimable) 4745, Le compte analytique est utilisé dans le fichier des éléments de modèles de grille (donc non supprimable) 4746, Le compte analytique est utilisé dans le fichier des écritures analytiques (donc non supprimable) 4747, Le type du compte analytique n'est pas modifiable 4748, Le numéro du compte analytique n'est pas modifiable 4749, Le numéro analytique n'est pas modifiable 4750, Le compte analytique existe déjà 4751, Le numéro d'analyse doit être à 1, le report à 0, le raccourci du compte analytique à vide pour un compte analytique totalisateur 4752, Le raccourci du compte analytique n'est pas du type alphanumérique et en majuscule ou de longueur > 6 168

180 Annexe 4 Les codes erreurs Sage 4753, L'intitulé du compte analytique est vide ou de longueur > , Le numéro de compte analytique est à vide ou n'est pas de type alphanumérique et en majuscule ou de longueur > , Le compte général est utilisé dans le fichier des Budgets analytiques des comptes généraux (donc non supprimable) 4756, Le compte général est utilisé dans le fichier des Budgets des comptes généraux (donc non supprimable) 4757, Le compte général est utilisé dans le fichier des Blocs Notes (donc non supprimable) 4758, CompteGMvts nécessite au moins 1 compte général ou 1 tiers en paramètre 4759, Nombre de décimales incorrect pour une valeur de répartition (montant) 4760, Nombre de décimales incorrect pour une valeur de dotation (montant) 4761, Le numéro analytique n'est pas modifiable 4762, Le numéro du compte analytique n'est pas modifiable 4763, Référence à un compte analytique inexistant ou qui n'est pas de type détail 4764, Le comptegbudgeta existe déjà 4765, Le type de répartition n'est pas dans [0..2] 4766, Le numéro du compte analytique est vide ou n'est pas de type alphanumérique et majuscule ou de longueur > , Le CompteGBudget existe déjà 4768, Référence à un compte général inexistant ou qui n'est pas de type détail 4769, Le bloc notes des comptes existe déjà 4770, Le bloc notes est vide ou de longueur > 255 caractères 4771, Le code journal analytique est vide ou de longueur > 6 caractères 4772, Le compte général est utilisé dans le fichier des comptes généraux des budgets des comptes analytiques (donc non supprimable) 4773, Le compte général est utilisé dans le fichier des éléments de budget (donc non supprimable) 4774, Le compte général est utilisé dans le fichier des éléments de modèles de grille (donc non supprimable) 4775, Le compte général est utilisé dans le fichier des tiers (donc non supprimable) 169

181 Annexe 4 Les codes erreurs Sage 4776, Le compte général est utilisé dans le fichier des journaux (donc non supprimable) 4777, Le compte général est utilisé dans le fichier des écritures comptables (donc non supprimable) 4778, Le compte général est utilisé dans le fichier des éléments de taxe (donc non supprimable) 4779, Le compte général est utilisé dans le fichier des taxes (donc non supprimable) 4780, Le type du compte général n'est pas modifiable 4781, Le compte général n'est pas modifiable 4782, Le compte général existe déjà 4783, Le compte reporting n'existe pas ou n'est pas de type détail 4784, La nature, le report, le compte reporting, le raccourci, les options doivent être à 0 pour un compte général totalisateur 4785, Le raccourci du compte général n'est pas du type alphanumérique et en majuscule > , Le numéro du compte reporting n'est pas du type alphanumérique et en majuscule ou de longueur > , L'intitulé du compte général est vide ou de longueur > , Le numéro de compte général est à vide ou n'est pas de type compte 4789, Domaine de validité du champ incorrect, veuillez vous référer à la documentation. 4790, Ce raccourci existe déjà dans le fichier des libellés 4791, Ce raccourci existe déjà dans le fichier des modèles de grille 4792, Ce raccourci existe déjà dans le fichier des tiers 4793, Ce raccourci existe déjà dans le fichier des comptes analytiques 4794, Ce raccourci existe déjà dans le fichier des comptes généraux 4795, Ce raccourci existe déjà dans le fichier des pièces générales 4796, Erreur de longueur de compte reporting 4797, Erreur de longueur de compte EDI 4798, Erreur de longueur de compte général 4799, Erreur de longueur de compte analytique 4800, L'intitulé de la gamme est vide (doit exister dans P_GAMME) 170

182 Annexe 4 Les codes erreurs Sage 4801; 4802, DL_QTEBL n'est pas modifiable si DL_PIECEBL est non vide (document provient du transformation) 4803, DL_QTEBC n'est pas modifiable si DL_PIECEBC est non vide (document provient du transformation) 4804, La quantité n'est pas modifiable dans les Bons de fabrication 4805, Dans les documents de stock, l'article doit être suivi en stock pour les documents <> (Bon de fabrication ou Préparation de fabrication) 4806, Une ligne existe déjà avec ce numéro dans ce document 4807, AL_PRIXRU n'est pas modifiable dans les lignes d'abonnement 4808, AL_CMUP n'est pas modifiable dans les lignes d'abonnement 4809, DL_PRIXRU n'est pas modifiable 4810, Le CMUP n'est pas modifiable dans la ligne 4811, DL_PIECEBL n'est pas en alphanumérique majuscule ou est de longueur > 8 caractères 4812, DL_PIECEBC n'est pas en alphanumérique majuscule ou est de longueur > 8 caractères 4813, Le domaine du document doit être compris entre 0 et , Le poids brut et le poids net doivent être à 0 avec une remise de pieds ou une remise exceptionnelle 4815, La quantité colisée doit être > , La quantité doit être > , La désignation est de longueur > 69 caractères 4818, Le numéro de dépôt mouvementé ne peut pas être modifié 4819, Le type de prix (HT ou TTC) ne peut pas être modifié 4820, Le conditionnement ne peut pas être modifié 4821, La référence fournisseur ne peut pas être modifiée 4822, Le type de taxe 3 ne peut pas être modifié 4823, Le type de taux de taxe 3 ne peut pas être modifié 4824, Le taux de taxe 3 ne peut pas être modifié 171

183 Annexe 4 Les codes erreurs Sage 4825, Le type de taxe 2 ne peut pas être modifié 4826, Le type de taux de taxe 2 ne peut pas être modifié 4827, Le taux de taxe 2 ne peut pas être modifié 4828, Le type de taxe 1 ne peut pas être modifié 4829, Le type de taux de taxe 1 ne peut pas être modifié 4830, Le taux de taxe 1 ne peut pas être modifié 4831, La référence de l'article ne peut pas être modifiée 4832, La remise exceptionnelle ne peut pas être modifiée 4833, La remise de pied ne peut pas être modifiée 4834, Le numéro de ligne ne peut pas être modifié 4835, Pour un document en devise, le type de prix (HT ou TTC) doit être en HT 4836, Le prix unitaire en devise doit être égal à , La gamme 2 n'existe pas 4838, La gamme 1 n'existe pas 4839, La gamme 2 ne peut pas être vide car l'article possède une gamme , L'intitulé du conditionnement est vide (doit exister dans P_CONDITIONNEMENT) 4841, DL_TNOMENCL n'est pas modifiable 4842, Suppression impossible, il existe des immobilisations (F_FAMILLE et F_LIEU). 4843, Champ non modifiable (Dans FamAnal,ImmoAnal,ImmoNote,Lieu,EnumStatImm). 4844, Référence à un compte tiers inexistant. 4845, Référence à un compte analytique inexistant. 4846, Référence à un compte général inexistant ou qui n'est pas de type détail. 4847, Domaine de validité du champ incorrect, veuillez vous référer à la documentation. 4848, L'énuméré n'existe pas ou n'est pas saisissable 4849, Le taux n'est pas saisissable pour les événements agenda 4850, La base n'est pas saisissable pour les événements agenda 4851, La rubrique n'est pas de type détail 172

184 Annexe 4 Les codes erreurs Sage 4852, La rubrique n'existe pas : Evénements agenda de type variable 4853, On ne peut affecter à BS_NUM qu'une valeur différente de , Domaine de validité du champ incorrect, veuillez vous référer à la documentation. 4855, Le salarié n'existe pas 4856, La rubrique n'existe pas 4857, La base paramètre non ouverte 4858, Modification du statut de l'événement impossible 4859, L'établissement n'existe pas 4860, L'agenda Détails n'existe pas 4861, L'agenda groupes n'existe pas 4862, Le contrat n'existe pas 4863, Le salarié n'existe pas 4864, Le numéro de la rubrique agenda ne peut être modifié 4865, Le numéro interne d'établissement ne peut être modifié 4866, Le numéro de salarié ne peut être modifié 4867, Le type de l'événement ne peut être modifié 4868, Si AG_STATUS = 0 alors AG_DEBUT = datedebut et AG_FIN= vide ; si AG_STATUS = 1 alors AG_DEBUT = vide et AG_FIN =datefin ; si AG_STATUS = 2 alors AG_DEBUT = datedebut et AG_FIN = vide ; si AG_STATUS = 3 alors AG_DEBUT =datedebut et AG_FIN =datefin ; ou la de début est inférieure à la date de fin 4869, Le numéro de contrat doit être non nul 4870, L'intitulé de la rubrique agenda détail doit être <= 21 caractères et obligatoire 4871, Le numéro de salarié est obligatoire et doit être en majuscule 4872, Le type d'événement doit être compris entre 0 et , Modification du salarié impossible 4874, numéro de salarié inexistant 4875, L'intitulé est obligatoire et doit être <= 35 caractères 4876, Le numéro de salarié est obligatoire et doit être en majuscule 173

185 Annexe 4 Les codes erreurs Sage 4877, Il existe déjà ce couple (paiement, mode de règlement) pour ce salarié 4878, La valeur équilibre existe déjà pour le paiement 4879, La banque n'existe pas 4880, Le numéro de salarié ne peut être modifié 4881, Le numéro de salarié n'existe pas 4882, La valeur du règlement doit être compris entre 1 et , numéro de salarié obligatoire et doit être en majuscule 4884, Le numéro de banque est non modifiable 4885, La banque principale ne peut être supprimée que si elle est unique 4886, Suppression impossible car cette banque est utilisée dans les modes de règlement 4887, Modification impossible du salarié 4888, La clé de RIB est incorrecte 4889, Le numéro de salarié n'existe pas 4890, L'intitulé est obligatoire et doit être <= 35 caractères 4891, Le numéro de banque est > , Le salarié est obligatoire, doit exister et être en majuscule 4893, Le numéro de salarié n'est pas modifiable 4894, Le salarié n'existe pas 4895, Le prénom est obligatoire et doit être <= 35 caractères 4896, Le nom de la personne est obligatoire et doit être <= 35 caractères 4897, Le salarié est obligatoire et doit être en majuscule 4898, La rubrique n'existe pas 4899, La banque salarié n'existe pas 4900, Suppression impossible du salarié car il existe des bulletins de paie rattachés à ce salarié 4901, Suppression impossible du salarié car il existe des variables rattachées à ce salarié 4902, Suppression impossible du salarié car il existe des agendas rattachés à ce salarié 4903, Suppression impossible du salarié car il existe des adresses rattachées à ce salarié 174

186 Annexe 4 Les codes erreurs Sage 4904, Suppression impossible du salarié car il existe des banques rattachées à ce salarié 4905, Suppression impossible du salarié car il existe des modes de règlements rattachés à ce salarié 4906, Suppression impossible du salarié car il existe des personnes à charges rattachées à ce salarié 4907, L'énuméré statistique n'existe pas 4908, La clé de sécurité sociale est incorrecte 4909, Le numéro salarié n'est pas modifiable 4910, Le compte tiers n'existe pas dans votre fichier comptable 4911, Le compte général n'existe pas dans votre fichier comptable 4912, La section analytique n'existe pas dans votre fichier comptable 4913, Ce numéro salarié est déjà utilisé 4914, L'établissement n'existe pas 4915, La date de début doit être <= date de Fin 4916, Si la date de début existe, alors la date de fin doit exister 4917, Si la date de fin existe, alors la date de début doit exister 4918, Pour un salarié français, SA_NATIONALITE = 'F' et SA_ETRANGER = 1 ; pour un salarié étranger, SA_NATIONALITE <> 'F' et SA_ETRANGER = , La clé de sécurité sociale doit être <= 2 caractères 4920, Si la qualité est monsieur et que le sexe est féminin ou l'inverse 4921, Si la qualité=0 (Monsieur) alors Nom de jeune fille=0 4922, Le prénom est obligatoire et doit être <= 35 caractères 4923, Le nom est obligatoire et doit être <= 35 caractères 4924, Saisie du numéro de salarié obligatoire ou le salarié n'est pas en majuscule 4925, La variable existe déjà pour ce salarié 4926, Suppression impossible, la rubrique est utilisée en acompte 4927, Suppression impossible, la rubrique est utilisée en pointage pour le salarié 4928, Le numéro de rubrique n'est pas modifiable 175

187 Annexe 4 Les codes erreurs Sage 4929, Le numéro de salarié n'est pas modifiable 4930, Le salarié n'existe pas dans la base salarié 4931, La rubrique n'est pas de type détail 4932, La rubrique n'existe pas 4933, Le profil n'existe pas dans la liste des profils salariés 4934, Saisie rubrique obligatoire ou la rubrique n'est pas en majuscule 4935, Saisie du numéro de salarié obligatoire ou le salarié n'est pas en majuscule 4936, La modification du champ analytique est impossible 4937, Le numéro de rubrique n'est pas modifiable 4938, Le numéro de salarié n'est pas modifiable 4939, La section analytique n'existe pas dans le fichier comptable 4940, La rubrique n'est pas utilisée comme clé de répartition 4941, La rubrique n'est pas de type variable 4942, La rubrique n'existe pas 4943, Le salarié n'existe pas dans la base salarié 4944, La section analytique est obligatoire ou la section analytique n'est pas en majuscule ou la longueur de la section < , Champ analytique non coché (non utilisé en pointage) 4946, La saisie du montant est obligatoire 4947, Saisie de la rubrique obligatoire ou la rubrique n'est pas en majuscule 4948, Saisie de la date de pointage obligatoire 4949, Saisie du numéro salarié obligatoire ou le salarié n'est pas en majuscule 4950, Suppression impossible. Des immobilisations sont rattachées à celle à supprimer. 4951, Les champs suivants ne sont jamais modifiables dans l'immobilisation. 4952, Opération impossible, il existe des dotations ou cessions. 4953, Les codes rattachés sont limités à 10 niveaux. 4954, L'immobilisation ne peut être rattachée à celle spécifiée. 176

188 Annexe 4 Les codes erreurs Sage 4955, La quantité du code rattaché n'est pas égale à , Le code rattaché n'existe pas. 177

189 Annexe 5 Les erreurs les plus fréquentes Annexe 5 Les erreurs les plus fréquentes Avant propos 179 Mauvaise version de fichier 179 Erreur Sage 5002 obtenue au moment de l exécution d une requête d écriture. 179 Refus d'autorisation erreur Sage 1807 obtenue au moment de l exécution d une requête d écriture. 179 Domaine de validité du champ incorrect, veuillez vous référer à la documentation

190 Annexe 5 Les erreurs les plus fréquentes 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. Mauvaise version de fichier Erreur Sage 4965 obtenue au moment de la connexion à une source de données Cette erreur indique que la version de Sage ODBC Ligne 100 que vous utilisez n est pas compatible avec la base Sage que vous essayez d ouvrir. Erreur Sage 5002 obtenue au moment de l exécution d une requête d écriture. Ce message d erreur indique que l écriture est impossible car l enregistrement est ouvert en écriture par une autre application. Par exemple, vous essayez de modifier l intitulé du client CARAT alors qu un de vos collègues a ouvert sa fiche en modification. L écriture ne sera possible que lorsque l enregistrement sera libéré par l autre application. 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 ODBC Ligne

191 Annexe 5 Les erreurs les plus fréquentes Domaine de validité du champ incorrect, veuillez vous référer à la documentation Erreur Sage (4789 en CPTA, 4395 en CIAL et 4847 en IMMO) obtenue au moment de l exécution d une requête d écriture. Ce message peut avoir de multiples causes : Le domaine de validité du champ n est pas correct, comme par exemple un champ numérique dont les valeurs sont comprises entre 1 et 10 et que l on essaye de lui affecter la valeur 11, Champ renseigné avec une valeur nulle alors qu il est renseigné obligatoirement dans les applications ligne 100, Problème de cohérence entre la valeur d un champ et un autre, Les informations nécessaires à l écriture dans chaque table vous sont fournis dans le premier manuel sur la structure des tables de la ligne 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. 180

192 Annexe 6 Utilisation d ODBC avec Visual Basic Annexe 6 Utilisation d ODBC avec Visual Basic Introduction 182 Les ADO 183 Connexion Déconnexion 184 Recherche d enregistrements 186 Ecriture dans les bases 188 Récupération des erreurs 189 Les DAO 191 Connexion Déconnexion 192 Recherche d enregistrements 194 Ecriture dans les bases 196 Récupération des erreurs

193 Annexe 6 Utilisation d ODBC avec Visual Basic 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 Sage Ligne 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. 182

194 Annexe 6 Utilisation d ODBC avec Visual Basic 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). 183

195 Annexe 6 Utilisation d ODBC avec Visual Basic 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 184

196 Annexe 6 Utilisation d ODBC avec Visual Basic cnxcpta.close Destruction de l objet Set cnxcpta = Nothing 185

197 Annexe 6 Utilisation d ODBC avec Visual Basic 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 Création de la requête SQL objet Command Requête SQL à exécuter cmdsql.commandtext = Me.tSQL.Text Type de commande (adcmdtext > requête SQL) cmdsql.commandtype = adcmdtext 186

198 Annexe 6 Utilisation d ODBC avec Visual Basic Connexion ODBC à utiliser Set cmdsql.activeconnection = cnxcpta Exécution de la requête de sélection rsclient.open cmdado 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.fields ("CT_Num"), rsclient.fields ("CT_Intitule") Passe à l enregistrement suivant rsclient.movenext Wend Fermeture de l objet Recordset rsclient.close Destruction de l objet set rsclient = Nothing Destruction de l objet Command set cmdsql = Nothing 187

199 Annexe 6 Utilisation d ODBC avec Visual Basic Ecriture dans les bases L écriture se fait par l intermédiaire de requêtes SQL. Etant donné que ces requêtes ne retournent pas d enregistrements, il est inutile de rapatrier un quelconque résultat dans un objet de type Recordset. La requête est directement envoyée au driver ODBC. 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 RE_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 RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d info, voir la table F_Represent) strsql = "Update F_CompteT " & _ " Set RE_No = 3 " & _ " Where CT_Type = 0 And CT_CodePostal like 57% " Exécution de la requête cnxcpta.execute strsql 188

200 Annexe 6 Utilisation d ODBC avec Visual Basic Récupération des erreurs Tout accès ODBC via les ADO peut provoquer une erreur ODBC. Chaque erreur génère un ou plusieurs objets Error qui sont placés dans la collection Errors. Pour connaître l erreur rencontrée, il suffit de parcourir l ensemble de la collection Errors à l aide de l objet Error. L ensemble des objets Error de la collection Errors ne décrit qu une seule erreur : la dernière erreur obtenue. Chaque objet Connection a sa propre collection d erreurs. L objet Error permet de connaître, entre autre : Le numéro de l erreur, à l aide de la propriété NativeError (à partir des ADO version 2.6), 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 'Vide les erreurs éventuelles stockées dans l'objet err Err.Clear 'Met à jour la collection Errors de la connexion cnxcpta (supprime les erreurs résiduelles) Cette instruction ne peut être utilisée qu après avoir réalisé la connexion ODBC. cnxcpta.errors.clear En cas d erreur, le programme ira directement au label Label_Erreur On Error GoTo Label_Erreur code Access Basic 189

201 Annexe 6 Utilisation d ODBC avec Visual Basic 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 Label_Erreur: 'Traitement des erreurs 'Parcours de l'ensemble des erreurs rencontrées en vue de les afficher. For i = 1 To cnxado.errors.count Création de l objet Error Set ErrorADO = cnxado.errors.item (i 1) 'Numéro de l'erreur. strerreur = "Erreur n " & CStr (ErrorADO.NativeError) 'Description de l'erreur (Message en français) strerreur = strerreur & " : " & ErrorADO.Description 'Source de l'erreur (Driver ODBC, Objet DAO...) strerreur = strerreur & " (" & ErrorADO.Source & "). " Affichage du message d erreur dans la fenêtre d Exécution Debug.Print strerreur Destruction de l objet Error Set ErrorADO = Nothing Next i 190

202 Annexe 6 Utilisation d ODBC avec Visual Basic 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). 191

203 Annexe 6 Utilisation d ODBC avec Visual Basic 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 ODBC Ligne 100 inférieure à la version 8.0 (dans le cas d une consolidation de société par exemple). En effet, ces versions de Sage ODBC Ligne 100 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 Construction de la chaîne de connexion Une chaîne de connexion ODBC commence toujours par le mot clé ODBC. Les différents paramètres sont séparés 192

204 Annexe 6 Utilisation d ODBC avec Visual Basic par un point virgule ( ;) DSN identifie le nom de la source de données Les paramètres UID et PWD sont facultatifs UID représente le nom de connexion utilisé et PWD le mot de passe associé strconnect = "ODBC;DSNComptaC_Bijou;UID=ADMIN;PWD=123;" Connexion à la source de données ComptaC_Bijou Set dbdao = DAO.OpenDatabase ("", False, False, strconnect) Code Visual Basic... Fermeture de la connexion dbcpta.close Destruction de l objet Set dbcpta = Nothing 193

205 Annexe 6 Utilisation d ODBC avec Visual Basic 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. Remarque : 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 Recherche de tous les clients dont le code commence par C L objet Database dbcpta a été ouvert Dim rsclient as DAO.Recordset Objet contenant le résultat de la requête Dim strsql as String Variable contenant la définition de la requête 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 194

206 Annexe 6 Utilisation d ODBC avec Visual Basic 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 195

207 Annexe 6 Utilisation d ODBC avec Visual Basic Ecriture dans les bases Il n est pas recommandé d utiliser les méthodes classiques d écriture des DAO (méthodes Edit, AddNew et Update). L écriture avec ces méthodes est plus longue que l envoi d une requête SQL d écriture directement au driver ODBC (sans passer par Jet). En effet, lors de l emploi des méthodes Edit ou AddNew, Jet transforme les instructions en requête SQL lors de l exécution de la méthode Update. Le fait d envoyer directement la requête SQL au driver ODBC évite cette phase de transformation (et le temps d exécution du code relatif à l écriture). De plus, ces méthodes d écriture ne peuvent pas être utilisées si Jet ne reconnaît pas de clé primaire à la table ODBC (Jet ne sait écrire que si la table ODBC a une clé primaire). Pour envoyer une requête directement au driver ODBC, utiliser le paramètre dbsqlpassthrough. Ce paramètre indique que le processeur de requête du moteur de base de données Microsoft Jet est ignoré. La requête spécifiée dans l'argument OpenRecordset (ou Execute) source est passée, pour traitement, à un serveur d'arrièreplan ODBC. Donc, la requête sera interprétée, directement, par le driver ODBC. 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 RE_No = 3) qui se charge de ce secteur. L objet Database dbcpta 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 RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d info, voir la table F_Represent) strsql = "Update F_CompteT " & _ " Set RE_No = 3 " & _ " Where CT_Type = 0 And CT_CodePostal like 57% " Exécution de la requête 196

208 Annexe 6 Utilisation d ODBC avec Visual Basic dbcpta.execute strsql, dbsqlpassthrough 197

209 Annexe 6 Utilisation d ODBC avec Visual Basic Récupération des erreurs La récupération des messages d erreurs ODBC se fait par l intermédiaire de la collection Errors de DBEngine. En effet, toutes les opérations concernant les objets d accès aux données (DAO) peuvent générer une ou plusieurs erreurs. Chaque fois qu une erreur se produit, un ou plusieurs objets Error sont placés dans la collection Errors de l objet DBEngine. L ensemble des objets Error de la collection Errors ne décrit qu une seule erreur : la dernière erreur obtenue. Le premier objet Error contient l erreur ODBC du niveau inférieur; les suivants contiennent les erreurs ODBC retournées par les différentes couches d ODBC (entre autre le driver ODBC Sage). Le dernier objet Error retourné est l erreur provenant de l objet DAO (la même erreur que retourne les objets Err, pour le code erreur, et Error, pour le message d erreur en clair). La provenance de l erreur (driver ODBC ou objet DAO) est renseignée dans l objet Error. Remarques : Il ne faut pas confondre l objet Error avec l objet Err : L objet d accès aux données Error ne contient que les informations relatives aux erreurs d accès aux données, donc au driver ODBC. L objet Err ne contient que les erreurs Visual Basic survenues dans le programme (Err ne retournera, tout comme Error,que la dernière erreur de l objet Error, celle qui est retournée par Jet). L utilisation du paramètre dbsqlpassthrough (permet d ignorer le moteur Jet et de passer directement la requête SQL au driver ODBC) n interfère en rien sur la méthode de récupération des erreurs. Cette méthode de récupération des messages d erreur fonctionne avec l utilisation : des méthodes AddNew, Edit, Update et Delete, l exécution de requêtes SQL à l aide de la méthode Execute, ou OpenRecordSet. Les messages d erreur ne sont pas récupérés si la requête est exécutée à l aide de la méthode Docmd.RunSql (syntaxe d exécution de requête d Access). Le code de traitement des erreurs doit examiner la collection Errors chaque fois que vous prévoyez une erreur d accès aux données. Voici les propriétés permettant de récupérer ces erreurs : le code erreur : utilisation de la méthode Number, la description de l erreur (message en clair) : utilisation de la méthode Description, la source de l erreur (driver ODBC, Objet DAO...) : utilisation de la méthode Source. Exemple Exemple de récupération des erreurs ODBC 198

210 Annexe 6 Utilisation d ODBC avec Visual Basic 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 errdao As DAO.Error Objet contenant les erreurs d accès aux données 'Vide les erreurs éventuelles stockées dans l'objet err Err.Clear 'Met à jour la collection Errors (supprime les erreurs résiduelles) DAO.Errors.Refresh En cas d erreur, le programme ira directement au label Label_Erreur On Error GoTo Label_Erreur code Access Basic 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 Label_Erreur: 'Traitement des erreurs 'Parcours de l'ensemble des erreurs rencontrées en vue de les afficher. For Each errdao In DAO.DBEngine.Errors 'Numéro de l'erreur. strerreur = "Erreur n " & CStr (errdao.number) 'Description de l'erreur (Message en français) strerreur = strerreur & " : " & errdao.description 'Source de l'erreur (Driver ODBC, Objet DAO...) strerreur = strerreur & " (" & errdao.source & "). " Affichage du message d erreur dans la fenêtre d Exécution Debug.Print strerreur 199

211 Annexe 6 Utilisation d ODBC avec Visual Basic Next Passe à l erreur suivante Destruction de l objet Error Set errdao = Nothing 200

212 Annexe 7 Utilisation d ODBC avec Windev Annexe 7 Utilisation d ODBC avec Windev Introduction 202 Connexion Déconnexion 202 Recherche d enregistrements 204 Ecriture dans les bases 206 Récupération des erreurs

213 Annexe 7 Utilisation d ODBC avec Windev 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 de la ligne 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 de la ligne 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. 202

214 Annexe 7 Utilisation d ODBC avec Windev 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 //Déconnexion de la base idcpta //Avant d appeler la procédure SQLDisconnect (), il faut s assurer que la connexion courante //est bien idcpta > Utilisation de la procédure SQLChangeConnexion SQLChangeConnection (idcpta) //Déconnexion de la source de données SQLDisconnect () SINON //Problème lors de la connexion //Traitement de l erreur FIN 203

215 Annexe 7 Utilisation d ODBC avec 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 //Sélectionne la connexion idcpta comme étant la connexion courante SQLChangeConnexion (idcpta) //Affecte le nom de la requête SELECT_QUERY = "SelectQuery" //Syntaxe SQL //Construction de la requête SQL de sélection //Critères : // CT_Type = 0 > sélection des clients 204

216 Annexe 7 Utilisation d ODBC avec Windev // 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 SI SQLExec (strsql, SELECT_QUERY) ALORS //La requête SQL n a pas provoquée d erreur //Parcours des enregistrements TANTQUE pas SQL.Endehors //Affiche les informations à l écran // SQLCol prend en paramètre le nom de la requête et l indice du champ Info (SQLCol (SELECT_QUERY,1) " " SQLCol (SELECT_QUERY,2)) //Passe à l enregistrement suivant SQLSuivant (SELECT_QUERY) FIN SINON //Gestion de l erreur FIN //Ferme la requête SQL SQLFerme (SELECT_QUERY) 205

217 Annexe 7 Utilisation d ODBC avec Windev Ecriture dans les bases L écriture se fait par l intermédiaire de requêtes SQL. 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. 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 RE_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 //Sélectionne la connexion idcpta comme étant la connexion courante SQLChangeConnexion (idcpta) //Affecte le nom de la requête UPDATE_QUERY = "UpdateQuery" //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 // RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d info, voir la table F_Represent) 206

218 Annexe 7 Utilisation d ODBC avec Windev strsql = "Update F_CompteT Set RE_No = 3 " strsql = strsql " Where CT_Type = 0 And CT_CodePostal like 57% " 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) 207

219 Annexe 7 Utilisation d ODBC avec Windev Récupération des erreurs La récupération des erreurs, sous WinDev, se fait par l intermédiaire de la procédure SQLInfoGene (). L appel de cette procédure met à jour les variables donnant les informations sur l'exécution de la requête (variable de SQL). Toutes les fonctions d accès aux données (connexion, exécution de requête) retournent un booléen, indiquant si l exécution de la fonction s est correctement déroulée. Si une erreur est détectée, il faut mettre en place la procédure de récupération du code erreur. Syntaxe de la procédure SQLInfoGene En français : SQLInfoGene ([<Nom_Requête>]) En anglais : SQLInfo ([<Nom_Requête>]) SQLInfoGene avec comme paramètre <Nom_Requête> doit être appelée après l'exécution de la requête par SQLExec. SQLInfoGene sans paramètre doit être appelée après la connexion par SQLConnecte. Remarque : SQL.Erreur ne retourne pas l erreur renvoyée par le driver, mais l erreur interne à ce dernier. Ce code erreur est inexploitable, car il ne correspond pas au message reçu dans SQL.MESERREUR.. 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) 208

220 Annexe 7 Utilisation d ODBC avec Windev 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 strmessageerreur est une chaîne //Chaîne contenant le message d erreur à afficher 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 209

221 Annexe 7 Utilisation d ODBC avec Windev 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 () strmessageerreur = "Erreur lors de la connexion" //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 210

222 Annexe 8 Utilisation d ODBC avec Visual FoxPro Annexe 8 Utilisation d ODBC avec Visual FoxPro Introduction 212 Les vues distantes 212 Programmation en Visual FoxPro 213 Recherche d enregistrements 215 Ecriture dans les bases 217 Récupération des erreurs

223 Annexe 8 Utilisation d ODBC avec Visual FoxPro 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. Les vues distantes Sous Visual FoxPro, il est possible de créer des vues distantes. Une vue distante est le résultat d une requête SQL via ODBC. Cette requête peut être une requête de sélection ou d écriture. Une vue distante peut être basée sur une source de données ou sur une connexion. Il est préférable de baser une vue sur une connexion afin d éviter la boîte de connexion Sage. En effet, une connexion permet non seulement d identifier la source de données à utiliser, mais elle permet aussi de renseigner le nom de l utilisateur ainsi que le mot de passe associé (permet d éviter d avoir la boîte de connexion Sage). Dans un premier temps, vous devez créer une Connexion (arbre Données/Base de données). Dans cette connexion, renseigner le nom de la source de données à utiliser, ainsi que le nom et le mot de passe de l utilisateur. Vous pouvez ensuite créer des vues distantes (arbre Données/Base de données). Une vue distante est le résultat d une requête. Cette requête est exécutée sur une seule connexion ; il n est pas possible d exécuter des requêtes interbases. Pour parcourir le résultat d une vue distante, vous pouvez utiliser l instruction SCAN. Exemple &&Exemple de parcours de la vue distante ListeArticles. &&ListeArticles est le résultat de la requête suivante : &&SELECT AR_REF, AR_DESIGN FROM F_ARTICLE &&Utilise la vue distante ListeArticles USE ListeArticles 212

224 Annexe 8 Utilisation d ODBC avec Visual FoxPro SCAN &&Parcours la liste &&Affiche les informations? AR_REF, AR_DESIGN ENDSCAN Programmation en Visual FoxPro 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 et, éventuellement, le nom de l utilisateur et son mot de passe. Le résultat de la fonction est l identificateur de la connexion. Si le résultat est inférieur ou égal à zéro, alors un problème a été rencontré. La déconnexion est réalisée à l aide de la fonction SQLDISCONNECT (). Cette dernière prend en paramètre l identificateur de connexion. 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 (deuxième et troisième paramètre de SQLCONNECT). &&Exemple de connexion et de Déconnexion. Source de données utilisée > ComptaC_Bijou PUBLIC INTEGER IdCPTA &&Identifiant de la connexion > déclaré en public pour être utilisé par la suite &&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 apparaîtra. IdCPTA = SQLCONNECT ("ComptaC_Bijou","ADMIN","123") &&Si la valeur de retour est égale à 0, alors il y a eu un problème de connexion IF IdCPTA > 0 &&Pas de problème de connexion &&Code Visual FoxPro 213

225 Annexe 8 Utilisation d ODBC avec Visual FoxPro &&Déconnexion de la source de données intres = SQLDISCONNECT (idcpta) &&Si le résultat de la fonction SQLDISCONNECT est <= 0, alors il y a eu un problème lors de la &&déconnexion IF intres <= 0 &&Problème rencontré lors de la déconnexion ENDIF ELSE &&Problème lors de la conexion &&Traitement de l erreur ENDIF 214

226 Annexe 8 Utilisation d ODBC avec Visual FoxPro 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. Remarque : 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 215

227 Annexe 8 Utilisation d ODBC avec Visual FoxPro &&Affichage des informations? MyCursor.CT_NUM, MyCursor.CT_INTITULE ENDSCAN ENDIF ELSE La requête a échoué &&traitement de l erreur END IF 216

228 Annexe 8 Utilisation d ODBC avec Visual FoxPro Ecriture dans les bases L écriture se fait par l intermédiaire de requêtes SQL. L exécution d une requête est réalisée à l aide de la fonction SQLEXEC (). Etant donné que la requête ne retourne pas d enregistrements, il ne sera pas nécessaire de donner un nom de cursor. Cette fonction prend en paramètre l identifiant de la connexion (valeur retournée par la fonction SQLCONNECT) et le code SQL de la requête d écriture. Si le résultat de la fonction SQLEXEC () est inférieur à zéro, alors la requête a échoué. 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 &&RE_No = 3) qui se charge de ce secteur. &&La connexion ODBC est active et identifiée par la variable idcpta &&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 && RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d info, voir la table F_Represent) strsql = "Update F_CompteT Set RE_No = 3 " strsql = strsql " Where CT_Type = 0 And CT_CodePostal like 57% " Exécution de la requête intrep = SQLEXEC (idcpta, strsql) IF intrep >=0 &&La requête d écriture a fonctionné &&Suite de code Visual FoxFro ELSE La requête a échoué &&traitement de l erreur END IF 217

229 Annexe 8 Utilisation d ODBC avec Visual FoxPro Récupération des erreurs La récupération des erreurs, sous Visual FoxPro, se fait par l intermédiaire de la fonction AERROR (). Toutes les fonctions d accès aux données retournent une valeur <=0 si une erreur s est produite durant l opération. AERROR () contient la dernière erreur rencontrée, et prend en paramètre une variable de type tableau contenant 7 éléments. Le premier élément est le n de l erreur FoxPro. Si celleci est égale à 1526, alors c est une erreur ODBC (soit retournée par le driver, soit retournée par FoxPro lors d un problème de connexion par exemple). Voici la liste des indices du tableau, avec la signification des erreurs ODBC. Indice du tableau Type Contenu 1 Numérique Vontient 1526 si c est une erreur ODBC ou d accès à ODBC 2 Caractères Message d erreur retourné par FoxPro 3 Caractères Message d erreur retourné par le driver ODBC 4 Caractères Code erreur interne au driver 5 Numérique N de l erreur retourné par le driver ODBC 6 Numérique Handle de connexion de la source de données ou s est produit l erreur 7 Toujours à nul Remarques : 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 &&Connexion à la source de données ODBC ComptaC_Bijou IdCPTA = SQLCONNECT ( ComptaC_Bijou ) 218

230 Annexe 8 Utilisation d ODBC avec Visual FoxPro &&Si la valeur de retour est <= à 0, alors il y a eu un problème lors de la connexion IF IdCPTA > 0 &&Pas de problème de connexion &&Code Visual FoxPro &&Exécution d une requête SQL intres = SQLEXEC (idcpta, strsql, MyCursor ) &&Si le résultat de SQLExec est < à 0, alors il y a eu un problème lors de l exécution de la requête IF intres >= 0 &&La requête a fonctionné &&suite du code Visual FoxPro ELSE &&Gestion de l erreur d exécution d une requête SQL &&Génère les erreurs dans le tableau aerrorarray = AERROR (aerrorarray) strmessageerreur = "Erreur lors de l exécution de la requête" &&Code erreur strmessageerreur = strmessageerreur CHR (13) "Code Erreur: " aerrorarray (5) &&Message d erreur strmessageerreur = strmessageerreur CHR (13) "Message: " aerrorarray (3) &&Affiche l erreur? strmessageerreur ENDIF &&Ferme la connexion ODBC intres = SQLDISCONNECT (idcpta) ELSE &&Problème lors de la connexion &&Traitement de l erreur de connexion &&Génère les erreurs dans le tableau aerrorarray = AERROR (aerrorarray) strmessageerreur = "Erreur lors de la connexion" &&Code erreur strmessageerreur = strmessageerreur CHR (13) "Code Erreur: " aerrorarray (5) &&Message d erreur strmessageerreur = strmessageerreur CHR (13) "Message: " aerrorarray (3) &&Affiche l erreur? strmessageerreur 219

231 Annexe 8 Utilisation d ODBC avec Visual FoxPro END IF 220

232 Annexe 9 Utilisation d ODBC avec Delphi Annexe 9 Utilisation d ODBC avec Delphi Introduction 222 Connexion Déconnexion 223 Recherche d enregistrements 224 Utilisation de l objet TQuery 225 Utilisation de l objet TTable 227 Ecriture dans les bases 229 Utilisation de l objet TQuery 230 Utilisation de l objet TTable 232 Récupération des erreurs

233 Annexe 9 Utilisation d ODBC avec Delphi 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é ), 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. 222

234 Annexe 9 Utilisation d ODBC avec Delphi 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é} {à une source de données} If TCompta.Active then TCompta.Close ; {Renseigne le nom de la source de données} TCompta.DatabaseName := ComptaC_Bijou ; {Renseigne le nom de la table} TCompta.TableName := 'F_COMPTET' ; {Ouvre la table > connexion ODBC} TCompta.Open ; {Traitement Delphi} {Fermeture de la table} TCompta.Close; L utilisation de l objet Tquery est traité dans le chapitre cidessous. 223

235 Annexe 9 Utilisation d ODBC avec Delphi 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 Ligne 100 (ces index sont référencés pour chaque table dans le manuel de Sage ODBC Ligne 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. 224

236 Annexe 9 Utilisation d ODBC avec Delphi Utilisation de l objet TQuery 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 source de données utilisée est ComptaC_Bijou} {Le nom de l objet TQuery est QClient} 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); {Exécute la requête SQL de sélection} QClient.Active := True; {Se place au premier enregistrement si le résultat de la requête n est pas vide} If not QClient.EOF then 225

237 Annexe 9 Utilisation d ODBC avec Delphi End ; QClient.First; {Parcours les enregistrements sélectionnés} While not QClient.EOF do Begin {Affiche les informations} strmessage = QClient[CT_NUM ] : QClient['CT_INTITULE'] MessageDlg (strmessage, mtinformation,[mbok], 0); {Passe à l enregistrement suivant} QClient.Next; End; Qclient.Close ; 226

238 Annexe 9 Utilisation d ODBC avec Delphi Utilisation de l objet TTable Exemple {Exemple d exécution de requête de sélection et de parcours des enregistrements} {Recherche de tous les clients} {La source de données utilisée est ComptaC_Bijou} {Le nom de l objet TTable est TCompta} 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 227

239 Annexe 9 Utilisation d ODBC avec Delphi End ; 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 ; 228

240 Annexe 9 Utilisation d ODBC avec Delphi Ecriture dans les bases Toutes les méthodes d écriture applicables à l objet TTable, telle que InsertRecord, AppendRecord, Insert, Append, Edit, Delete (associés à la méthode Post) sont utilisables. Il suffit de créer un Objet de type TTable, et de faire référence à une table d un alias Sage Ligne 100. Il est aussi possible d exécuter une requête d écriture à partir d un objet de type Tquery, à l aide la méthode ExecQuery. Vous trouverez cidessous un exemple de ces deux méthodes. 229

241 Annexe 9 Utilisation d ODBC avec Delphi Utilisation de l objet TQuery 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 RE_No = 3)} {qui se charge de ce secteur.} {La source de données utilisée est ComptaC_Bijou} {Le nom de l objet TQuery est QUpdateQuery} Var strsql : String ; {Variable contenant la requête SQL de sélection} Begin {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} { RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d info, voir la table F_Represent)} strsql = Update F_CompteT Set RE_No = 3 strsql = strsql Where CT_Type = 0 And CT_CodePostal like 57% 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); 230

242 Annexe 9 Utilisation d ODBC avec Delphi End : {Exécute la requête SQL d écriture} QUpdateQuery.ExecQuery.; QUpdateQuery.Close ; 231

243 Annexe 9 Utilisation d ODBC avec Delphi Utilisation de l objet TTable Exemple {Exemple d exécution d une requête de modification.} {Les clients de la ville de Metz changent de représentant. Désormais, c est Gendron (identifié par RE_No = 3)} {qui se charge de ce secteur.} {La source de données utilisée est ComptaC_Bijou} {Le nom de l objet TTable est TCompta} Var Begin strsql : String ; {Variable contenant la requête SQL de sélection} {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)} 232

244 Annexe 9 Utilisation d ODBC avec Delphi End ; 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 RE_No = 3} TCompta[ RE_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 ; 233

245 Annexe 9 Utilisation d ODBC avec Delphi Récupération des erreurs La récupération des erreurs, sous Delphi, se fait par l intermédiaire des Exceptions. Une exception est une condition d erreur ou d événement exceptionnel qui interrompt l exécution normale du programme. En Pascal Objet, la gestion des exceptions permet de séparer le programme avec la partie gérant les erreurs éventuelles. L unité sysutils implémente la génération et la gestion des exceptions. Lorsqu une application utilise l unité SysUtils, toutes les erreurs d exécution sont automatiquement converties en exception. Syntaxe : Try (* Code Pascal *) except On Erreur1 : ErreurType do MessageDlg (Erreur1.message, mtinformation,[mbok], 0); end ; Si une erreur se produit durant l exécution des instructions se trouvant entre les mots réservés Try et Except, alors l exécution du code sera automatiquement interrompu, et le générateur d exception s occupera d effectuer les opérations nécessaires (code se trouvant entre les mots réservés except et end), afin de traiter l erreur. 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 il 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. 234

246 Annexe 9 Utilisation d ODBC avec Delphi 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 *) 235

247 Annexe 9 Utilisation d ODBC avec Delphi end; 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; 236

248 Annexe 10 Utilisation des fonctions avancées Sage Annexe 10 Utilisation des fonctions avancées Sage Introduction 238 API Sage 238 DLL ActiveX 239 Descriptif des fonctions utilisées dans les exemples 240 Visual Basic 242 API Sage 242 DLL ActiveX 245 Déclaration des fonctions avancées Sage 247 WinDev 248 API Sage 248 DLL ActiveX 252 Visual FoxPro 253 API Sage 253 Déclaration des fonctions avancées Sage 256 Delphi 257 API Sage 257 DLL ActiveX 261 Déclaration des fonctions avancées Sage

249 Annexe 10 Utilisation des fonctions avancées Sage Introduction Comme décrit dans les chapitres précédents. Remarque : 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. 238

250 Annexe 10 Utilisation des fonctions avancées Sage 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 Remarque Pour utiliser les fonctions de la comptabilité, votre application doit être connecté, via ODBC, à la base comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connecté, 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\System. 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. 239

251 Annexe 10 Utilisation des fonctions avancées Sage Descriptif des fonctions utilisées dans les exemples Vous trouverez cidessous des exemples de fonctions Sage retournant des numériques, des dates et des chaînes de caractères. Cidessous quelques exemples de fonctions Sage : TotalMvtSolde () : Comptabilité Cette fonction permet de calculer le solde des mouvements connaissant le compte général CG_Num, le compte tiers CT_Num ou (et) le code journal JO_Num CIALDocNouvPiece () : Gestion commerciale Retourne la valeur du nouveau numéro de pièce disponible en fonction de la souche et du type de document. GetParamValeurDate : Retourne la valeur du champ date identifié par ces paramètres. Ce champ se trouve dans une table P_ (table paramètre). TotalMvtSolde (CG_Num, CT_Num, JO_Num, Deb, Fin, [Résultat] ) 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 est 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 (Date) : Date de début Fin (Date) : Date de fin En Sortie Résultat de la fonction (Double) : Solde 240

252 Annexe 10 Utilisation des fonctions avancées Sage 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 241

253 Annexe 10 Utilisation des fonctions avancées Sage 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é, via ODBC, à la base comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connecté, via ODBC, à la base comptable et à la base commerciale. La connexion aux bases ODBC peut être réalisée a 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. Appel de la fonction Sage Compte général : Compte de Tiers : non précisé Code journal : ACH journal des achats 242

254 Annexe 10 Utilisation des fonctions avancées Sage Date de début de période : /01/1996 Date de fin de période : /12/1996 intcodeerr = TotalMvtSolde (" ", "", "ACH", "010196", "311296", dblresult) If intcodeerr = 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 ", intcodeerr End If CIALDocNouvPiece () 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. Initialisation de la variable strresult strresult = Trim$ (13) Appel de la fonction Sage Type de document : 1 BC de vente 243

255 Annexe 10 Utilisation des fonctions avancées Sage Souche : 0 N de pièce pour Bijou SA intcodeerr = CIALDocNouvPiece (1, 0, strresult) If intcodeerr = 0 Then Pas d erreur Affiche le résultat dans la fenêtre d exécution Debug.Print Trim (strresult) Else Une erreur est détectée Affiche le code erreur Debug.Print "Erreur n ", intcodeerr End If 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. 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. Initialisation de la variable strresult strresult = Trim$ (7) Appel de la fonction Sage Type de base : CPTA base comptable Nom de la table : P_DOSSIER 244

256 Annexe 10 Utilisation des fonctions avancées Sage Nom du champ : D_DebutExo01 intcodeerr = GetParamValeurDate ("CPTA", "P_DOSSIER", "D_RaisonSoc", strresult) If intcodeerr = 0 Then Pas d erreur Affiche le résultat dans la fenêtre d exécution Debug.Print Trim (strresult) Else Une erreur est détectée Affiche le code erreur Debug.Print "Erreur n ", intcodeerr End If 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 : Compte de Tiers : non précisé Code journal : ACH journal des achats Date de début de période : 01/01/

257 Annexe 10 Utilisation des fonctions avancées Sage Date de fin de période : 31/12/1996 dblresult = objcpta.totalmvtsolde (" ", "", "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 246

258 Annexe 10 Utilisation des fonctions avancées Sage End If Debug.Print "Erreur n ", objcial.erreur 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 Déclaration des fonctions avancées Sage Ces déclarations se trouvent dans le fichier fourni avec le Kit ODBC : FONCTION.TXT 247

259 Annexe 10 Utilisation des fonctions avancées Sage 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 Ligne 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 situe 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. 248

260 Annexe 10 Utilisation des fonctions avancées 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. //Charge la librairie CBODBC32.DLL IdChargeDLL = ChargeDLL ("CBODBC32.DLL") //Appel de la fonction Sage TotalMvtSolde // Compte général : // Compte de Tiers : non précisé // Code journal : ACH journal des achats // Date de début de période : /01/1996 // Date de fin de période : /12/1996 IdAppelDLL =AppelDll32 ("CBODBC32", "TotalMvtSolde", " ", "", "ACH", "010196", "311296", &dblresult) SI intcodeerr = 0 ALORS //Pas d erreur //Affiche le résultat à l écran Info ( VersChaîne ( dblresult,"10.2fs") "F.") SINON //Une erreur est détectée //Affiche le code erreur Info ( VersChaîne ( IdAppelDLL )) FIN //Décharge la librairie DechargeDLL (IdChargeDLL) 249

261 Annexe 10 Utilisation des fonctions avancées Sage CIALDocNouvPiece () 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. //Charge la librairie CBODBC32.DLL IdChargeDLL = ChargeDLL ("CBODBC32.DLL") //Appel de la fonction Sage CIALDocNouvPiece // Type de document : 1 BC de vente // Souche : 0 N de pièce pour Bijou SA IdAppelDLL =AppelDll32 ("CBODBC32", "CIALDocNouvPiece", 1, 0, &strresult) SI intcodeerr = 0 ALORS //Pas d erreur //Affiche le résultat à l écran Info ( strresult) SINON //Une erreur est détectée //Affiche le code erreur Info ( VersChaîne ( IdAppelDLL )) FIN //Décharge la librairie DechargeDLL (IdChargeDLL) 250

262 Annexe 10 Utilisation des fonctions avancées Sage GetParamValeurDate () 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. //Charge la librairie CBODBC32.DLL IdChargeDLL = ChargeDLL ("CBODBC32.DLL") //Appel de la fonction Sage GetParamValeurDate Type de base : CPTA base comptable Nom de la table : P_DOSSIER Nom du champ : D_DebutExo01 IdAppelDLL=AppelDll32 ("CBODBC32", "GetParamValeurDate", "CPTA", "P_DOSSIER", "D_DebutExo01", &strresult) SI intcodeerr = 0 ALORS //Pas d erreur //Affiche le résultat à l écran Info ( strresult) SINON //Une erreur est détectée //Affiche le code erreur Info ( VersChaîne ( IdAppelDLL )) 251

263 Annexe 10 Utilisation des fonctions avancées Sage 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. 252

264 Annexe 10 Utilisation des fonctions avancées Sage 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é, 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 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, Utilisation &&Appel de la fonction Sage && Compte général : && Compte de Tiers : non précisé && Code journal : ACH journal des achats && Date de début de période : /01/1996 && Date de fin de période : /12/

265 Annexe 10 Utilisation des fonctions avancées Sage intcodeerr = TotalMvtSolde (" ", "", "ACH", "010196", 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 = MESSageBOX (STR (intcodeerr), 16, "") ENDIF CIALDocNouvPiece () 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 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, IF intcodeerr = 0 &&Pas d erreur 254

266 Annexe 10 Utilisation des fonctions avancées Sage &&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 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 && Type de base : CPTA base comptable && Nom de la table : P_DOSSIER && Nom du champ : D_DebutExo01 intcodeerr = GetParamValeurDate ("CPTA", "P_DOSSIER", IF intcodeerr = 0 &&Pas d erreur &&Affiche le résultat dans une boîte de dialogue 255

267 Annexe 10 Utilisation des fonctions avancées Sage = MESSageBOX (strresult, 16, "") ELSE Une erreur est détectée Affiche le code erreur = MESSageBOX (STR (intcodeerr), 16, "") ENDIF DLL ActiveX Bien que Visual FoxPro 3.0 sache utiliser les contrôles OLE (Treeview par exemple), ce dernier ne sait pas utiliser les DLL ActiveX. Cette fonctionnalité ne peut pas être employée avec ce produit (d où moins la version 3.0 de ce dernier). Déclaration des fonctions avancées Sage Ces déclarations se trouvent dans le fichier «Fonctions.txt» livré avec ce Kit ODBC. 256

268 Annexe 10 Utilisation des fonctions avancées 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é, via ODBC, à la base comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit être connecté, 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} {Appel de la fonction Sage} { Compte général : } { Compte de Tiers : non précisé} 257

269 Annexe 10 Utilisation des fonctions avancées Sage { Code journal : ACH journal des achats} { Date de début de période : /01/1996} { Date de fin de période : /12/1996} intcodeerr := TotalMvtSolde ( ,, ACH, , , dblresult) ; If intcodeerr = 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 () 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'; 258

270 Annexe 10 Utilisation des fonctions avancées Sage Utilisation intcodeerr : Integer ; Variable utilisée pour recueillir le code erreur de la fonction. StrResult : Pchar ; Variable utilisée pour recueillir le résultat. Initialisation de la variable strresult strresult := {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 Then {Pas d erreur} begin {Affiche le résultat dans une boîte de dialogue} MessageDlg (String (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 ; 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é} 259

271 Annexe 10 Utilisation des fonctions avancées Sage {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. Initialisation de la variable strresult strresult := ; Appel de la fonction Sage Type de base : CPTA base comptable Nom de la table : P_DOSSIER Nom du champ : D_DebutExo01 intcodeerr = GetParamValeurDate ( CPTA, P_DOSSIER, D_RaisonSoc, strresult) ; If intcodeerr = 0 Then {Pas d erreur} begin {Affiche le résultat dans une boîte de dialogue} MessageDlg (String (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 ; 260

272 Annexe 10 Utilisation des fonctions avancées Sage 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 : // 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 ( ,, 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} 261

273 Annexe 10 Utilisation des fonctions avancées Sage Begin End ; {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); 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. 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 begin {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} 262

274 Annexe 10 Utilisation des fonctions avancées Sage End ; Str (intcodeerr, strresult); {Affiche le code erreur dans une boîte de dialogue} MessageDlg (strresult, mtinformation,[mbok], 0); GetParamValeurDate () //GetParamValeurDate est une fonction concernant les tables paramètres (P_). L objet à utiliser est //donc ASD100Lib.Param //La propriété à utiliser est GetParamValeurDate objparam : Variant ; //Déclaration de l objet Param Dim dresult : TDateTime ; Variable utilisée pour recueillir le résultat. 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 263

275 Annexe 10 Utilisation des fonctions avancées Sage End ; {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); Déclaration des fonctions avancées Sage La déclaration des fonctions avancées se trouve dans le fichier «FONCTIONS.TXT» 264

Reporting et Décisions 100

Reporting et Décisions 100 Reporting et Décisions 100 Version 10.00 Référence COMPOSITION DU PROGICIEL PROPRIETE & USAGE CONFORMITE & MISE EN GARDE EVOLUTION FICHE DE SUGGESTION MARQUES Votre progiciel est composé d'un boîtier de

Plus en détail

Manuel du logiciel PrestaTest.

Manuel du logiciel PrestaTest. Manuel du logiciel. Ce document décrit les différents tests que permet le logiciel, il liste également les informations nécessaires à chacun d entre eux. Table des matières Prérequis de PrestaConnect :...2

Plus en détail

Recommandations techniques

Recommandations techniques Recommandations techniques Sage 30 Génération i7 Sage 100 Génération i7 1 Introduction 4 Contenu de ce manuel 4 Déclinaison des offres 4 Configuration matérielle et logicielle 5 Configuration postes clients

Plus en détail

Sage 100 pour SQLServer. Version 15.50. Manuel de référence

Sage 100 pour SQLServer. Version 15.50. Manuel de référence Sage 100 pour SQLServer Version 15.50 Manuel de référence Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le cédérom sur lequel est enregistré le programme,

Plus en détail

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8 Sage 100 CRM Guide de l Import Plus avec Talend Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Service Systèmes et Réseaux

Service Systèmes et Réseaux Service Systèmes et Réseaux Configuration de l accès ODBC dans les bases de données EBP Produits EBP : Comptabilité, Gestion Commerciale, Paye PRO v12 Automobile V10 Point de vente PRO v12 EBP Informatique

Plus en détail

Note de compatibilité

Note de compatibilité R&D et Stratégie Division SMB Le 10/09/2014 De Département Qualité, R&D SMB Objet : Compatibilité des applications Sage sur SQL 2014 I. Environnement testé Cette procédure de test a pour objectif de valider

Plus en détail

Guide de migration BiBOARD V10 -> v11

Guide de migration BiBOARD V10 -> v11 Guide de migration BiBOARD V10 -> v11 Version 11.3 13/12/2012 Support BiBOARD E-mail : [email protected] Guide de migration BiBOARD Ce document est destiné à l équipe informatique en charge de la migration

Plus en détail

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur TIJARA 1 NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR Logiciel TIJARA Manuel d'utilisateur "TIJARA" 1 SOMMAIRE Introduction Première partie Chapitre 1 : Installation et démarrage Chapitre 2 : Architecture

Plus en détail

Manuel d installation

Manuel d installation Manuel d installation Copyright 1994-2012, Apsynet S.A. Tous droits réservés. Apsynet, Computer Inventory Manager, Cim Intranet Suite, Apsynet Visual Directory et CIM DataCenter sont des marques déposées

Plus en détail

FileMaker 13. Guide ODBC et JDBC

FileMaker 13. Guide ODBC et JDBC FileMaker 13 Guide ODBC et JDBC 2004-2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

Guide de mise à jour BiBOARD

Guide de mise à jour BiBOARD Guide de mise à jour BiBOARD Version 11.4 13/12/2012 Support BiBOARD E-mail : [email protected] Ce document est destiné à l équipe informatique en charge de la mise à jour de l application BiBOARD. Durée

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Maintenance 17.02. Maintenance. Version 17.02. Outils d accompagnement à la migration des bases relationnelles. Sage 3

Maintenance 17.02. Maintenance. Version 17.02. Outils d accompagnement à la migration des bases relationnelles. Sage 3 Maintenance Version 17.02 Outils d accompagnement à la migration des bases relationnelles Sage 3 Sommaire Introduction 5 Outil de diagnostic pré-migration 6 Etape 1 : choix du traitement / sélection du

Plus en détail

Guide d installation BiBOARD

Guide d installation BiBOARD Version 3.0 29/05/2013 Support BiBOARD E-mail : [email protected] Guide d installation de BiBOARD Ce document est destiné à l équipe informatique en charge de l installation de l application BiBOARD.

Plus en détail

TARGET SKILLS PlanningPME

TARGET SKILLS PlanningPME PlanningPME Planifiez en toute simplicité TARGET SKILLS PlanningPME Manuel d installation Ce document décrit l'installation du logiciel PlanningPME. Copyright 2002-2008 TARGET SKILLS. Tous droits réservés.

Plus en détail

Sage 100 Edition Pilotée version Windows

Sage 100 Edition Pilotée version Windows Sage 100 Edition Pilotée version Windows Installation et administration 2011 Sage Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le dvd-rom sur lequel est enregistré

Plus en détail

COMPTABILITE SAGE LIGNE 30

COMPTABILITE SAGE LIGNE 30 COMPTABILITE SAGE LIGNE 30 Date : 25/09/2006 Auteur : Pascal VIGUIER Réf. : SAGE092006 SOMMAIRE SOMMAIRE... 1 1. MENU FICHIER... 3 1.1 1.2 AUTORISATION D ACCES... 3 A PROPOS DE VOTRE SOCIETE... 4 1.2.1

Plus en détail

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif : IN SYSTEM Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL V16 Objectif : En synthèse des manuels de référence de Sage Ligne 100, ce document vous présente les préconisations,

Plus en détail

Sage 100 CRM - Guide d installation Version 8.01. Mise à jour : 2015 version 8

Sage 100 CRM - Guide d installation Version 8.01. Mise à jour : 2015 version 8 Sage 100 CRM - Guide d installation Version 8.01 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

Sage Paie pour SQL Server

Sage Paie pour SQL Server Sage Paie pour SQL Server Version 17.5 PAI00SMA008 Installation et maintenance Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

Généralités et installation du programme... 3 Généralités concernant Sage Gestion commerciale 100... 3 Version Windows... 3 Version Macintosh...

Généralités et installation du programme... 3 Généralités concernant Sage Gestion commerciale 100... 3 Version Windows... 3 Version Macintosh... Généralités et installation du programme... 3 Généralités concernant Sage Gestion commerciale 100... 3 Version Windows... 3 Version Macintosh... 3 Installation du programme... 4 Mise à jour d une installation

Plus en détail

Solutions SAP Crystal

Solutions SAP Crystal Solutions SAP Crystal Solutions SAP Crystal NOUVEAUTÉS 2011 SOMMAIRE ^ 4 Nouveautés de SAP Crystal Server 2011 4 Exploration contextuelle des données 5 Expérience utilisateur attrayante 5 Panneau d interrogation

Plus en détail

Sage Déclarations Sociales

Sage Déclarations Sociales Sage Déclarations Sociales Recueil d informations techniques Décembre 2011 2011 Sage R&D Paie PME 1 Sommaire Avertissements 3 Introduction 4 Particularités de Microsoft Windows et Microsoft SQL Server...

Plus en détail

COMPTABILITE SAGE LIGNE 100

COMPTABILITE SAGE LIGNE 100 COMPTABILITE SAGE LIGNE 100 Date : 20/09/2006 Auteur : Pascal VIGUIER Réf. : SAGE092006 SOMMAIRE SOMMAIRE...1 1. MENU FICHIER...3 1.1 1.2 AUTORISATION D ACCES...3 A PROPOS DE VOTRE SOCIETE...4 1.2.1 1.2.2

Plus en détail

CPT10WMA007. Manuel pédagogique. Version 14

CPT10WMA007. Manuel pédagogique. Version 14 CPT10WMA007 Manuel pédagogique Version 14 Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le cédérom sur lequel est enregistré le programme, la documentation

Plus en détail

Sage 100 CRM Les compatibilités Version 8.02. Mise à jour : 2015 version 8

Sage 100 CRM Les compatibilités Version 8.02. Mise à jour : 2015 version 8 Sage 100 CRM Les compatibilités Version 8.02 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise Server Remarques : 1. L'installation de STATISTICA Entreprise Server s'effectue en deux temps : a) l'installation du serveur et

Plus en détail

CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS

CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS CONTACT EXPRESS 2011 ASPIRATEUR D EMAILS MANUEL D UTILISATION Logiciel édité par la société I. PREAMBULE a) Avant propos... 3 b) Support... 3 c) Interface d accueil... 4 à 5 d) Interface de Recherche...

Plus en détail

Manuel utilisateur du logiciel PrestaConnect.

Manuel utilisateur du logiciel PrestaConnect. Manuel utilisateur du logiciel. Ce document permet d effectuer l installation et la configuration de, mais également d en apprendre l utilisation des diverses fonctionnalités. Table des matières Prérequis

Plus en détail

SQL SERVER 2008...2 PRECONISATIONS A L INSTALLATION.2 VERIFICATION INSTALLATION...2 CONNEXION RESEAU.4 EMPLACEMENTS DOSSIERS & SAUVEGARDES...

SQL SERVER 2008...2 PRECONISATIONS A L INSTALLATION.2 VERIFICATION INSTALLATION...2 CONNEXION RESEAU.4 EMPLACEMENTS DOSSIERS & SAUVEGARDES... SQL SERVER 2008.....2 PRECONISATIONS A L INSTALLATION.2 VERIFICATION INSTALLATION...2 CONNEXION RESEAU.4 EMPLACEMENTS DOSSIERS & SAUVEGARDES...6 DESINSTALLATION SQL SERVER....7 DESINSTALLATION SQL SERVER

Plus en détail

ACCUEIL - P. 5 DEMANDES DE PAIEMENT - P. 8

ACCUEIL - P. 5 DEMANDES DE PAIEMENT - P. 8 ACCUEIL - P. 5 DEMANDES DE PAIEMENT - P. 8 DEMANDES DE VIREMENT - P. 16 MON COMMERCE - P. 21 UTILISATEURS - P. 27 COMPTABILITÉ - P. 30 PRÉSENTATION www.factobox.com A SAVOIR Depuis 2009, plus de 200 clients

Plus en détail

Table des matières 1. Installation de BOB 50... 3 BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10

Table des matières 1. Installation de BOB 50... 3 BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10 Table des matières 1. Installation de BOB 50... 3 1.1. Avant d installer/migrer vers BOB 50... 3 1.2. Installation de Sybase Advantage Server... 3 1.3. Installation monoposte du logiciel BOB 50... 4 1.4.

Plus en détail

Formation logiciel Sage 100 Comptabilité i7

Formation logiciel Sage 100 Comptabilité i7 Sage 100 Comptabilité offre la simplicité d une base de données commune aux différents modules comptables et financiers, une grande interactivité avec votre environnement bureautique et la fluidité de

Plus en détail

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur. La gestion des Imprimantes sous Facile_Caisse : Vous pouvez utiliser plusieurs sortes d imprimante avec le logiciel Facile_Caisse. Si vous possédez une imprimante classique au format A4, vous n aurez aucun

Plus en détail

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041

Plus en détail

Sage Paie Recueil d informations techniques. Sage Paie & RH. Recommandations techniques. Mise à jour : 18 décembre 2012. 2012 Sage R&D Paie PME 1

Sage Paie Recueil d informations techniques. Sage Paie & RH. Recommandations techniques. Mise à jour : 18 décembre 2012. 2012 Sage R&D Paie PME 1 Sage Paie & RH Recommandations techniques Mise à jour : 18 décembre 2012 2012 Sage R&D Paie PME 1 Sommaire Avertissements 4 Introduction 5 Contenu de ce manuel... 5 Particularités de Sage DS (Déclarations

Plus en détail

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web 2012 K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web Document d installation et de paramétrage 24/09/2012 Sommaire Septembre 2012 1. Contexte d installation...3 1.1. Prérequis à l

Plus en détail

Créer une base de données dans CEGID sous SQL Server

Créer une base de données dans CEGID sous SQL Server Créer une base de données dans CEGID sous SQL Server Allez sur puis validez le message d erreur. Se connecter en administrateur SQL comme dans l exemple ci-dessous : Société exemple à définir Conserver

Plus en détail

Mise à jour : Octobre 2011

Mise à jour : Octobre 2011 FICHE TECHNIQUE Architecture VIGILENS Mise à jour : Octobre 2011 VIGILENS SARL 53, rue Vauban F 69006 LYON www.vigilens.net Sommaire 1. Intégration de VIGILENS dans l architecture de l entreprise... 3

Plus en détail

Nouveautés I7.10. Chers clients,

Nouveautés I7.10. Chers clients, Nouveautés I7.10 Chers clients, La sortie officielle de la version I7.10 est une nouvelle occasion de vous présenter les bénéfices de la nouvelle génération des logiciels Sage 100 Génération I7. Outre

Plus en détail

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs. Connexion à 4D Server depuis une page ASP Par Noreddine MARGOUM, Technicien Contrôle Qualité, 4D S.A. Note technique 4D-200403-08-FR Version 1 Date 1 Mars 2004 Résumé Le propos de cette note technique

Plus en détail

CONDITIONS GENERALES DU SERVICE BANQUE EN LIGNE ECOBANK

CONDITIONS GENERALES DU SERVICE BANQUE EN LIGNE ECOBANK CONDITIONS GENERALES DU SERVICE BANQUE EN LIGNE ECOBANK 1. OBJET Les présentes conditions générales fixent les modalités d accès et de fonctionnement du service de banque en ligne fourni par ECOBANK (le

Plus en détail

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION) MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION) SOMMAIRE AVANT PROPOS... 3 PRÉSENTATION FONCTIONNELLE WATCHDOC... 4 APERÇU DU MANUEL... 5 INTRODUCTION... 5 CONTACTER DOXENSE... 5 PRÉPARER L INSTALLATION...

Plus en détail

Exécution de PCCOMPTA à distance sous Terminal Server 2003.

Exécution de PCCOMPTA à distance sous Terminal Server 2003. Développement de logiciels de gestion Exécution de PCCOMPTA à distance sous Terminal Server 2003. PCCOMPTA SOUS REMOTE DESKTOP CONNECTION Mai 2011. Exécution de PCCOMPTA SOUS Windows 2003 SERVER PCCOMPTA

Plus en détail

Boot Camp Guide d installation et de configuration

Boot Camp Guide d installation et de configuration Boot Camp Guide d installation et de configuration Table des matières 3 Introduction 4 Configuration requise 5 Vue d ensemble de l installation 5 Étape 1 : Rechercher les mises à jour 5 Étape 2 : Préparer

Plus en détail

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans

Plus en détail

Connexion à SQL server

Connexion à SQL server Micromedia International Etude technique Auteur : Pierre Chevrier Nombre de pages : 18 Société : Date : 12/09/2012 Réf. : ETT_20110624_000001.docx Connexion à SQL server Ce document précise les modalités

Plus en détail

NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame

NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame www.nicelabel.fr [email protected] NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame White Paper Version 20051114-06-FR 2005 Euro Plus. Tous droits réservés. http://www.nicelabel.fr

Plus en détail

Découpage fonctionnel : Ligne100 V15, Ligne 30 et Start. Découpage fonctionnel Start 30 100 100 Pack 100 Pack +

Découpage fonctionnel : Ligne100 V15, Ligne 30 et Start. Découpage fonctionnel Start 30 100 100 Pack 100 Pack + Comptabilité 100 Découpage fonctionnel : Ligne100 V15, Ligne 30 et Start Commentaire : en bleu les nouveautés V15. Découpage fonctionnel Start 30 100 100 Pack 100 Pack + Gestion des IFRS Impression au

Plus en détail

JULIE SMS V2.0.1 NOTICE D INSTALLATION ET D UTILISATION

JULIE SMS V2.0.1 NOTICE D INSTALLATION ET D UTILISATION JULIE SMS V2.0.1 NOTICE D INSTALLATION ET D UTILISATION Le fabricant OWANDY S.A.S. se réserve le droit de modifier ses produits ou leurs spécifications afin d'améliorer les performances, la qualité ou

Plus en détail

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t Lisez-Moi Version FE 7.0.t SOMMAIRE 1. PARAMETRAGE... 5 1.1. Banque... 5 1.1.1. Code Banque... 6 1.1.2. Comptes bancaires... 7 1.1.3. Edition... 8 2. FICHE CLIENTS... 9 2.1. Renseignements Comptables...

Plus en détail

LOGICIEL KIPICAM : Manuel d installation et d utilisation

LOGICIEL KIPICAM : Manuel d installation et d utilisation 2015 LOGICIEL KIPICAM : Manuel d installation et d utilisation Kipisoft http://w.sanchez.free.fr/product_home_overview.php 16/05/2015 SOMMAIRE 1. Présentation de l'application... 3 2. Installation de l'application...

Plus en détail

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7 Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7 1. Pré-requis sur FileMaker Pro 10 Ouvrir la base que l on veut partager en connexion ODBC. Il faut activer le partage ODBC : menu

Plus en détail

L accès à distance du serveur

L accès à distance du serveur Chapitre 11 L accès à distance du serveur Accéder à votre serveur et aux ordinateurs de votre réseau depuis Internet, permettre à vos amis ou à votre famille de regarder vos dernières photos, écouter vos

Plus en détail

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

! #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17 !" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17 &%%#' %#( ) I CONTENU DE L'EMBALLAGE...3 II INTRODUCTION...3 III CONFIGURATION REQUISE...3 IV INSTALLATION MATERIELLE - CONNEXIONS...3

Plus en détail

Le front office (utilisateur client):

Le front office (utilisateur client): Solution e-business Media-2001 Précurseur en Europe, depuis 1998, Media-2001 est actif dans le domaine des boutiques en ligne. Les premières boutiques disposaient d un logiciel en Access mono poste et

Plus en détail

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision Page 1 de 7 Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision Table des matières Table des matières... 1 1. Premier

Plus en détail

Guide SQL Server 2008 pour HYSAS

Guide SQL Server 2008 pour HYSAS Guide SQL Server 2008 pour HYSAS Sommaire 1- Lancement de l exécutable 3 2- Paramétrage pour des postes clients 11 3- Paramétrage Windows 13 4- Création de l installation avec Visor 24 1- Lancement de

Plus en détail

Moyens de paiement. Manuel pédagogique Version 14

Moyens de paiement. Manuel pédagogique Version 14 Moyens de paiement Manuel pédagogique Version 14 MPA10WMA005 Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le cédérom sur lequel est enregistré le programme,

Plus en détail

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél. +41 032 718 2000, [email protected].

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél. +41 032 718 2000, hotline.sitel@unine.ch. Terminal Server 1. Présentation Le terminal server est un service offert par les serveurs Windows 2000 ou par une version spéciale de windows NT 4.0 server, appelée Terminal Server. Un programme client

Plus en détail

Mise en place de votre connexion à Etoile Accises via Internet sécurisé

Mise en place de votre connexion à Etoile Accises via Internet sécurisé Cette procédure a pour but de vous aider dans la mise en place de votre connexion à notre applicatif en ligne Etoile Accises. Pour connaître les fonctionnalités détaillées de l'outil Etoile Accises, nous

Plus en détail

Février 2007. Novanet-IS. Suite progicielle WEB pour l Assurance. Description fonctionnelle

Février 2007. Novanet-IS. Suite progicielle WEB pour l Assurance. Description fonctionnelle Novanet Février 2007 Novanet-IS Suite progicielle WEB pour l Assurance Description fonctionnelle Novanet-IS Description fonctionnelle 1 Définition 3 2 La production (module WEBACTION) 6 3 Relation Client

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

Configuration de plusieurs serveurs en Load Balancing

Configuration de plusieurs serveurs en Load Balancing Le serveur de communication IceWarp Configuration de plusieurs serveurs en Load Balancing Version 10.4 27 février 2013 Icewarp France / DARNIS Informatique i Sommaire Configuration de plusieurs serveurs

Plus en détail

Installation & Mode d emploi WL400 Adaptateur/Antenne Wifi

Installation & Mode d emploi WL400 Adaptateur/Antenne Wifi Installation & Mode d emploi WL400 Adaptateur/Antenne Wifi Mode d emploi WL400-01- VR1.2 1. Introduction Félicitation vous venez d acquérir un Adaptateur/Antenne Wifi WL400. Cet appareil a été conçue pour

Plus en détail

PROCÉDURE D AIDE AU PARAMÉTRAGE

PROCÉDURE D AIDE AU PARAMÉTRAGE PROCÉDURE D AIDE AU PARAMÉTRAGE SOMMAIRE Futur a fait évoluer son service de messagerie professionnel Futur Office. Le présent document va vous accompagner pas à pas vers la récupération de vos divers

Plus en détail

Sage Moyens de Paiement Banque

Sage Moyens de Paiement Banque Sage Moyens de Paiement Banque Prise en main 2010 Sage Composition du progiciel Votre progiciel est composé d'un boîtier de rangement comprenant : le cédérom sur lequel est enregistré le programme, un

Plus en détail

Préconisations Techniques & Installation de Gestimum ERP

Préconisations Techniques & Installation de Gestimum ERP 2015 Préconisations Techniques & Installation de Gestimum ERP 19/06/2015 1 / 30 Table des Matières Préambule... 4 Prérequis matériel (Recommandé)... 4 Configuration minimum requise du serveur (pour Gestimum

Plus en détail

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION

COSWIN MOBILE SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION SERVEUR DE SYNCHRONISATION GUIDE D INSTALLATION SOMMAIRE I. FONCTION DU SERVEUR DE SYNCHRONISATION...3 II. ELEMENTS DU SERVEUR DE SYNCHRONISATION...3 1. APPLICATION ULSA... 3 2. APPLICATION IDE.... 3 III.

Plus en détail

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents

Plus en détail

Installation et utilisation du client FirstClass 11

Installation et utilisation du client FirstClass 11 Installation et utilisation du client FirstClass 11 Support par téléphone au 03-80-77-26-46 ou par messagerie sur la conférence «Support Melagri» Sommaire Page I) Installation du client FirstClass 2 II)

Plus en détail

Trois types de connexions possibles :

Trois types de connexions possibles : Procédure d installation d un transmetteur wifi Canon WFT pour transmission des images sur un serveur FTP. PC (Windows XP). Trois types de connexions possibles : Connexion sans point d accès de type (Add

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

Guide de connexion pour les sites sécurisés youroffice & yourassets

Guide de connexion pour les sites sécurisés youroffice & yourassets Guide de connexion pour les sites sécurisés youroffice & yourassets Table des matières 1. Sécurité... 3 2. Configuration minimale requise... 3 a. Système Windows... 3 b. Système Macintosh... 3 3. Demander

Plus en détail

SUPPORT DE COURS LOGICIEL SAGE SAARI COMPTABILITE 100

SUPPORT DE COURS LOGICIEL SAGE SAARI COMPTABILITE 100 SUPPORT DE COURS LOGICIEL SAGE SAARI COMPTABILITE 100 SOMMAIRE Page INTRODUCTION Schéma descriptif des étapes du paramétrage du fichier comptable I CREATION DE FICHIER COMPTABLE I 1 Création du fichier

Plus en détail

UBS Commercial Cards Online Portal Manuel d utilisation

UBS Commercial Cards Online Portal Manuel d utilisation UBS Online Services UBS Commercial Cards Online Portal UBS Commercial Cards Online Portal Manuel d utilisation Table des matières 1 Foire aux questions 3 1.1 Connexion 3 1.2 Administration 3 1.3 Compte

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Rapport financier électronique

Rapport financier électronique Ce manuel contient des instructions pour des évènements commençant avant le 19 Décembre 2014. Guide d'utilisateur du Rapport financier électronique EC 20206 (06/13) Guide d utilisateur du Rapport financier

Plus en détail

Procédure d'installation de SQL Server Express 2008

Procédure d'installation de SQL Server Express 2008 Fiche technique AppliDis Procédure d'installation de SQL Server Express 2008 Fiche IS00306 Version 1.01 Diffusion limitée : Systancia, membres du programme Partenaires AppliDis et clients ou prospects

Plus en détail

Option site e-commerce

Option site e-commerce Option site e-commerce Guide de configuration des modes de paiement en ligne V 1.2 1 Sommaire Paiement par carte bancaire Ouverture d un contrat de vente à distance Configuration du paiement par carte

Plus en détail

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Installation Client (licence réseau) de IBM SPSS Modeler 14.2 Installation Client (licence réseau) de IBM SPSS Modeler 14.2 Les instructions suivantes permettent d installer IBM SPSS Modeler Client version 14.2 en utilisant un licence réseau. Ce présent document

Plus en détail

GdsCompta. Logiciel de comptabilité générale

GdsCompta. Logiciel de comptabilité générale GdsCompta Logiciel de comptabilité générale CARACTERISTIQUES Logiciel sous Windows Fonctionne sous Windows XP, Vista, 7 et 8 Multi-dossier De la saisie des écritures au bilan, une comptabilité complète.

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

Comment utiliser FileMaker Pro avec Microsoft Office

Comment utiliser FileMaker Pro avec Microsoft Office Guide d utilisation Comment utiliser FileMaker Pro avec Microsoft Office Comment utiliser FileMaker Pro et Microsoft Office page 1 Table des matières Introduction... 3 Avant de commencer... 4 Partage de

Plus en détail

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

Plus en détail

Sommaire. BilanStat manuel de présentation et d utilisation Page 2

Sommaire. BilanStat manuel de présentation et d utilisation Page 2 BilanStat-Audit Sommaire Présentation... 3 Chapitre 0 : Gestion des bases de données... 5 Chapitre 0 : Gestion des missions... 12 Chapitre 1 : Eléments généraux... 17 Chapitre 2 : Capitaux propres... 28

Plus en détail

Comment bien démarrer avec. NetAirClub GUIDE ADMINISTRATEUR V1.5. Table des matières

Comment bien démarrer avec. NetAirClub GUIDE ADMINISTRATEUR V1.5. Table des matières Comment bien démarrer avec NetAirClub GUIDE ADMINISTRATEUR V1.5 Table des matières 1 TELECHARGEMENT...3 2 PREMIERE CONNEXION...4 2.1 Paramétrage du temps d'inactivité...4 2.2 Création de votre fiche membre

Plus en détail

Sage 50 Version 2014 Guide d installation. Sage Suisse SA 30.06.2014

Sage 50 Version 2014 Guide d installation. Sage Suisse SA 30.06.2014 Sage 50 Version 2014 Guide d installation Sage Suisse SA 30.06.2014 Table des matières 1.0 Types d'installation possibles 3 1.1 Installation Standalone 3 1.1.1 Standalone (Workstation) 3 1.1.2 Terminalserver

Plus en détail

3.5 INTERROGATION DES COMPTES

3.5 INTERROGATION DES COMPTES 3.5 INTERROGATION DES COMPTES Interrogation et lettrage pour les comptes généraux Interrogation tiers pour les clients et fournisseurs. Sur ces deux menus, possibilité de lettrer automatiquement ou manuellement

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Guide Expert Comptable Production Coala Sm@rt-Cool

Guide Expert Comptable Production Coala Sm@rt-Cool Guide Expert Comptable Production Coala Sm@rt-Cool Décembre 2007 Sage Division Experts-Comptables - 11 rue de Cambrai - 75945 Paris Cedex 19 Siège Social Sage : 10 rue Fructidor - 75834 Paris Cedex 17

Plus en détail

Manuel d utilisation du web mail Zimbra 7.1

Manuel d utilisation du web mail Zimbra 7.1 Manuel d utilisation du web mail Zimbra 7.1 ma solution de communication intelligente Sommaire 1 Connexion à la messagerie Zimbra p.4 1.1 Prérequis p.4 1.1.1 Ecran de connexion à la messagerie p.4 2 Presentation

Plus en détail

CEGID - Business Suite Gestion commerciale

CEGID - Business Suite Gestion commerciale cterrier.com 1/14 07/10/2009 CEGID - Business Suite Gestion commerciale Auteur : C. Terrier ; mailto:[email protected] ; http://www.cterrier.com Utilisation : Reproduction libre pour des formateurs

Plus en détail

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1 AOLbox Partage de disque dur Guide d utilisation Partage de disque dur Guide d utilisation 1 Sommaire 1. L AOLbox et le partage de disque dur... 3 1.1 Le partage de disque dur sans l AOLbox... 3 1.1.1

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

Plus en détail

Communiqué de Lancement Sage CRM v. 6.6. Editions Express, Standard et Avancée Module CRM Sage 100 Entreprise. Communiqué de Lancement Sage CRM 6.

Communiqué de Lancement Sage CRM v. 6.6. Editions Express, Standard et Avancée Module CRM Sage 100 Entreprise. Communiqué de Lancement Sage CRM 6. Communiqué de Lancement v. 6.6 Editions Express, Standard et Avancée Module CRM Sage 100 Entreprise Communiqué de Lancement 6.6 Sommaire Systèmes d Exploitation... 3 Disponibilité Client... 3 Bases de

Plus en détail