275
Kit ODBC 100 Version 12.00 Référence

Kito Dbc

Embed Size (px)

DESCRIPTION

odbc sage

Citation preview

Page 1: Kito Dbc

Kit ODBC 100Version 12.00

Référence

Page 2: Kito Dbc

COMPOSITION DU PROGICIEL

Votre progiciel est composé d'un boîtier de rangement comprenant :

• le CD-ROM sur lequel est enregistré le programme,• la documentation correspondante

PROPRIETE & USAGE

Tout usage, représentation ou reproduction intégral ou partiel, fait sans le consentement de Sage France est illicite (Loi du 11 Mars1957 - 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 peinede sanctions pénales (Loi du 3 Juillet 1985, Art. 46).

CONFORMITE & MISE EN GARDE

Compte tenu des contraintes inhérentes à la présentation sous forme papier, les spécifications visées dans la présente documentationconstituent 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 exactementl'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.

EVOLUTION

La documentation correspond à la version référencée. Entre deux versions, des mises à jour du logiciel peuvent être opérées sansmodification de la documentation. Toutefois, un additif peut être joint à la documentation existante pour présenter les modifications etaméliorations apportées à ces mises à jour.

LA FICHE SUGGESTION

Sage France recherche une constante amélioration du progiciel et de sa documentation. Nous invitons notre clientèle à nous faireparvenir ses suggestions et les éventuels défauts ou erreurs qu'elle pourrait relever sur la fiche suggestion figurant en dernière page dumanuel.

MARQUES

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.© SageSageSageSage FranceFranceFranceFrance

Page 3: Kito Dbc

Sommaire général

I©Sage France

Sommaire

Chapitre 1 – Généralités sur leprogramme_______________________ 1

Définition d’ODBC _______________________ 2

Principe de fonctionnement ____________ 2

Compatibilité avec les bases de laligne 100 Windows ______________________ 3

Principe d’utilisation dans lesapplications _____________________________ 4

Contenu du Kit ODBC 100 .......................5Base de Données : ACC2000EX.MDB deMicrosoft ACCESS ................................................ 5

Base de Données: ODBCNEW2000.MDB deMicrosoft ACCESS ................................................ 5

Exemple d’utilisation du Driver ODBC 100avec 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 .................................................7Comptabilité 100.................................................... 7

Gestion Commerciale 100......................................7

Immobilisations 100................................................7

Manager 100 ..........................................................8

Moyen de Paiement 100 ........................................8

Paie Windows 100..................................................8

Types de Sources de Données................ 9Utilisateur................................................................9

Système..................................................................9

Fichier.....................................................................9

Création d’une source de donnéesSage ...................................................... 11Création d’une DSN de type fichier ......................14

Chapitre 2 – Fonctionsavancées et DLL Active X :déclaration des fonctions______ 15

Les fonctions avancées Sage__________ 16

Introduction générale ........................... 16

Description des fonctions de l’APISage ...................................................... 17Introduction...........................................................17

Description des fonctions avancéesde la comptabilité ................................. 18TotalMvtDebit (CG_Num, CT_Num,JO_Num, Deb, Fin, Resultat) ...............................18

TotalMvtCredit (CG_Num, CT_Num,JO_Num, Deb, Fin, Credit)...................................18

Page 4: Kito Dbc

Sommaire général

II©Sage France

TotalMvtSolde (CG_Num, CT_Num,JO_Num, Deb, Fin, Resultat) .............................. 19

TotalDevDebit (CG_Num, CT_Num,JO_Num, Deb, Fin, Resultat) .............................. 20

TotalDevCredit (CG_Num, CT_Num,JO_Num, Deb, Fin, Resultat) .............................. 20

TotalDevSolde (CG_Num, CT_Num,JO_Num, Deb, Fin, Resultat) .............................. 21

TotalRepDebit (CR_Num, JO_Num, Deb,Fin, Resultat) ....................................................... 22

TotalRepCredit (CR_Num, JO_Num, Deb,Fin, Resultat) ....................................................... 22

TotalRepSolde (CR_Num, JO_Num, Deb,Fin, Resultat) ....................................................... 23

TotalRepDevDebit (CR_Num, JO_Num, Deb,Fin, Resultat) ....................................................... 23

TotalRepDevCredit (CR_Num, JO_Num,Deb, Fin, Resultat)............................................... 24

TotalRepDevSolde (CR_Num, JO_Num,Deb, Fin, Resultat)............................................... 24

RealisationBudg (BD_Num, Deb, Fin,Resultat) .............................................................. 25

JournalNouvPiece (JO_Num, JM_Date,Resultat ) ............................................................. 25

Description des fonctions avancéesde la Gestion Commerciale................... 27CIALLigneMontantHT (DL_No, Resultat) ............ 27

CIALLigneMontantTTC (DL_NO,RESULTAT)......................................................... 27

CIALLigneRemiseGlobal (DL_NO,RESULTAT)......................................................... 27

CIALLignePrixUNet (DL_NO, RESULTAT) ......... 28

CIALLignePrixUNetTTC (DL_NO,RESULTAT)......................................................... 28

CIALLignePrixUNetDevise (DL_NO,RESULTAT)......................................................... 28

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

Page 5: Kito Dbc

Sommaire général

III©Sage France

CIALDocQtesColisee (DO_TYPE,DO_PIECE, RESULTAT) .................................... 36

CIALDocTotalHTDev (DO_TYPE,DO_PIECE, RESULTAT) .................................... 37

CIALDocEscompteDev (DO_TYPE,DO_PIECE, RESULTAT) .................................... 37

CIALDocTotalHTNetDev (DO_TYPE,DO_PIECE, RESULTAT) .................................... 38

CIALDocMontantTaxesDev (DO_Type,DO_Piece, Ntaxe, RESULTAT)........................... 38

CIALDocMontantTotalTaxesDev (DO_TYPE,DO_PIECE, RESULTAT) .................................... 38

CIALDocTotalTTCDev (DO_TYPE,DO_PIECE, RESULTAT) .................................... 39

CIALDocNouvPiece (DO_Type,DO_SOUCHE, RESULTAT)................................ 39

CIALTiersCAHTBrut (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................. 39

CIALTiersCAHTNet (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................. 40

CIALTiersCATTC (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 40

CIALTiersPrixRevient (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 41

CIALTiersQuantites (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 42

CIALTiersQtesColisee (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 42

CIALTiersPoidsNet (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 43

CIALTiersPoidsBrut (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 43

CIALTiersMarge (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 44

CIALTiersRemise (CT_Num, Debut, Fin,TypeDocDe, TypeDocA, RESULTAT)................ 44

CIALTiersSolde(CT_NUM, Résultat)................... 45

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

Page 6: Kito Dbc

Sommaire général

IV©Sage France

CIALArtPoidsNet (AR_Ref, CT_NumDe,CT_NumA, Debut, Fin, TypeDocDe,TypeDocA, Résultat)............................................ 54

CIALArtPoidsBrut (AR_Ref, CT_NumDe,CT_NumA, Debut, Fin, TypeDocDe,TypeDocA, Résultat)............................................ 55

CIALArtMarge (AR_REF, CT_NumA,CT_NumDe, Debut, Fin, TypeDocDe,TypeDocA, Résultat)............................................ 55

CIALArtCompteA (AR_Ref, Domaine,CatCompta, Résultat) .......................................... 56

CIALArtCompteG (AR_Ref, Domaine,CatCompta, Résultat) .......................................... 56

CIALArtTaxe1 (AR_Ref, Domaine,CatCompta, Taxe1) ............................................. 57

CIALArtTaxe2 (AR_Ref, Domaine,CatCompta, Résultat) .......................................... 57

CIALArtTaxe3 (AR_Ref, Domaine,CatCompta, Résultat) .......................................... 58

CIALArtPrixCat (AR_Ref, CatTarif, AG_No1,Ag_No2, Résultat) ............................................... 58

CIALArtCoefCat (AR_Ref, CatTarif, Résultat)..... 59

CIALArtPrixClient (AR_Ref, CT_Num,CatTarif, AG_No1, AG_No2, Résultat)................ 59

CIALArtCoefClient (AR_Ref, CatTarif,Résultat) .............................................................. 60

CIALArtPrixFourniss(AR_Ref,CT_NUM,AG_NO1, AG_NO2, Résultat) ............. 60

CIALFamCAHTBrut (Fa_CodeFamille,CT_NumDe, CT_NumA, Debut, Fin,TypeDocDe, TypeDocA, Résultat) ...................... 60

CIALFamCAHTNet (Fa_CodeFamille,CT_NumDe, CT_NumA, Debut, Fin,TypeDocDe, TypeDocA, Résultat) ...................... 61

CIALFamCATTC (Fa_CodeFamille,CT_NumDe, CT_NumA, Debut, Fin,TypeDocDe, TypeDocA, Résultat) ...................... 62

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,

Page 7: Kito Dbc

Sommaire général

V©Sage France

Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 70

CIALRepPrixRevient (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 71

CIALRepMarge (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 72

CIALRepQuantites (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 73

CIALRepQtesColisee (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 74

CIALRepPoidsNet (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 75

CIALRepPoidsBrut (RE_No, CT_NumDe,CT_NumA, AR_RefDe, AR_RefA,FA_CodeFamilleDe, FA_CodeFamilleA,Debut, Fin, TypeDocDe, TypeDocA,Résultat) .............................................................. 76

CIALStockVal(DE_No, AR_REF,AG_NO1,AG_NO2, Date, Résultat) .................... 77

CIALStockQte(DE_No, AR_REF,AG_NO1,AG_NO2, Date, Résultat) .................... 77

GetParamValeurStr (TypeBase, NomTable,NomChamp, Résultat) ......................................... 78

GetParamValeurDbl (TypeBase, NomTable,NomChamp, Résultat) ......................................... 78

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éesde la Paie Maestria Windows................ 82FSalCumul (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’ActiveXSage ____________________________________ 85

Introduction........................................... 85

Principe d’utilisation de L’ActiveXSage ...................................................... 86

Exemple de Propriétés de l’objetCPTA (base comptable) ........................ 87TotalMvtDebit (CG_Num, CT_Num,JO_Num, Deb, Fin) ..............................................87

Exemple de propriétés de l’objetCIAL (Gestion Commerciale) ................ 88LigneMontantHT (DL_NO) ...................................88

Page 8: Kito Dbc

Sommaire général

VI©Sage France

TiersCAHTBrut (CT_NUM, Debut, Fin,TypeDocDe, TypeDocA)...................................... 88

Propriétés de l’objet Param (pagesparamètres)........................................... 89GetParamValeurStr (TypeBase, NomTable,NomChamp) ........................................................ 89

Propriétés de l’objet Fsal (la paieMaestria Windows)................................ 90FSalCumul (SA_Num, RB_Num, Debut, Fin)...... 90

Chapitre 3 – Description desexemples fournis avec le KitODBC____________________________ 91

Base Exemple ACC2000EX.MDBsous Microsoft Access 2000___________ 92

Introduction........................................... 92

Contenu de la base ACC2000EX.MDB... 92Visualisation de tous les Champs des tablesde la Base............................................................ 93

Etat : Annuaire Client........................................... 93

Etat : Palmarès Client .......................................... 93

Etat : Grand Livre Tiers........................................ 93

Etat : Distribution Analytique ............................... 93

Etat : balance des comptes ................................. 94

Etat : Mouvements articles .................................. 94

Etat : tarifs par catégorie tarifaire ........................ 94

Exemple d’écriture dans un journal ..................... 94

Exemple d’écriture dans un Document devente .................................................................... 94

Utilisation des fonctions avancées deComptabilité et de Gestion Commerciale ............ 94

Exemple de génération automatique dedocuments en gestion commerciale.....................94

Exemple de génération automatiqued’articles ...............................................................95

Exemple de génération automatiqued’écritures comptables .........................................95

Base de DonnéesODBCNEW2000.MDB sous MicrosoftAccess 2000____________________________ 96

Contenu de la base de données............ 96

Utilisation des formulaires fournis ....... 97Aide à la création de requêtes et états.................97

Visualisation des champs de toutes les tablesde votre base........................................................97

Fichier Exemple Exc2000odbc.xlssous Microsoft Excel 2000.................... 98Contenu de cet exemple ......................................98

Etat CompteT.rpt sous CrystalReports 8.0............................................ 98Contenu de cet exemple ......................................98

Annexe 1 – Rappel sur lelangage SQL ____________________ 99

Remarques générales _________________100

Ajout d’un enregistrement .................. 100

Modification d’enregistrements.......... 101

Suppression d’Enregistrements.......... 101

Exemples de requêtes ........................ 101Exemple 1...........................................................101

Page 9: Kito Dbc

Sommaire général

VII©Sage France

Exemple 2.......................................................... 102

Exemple 3.......................................................... 102

Annexe 2 – Fonctions SQLsupportées par Sage ODBCLigne 100 ______________________103

Grammaire SQL supportée par ledriver __________________________________104

Fonctions de la grammaire ODBCsupportées par le driver Sage Ligne100....................................................... 105

Fonctions sur les chaînes decaractères ........................................... 106CONCAT (Chaîne1, Chaîne2)........................... 106

LENGTH (CHAINE) ........................................... 106

RIGHT (CHAINE, NB)........................................ 106

UCASE (CHAINE) ............................................. 106

LCASE (CHAINE) .............................................. 107

LOCATE (CHAINE1, CHAINE2, [START])........ 107

RTRIM (CHAINE) .............................................. 107

LEFT (CHAINE, NB) .......................................... 108

LTRIM (CHAINE) ............................................... 108

SUBSTRING (CHAINE, DEBUT, LONG) .......... 108

MOD (ENTIER1, ENTIER2) .............................. 109

Fonctions sur les dates....................... 109CURDATE () ...................................................... 109

DAYOFMONTH (DATE) .................................... 109

MONTH (DATE)................................................. 110

CURTIME () ....................................................... 110

DAYOFWEEK (DATE)....................................... 110

YEAR (DATE) .................................................... 111

Fonctions système.............................. 111DATABASE () .....................................................111

USER () ..............................................................111

Annexe 3 – Conseilsd’optimisation _________________ 112

Les éléments perturbants_____________113

Annexe 4 – Les codes erreursSage ___________________________ 114

Description des erreurs généralesCBASE _________________________________115

Description des codes erreurs desfonctions évoluées ____________________117

Erreurs en écriture dans lesdifférentes applications_______________121

Annexe 5 – Les erreurs lesplus fréquentes________________ 178

Avant propos __________________________179

Mauvaise version de fichier ................ 179

Erreur Sage 5002 obtenue aumoment de l’exécution d’unerequête d’écriture. .............................. 179

Refus d'autorisation erreur Sage1807 obtenue au moment del’exécution d’une requête d’écriture... 179

Page 10: Kito Dbc

Sommaire général

VIII©Sage France

Domaine de validité du champincorrect, veuillez vous référer à ladocumentation .................................... 180

Annexe 6 – Utilisation d’ODBCavec Visual Basic______________181

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 ................... 198

Annexe 7 – Utilisation d’ODBCavec Windev ___________________201

Introduction ___________________________202

Connexion Déconnexion .................... 202

Recherche d’enregistrements ________204

Ecriture dans les bases_______________206

Récupération des erreurs ................... 208

Syntaxe de la procédure SQLInfoGene .............208

Fonctions disponibles.........................................208

Annexe 8 – Utilisation d’ODBCavec Visual FoxPro____________ 211

Introduction ___________________________212

Les vues distantes .............................. 212

Programmation en Visual FoxPro ....... 213Connexion Déconnexion ...................................213

Recherche d’enregistrements ............ 215

Ecriture dans les bases ...................... 217

Récupération des erreurs ................... 218

Annexe 9 – Utilisation d’ODBCavec Delphi ____________________ 221

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 _____________234

Page 11: Kito Dbc

Sommaire général

IX©Sage France

Annexe 10 – Utilisation desfonctions avancées Sage______237

Introduction ___________________________238

API Sage.............................................. 238

DLL ActiveX......................................... 239Principe d’utilisation ........................................... 239

Descriptif des fonctions utiliséesdans les exemples .............................. 240TotalMvtSolde (CG_Num, CT_Num,JO_Num, Deb, Fin, [Résultat] ) ......................... 240

CIALDocNouvPiece (DO_Type,DO_SOUCHE, [Résultat] )................................. 241

GetParamValeurDate (TypeBase, NomTable,NomChamp, [Résultat] ) .................................... 241

Visual Basic___________________________242

API Sage.............................................. 242TotalMvtSolde () ................................................ 242

CIALDocNouvPiece ()........................................ 243

GetParamValeurDate () ..................................... 244

DLL ActiveX......................................... 245TotalMvtSolde () ................................................ 245

CIALDocNouvPiece ()........................................ 246

GetParamValeurDate () ..................................... 247

Déclaration des fonctions avancéesSage..................................................... 247

WinDev ________________________________248

API Sage.............................................. 248TotalMvtSolde () ................................................ 248

CIALDocNouvPiece ()........................................ 250

GetParamValeurDate ()......................................251

DLL ActiveX......................................... 252

Visual FoxPro__________________________253

API Sage.............................................. 253TotalMvtSolde () .................................................253

CIALDocNouvPiece () ........................................254

GetParamValeurDate ()......................................255

DLL ActiveX........................................................256

Déclaration des fonctions avancéesSage .................................................... 256

Delphi__________________________________257

API Sage.............................................. 257TotalMvtSolde () .................................................257

CIALDocNouvPiece () ........................................258

GetParamValeurDate ()......................................259

DLL ActiveX......................................... 261TotalMvtSolde () .................................................261

CIALDocNouvPiece () ........................................262

GetParamValeurDate ()......................................263

Déclaration des fonctions avancéesSage .................................................... 264

Page 12: Kito Dbc

1© Sage France

Chapitre 1 – Généralités sur leprogramme

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 100__________________________________________5

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

Page 13: Kito Dbc

Chapitre 1 – Généralités sur le programme

2 © Sage France

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.

Page 14: Kito Dbc

Chapitre 1 – Généralités sur le programme

3© Sage France

Compatibilité avec les bases de la ligne 100 Windows

Avec Sage Kit ODBC 100, vous pouvez accéder aux bases (fichier physique) des principaux produitsde 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 enlecture et écriture.

Page 15: Kito Dbc

Chapitre 1 – Généralités sur le programme

4© Sage France

Principe d’utilisation dans les applications

Chaque application compatible ODBC peut se connecter aux bases de la ligne 100 Windows. Lesapplications compatibles ODBC testées sont décrites en Annexe de ce guide. Le principe est en fait lemême pour chaque application. On se connecte à une source de données qui permet d’accéder auxdonné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 commeMicrosoft Access ou de générateurs de requêtes comme Query de Microsoft Excel qui utilisent legestionnaire ODBC.

Vous pouvez ainsi générer dans Microsoft Access vos propres modèles d’impression en sélectionnantles données dont vous avez réellement besoin et en les présentant sous la forme de formulaires oud’états que vous paramétrez très facilement. De plus, il vous est possible avec Microsoft Excel© parl’intermédiaire de Microsoft Query©, de créer des graphiques complexes avec vos données degestion.

Pour l’écriture dans les bases de la ligne 100 Windows, des explications et des exemples sont fournisdans ce guide. Néanmoins, pour l’écriture, il vaut mieux utiliser un outil de développement commepar exemple Visual basic ou Delphi pour pouvoir gérer les différents cas possibles d’erreurs. Ceserreurs sont gérées par le driver. Si par exemple vous détruisez un compte alors qu’il y a des écrituresassociées, le driver renverra une erreur et ne créera pas le compte. Il faudra intercepter cette erreur eten fonction du type de l’erreur agir en conséquence.

Page 16: Kito Dbc

Chapitre 1 – Généralités sur le programme

5© Sage France

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 lastructure des Fichiers ligne 100 via ODBC (en l’occurrence pour l’exemple fourni, ceux de laComptabilité 100, la Gestion commerciale 100) et vous montre au travers de certains Formulaires etEtats ce que l’on peut faire réellement avec ODBC au travers notamment d’exemples d’écriture dansles 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 exempleACC2000EX.MDB. Vous pouvez toutefois, vous en servir si vous créez votre propre base avec desattaches de tables du Kit ODBC 100. Le premier formulaire vous permet de créer automatiquement lesjointures entre les tables, le deuxième vous montre les champs de toutes les tables de votre base et letroisiè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 VisualBasic.

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.

Page 17: Kito Dbc

Chapitre 1 – Généralités sur le programme

6© Sage France

Fichier texte : fonction.txt

Déclaration des fonctions évoluées dans Visual Basic (Visual Basic , Access et Excel ), Delphi etVisual 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.

Page 18: Kito Dbc

Chapitre 1 – Généralités sur le programme

7© Sage France

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 GestionCommerciale 100) doivent être identiques, sinon la connexion échouera.

Immobilisations 100

• Driver : Sage Immobilisations 100

• Fichiers physiques :

◊ fichier immobilisations (*.IMO)

◊ fichier comptable (*.MAE)

Page 19: Kito Dbc

Chapitre 1 – Généralités sur le programme

8© Sage France

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)

Page 20: Kito Dbc

Chapitre 1 – Généralités sur le programme

9© Sage France

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 samachine et uniquement sur celle-ci.

Un utilisateur connecté sur un poste Windows NT sous le login « DUPONT » ne verra donc que lessources 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 samachine et uniquement sur celle-ci.

Un utilisateur connecté sur un poste Windows NT sous le login « DUPONT » verra donc toutes lessources 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éepour un programme que vous avez créé. Le compte sous lequel va s’exécuter la tâche est généralementle 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, maisfonctionnera 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

Page 21: Kito Dbc

Chapitre 1 – Généralités sur le programme

10© Sage France

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.

Page 22: Kito Dbc

Chapitre 1 – Généralités sur le programme

11© Sage France

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 Panneaude configuration.

Ci-dessous est explicité un exemple de création d’une source de données Utilisateur de type « Gestioncommerciale 100 » : GestCom_Ligne 100

1. 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.

Page 23: Kito Dbc

Chapitre 1 – Généralités sur le programme

12© Sage France

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é etde gestion commerciale (*.GCM) et (*.MAE).

Page 24: Kito Dbc

Chapitre 1 – Généralités sur le programme

13© Sage France

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'ouvrirdirectement toutes les tables de gestion commerciale et de comptabilité, ou toutes les tablesd'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éesGestcom_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 deDonnées. L’écriture des informations relatives à cette source de données s’effectue dans la Base deRegistre de Windows.

Page 25: Kito Dbc

14© Sage France

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 (FileDSN) est automatiquement créée avec le nom de la source de données utilisateur ou système avecl’extension .DSN.

Manuellement

Il n’est pas possible de créer directement des sources de données de type fichier par l’administrateurODBC 32 bits. Vous devez créer ce fichier de toute pièce. Voici ci-dessous un exemple d’un telfichier : é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\DataSources avec l’extension .DSN. Ce répertoire par défaut peut être changé grâce à l’administrateurODBC 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 detype fichier (File DSN).

Le seul moyen pour que cela fonctionne avec ce logiciel est de créer auparavant des File DSN, commeci-dessus, soit manuellement, soit automatiquement. Vous pourrez ensuite avoir accès à cette sourcede données dans Microsoft Query et l’utiliser, comme toute autre source de données.

Page 26: Kito Dbc

15© Sage France

Chapitre 2 – Fonctions avancées etDLL Active X : déclaration desfonctions

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 GestionCommerciale _____________________________________________________ 27

Description des fonctions avancées de la Paie MaestriaWindows__________________________________________________________ 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 (GestionCommerciale) ____________________________________________________ 88

Propriétés de l’objet Param (pages paramètres) ________________ 89

Propriétés de l’objet Fsal (la paie Maestria Windows)___________ 90

Page 27: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

16© Sage France

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 sontdisponibles pour la comptabilité, la gestion commerciale, la Paie Maestria et la Paie Windows. Cesfonctions ont été créées afin de faciliter les développements. Les fonctions telles que le calcul du CANet Client ou le total TTC d’un document auraient nécessité un développement important etcompliqué 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 dansla DLL CBODBC32.DLL. Cette méthode est utilisable par tous les logiciels 32 bits capablesd’appeler des fonctions externes.

• La seconde consiste à l’utilisation d’une DLL ActiveX (ASD100.DLL). Cette méthode estutilisable par tous les logiciels 32 bits capables d’utiliser la technologie ActiveX.

Page 28: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

17© Sage France

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 unparamè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 baseconcernée.

De même,i l faut impérativement respecter la syntaxe Minuscules/Majuscules de ces fonctions, sinoncela ne fonctionnera pas.

De même, il faut bien respecter les types de données des paramètres de ces fonctions. Des exemplesd’utilisation sous ACCESS, VISUAL BASIC, VISUAL FOX PRO, DELPHI et WINDEV sont fournis enAnnexe.

Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, via ODBC, à labase comptable.

Pour utiliser les fonctions de la gestion commerciale, votre application doit être connectée, via ODBC,à la base comptable et à la base commerciale.

Page 29: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

18© Sage France

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éralCG_Num, le compte tiers CT_Num, le code journal JO_Num, la période définie par la date de débutDeb et la date de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegé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éralCG_Num, le compte tiers CT_Num, le code journal JO_Num, la période définie par la date de débutDeb et la date de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune valeur non nulle, à savoir CG_NUM, CT_NUM ou JO_NUM.

Page 30: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

19© Sage France

En Entrée

CG_Num (Chaîne de caractères de type Compte 13 caractères maximum) : Numéro de comptegé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 ladate de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegé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

Page 31: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

20© Sage France

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éralCG_Num, le compte tiers CT_Num, le code journal JO_Num, la période définie par la date de débutDeb et la date de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegé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, lecompte tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la datede fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegénéral

CT_Num (Chaîne Alphanumérique Maj. 17 caractères max) : Numéro de compte tiers

Page 32: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

21© Sage France

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, lecompte tiers CT_Num, le code journal JO_Num, la période définie par la date de début Deb et la datede fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegé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

Page 33: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

22© Sage France

TotalRepDebit (CR_Num, JO_Num, Deb, Fin, Resultat)

Cette fonction permet de calculer le total des mouvements débit connaissant le compte reportingCR_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, auquelcas, 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 valeurnon 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 reportingCR_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, auquelcas, 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 valeurnon 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

Page 34: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

23© Sage France

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, auquelcas, 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 valeurnon 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 reportingCR_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, auquelcas, 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 valeurnon nulle.

En Entrée

CR_Num (Chaîne Alphanunérique maj. 13 caractères) : Numéro de compte reporting

Page 35: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

24© Sage France

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, auquelcas, 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 valeurnon 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 codejournal 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, auquelcas, 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.

Page 36: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

25© Sage France

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ébutde 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 valeurnon 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 soncode 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

Page 37: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

26© Sage France

En Sortie

Err (Entier) : Code erreur retourné par la fonction.

Resultat (Chaîne de caractères) : Numéro de pièce

Page 38: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

27© Sage France

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 decompatibilité avec les versions précédentes du driver ODBC. A partir de la version 11.00, le HT eststocké à la ligne de document (champ DL_MontantHT). Il est préférable d’utiliser le champDL_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 decompatibilité avec les versions précédentes du driver ODBC. A partir de la version 11, le TTC eststocké à la ligne de document (champ DL_MontantTTC). Il est préférable d’utiliser le champDL_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

Page 39: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

28© Sage France

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.

Page 40: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

29© Sage France

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.

Page 41: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

30© Sage France

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ècelivré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 retouralors

-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ècelivrée = facture) alors

-Quantité

Page 42: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

31© Sage France

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 retouralors

-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

Page 43: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

32© Sage France

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.

Page 44: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

33© Sage France

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érode 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

Page 45: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

34© Sage France

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 depièce.

En Entrée

DO_Type (Entier): Type de document

Page 46: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

35© Sage France

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

Page 47: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

36© Sage France

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

Page 48: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

37© Sage France

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 sonnumé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.

Page 49: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

38© Sage France

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 depiè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.

Page 50: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

39© Sage France

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 surle 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 lasélection porte sur toutes les dates jusqu'à la date de fin.

Page 51: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

40© Sage France

Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélectionporte 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 surle 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 lasé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électionporte 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 letype de document.

En Entrée

CT_NUM (Chaîne de caractères :17 maximum) : Client ou fournisseur

Page 52: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

41© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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 etsur 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 lasé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électionporte 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.

Page 53: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

42© Sage France

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 etsur 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 lasé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électionporte 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 lapé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 lasé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électionporte 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.

Page 54: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

43© Sage France

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 letype 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 lasé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électionporte 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 letype 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 lasé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électionporte 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.

Page 55: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

44© Sage France

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électionsur 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 lasé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électionporte 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 lasé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électionporte 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.

Page 56: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

45© Sage France

CIALTiersSolde(CT_NUM, Résultat)

Cette fonction permet de calculer le solde à la date système (volet solvalibité de la fiche Tiers de laGestion 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 laGestion 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 laGestion 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.

Page 57: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

46© Sage France

CIALTiersEchus3(CT_NUM, RESULTAT)

Cette fonction permet de calculer le solde échus à 3 mois (volet solvabilité de la fiche Tiers de laGestion 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 GestionCommerciale).

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 GestionCommerciale).

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.

Page 58: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

47© Sage France

CIALTiersDepassement2(CT_NUM, RESULTAT)

Cette fonction permet de calculer le dépassement (volet solvabilité de la fiche Tiers de la GestionCommerciale).

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 laGestion 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 GestionCommerciale).

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.

Page 59: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

48© Sage France

CIALTiersBC(CT_NUM, RESULTAT)

Cette fonction permet de calculer le portefeuille BC (volet solvabilité de la fiche Tiers de la GestionCommerciale).

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 laGestion 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 laGestion 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.

Page 60: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

49© Sage France

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 letiers, 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 lachaî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 lachaî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 lasé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électionporte 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 letiers, 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 lachaî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 lachaîne est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)

Page 61: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

50© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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 lachaî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 lachaî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 lasé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électionporte 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.

Page 62: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

51© Sage France

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 unesé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 lachaî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 lachaî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 lasé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électionporte 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 ef, CT_NumDe, CT_NumA, Debut, Fin, TypeDocDe, TypeDocA,Résultat)

Calcul du total prix de revient pour l’article défini par sa référence article AR_Ref, avec une sélectionsur 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 lachaî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 lachaîne est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)

Page 63: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

52© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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, avecune 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 lachaî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 lachaî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 lasé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électionporte 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.

Page 64: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

53© Sage France

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 letiers, 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 lachaî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 lachaî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 lasé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électionporte 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 unesé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 lachaî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 lachaîne est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)

Page 65: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

54© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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 letiers, 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 lachaî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 lachaî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 lasé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électionporte 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.

Page 66: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

55© Sage France

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 surle 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 lachaî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 lachaî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 lasé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électionporte 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 lachaî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 lachaîne est vide alors la sélection porte sur tous les Tiers à partir du Tiers (CT_NumDe)

Page 67: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

56© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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

Page 68: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

57© Sage France

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.

Page 69: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

58© Sage France

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 respectivementdé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 lavaleur à 0

En Sortie

Résultat (Double ) : Prix de vente

Err (Entier) : Code erreur retourné par la fonction.

Page 70: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

59© Sage France

CIALArtCoefCat (AR_Ref, CatTarif, Résultat)

Calcul du coefficient pour l’article, la catégorie tarifaire respectivement définis par AR_REF etCatTarif,.

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 2respectivement définis par AR_REF, CT_NUM, CatTarif, AG_NO1 et AG_NO2. Si le tiers n’existepas, 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 lavaleur à 0

En Sortie

Résultat (Double ) : Prix de vente

Err (Entier) : Code erreur retourné par la fonction.

Page 71: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

60© Sage France

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 lavaleur à 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 letiers, la période et sur le type de document.

En Entrée

Fa_CodeFamille (Chaîne de caractères :10 maximum) : Code Famille

Page 72: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

61© Sage France

CT_NumDe (Chaîne de caractères :17 maximum) : Client ou fournisseur (Borne inférieure) ; si lachaî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 lachaî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 lasé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électionporte 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 letiers, 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 lachaî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 lachaî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 lasé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électionporte 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

Page 73: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

62© Sage France

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 letiers, 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 lachaî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 lachaî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 lasé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électionporte 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 unesé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

Page 74: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

63© Sage France

CT_NumDe (Chaîne de caractères :17 maximum) : Client ou fournisseur (Borne inférieure) ; si lachaî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 lachaî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 lasé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électionporte 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 unesé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 lachaî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 lachaî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 lasé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électionporte 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

Page 75: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

64© Sage France

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, avecune 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 lachaî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 lachaî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 lasé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électionporte 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 surle tiers, la période et sur le type de document.

En Entrée

Fa_CodeFamille (Chaîne de caractères :10 maximum) : Code Famille

Page 76: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

65© Sage France

CT_NumDe (Chaîne de caractères :17 maximum) : Client ou fournisseur (Borne inférieure) ; si lachaî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 lachaî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 lasé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électionporte 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 unesé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 lachaî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 lachaî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 lasé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électionporte 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

Page 77: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

66© Sage France

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, lapé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 lachaî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 lachaî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 lasé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électionporte 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 surle tiers, la période et sur le type de document.

En Entrée

Fa_CodeFamille (Chaîne de caractères :10 maximum) : Code Famille

Page 78: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

67© Sage France

CT_NumDe (Chaîne de caractères :17 maximum) : Client ou fournisseur (Borne inférieure) ; si lachaî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 lachaî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 lasé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électionporte 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 letiers, 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 lachaî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 lachaî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îneest 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 lachaî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 lachaîne est vide alors la sélection porte sur toutes les familles jusqu'à la famille (Fa_CodeFamilleA)

Page 79: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

68© Sage France

Fa_CodeFamilleA (Chaîne de caractères :10 maximum) : Code Famille (Borne supérieure) ; si lachaî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 lasé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électionporte 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 letiers, 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaîne est vide alors la sélection porte sur toutes les familles à partir de la famille(Fa_CodeFamilleDe)

Page 80: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

69© Sage France

Debut (Chaîne de caractères au format ‘jjmmaa’) : Date de début ; si la chaîne est vide alors lasé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électionporte 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasélection porte sur toutes les dates jusqu'à la date de fin.

Page 81: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

70© Sage France

Fin (Chaîne de caractères au format ‘jjmmaa’) : Date de fin ; si la chaîne est vide alors la sélectionporte 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 unesé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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte sur toutes les dates à partir de la date de début.

TypeDocDe (Entier) : Type de document (borne inférieure) ; valeur dans DO_TYPE

Page 82: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

71© Sage France

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électionsur 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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

Page 83: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

72© Sage France

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, avecune 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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.

Page 84: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

73© Sage France

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 letiers, 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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.

Page 85: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

74© Sage France

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électionsur 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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.

Page 86: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

75© Sage France

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 letiers, 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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.

Page 87: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

76© Sage France

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 letiers, 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 lachaî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 lachaî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îneest 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 lachaî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 lachaî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 lachaî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 lasé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électionporte 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.

Page 88: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

77© Sage France

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 lavaleur à 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 lavaleur à 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.

Page 89: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

78© Sage France

GetParamValeurStr (TypeBase, NomTable, NomChamp, Résultat)

Si la table NomTable est une page paramètre (table commençant par P_), alors GetParamValeurStrretourne la valeur en chaîne de caractères, du champ NomChamp, de la page paramètre NomTable, dela base de type TypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurStr retourne la valeur en chaîne de caractères, du champ NomChamp, de la tableNomTable, de la base de type TypeBase, pour le dernier enregistrement écrit par ODBC (ajout oumodification).

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 (Basecommerciale), 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 GetParamValeurDblretourne la valeur de type double, du champ NomChamp, de la page paramètre NomTable, de la basede type TypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurDbl retourne la valeur en double, du champ NomChamp, de la table NomTable, de labase 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 (Basecommerciale), 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_)

Page 90: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

79© Sage France

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 GetParamValeurEntretourne la valeur en entier long, du champ NomChamp, de la page paramètre NomTable, de la basede type TypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurEnt 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 oumodification).

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 (Basecommerciale), 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 GetParamValeurDateretourne la valeur en chaîne de caractères au format ‘jjmmaa’, du champ NomChamp, de la pageparamètre NomTable, de la base de type TypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurDate retourne la valeur en chaîne de caractères au format ‘jjmmaa’, du champNomChamp, de la table NomTable, de la base de type TypeBase, pour le dernier enregistrementécrit par ODBC (ajout ou modification).

Page 91: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

80© Sage France

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 (Basecommerciale), 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 (Basecommerciale), 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

Page 92: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

81© Sage France

En Entrée

TypeBase (Chaîne de caractères ) : Type de la base : CPTA (Base comptable), CIAL (Basecommerciale), 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.

Page 93: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

82© Sage France

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 compriseentre 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=’’ alorsDé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 deFin 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 larubrique 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=’’ alorsDé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 deFin de l’exercice courant)

En Sortie

Résultat (Double) : Valeur du Cumul.

Err (Entier) : Code erreur retourné par la fonction.

Page 94: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

83© Sage France

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 dela 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=’’ alorsDé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 deFin 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 larubrique RB_Num si la Qualité de cette rubrique est Gain dans le premier cas ou Déduction ouCotisation 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=’’ alorsDé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 deFin de l’exercice courant)

En Sortie

Résultat (Double) : Valeur du Cumul.

Err (Entier) : Code erreur retourné par la fonction.

Page 95: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

84© Sage France

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 larubrique 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=’’ alorsDé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 deFin 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 larubrique 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=’’ alorsDé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 deFin de l’exercice courant)

En Sortie

Résultat (Double) : Valeur du Cumul.

Err (Entier) : Code erreur retourné par la fonction.

Page 96: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

85© Sage France

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 butde fournir des objets. Ces objets sont utilisables par tous les logiciels de développement capablesd’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 Intranetou Internet

Page 97: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

86© Sage France

Principe d’utilisation de L’ActiveX Sage

La DLL ActiveX est ASD100.DLL (Active Sage Data 100). Cette DLL est stockée dansWindows\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’objetretourne 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 del’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, à labase 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éssont les mêmes que les fonctions décrites ci-dessus, exceptées qu’elles retournent donc le résultat etnon plus le code erreur et que le nom des propriétés de l’objet CIAL ne commence plus par CIAL.

Page 98: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

87© Sage France

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éralCG_Num, le compte tiers CT_Num, le code journal JO_Num, la période définie par la date de débutDeb et la date de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 aitune 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 comptegé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.

Page 99: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

88© Sage France

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 surle 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éesoù le type était une chaîne de cractères au format « jjmmaa ». Ce sera le cas pour tous les champs detype DATE.

Page 100: Kito Dbc

Chapitre 2 – Fonctions avancées et DLL Active X : déclaration des fonctions

89© Sage France

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 GetParamValeurStrretourne la valeur en chaîne de caractères, du champ NomChamp, de la page paramètre NomTable, dela base de type TypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurStr retourne la valeur en chaîne de caractères, du champ NomChamp, de la tableNomTable, de la base de type TypeBase, pour le dernier enregistrement écrit par ODBC (ajoutou 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 (Basecommerciale), 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

Page 101: Kito Dbc

90© Sage France

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 compriseentre 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’exercicecourant)

En Sortie

Résultat de la propriété (Double) : Valeur du Cumul.

Page 102: Kito Dbc

91© Sage France

Chapitre 3 – Description desexemples fournis avec le Kit ODBC

Base Exemple ACC2000EX.MDB sous MicrosoftAccess 2000 _______________________________________________92

Introduction ______________________________________________________ 92

Contenu de la base ACC2000EX.MDB____________________________ 92

Base de Données ODBCNEW2000.MDB sous MicrosoftAccess 2000 _______________________________________________96

Contenu de la base de données__________________________________ 96

Utilisation des formulaires fournis_______________________________ 97

Fichier Exemple Exc2000odbc.xls sous Microsoft Excel2000 ______________________________________________________________ 98

Etat CompteT.rpt sous Crystal Reports 8.0______________________ 98

Page 103: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

92© Sage France

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, decomprendre la structure des bases de la ligne 100 Windows, et, d’autre part, de voir ce qu’on peutré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 commercialeG_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 lignesde 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.

Page 104: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

93© Sage France

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 typesde 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, lepourcentage 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 dontle 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 ledé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 cecompte 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 fourchettespossibles dont les valeurs sont à sélectionner dans une liste pour chacune.

Page 105: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

94© Sage France

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 desmouvements 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 tarifairedé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 100Windows au travers d'un exemple d'écriture dans un journal. On peut créer ou modifier une écritureexistante.

Exemple d’écriture dans un Document de vente

Cet exemple permet de comprendre comment fonctionne l'écriture dans les bases de la ligne 100Windows au travers d'un exemple d'écriture dans un document de vente. On peut, au travers de cetexemple 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 decomptabilité 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 10lignes générées avec des articles choisis de façon aléatoire dans la base (écriture dansF_DOCENTETE et F_DOCLIGNE).

Page 106: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

95© Sage France

Cet exemple permet surtout de comprendre quels sont les champs à renseigner en insertion et lesvaleurs par défaut utilisées par l’application (récupération d’informations de l’article ou du tiers parexemple).

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 devaleurs par défaut dans les autres tables liées aux articles. Ces valeurs par défaut sont celles généréespar 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.

Page 107: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

96© Sage France

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 demodè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 jointuresentre 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 basesExemple, tous les champs des tables de votre base.

Le formulaire Descriptif Champs Tables permet de créer le descriptif de chaque champ ODBC devotre base (indique le nom en clair des champs).

Vous allez utiliser cette base pour votre utilisation personnelle. Il est fortement conseillé d’en faireune copie et de renommer cette nouvelle base sous le nom de votre choix (*.MDB) et utiliser alorscette base personnalisée.

Vous pourrez alors reprendre ODBCNEW2000.MDB lorsque vous recréerez une nouvelle base surdes données Sage. La procédure sera identique à ce qui est décrit ci-dessus.

Page 108: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

97© Sage France

Utilisation des formulaires fournis

Vous venez d’attacher vos tables. Les formulaires fournis pourront vous aider pour la création derequê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 relationsentre les tables de la ligne 100 de votre base. Pour cela ouvrez le formulaire Creation RelationsEntre les Tables et cliquez sur le bouton, ce qui créera les bonnes relations. Ces relations serontstocké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éezune 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éationdes relations, s’il existe déjà des relations, celles ci seront détruites. Cela évite ainsi les mauvaisesrelations, source d’erreur.

Aussi, s’il vous arrivait de supprimer certaines relations et que vous vouliez les recréer, il voussuffirait 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 exempleF_COMPTEG et F_ECRITUREC, respectivement table des comptes généraux et table des écriturescomptables, 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 faudrasé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, reportez-vous à 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. Ceformulaire vous permettra de le faire.

Ouvrer le formulaire Visualisation des Champs de la Base

Page 109: Kito Dbc

Chapitre 3 – Description des exemples fournis avec le Kit ODBC

98© Sage France

Le formulaire Tables_champs est utilisé quant à lui par le formulaire précédent. Ne l’activez donc pasavant 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 fonctionsVisual 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 pourapplications (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é.

Page 110: Kito Dbc

Annexe 1 – Rappel sur le langage SQL

99© Sage France

Annexe 1 – Rappel sur le langageSQL

Remarques générales____________________________________ 100

Ajout d’un enregistrement ______________________________________ 100

Modification d’enregistrements_________________________________ 101

Suppression d’Enregistrements_________________________________ 101

Exemples de requêtes __________________________________________ 101

Page 111: Kito Dbc

Annexe 1 – Rappel sur le langage SQL

100© Sage France

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 nesont pas définis dans la requête) prendront la valeur par défaut, à savoir 0 pour tout ce qui estnumérique, et ‘’ pour tout ce qui est du type chaîne de caractères. Les dates éventuelles seront àNULL.

Page 112: Kito Dbc

Annexe 1 – Rappel sur le langage SQL

101© Sage France

Modification d’enregistrementsUtilisation 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 sontdu type détail. Si vous ne désirez modifier qu’un seul enregistrement, il faudra utiliser les champs quipermettent 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 queLCASE ou UCASE, LEFT... afin de pouvoir récupérer ou identifier plus facilement desenregistrements.

Voici quelques requêtes de sélection utilisant la grammaire et les fonctions SQL évoluées gérées parle 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’unproduit.

Select F_Article.AR_Ref, Ucase (F_Article.AR_Design)

From F_Article

Page 113: Kito Dbc

Annexe 1 – Rappel sur le langage SQL

102© Sage France

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 pourl’année 1995.

Select F_CompteT.CT_Intitule, Sum ( (EC_Montant * (1-EC_Sens))) ASSommeDebit,

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 écriturecomptable dont le numéro de compte général commence par 411, au cours du 1er trimestre 96.

Select Distinct F_CompteT.CT_Num, F_CompteT.CT_Intitule

from F_CompteT, F_EcritureC

Where F_CompteT.CT_Num = F_EcritureC.CT_Num

And (F_EcritureC.JM_Date Between ‘{d 1996-01-01}’ and ‘{d 1996-03-01}’)

And F_EcritureC.CG_Num Like '411%'

Page 114: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

103© Sage France

Annexe 2 – Fonctions SQLsupportées par Sage ODBC Ligne100

Grammaire SQL supportée par le driver _________________ 104

Fonctions de la grammaire ODBC supportées par le driverSage Ligne 100 __________________________________________________ 105

Fonctions sur les chaînes de caractères _______________________ 106

Fonctions sur les dates _________________________________________ 109

Fonctions système ______________________________________________ 111

Page 115: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

104© Sage France

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

Page 116: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

105© Sage France

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 dansles 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. Parcontre, 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 directementinterprétées par le driver.

Page 117: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

106© Sage France

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.

ExempleExemple 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 unechaîne.

Exemple

Exemple d’utilisation avec Microsoft QUERY (Les 3 caractères les plus à droite de l’intitulé ducompte 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.

Page 118: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

107© Sage France

ExempleExemple 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îneCHAINE2. Si l’option START est omise la recherche est effectuée à partir du premier caractère de lachaî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.

ExempleExemple d’utilisation avec QUERY.

SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, RTRIM (‘TESTRTRIM‘) ‘TESTRTRIM ‘

FROM F_COMPTEG F_COMPTEG

Page 119: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

108© Sage France

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 comptegé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.

ExempleExemple 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 deLONG 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

Page 120: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

109© Sage France

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 () ‘DATECOURANTE’

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 et31.

Exemple

Exemple d’utilisation avec QUERY :

SELECT F_COMPTEG.CG_NUM, F_COMPTEG.CG_INTITULE, CURDATE () ‘DATECOURANTE’, DAYOFMONTH (CURDATE ()) ‘JOUR MOIS’

FROM F_COMPTEG F_COMPTEG

Page 121: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

110© Sage France

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

Page 122: Kito Dbc

Annexe 2 – Fonctions SQL supportées par Sage ODBC Ligne 100

111© Sage France

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é.

ExempleExemple d’utilisation dans QUERY:

SELECT P_DOSSIER.D_RAISONSOC, DATABASE (), USER ()

FROM P_DOSSIER P_DOSSIER

Page 123: Kito Dbc

Annexe 3 – Conseils d’optimisation

112© Sage France

Annexe 3 – Conseils d’optimisation

Les éléments perturbants________________________________ 113

Page 124: Kito Dbc

Annexe 3 – Conseils d’optimisation

113© Sage France

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 defichier prend énormément de temps.

• La requête SQL elle-même influe sur les performances. En effet, si une jointure entre deux tablesn’est pas complète, le driver ODBC ne pourra pas utiliser les index de recherche et il devraparcourir tous les enregistrements. Le choix des critères de sélection et des regroupements estaussi important. En effet, il est préférable de poser des critères de sélection sur des champsindexés afin d’éviter le parcours de tous les enregistrements (renseigner de préférence lespremiers champs d’un index).

• Sage ODBC Ligne 100 (à partir de la version 7.0) dispose de champs “virtuels ” afin derécupérer directement des informations provenant des pages paramètres. Ces champs n’existentpas physiquement dans la base, mais sont calculés par le driver ODBC (le nom de ces champscommence par INT_ ou FNT_). Si un critère de sélection est posé sur un de ces champs, le driverdevra parcourir tous les enregistrements, calculer la valeur du champ INT_, puis comparer avec lecritè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, ilest important de sélectionner uniquement les champs nécessaires (ne pas rapatrier desinformations superflues, en particulier les champs INT_ et FNT_ qui sont calculés par le driverODBC Sage).

Page 125: Kito Dbc

Annexe 4 – Les codes erreurs Sage

114© Sage France

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___ 121

Page 126: Kito Dbc

Annexe 4 – Les codes erreurs Sage

115© Sage France

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 !

Page 127: Kito Dbc

Annexe 4 – Les codes erreurs Sage

116© Sage France

• 4974, Opération annulée...

• 4973, 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 !

Page 128: Kito Dbc

Annexe 4 – Les codes erreurs Sage

117© Sage France

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 !

Page 129: Kito Dbc

Annexe 4 – Les codes erreurs Sage

118© Sage France

• 4975, Le dossier est saturé, veuillez faire une recopie et l'agrandir au plus vite !

• 2602, Opération annulée...

• 2603, 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

Page 130: Kito Dbc

Annexe 4 – Les codes erreurs Sage

119© Sage France

• 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é

Page 131: Kito Dbc

Annexe 4 – Les codes erreurs Sage

120© Sage France

• 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

Page 132: Kito Dbc

Annexe 4 – Les codes erreurs Sage

121© Sage France

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 >= 0

• 3572, La quantité commandée doit être >= 0

• 3573, Le champ CG_Num est modifiable si le règlement n'est pas clôturé ou si il ne possède pasd'échéance

• 3574, Les champs RG_Reference, RG_Impaye, RG_DateEchCont, CG_NumCont sontmodifiables 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 pourles 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 commercialecomposé 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 typesérie ou lot

• 3583, Les champs LS_Peremption ou LS_Fabrication ne peuvent pas être modifiés pour lesdocuments 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

Page 133: Kito Dbc

Annexe 4 – Les codes erreurs Sage

122© Sage France

• 3588, Le lot d'entrée n'existe pas

• 3589, Les champs DL_MontantTTC, DL_MontantHT, DL_Escompte, DL_FactPoids ne sont pasmodifiables

• 3590, En modification les articles suivis en SERIE ou en LOT doivent être de type mouvementd'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 bonde 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 sontmodifiables

• 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_Escomptedoivent être à zéro

• 3598, Les champs suivants DL_MontantHT, DL_MontantTTC, DL_FactPoids et DL_Escomptedoivent être à zéro

• 3599, Le champ DO_Provenance ne peut avoir la valeur 3

• 3600, Le champ DO_Replication n'est pas modifiable

• 3601, Le champ DO_Replication doit être à 0

• 3602, Le champ CP_Type n'est pas modifiable

• 3603, Le champ CP_champ n'est pas modifiable

• 3604, Le champ ACP_TypeFacture n'est pas modifiable

• 3605, Le champ FCP_Champ n'est pas modifiable

• 3606, Le champ FCP_TypeFacture n'est pas modifiable

• 3607, Le champ EF_No n'est pas modifiable

• 3608, La date n'est pas dans la liste des exercices de la base

• 3609, EF_No doit être à 0

Page 134: Kito Dbc

Annexe 4 – Les codes erreurs Sage

123© Sage France

• 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 à 0

• 3615, 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 > 17caractè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 lacatégorie tarifaire n'est pas de longueur = 3 car ou la première lettre <> 'a' ou les 2 dernierscaractères non numériques (et compris entre 1 et 32)

Page 135: Kito Dbc

Annexe 4 – Les codes erreurs Sage

124© Sage France

• 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 > 18

• 3638, 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

Page 136: Kito Dbc

Annexe 4 – Les codes erreurs Sage

125© Sage France

• 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 detourisme

• 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

Page 137: Kito Dbc

Annexe 4 – Les codes erreurs Sage

126© Sage France

• 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

Page 138: Kito Dbc

Annexe 4 – Les codes erreurs Sage

127© Sage France

• 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 typequantité ou montant

• 3730, EG_CHAMP de F_FAMFOURNISS ne fait pas référence à un champ de P_GAMME detype quantité ou montant

• 3731, EG_CHAMP de F_ARTFOURNISS ne fait pas référence à un champ de P_GAMME detype 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

Page 139: Kito Dbc

Annexe 4 – Les codes erreurs Sage

128© Sage France

• 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 à 0

• 3745, La catégorie comptable ne peut pas être modifiée, car des lignes sont associées à cedocument

• 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 dansF_FAMTARIFQTE

• 3751, CT_NUM n'est pas modifiable

• 3752, EG_CHAMP n'est pas modifiable, car il existe des enregistrements dansF_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é

Page 140: Kito Dbc

Annexe 4 – Les codes erreurs Sage

129© Sage France

• 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 à 0

• 3791, Le barème n'existe pas

• 3792, TF_NO doit être égal à 0

• 3793, La quantité du lien ne peut pas être augmentée

• 3794, Le numéro de la ligne d'achat ne peut pas être modifié

Page 141: Kito Dbc

Annexe 4 – Les codes erreurs Sage

130© Sage France

• 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 lefichier 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à

Page 142: Kito Dbc

Annexe 4 – Les codes erreurs Sage

131© Sage France

• 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

Page 143: Kito Dbc

Annexe 4 – Les codes erreurs Sage

132© Sage France

• 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

Page 144: Kito Dbc

Annexe 4 – Les codes erreurs Sage

133© Sage France

• 3876, EX_ETAT doit être à 0

• 3877, EX_REF obligatoire

• 3878, EB_NO inexistant

• 3879, EX_TYPE doit être à 0

• 3880, EX_NO invalide

• 3881, Le pays existe déjà

• 3882, Nb de décimales de PA_TRANSPORT incorrect

• 3883, Nb de décimales de PA_ASSURANCE incorrect

• 3884, Intitulé du pays obligatoire

• 3885, N_Analytique et EA_Rupture non modifiables

• 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 à 0

• 3891, 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é

Page 145: Kito Dbc

Annexe 4 – Les codes erreurs Sage

134© Sage France

• 3902, La catégorie tarifaire ne peut pas être modifiée, car des lignes sont associées à cetabonnement

• 3903, Le compte analytique ne peut pas être modifié, car des lignes sont associées à cetabonnement

• 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 à cetabonnement

• 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

Page 146: Kito Dbc

Annexe 4 – Les codes erreurs Sage

135© Sage France

• 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 bonde 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

Page 147: Kito Dbc

Annexe 4 – Les codes erreurs Sage

136© Sage France

• 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 lenouveau 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 gammede remise

Page 148: Kito Dbc

Annexe 4 – Les codes erreurs Sage

137© Sage France

• 3979, Dans F_ARTFOURNISS, si on est sur Hors Remise, alors on ne peut pas affecter degamme 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 deremise 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 deremise 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 taxefonciè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 champsrelatifs 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 sontrenseigné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

Page 149: Kito Dbc

Annexe 4 – Les codes erreurs Sage

138© Sage France

• 4001, La gamme 2 doit être à vide, car l'article ne possède pas de gamme 2

• 4002, La gamme 1 doit être à vide, car l'article ne possède pas de gamme 1

• 4003, 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 à aucunarticle

• 4012, Le représentant doit être égal à 0

• 4013, Le type du prix (TTC ou HT) doit être en HT pour un document de type achat

• 4014, L'article est vide ou n'est pas de type C39 ou est de longueur > 18

• 4015, Une remise de pied ne peut pas être combinée avec une remise exceptionnelle

• 4016, L'énuméré référence article est unique

• 4017, Le numéro de l'énuméré de gamme 2 n'est pas modifiable

• 4018, Le numéro de l'énuméré de gamme 1 n'est pas modifiable

• 4019, L'énuméré article est unique

• 4020, La gamme 2 n'existe pas

• 4021, La gamme 1 n'existe pas

• 4022, L'énuméré article n'est pas de type C39 ou est de longueur > 18

• 4023, La gamme 1 doit être renseignée : valeur non nulle

• 4024, Le compte de contrepartie n'existe pas

• 4025, L'état du stock ne permet pas de créer la ligne

• 4026, Le type de taxe 3 ne peut pas être modifié

Page 150: Kito Dbc

Annexe 4 – Les codes erreurs Sage

139© Sage France

• 4027, Le type de taux de taxe 3 ne peut pas être modifié

• 4028, Le taux de taxe 3 ne peut pas être modifié

• 4029, La référence énuméré conditionnement existe déjà

• 4030, La référence énuméré conditionnement n'est pas de type C39

• 4031, S'il y a une devise ou un prix de vente, PV/PR doit être nul

• 4032, Changement d'article à gamme, modification impossible car existe dans F_ARTENUMREFou 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 typequantité ou montant

• 4036, Ce glossaire n'existe pas ou GL_DOMAINE n'est pas de type article

• 4037, AGL_NUM doit être à 0

• 4038, Le numéro interne doit être <> 0

• 4039, L'article est vide ou n'est pas de type C39 ou est de longueur > 18

• 4040, Le numéro de pièce ne peut pas être modifié

• 4041, Le type de document ne peut pas être modifié

• 4042, Le domaine ne peut pas être modifié

• 4043, Le numéro interne de l'échéance ne peut pas être modifié

• 4044, Le numéro interne de règlement ne peut pas être modifié

• 4045, Ce numéro de pièce n'existe pas pour ce type de document

• 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 delongueur > 8 caractères

• 4049, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domainede document

• 4050, Le domaine doit être compris entre 0 et 1

Page 151: Kito Dbc

Annexe 4 – Les codes erreurs Sage

140© Sage France

• 4051, Le montant imputé sur l'échéance ne peut pas être égal à 0

• 4052, Le numéro interne de l'échéance ne peut pas être égal à 0

• 4053, Le numéro interne du règlement ne peut pas être égal à 0

• 4054, 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 desliens entre les règlement et les échéances ayant le même numéro interne

• 4060, Le champ règlement comptabilisé doit être à 0

• 4061, Le champ règlement imputé doit être à 0

• 4062, Le numéro interne doit être à 0

• 4063, 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 à 0

• 4068, Le cours de la devise doit être à 0

• 4069, Le montant du règlement doit être différent de 0

• 4070, 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èrespour 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é

Page 152: Kito Dbc

Annexe 4 – Les codes erreurs Sage

141© Sage France

• 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 lefichier des liens entre les règlement et les échéances ayant le même domaine, le même type et lemême numéro de pièce

• 4082, le champ échéance réglée doit être à 0

• 4083, La ligne d'équilibrage doit être égale à 0

• 4084, Le montant en devise du règlement doit être égal à 0

• 4085, Le numéro interne du règlement doit être égal à 0

• 4086, Le numéro de l'écriture n'existe pas

• 4087, Le numéro interne de l'écriture ne peut pas être égal à 0

• 4088, Le pourcentage, le montant du règlement et la ligne d'équilibrage ne peuvent pas être, tousles trois, égaux à 0

• 4089, Dans le cas d'une ligne d'équilibrage, le pourcentage du règlement doit être égal à 0

• 4090, Dans le cas d'une ligne d'équilibrage, le montant en devise du règlement doit être égal à 0

• 4091, Dans le cas d'une ligne d'équilibrage, le montant du règlement doit être égal à 0

• 4092, Le pourcentage et le montant en devise du règlement ne peuvent pas être, tous les deux, > 0

• 4093, Le pourcentage et le montant du règlement ne peuvent pas être, tous les deux, > 0

• 4094, 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 à 0

• 4097, Pour un acompte, le pourcentage du règlement doit être égal à 0

• 4098, Pour un acompte, le champ ligne d'équilibrage doit être à 0

• 4099, Pour un acompte, le mode de règlement d'une échéance doit être égal à 0

• 4100, Le libellé du règlement est de longueur > 35 caractères

Page 153: Kito Dbc

Annexe 4 – Les codes erreurs Sage

142© Sage France

• 4101, Le type de règlement doit être compris entre 0 et 1

• 4102, 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 delongueur > 8 caractères

• 4104, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domainede 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 oucommande confirmée

• 4107, Ajout, modification et suppression impossible, car il existe un enregistrement dans lefichier des liens entre les règlements et les échéances ayant le même domaine, le même type et lemê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

Page 154: Kito Dbc

Annexe 4 – Les codes erreurs Sage

143© Sage France

• 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 à 0

• 4140, 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 videstous les deux

• 4144, La gamme 2 ne peut pas être vide car l'article possède une gamme 2

• 4145, La gamme 1 ne peut pas être vide car l'article possède une gamme 1

• 4146, La gamme 2 doit être à vide, car l'article ne possède pas de gamme 2

• 4147, La gamme 1 doit être à vide, car l'article ne possède pas de gamme 1

• 4148, 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

Page 155: Kito Dbc

Annexe 4 – Les codes erreurs Sage

144© Sage France

• 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 à 0

• 4154, 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 auCMUP F_ARTICLE.AR_SUIVISTOCK = 2)

• 4160, Le champ DL_PUTTC ne peut pas être modifié pour les documents HT ou ayant unedevise

• 4161, Le type du prix (TTC ou HT) doit être en HT pour une ligne faisant référence à aucunarticle

• 4162, Le représentant doit être égal à 0

• 4163, 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 ouune remise exceptionnelle

• 4166, La quantité livrée doit être >= 0

• 4167, La quantité livrée doit être égale à 0 pour un document de type devis ou commande

• 4168, La quantité commandée doit être >= 0

• 4169, La quantité colisée doit être > 0

• 4170, La quantité doit être > 0

• 4171, 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 > 18

• 4173, Une remise de pied ne peut pas être combinée avec une remise exceptionnelle

• 4174, Ligne de type nomenclature doit être égale à 0

• 4175, Les champs DL_DateBL et DO_Date doivent être égaux pour les documents ne provenantpas d'une transformation

Page 156: Kito Dbc

Annexe 4 – Les codes erreurs Sage

145© Sage France

• 4176, Les champs DL_DateBC et DO_Date doivent être égaux pour les documents ne provenantpas 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 delongueur > 17 caractères

• 4181, Le numéro de pièce est vide ou n'est pas en alphanumérique et majuscule ou est delongueur > 8 caractères

• 4182, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domainede document

• 4183, Le domaine de la ligne de document doit être compris entre 0 et 2

• 4185, Le taux d'escompte ne peut pas être modifié, car des règlements sont associés à cedocument

• 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 composantou 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

Page 157: Kito Dbc

Annexe 4 – Les codes erreurs Sage

146© Sage France

• 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 à 0

• 4209, Le représentant doit être égal à 0

• 4210, Le dépôt de stockage doit être différent de 0

• 4211, Un bon de livraison par facture doit être compris entre 0 et 1

• 4212, Un bon de livraison par facture doit être égal à 0

• 4213, 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 detype stock

• 4214, Le taux de conversion doit être égal à 0

• 4215, 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 delongueur > 8 caractères

• 4218, Le type de document n'existe pas, n'est pas valide, ou n'est pas en accord avec le domainede 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

Page 158: Kito Dbc

Annexe 4 – Les codes erreurs Sage

147© Sage France

• 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 à 0

• 4227, 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 êtrevide

• 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 à2

• 4234, 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 enalphanumé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 pasune chaîne de caractères numérique

• 4244, Le domaine de l'agenda doit être compris entre 0 et 4

• 4245, 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

Page 159: Kito Dbc

Annexe 4 – Les codes erreurs Sage

148© Sage France

• 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 leconditionnement n'existe pas pour l'article

• 4252, Le client n'est pas en majuscule (avec longueur <= 17 car ), ou, la catégorie tarifaire n'estpas de longueur = 3 car ou la première lettre <> 'a' ou 2 derniers caractères non numériques (etcompris 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 > 0

• 4264, 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

Page 160: Kito Dbc

Annexe 4 – Les codes erreurs Sage

149© Sage France

• 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 >= 10

• 4277, 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 2

• 4289, Le Tiers n'est pas en majuscule (avec longueur <= 17 car ), ou, la catégorie tarifaire n'estpas de longueur = 3 car ou la première lettre <> 'a' ou 2 derniers caractères non numériques (etcompris entre 1 et 32)

• 4290, La borne supérieure de la remise doit être <> 0

• 4291, 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 degamme 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

Page 161: Kito Dbc

Annexe 4 – Les codes erreurs Sage

150© Sage France

• 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 lacatégorie tarifaire n'est pas de longueur = 3 car ou la première lettre <> 'a' ou les 2 dernierscaractères non numériques (et compris entre 1 et 32)

• 4306, Le prix de l'élément de gamme doit être <> 0

• 4307, 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

Page 162: Kito Dbc

Annexe 4 – Les codes erreurs Sage

151© Sage France

• 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à

Page 163: Kito Dbc

Annexe 4 – Les codes erreurs Sage

152© Sage France

• 4349, Modification impossible du type de gamme ou suppression impossible, car l'énuméré estutilisé dans F_TARIFGAM

• 4350, Modification impossible du type de gamme ou suppression impossible, car l'énuméré estutilisé dans F_GAMSTOCK

• 4351, Modification impossible du type de gamme ou suppression impossible, car l'énuméré estutilisé dans F_DOCLIGNE

• 4352, Modification impossible du type de gamme ou suppression impossible, car l'énuméré estutilisé 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 carl'article existe dans F_ARTSTOCK

• 4370, Changement de conditionnement, modification impossible de l'article car il existe dansF_TARIFCOND ou suppression impossible

Page 164: Kito Dbc

Annexe 4 – Les codes erreurs Sage

153© Sage France

• 4371, Changement de conditionnement, modification impossible de l'article car il existe dansF_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'articleexiste 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 existedans F_TARIFGAMME

• 4375, Changement de gamme, modification ou suppression impossible de l'article car il existedans 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 à gammeou à 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. Sil'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 > 18

• 4390, Le code famille n'est pas modifiable

• 4391, Le tarif est unique

• 4392, La remise générale ne doit pas être à 0

Page 165: Kito Dbc

Annexe 4 – Les codes erreurs Sage

154© Sage France

• 4393, Le tiers est vide ou n'est pas de type alphanumérique et majuscule ou est de longueur > 17caractères

• 4394, La famille est vide ou n'est pas de type alphanumérique et majuscule ou est de longueur >10 caractères

• 4395, Domaine de validité du champ incorrect, veuillez vous référer à la documentation.

• 4396, L'article n'existe pas

• 4397, Le fournisseur n'existe pas

• 4398, Le client n'existe pas

• 4399, La famille n'existe pas

• 4400, Différence entre Qté et QtéRestante.

• 4401, En ajout IM_DotEco,IM_DotFiscal,IM_TotCession doivent être nulle.

• 4402, En ajout l'immobilisation ne peut pas faire référence à une écriture.

• 4403, En ajout MajCpta doit être 0.

• 4404, En ajout TypeCession doit être sur CessionNulle.

• 4405, En ajout IM_Etat incorrect.

• 4406, L'immobilisation existe déjà.

• 4407, L'immobilisation n'existe pas.

• 4408, Il existe un bloc notes pour cette immobilisation donc non supprimable.

• 4409, Le bloc note existe déjà.

• 4410, L'énuméré statistique n'existe pas.

• 4411, L'énuméré statistique existe.

• 4412, Le fichier des lieux de biens doit contenir un lieu principal.

• 4413, Le fichier des lieux de biens doit contenir un lieu principal.

• 4414, Le lieu n'existe pas.

• 4415, Le lieu existe déjà.

• 4416, En ajout LI_No doit être 0.

• 4417, Le compte analytique est déjà rattaché à cette ventilation analytique.

Page 166: Kito Dbc

Annexe 4 – Les codes erreurs Sage

155© Sage France

• 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 FAMAMORTpour 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 utilisationsans la gestion commerciale

• 4432, DE_NO fait référence à un dépôt inexistant, ou doit être égal à 0 pour une utilisation sans lagestion 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 al'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 à celuiparamé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à

Page 167: Kito Dbc

Annexe 4 – Les codes erreurs Sage

156© Sage France

• 4441, Champs non valides pour une famille ou une immobilisation soumise à la taxeprofessionnelle.

• 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 analytiqueest supérieure à celui paramétré dans la base (A Propos de)

• 4447, La répartition Quantité de type Equilibre ou % doit être égale à 0

• 4448, On ne peut modifier la date de création du compte analytique

• 4449, Le nombre de décimales des dotations Quantité du compte analytique est supérieure à celuiparamétré dans la base (A Propos de)

• 4450, La répartition Quantité de type Equilibre ou % doit être égale à 0

• 4451, Le nombre de décimales des dotations Quantité pour les répartitions du compte estsupé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 êtreassocié à ce tiers dans la table F_COMPTETG

• 4458, Suppression impossible car il existe des enregistrements concernant ce tiers dans la tableF_COMPTETG

• 4459, L'écriture doit être non clôturée

• 4460, Cet énuméré statistique existe déjà

• 4461, L'intitulé est vide ou de longueur > 21

• 4462, Ce registre taxe existe déjà

Page 168: Kito Dbc

Annexe 4 – Les codes erreurs Sage

157© Sage France

• 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 dedé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) avecEcritureCAddinJournal, 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 à 1

• 4481, Le numéro de ligne ne doit pas dépasser 999

• 4482, 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 doitdonc ê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

Page 169: Kito Dbc

Annexe 4 – Les codes erreurs Sage

158© Sage France

• 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'écrituregé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 à 0

• 4497, 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 typedé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 ousupprimer

Page 170: Kito Dbc

Annexe 4 – Les codes erreurs Sage

159© Sage France

• 4510, Le champ EC_IMPRESSION n'est pas modifiable

• 4511, Impossible d'ajouter une écriture dans un journal clôturé (option : 'A propos de' noncoché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 etmajuscule ou de longueur > 13

• 4520, 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 à 0

• 4523, Pour EC_POINT=0, EC_POINTAGE doit être vide, pour EC_POINT=1, EC_POINTAGEne doit pas être vide

• 4524, Pour EC_LETTRE=0, EC_LETTRAGE doit être en minuscule ou vide, pourEC_LETTRE=1, EC_LETTRAGE doit être en majuscule et non vide

• 4525, Le montant doit être différent de 0

• 4526, 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 1

• 4529, Le code journal est vide ou de longueur > 6

• 4530, 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é)

Page 171: Kito Dbc

Annexe 4 – Les codes erreurs Sage

160© Sage France

• 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 1

• 4537, Le code journal est vide ou de longueur > 6

• 4538, 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é à unautre 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é statistiqueexistant

• 4553, Pour BD_TREPART>=1 et BD_TREPART<=10, BD_VREPART ne correspond pas à uncompte 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

Page 172: Kito Dbc

Annexe 4 – Les codes erreurs Sage

161© Sage France

• 4559, L'intitulé est vide ou de longueur > 35

• 4560, Le numéro de budget est à vide ou n'est pas de type alphanumérique et majuscule ou delongueur > 13

• 4561, L'intitulé du libellé existe déjà

• 4562, Le raccourci n'est pas du type alphanumérique et majuscule ou de longueur > 6

• 4563, L'intitulé est vide ou de longueur > 35

• 4564, Ce modèle existe déjà dans EMODELEA (donc non supprimable)

• 4565, Le nombre de décimales de EA_MONTANT est incorrect (montant)

• 4566, Cette date d'abonnement existe déjà

• 4567, Référence à un modèle d'abonnement inexistant

• 4568, Le numéro interne n'est pas modifiable

• 4569, L'intitulé du modèle d'abonnement existe déjà

• 4570, Le type de journal n'est pas le même que celui de la pièce

• 4571, Référence à une pièce inexistante

• 4572, Référence à un code journal inexistant

• 4573, Le numéro interne doit être à 0

• 4574, Champs non valides pour une famille ou une immobilisation non soumise à la taxeprofessionnelle.

• 4575, Il existe des loyers clôturés pour cette immobilisation donc non supprimable.

• 4576, La date de début est supérieure à la date de Fin

• 4577, Le code journal est vide ou de longueur > 6

• 4578, L'intitulé est vide ou de longueur > 35

• 4579, Ce modèle existe déjà dans EMODELER (donc non supprimable)

• 4580, Pour ER_TREPART=1, ER_VREPART ne peut pas être différent de 0

• 4581, 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à

Page 173: Kito Dbc

Annexe 4 – Les codes erreurs Sage

162© Sage France

• 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 > 35

• 4588, Le numéro interne doit être à 0

• 4589, Modèle utilisé dans EMODELEG (donc non supprimable)

• 4590, Pour EG_QTRepart=1, EG_QVREPART ne peut pas être différent de 0

• 4591, Pour EG_TREPART=1, EG_VREPART ne peut pas être différent de 0

• 4592, 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ériqueet majuscule ou de longueur > 13

• 4603, Le numéro interne doit être à 0

• 4604, 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)

Page 174: Kito Dbc

Annexe 4 – Les codes erreurs Sage

163© Sage France

• 4607, Pour PA_TQUANTITE=2, PA_VQUANTITE ne peut pas être différent de 0

• 4608, Pour PA_TMONTANT=2, PA_VMONTANT ne peut pas être différent de 0

• 4609, Le numéro de ligne analytique doit être égal à 1

• 4610, Le numéro de ligne analytique ne doit pas dépasser 999

• 4611, Le numéro de ligne analytique doit être conjoint (+1) au numéro de ligne analytique de lapré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 à 1

• 4614, Le numéro de ligne ne doit pas dépasser 999

• 4615, 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_VQUANTITEest 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_VMONTANTest 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

Page 175: Kito Dbc

Annexe 4 – Les codes erreurs Sage

164© Sage France

• 4631, Cet intitulé de pièce existe déjà

• 4632, L'énuméré statistique Taxe Professionnelle n'existe pas.

• 4633, Incohérence entre le type de répartition et sa valeur.

• 4634, Erreur sur le champ CA_NUM

• 4635, Le montant est de longueur > 17 caractères

• 4636, La quantité est de longueur > 17 caractères

• 4637, La parité est de longueur > 17 caractères

• 4638, L'échéance est de longueur > 6 caractères

• 4639, L'intitulé est de longueur > 35 caractères

• 4640, Le numéro de compte tiers est de longueur > 17 caractères

• 4641, Le compte général de contrepartie est de longueur > 13 caractères

• 4642, Le numéro de compte général est vide ou n'est pas de type compte

• 4643, La référence pièce est de longueur > 17 caractères

• 4644, La pièce est de longueur > 13 caractères

• 4645, Le jour est de longueur > 2 caractères

• 4646, Le numéro interne doit être à 0

• 4647, L'intitulé est vide est de longueur > 35 caractères

• 4648, BQ_NO utilisé dans les éléments de banque (donc non supprimable)

• 4649, Mauvais RIB (EB_AGENCE, EB_GUICHET, EB_COMPTE ou EB_CLE incorrect)

• 4650, Ce code journal d'élément de banque ne correspond pas à un journal de type Trésorerie

• 4651, Référence à un code journal inexistant

• 4652, L'immobilisation n'est pas de type Biens ou n'est pas soumise à Taxe professionnelle:Champ non modifiable !

• 4653, Référence à une banque inexistante

• 4654, Le compte est vide ou n'est pas de type alphanumérique et en majuscule ou est de longueur> 11 caractères

• 4655, Le guichet est vide ou est de longueur > 5 caractères

Page 176: Kito Dbc

Annexe 4 – Les codes erreurs Sage

165© Sage France

• 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 à 0

• 4660, 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 <> 2

• 4670, 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

Page 177: Kito Dbc

Annexe 4 – Les codes erreurs Sage

166© Sage France

• 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 nonsupprimable)

• 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 0

• 4688, 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 à 0

• 4701, 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 nonsupprimable)

Page 178: Kito Dbc

Annexe 4 – Les codes erreurs Sage

167© Sage France

• 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 à 0

• 4719, Le numéro de banque tiers doit être à 0

• 4720, 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 majusculeou de longueur > 17 caractères

• 4725, Le compte reporting est utilisé dans le fichier des comptes généraux (donc nonsupprimable)

• 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 enmajuscule ou de longueur > 13

Page 179: Kito Dbc

Annexe 4 – Les codes erreurs Sage

168© Sage France

• 4731, Le compte analytique est utilisé dans le fichier COMPTEABUDGETG (donc nonsupprimable)

• 4732, Le compte analytique est utilisé dans le fichier COMPTEABUDGET (donc nonsupprimable)

• 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 comptesgé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 nonsupprimable)

• 4746, Le compte analytique est utilisé dans le fichier des écritures analytiques (donc nonsupprimable)

• 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 à videpour un compte analytique totalisateur

• 4752, Le raccourci du compte analytique n'est pas du type alphanumérique et en majuscule ou delongueur > 6

Page 180: Kito Dbc

Annexe 4 – Les codes erreurs Sage

169© Sage France

• 4753, L'intitulé du compte analytique est vide ou de longueur > 35

• 4754, Le numéro de compte analytique est à vide ou n'est pas de type alphanumérique et enmajuscule ou de longueur > 13

• 4755, 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 nonsupprimable)

• 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 majusculeou de longueur > 13

• 4767, 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 comptesanalytiques (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 nonsupprimable)

• 4775, Le compte général est utilisé dans le fichier des tiers (donc non supprimable)

Page 181: Kito Dbc

Annexe 4 – Les codes erreurs Sage

170© Sage France

• 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 nonsupprimable)

• 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 uncompte général totalisateur

• 4785, Le raccourci du compte général n'est pas du type alphanumérique et en majuscule > 6

• 4786, Le numéro du compte reporting n'est pas du type alphanumérique et en majuscule ou delongueur > 13

• 4787, L'intitulé du compte général est vide ou de longueur > 35

• 4788, 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)

Page 182: Kito Dbc

Annexe 4 – Les codes erreurs Sage

171© Sage France

• 4801;

• 4802, DL_QTEBL n'est pas modifiable si DL_PIECEBL est non vide (document provient dutransformation)

• 4803, DL_QTEBC n'est pas modifiable si DL_PIECEBC est non vide (document provient dutransformation)

• 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 <> (Bonde 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 2

• 4814, Le poids brut et le poids net doivent être à 0 avec une remise de pieds ou une remiseexceptionnelle

• 4815, La quantité colisée doit être > 0

• 4816, La quantité doit être > 0

• 4817, 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é

Page 183: Kito Dbc

Annexe 4 – Les codes erreurs Sage

172© Sage France

• 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 à 0

• 4837, 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 2

• 4840, 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

Page 184: Kito Dbc

Annexe 4 – Les codes erreurs Sage

173© Sage France

• 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 0

• 4854, 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 4

• 4873, 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

Page 185: Kito Dbc

Annexe 4 – Les codes erreurs Sage

174© Sage France

• 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 10

• 4883, 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 > 0

• 4892, 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é

Page 186: Kito Dbc

Annexe 4 – Les codes erreurs Sage

175© Sage France

• 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 à cesalarié

• 4906, Suppression impossible du salarié car il existe des personnes à charges rattachées à cesalarié

• 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 unsalarié étranger, SA_NATIONALITE <> 'F' et SA_ETRANGER = 0

• 4919, 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

Page 187: Kito Dbc

Annexe 4 – Les codes erreurs Sage

176© Sage France

• 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 lalongueur de la section < 3

• 4945, 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.

Page 188: Kito Dbc

Annexe 4 – Les codes erreurs Sage

177© Sage France

• 4955, La quantité du code rattaché n'est pas égale à 1.

• 4956, Le code rattaché n'existe pas.

Page 189: Kito Dbc

Annexe 5 – Les erreurs les plus fréquentes

178© Sage France

Annexe 5 – Les erreurs les plusfréquentes

Avant propos _____________________________________________ 179

Mauvaise version de fichier_____________________________________ 179

Erreur Sage 5002 obtenue au moment de l’exécution d’unerequête d’écriture. ______________________________________________ 179

Refus d'autorisation erreur Sage 1807 obtenue au momentde l’exécution d’une requête d’écriture. ________________________ 179

Domaine de validité du champ incorrect, veuillez vousréférer à la documentation______________________________________ 180

Page 190: Kito Dbc

Annexe 5 – Les erreurs les plus fréquentes

179© Sage France

Avant propos

Généralement, les erreurs ODBC sont obtenues au moment de la connexion ou lors des opérationsd’é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 deconnexion 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 compatibleavec 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 écriturepar une autre application. Par exemple, vous essayez de modifier l’intitulé du client CARAT alorsqu’un de vos collègues a ouvert sa fiche en modification. L’écriture ne sera possible que lorsquel’enregistrement sera libéré par l’autre application.

Refus d'autorisation erreur Sage 1807 obtenue au moment de l’exécution d’unerequête d’écriture.

Ce message indique que la table où vous essayez d’écrire est une table en lecture seule (ex : tablesparamètres commence par P_). Ces tables ne sont pas modifiables par Sage ODBC Ligne 100.

Page 191: Kito Dbc

Annexe 5 – Les erreurs les plus fréquentes

180© Sage France

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écutiond’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ériquedont 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 lesapplications 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 manuelsur la structure des tables de la ligne 100. Veuillez vous référer à ce manuel pour connaître lesdifférents champs obligatoires en insertion et les valeurs à renseigner pour ne pas avoir ce messaged’erreur.

Page 192: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

181© Sage France

Annexe 6 – Utilisation d’ODBC avecVisual 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 _______________________________________ 198

Page 193: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

182© Sage France

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 quipermet leur utilisation dans de nombreuses applications. Si vous le pouvez, il est préférable d’utiliserles 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. Cesobjets 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 auxdonnées.

Page 194: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

183© Sage France

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 touttype. 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).

Page 195: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

184© Sage France

Connexion Déconnexion

La connexion à une base de données, via ODBC, est réalisée à l’aide de l’objet Connection. Ce dernierprend en paramètre une chaîne de connexion ODBC, le nom de l’utilisateur et son mot de passe. Lachaîne de connexion permet d’identifier le nom de la source de données à utiliser (DSN=), et elle peutaussi identifier le nom et le mot de passe à utiliser, si ces derniers ne sont pas renseignés dans lesdeuxiè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 connexionSage n’apparaîtra.

• Contrairement aux DAO, la connexion ODBC est réellement rompue après l’emploi de lamé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 sontfacultatifs si les bases Sage ne sont pas protégées.

cnxCPTA.Open strConnect, "ADMIN", "123"

‘Code Visual Basic

‘Fermeture de la connexion

Page 196: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

185© Sage France

cnxCPTA.Close

‘Destruction de l’objet

Set cnxCPTA = Nothing

Page 197: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

186© Sage France

Recherche d’enregistrements

La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’unerequê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

Page 198: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

187© Sage France

‘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

Page 199: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

188© Sage France

Ecriture dans les bases

L’écriture se fait par l’intermédiaire de requêtes SQL. Etant donné que ces requêtes ne retournent pasd’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 commencepar 57

‘Valeur à modifier

‘ RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la tableF_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

Page 200: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

189© Sage France

Récupération des erreurs

Tout accès ODBC via les ADO peut provoquer une erreur ODBC. Chaque erreur génère un ouplusieurs objets Error qui sont placés dans la collection Errors. Pour connaître l’erreur rencontrée, ilsuffit de parcourir l’ensemble de la collection Errors à l’aide de l’objet Error. L’ensemble des objetsError 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 laproprié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èsqu’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 del’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

Page 201: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

190© Sage France

‘Si aucune erreur n’est rencontrée, il n’est pas nécessaire d’effectuer le traitement d’erreur > sortiedu

‘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

Page 202: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

191© Sage France

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).

Page 203: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

192© Sage France

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 lasource 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 lemot 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 versionsde 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’ouverturesimultanée de plusieurs bases de même type simultanément (ex : 2 bases comptables). Etantdonné que Jet ne rompt pas la connexion, il sera donc impossible de récupérer, au sein d’un mêmeprogramme, des données provenant de plusieurs fichiers de même type (ex : 2 fichierscomptables).

• Par défaut, le moteur Jet rompt les connexions ODBC au bout de 10 mn (600 secondes) si aucunerequê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ètressont séparés

Page 204: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

193© Sage France

‘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

Page 205: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

194© Sage France

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’unenregistrement revient, dans ce cas, à parcourir tous les enregistrements et à effectuer unecomparaison sur les champs.

Remarque :

• La Méthode Seek ne peut pas être utilisée sur une table ODBC. En effet, cette méthode estutilisable uniquement sur un Recordset de type TABLE (une table ODBC est du type DYNASETou 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ètredbSQLPassThrough. Ce paramètre permet d’envoyer une requête SQL directement au driverODBC, 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

Page 206: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

195© Sage France

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

Page 207: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

196© Sage France

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 SQLd’écriture directement au driver ODBC (sans passer par Jet). En effet, lors de l’emploi des méthodesEdit ou AddNew, Jet transforme les instructions en requête SQL lors de l’exécution de la méthodeUpdate. Le fait d’envoyer directement la requête SQL au driver ODBC évite cette phase detransformation (et le temps d’exécution du code relatif à l’écriture). De plus, ces méthodes d’écriturene peuvent pas être utilisées si Jet ne reconnaît pas de clé primaire à la table ODBC (Jet ne sait écrireque 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 estignoré. La requête spécifiée dans l'argument OpenRecordset (ou Execute) source est passée, pourtraitement, à un serveur d'arrièreplan ODBC. Donc, la requête sera interprétée, directement, par ledriver 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 commencepar 57

‘Valeur à modifier

‘ RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la tableF_Represent)

strSQL = "Update F_CompteT " & _

" Set RE_No = 3 " & _

" Where CT_Type = 0 And CT_CodePostal like ‘57%’ "

‘Exécution de la requête

Page 208: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

197© Sage France

dbCPTA.Execute strSQL, dbSQLPassThrough

Page 209: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

198© Sage France

Récupération des erreurs

La récupération des messages d’erreurs ODBC se fait par l’intermédiaire de la collection Errors deDBEngine. En effet, toutes les opérations concernant les objets d’accès aux données (DAO) peuventgénérer une ou plusieurs erreurs. Chaque fois qu’une erreur se produit, un ou plusieurs objets Errorsont 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 erreurobtenue. Le premier objet Error contient l’erreur ODBC du niveau inférieur; les suivants contiennentles 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 lesobjets 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 necontient 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 neretournera, tout comme Error ,que la dernière erreur de l’objet Error, celle qui est retournée parJet).

• L’utilisation du paramètre dbSQLPassThrough (permet d’ignorer le moteur Jet et de passerdirectement la requête SQL au driver ODBC) n’interfère en rien sur la méthode de récupérationdes 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éthodeDocmd.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évoyezune 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

Page 210: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

199© Sage France

‘En entête de procédure, on trouve l’instruction ON ERROR GOTO MonLable. Cela veut dire que dèsqu’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 del’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 > sortiedu

‘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

Page 211: Kito Dbc

Annexe 6 – Utilisation d’ODBC avec Visual Basic

200© Sage France

Next ‘Passe à l’erreur suivante

‘Destruction de l’objet Error

Set errDAO = Nothing

Page 212: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

201© Sage France

Annexe 7 – Utilisation d’ODBC avecWindev

Introduction ______________________________________________ 202

Connexion Déconnexion________________________________________ 202

Recherche d’enregistrements ___________________________ 204

Ecriture dans les bases __________________________________ 206

Récupération des erreurs _______________________________________ 208

Page 213: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

202© Sage France

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 desenregistrements.

La version 4.0 de Windev ne permet pas l’accès à plusieurs sources de données simultanément, ce quirend son utilisation très difficile avec les produits de la ligne 100 (en particulier avec la gestioncommerciale 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 Windevsupé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 motde passe.

La déconnexion est réalisée à l’aide de la procédure SQLDisconnect (). Cette procédure déconnectela 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 connexionSage 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 sontfacultatifs. Si ces

//derniers ne sont pas renseignés, la boîte de connexion Sage n’apparaîtra pas.

Page 214: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

203© Sage France

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 connexioncourante

//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

Page 215: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

204© Sage France

Recherche d’enregistrements

La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’unerequête est réalisée à l’aide de la fonction SQLExec (). Cette fonction prend en paramètre le codeSQL de la requête, ainsi que son nom. Cette fonction retourne un booléen indiquant si son exécutions’est correctement déroulée.

Une fois la requête exécutée, le parcours de ses enregistrements se fait à l’aide des fonctionsSQLPremier, SQLDernier, SQLSuivant et SQLPrecedent. La récupération des données est réalisée parla fonction SQLCol.

La recherche d’un enregistrement précis revient à exécuter une requête de sélection prenant en comptetous 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 laprocédure SQLChangeConnexion ()

• Il n’est pas nécessaire d’utiliser SQLChangeConnexion () si vous n’ouvrez qu’une seule sourcede données. Par contre, si vous en ouvrez plusieurs, il sera nécessaire de l’employer, afind’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

Page 216: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

205© Sage France

// 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 SQLSQLFerme (SELECT_QUERY)

Page 217: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

206© Sage France

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’aidede la fonction SQLExec (). Cette fonction prend en paramètre le code SQL de la requête, ainsi queson 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 laprocédure SQLChangeConnexion ().

• Il n’est pas nécessaire d’utiliser SQLChangeConnexion () si vous n’ouvrez qu’une seule sourcede données. Par contre, si vous en ouvrez plusieurs, il sera nécessaire de l’employer, afind’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 commencepar 57

//Valeur à modifier

// RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la tableF_Represent)

Page 218: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

207© Sage France

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)

Page 219: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

208© Sage France

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 larequê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 fautmettre 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 larequête par SQLExec. SQLInfoGene sans paramètre doit être appelée après la connexion parSQLConnecte.

Remarque :

• SQL.Erreur ne retourne pas l’erreur renvoyée par le driver, mais l’erreur interne à ce dernier. Cecode 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 surl'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 lecode 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 parSQLConnecte)

Page 220: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

209© Sage France

• 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 parSQLConnecte :

• SQL.Erreur est une chaîne de caractères et est égale à "00000" si aucune erreur, sinon contient lecode 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 parSQLConnecte)

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

Page 221: Kito Dbc

Annexe 7 – Utilisation d’ODBC avec Windev

210© Sage France

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

Page 222: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

211© Sage France

Annexe 8 – Utilisation d’ODBC avecVisual 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 _______________________________________ 218

Page 223: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

212© Sage France

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 desélection,

• Utilisation du code pour se connecter, se déconnecter, exécuter des requêtes, parcourir desenregistrements etc...

Ce document traitera essentiellement des accès ODBC via le code FoxPro. Seule la première partie dece 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’unerequê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 debaser une vue sur une connexion afin d’éviter la boîte de connexion Sage. En effet, une connexionpermet non seulement d’identifier la source de données à utiliser, mais elle permet aussi de renseignerle nom de l’utilisateur ainsi que le mot de passe associé (permet d’éviter d’avoir la boîte de connexionSage).

Dans un premier temps, vous devez créer une Connexion (arbre Données/Base de données). Danscette connexion, renseigner le nom de la source de données à utiliser, ainsi que le nom et le mot depasse de l’utilisateur.

Vous pouvez ensuite créer des vues distantes (arbre Données/Base de données). Une vue distante estle résultat d’une requête. Cette requête est exécutée sur une seule connexion ; il n’est pas possibled’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

Page 224: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

213© Sage France

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 del’utilisateur et son mot de passe. Le résultat de la fonction est l’identificateur de la connexion. Si leré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 enparamè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 lemot 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é parla 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 sontfacultatifs.

&&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

Page 225: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

214© Sage France

&&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èmelors 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

Page 226: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

215© Sage France

Recherche d’enregistrements

La recherche d’enregistrements revient à exécuter une requête SQL de sélection. L’exécution d’unerequête est réalisée à l’aide de la fonction SQLEXEC (). Cette fonction prend en paramètrel’identifiant de la connexion (valeur retournée par la fonction SQLCONNECT), le code SQL de larequê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 0si elle est en cours d'exécution et 1 si elle est terminée. SQLEXEC ( ) renvoie 1 en cas d’erreur auniveau de la connexion.

Remarque :

• La méthode Seek ne fonctionne pas avec les accès ODBC. Il faudra donc utiliser d’autresinstruments de recherche tel que Scan.

• La recherche d’un enregistrement précis revient à exécuter une requête de sélection prenant encompte 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

Page 227: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

216© Sage France

&&Affichage des informations

? MyCursor.CT_NUM, MyCursor.CT_INTITULE

ENDSCAN

ENDIF

ELSE La requête a échoué

&&traitement de l’erreur

END IF

Page 228: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

217© Sage France

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’aidede la fonction SQLEXEC (). Etant donné que la requête ne retourne pas d’enregistrements, il ne serapas nécessaire de donner un nom de cursor. Cette fonction prend en paramètre l’identifiant de laconnexion (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 commencepar 57

&&Valeur à modifier

&& RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir la tableF_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

Page 229: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

218© Sage France

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 produitedurant l’opération. AERROR () contient la dernière erreur rencontrée, et prend en paramètre unevariable 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 erreurODBC (soit retournée par le driver, soit retournée par FoxPro lors d’un problème de connexion parexemple).

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 produitl’erreur

7 Toujours à nul

Remarques :

• Chaque fois que vous exécuterez une fonction d’accès à ODBC (connexion, exécution d’unerequête...), il faudra tester si la valeur retournée est négative (ou égal à 0 pour les fonctions deconnexion). Si oui, il faudra utiliser la fonction AERROR () afin de connaître l’origine duproblème.

• La commande ON ERROR Do MonProgramme ; ne peut pas être utilisée pour une erreurODBC. 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’)

Page 230: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

219© Sage France

&&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 larequê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

Page 231: Kito Dbc

Annexe 8 – Utilisation d’ODBC avec Visual FoxPro

220© Sage France

END IF

Page 232: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

221© Sage France

Annexe 9 – Utilisation d’ODBC avecDelphi

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________________________________ 234

Page 233: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

222© Sage France

Introduction

Afin de standardiser la gestion des bases de données, Delphi utilise des alias, faisant référence à dessources de données ou des bases de données. Il est donc nécessaire de créer ces alias avant de pouvoirprogrammer. Pour se faire, il faut utiliser l’utilitaire de Configuration BDE.

Il faut donc, dans un premier temps, créer un nouveau pilote ODBC, à l’aide de cet utilitaire :

• Dans le feuillet “ pilotes ”, cliquez sur “ Nouveau pilote ODBC ”.

• Renseignez le nom de ce pilote, son type (Sage Gestion commerciale 100, Sage comptabilité100...), ainsi que le nom de la source de données associé à ce pilote, car un pilote ne fait référencequ’à 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 capabled’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.

Page 234: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

223© Sage France

Connexion Déconnexion

Que vous utilisiez un objet TTable ou Tquery, la connexion sera réalisée au moment où vous utiliserezla méthode Open pour l’objet TTable, ou au moment de l’emploi de la méthode ExecQuery (ou lapropriété Active à vrai) pour l’objet Tquery. Sous Delphi, il n’y a pas d’objet permettant d’identifierune connexion à proprement dit, comme on pourrait le trouver dans les autres langages (ex : objetconnexion 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 deuxobjets.

! Lors de la première connexion à une source de données Sage, Delphi va afficher une boîte deconnexion. A priori, il n’est pas possible de renseigner le nom et le mot de passe à utiliser afin de nepas 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.

Page 235: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

224© Sage France

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 larequête à exécuter. Cette méthode est la mieux adaptée car elle permet de lier des informations quiproviennent de plusieurs tables. De plus, c’est le driver ODBC qui se charge de trouver l’index (ou lesindex) optimal pour l’exécution de cette requête. Le résultat de cette dernière pourra être envoyé à unautre 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 ousuppression) est basée sur les méthodes Goto (GotoKey, GotoNearest etc...) ou Locate quis’appliquent aux objets de type TTable. Ces méthodes nécessitent l’utilisation des index de recherchedes tables Sage Ligne 100 (ces index sont référencés pour chaque table dans le manuel de Sage ODBCLigne 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, parexemple.

Vous trouverez cidessous un exemple de ces deux méthodes de recherche.

Page 236: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

225© Sage France

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 desenregistrements}

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

Page 237: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

226© Sage France

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 ;

End ;

Page 238: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

227© Sage France

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 desenregistrements}

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 seradonc}

{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

Page 239: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

228© Sage France

Begin

{Affiche le code du client}

strMessage := TCompta['CT_NUM'];

MessageDlg (strMessage, mtInformation,[mbOk], 0);

{Passe à l’enregistrement suivant}

TCompta.Next;

End;

{Ferme la connexion de TCompta}

TCompta.Close ;

End ;

Page 240: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

229© Sage France

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 Objetde 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 laméthode ExecQuery.

Vous trouverez cidessous un exemple de ces deux méthodes.

Page 241: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

230© Sage France

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épartementcommence par 57}

{Valeur à modifier}

{ RE_No = 3 > le représentant est Gendron (identifié par 3 pour plus d’info, voir latable 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);

Page 242: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

231© Sage France

{Exécute la requête SQL d’écriture}

QUpdateQuery.ExecQuery.;

QUpdateQuery.Close ;

End :

Page 243: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

232© Sage France

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é parRE_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

strSQL : String ; {Variable contenant la requête SQL de sélection}

Begin

{Avant toute manipulation sur l’objet TCompta, on s’assure que ce dernier n’est pas déjàconnecté}

{à une source de données}

If not TCompta.Active then TCompta.Close;

{affecte le nom de la source de données à utiliser}

TCompta.DatabaseName := 'ComptaC_Bijou';

{Nom de la table à ouvrir}

TCompta.TableName := 'F_COMPTET';

{Index à utiliser. L’index ICT=TYPE se compose des champ CT_Type et CT_Num. Il seradonc}

{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)}

Page 244: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

233© Sage France

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 ;

End ;

Page 245: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

234© Sage France

Récupération des erreurs

La récupération des erreurs, sous Delphi, se fait par l’intermédiaire des Exceptions. Une exception estune condition d’erreur ou d’événement exceptionnel qui interrompt l’exécution normale duprogramme.

En Pascal Objet, la gestion des exceptions permet de séparer le programme avec la partie gérant leserreurs éventuelles.

L’unité sysUtils implémente la génération et la gestion des exceptions. Lorsqu’une application utilisel’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 etExcept, alors l’exécution du code sera automatiquement interrompu, et le générateur d’exceptions’occupera d’effectuer les opérations nécessaires (code se trouvant entre les mots réservés except etend), 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), nesera 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 setrouvent dans la classe EDatabaseError.

• Les erreurs concernant les tests de cohérence et d’intégrité retournés par le driver ODBC. Ceserreurs 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 leserreurs 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.

Page 246: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

235© Sage France

L'exception EDatabaseError est déclenchée lorqu'une erreur de base de données est détectée par uncomposant. Elle ne contient qu’une seule erreur et pour obtenir son message d’erreur en clair, il faututiliser 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 piledes erreurs retournées par le moteur de base de données Borland, et ErrorCount qui contient lenombre total d’erreurs contenues dans la propriété Errors. Errors possède cinq propriétés publicpermettant 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 *)

Page 247: Kito Dbc

Annexe 9 – Utilisation d’ODBC avec Delphi

236© Sage France

MessageDlg (ErrSql.message, mtInformation,[mbOk], 0);

end;

end;

On ErrDatabase: EDatabaseError do (* Erreur de base de données détectée *)

MessageDlg (ErrDatabase.message, mtInformation,[mbOk], 0);

else

MessageDlg ('Autre erreur', mtInformation,[mbOk], 0);

end;

end;

Page 248: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

237© Sage France

Annexe 10 – Utilisation des fonctionsavancé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______________________ 264

Page 249: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

238© Sage France

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 ledriver 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, viaODBC, à la base comptable et à la base commerciale. Ceci est normalement toujours le cas carune source de données de gestion commerciale utilise la base de comptabilité et la base degestion 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 dansla DLL CBODBC32.DLL. Cette méthode est utilisable par tous les logiciels 32 bits capablesd’appeler des fonctions externes.

• La seconde consiste à l’emploi d’une DLL ActiveX (ASD100.DLL). Cette méthode est utilisablepar 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 uncode erreur (entier). Si ce code erreur vaut 0, alors le résultat de la fonction est correct, sinon le coderetour identifie l’erreur. L’erreur la plus fréquente est 2013 : dossier non ouvert. Cette erreur indiquequ’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 estune chaîne de caractère au format JJMMAA.

Page 250: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

239© Sage France

DLL ActiveX

Un composant ActiveX est une unité de code exécutable qui suit la spécification ActiveX dans le butde fournir des objets. Ces objets sont utilisables par tous les logiciels de développement capablesd’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 Intranetou Internet

Remarque

• Pour utiliser les fonctions de la comptabilité, votre application doit être connecté, via ODBC, à labase comptable.

• Pour utiliser les fonctions de la gestion commerciale, votre application doit être connecté, viaODBC, à 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 dansWindows\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’objetretourne le résultat. Le code erreur retourné par la fonction est récupérable par la propriété Erreur. Deplus, le format date n’est plus une chaîne de caractères, mais bel et bien un format date del’application.

Page 251: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

240© Sage France

Descriptif des fonctions utilisées dans les exemples

Vous trouverez cidessous des exemples de fonctions Sage retournant des numériques, des dates et deschaînes de caractères.

Cidessous quelques exemples de fonctions Sage :

• TotalMvtSolde () : Comptabilité Cette fonction permet de calculer le solde des mouvementsconnaissant le compte général CG_Num, le compte tiers CT_Num ou (et) le code journalJO_Num

• CIALDocNouvPiece () : Gestion commerciale Retourne la valeur du nouveau numéro de piècedisponible en fonction de la souche et du type de document.

• GetParamValeurDate : Retourne la valeur du champ date identifié par ces paramètres. Cechamp 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 ladate de fin Fin.

On doit obligatoirement remplir tous les champs, mais certains peuvent ne pas être renseignés, auquelcas, 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 estune 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 comptegé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

Page 252: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

241© Sage France

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 GetParamValeurDateretourne la valeur en Date, du champ NomChamp, de la page paramètre NomTable, de la base de typeTypeBase.

Si la table NomTable est une table de type fichier (table commençant par F_), alorsGetParamValeurDate retourne la valeur en Date, du champ NomChamp, de la table NomTable, de labase 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 (Basecommerciale), 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

Page 253: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

242© Sage France

Visual Basic

Avant de pouvoir utiliser une fonction avancée Sage, il faut que Visual basic soit connecté aux basesSage. 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 êtreconnecté, 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é parréférence.

‘N’oubliez pas de respecter les majuscules/minuscules

Declare Function TotalMvtSolde Lib "CBODBC32" (ByVal CG_Num As String, ByVal CT_Num AsString, _

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 : 4010000

‘ Compte de Tiers : non précisé

‘ Code journal : ACH journal des achats

Page 254: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

243© Sage France

‘ Date de début de période : 010196 01/01/1996

‘ Date de fin de période : 311296 31/12/1996

intCodeerr = TotalMvtSolde ("4010000", "", "ACH", "010196", "311296", dblResult)

If intCodeErr = 0 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 doncpassé

‘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

Page 255: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

244© Sage France

‘ 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 doncpassé

‘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

Page 256: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

245© Sage France

‘ 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 Typelibrairie x.xx ”.

TotalMvtSolde ()

‘TotalMvtSolde est une fonction de la comptabilité. L’objet à utiliser est donc ASD100Lib.Cpta

‘La propriété à utiliser est TotalMvtSolde

Dim objCPTA As ASD100Lib.Cpta ‘Déclaration de l’objet Cpta

Dim dblResult as double ‘Variable utilisée pour recueillir le résultat.

‘Création de l’objet

Set objCPTA = New ASD100Lib.Cpta

‘Appel à la propriété TotalMvtSolde. Le résultat est stocké dans la variable dblResult.

‘ Compte général : 4010000

‘ Compte de Tiers : non précisé

‘ Code journal : ACH journal des achats

‘ Date de début de période : 01/01/1996

Page 257: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

246© Sage France

‘ Date de fin de période : 31/12/1996

dblResult = objCPTA.TotalMvtSolde ("4010000", "", "ACH", #1/1/96#, #12/31/96#)

If objCPTA.Erreur = 0 Then ‘Pas d’erreur

‘Affiche le résultat dans la fenêtre d’exécution

Debug.Print dblResult

Else ‘Une erreur est détectée

‘Affiche le code erreur

Debug.Print "Erreur n°", objCPTA.Erreur

End If

CIALDocNouvPiece ()

‘CIALDocNouvPiece est une fonction de la gestion commerciale. L’objet à utiliser est doncASD100Lib.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

Page 258: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

247© Sage France

Debug.Print "Erreur n°", objCIAL.Erreur

End If

GetParamValeurDate ()

‘GetParamValeurDate est une fonction concernant les tables paramètres (P_). L’objet à utiliser est

‘donc ASD100Lib.Param

‘La propriété à utiliser est GetParamValeurDate

Dim objParam As ASD100Lib.Param ‘Déclaration de l’objet Param

Dim dResult as Date ‘Variable utilisée pour recueillir le résultat.

‘Création de l’objet

Set objParam = New ASD100Lib.Param

‘Appel à la propriété GetParamValeurDate. Le résultat est stocké dans la variable dResult.

‘ Type de base : CPTA base comptable

‘ Nom de la table : P_DOSSIER

‘ Nom du champ : D_DebutExo01

dResult = objParam.GetParamValeurDate ("CPTA", "P_DOSSIER", "D_RaisonSoc")

If objParam.Erreur = 0 Then ‘Pas d’erreur

‘Affiche le résultat dans la fenêtre d’exécution

Debug.Print dResult

Else ‘Une erreur est détectée

‘Affiche le code erreur

Debug.Print "Erreur n°", objParam.Erreur

End If

Déclaration des fonctions avancées Sage

Ces déclarations se trouvent dans le fichier fourni avec le Kit ODBC : FONCTION.TXT

Page 259: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

248© Sage France

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, à labase comptable. Pour utiliser les fonctions de la gestion commerciale, votre application doit êtreconnecté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 lafonction ChargeDLL).

• La définition du passage de paramètre (par valeur ou par référence) se définit lors de l’exécutionde la fonction (utilisation du caractère &).

• La librairie Sage Ligne 100 est une librairie 32 bits. Il est donc impératif d’utiliser la fonctionAppelDll32 (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 laDLL 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 enmé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 Correspondnormalement au code

// erreur de la fonction Sage.

Page 260: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

249© Sage France

//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement lerésultat de l’appel de

// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera doncplus 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 : 4010000

// Compte de Tiers : non précisé

// Code journal : ACH journal des achats

// Date de début de période : 010196 01/01/1996

// Date de fin de période : 311296 31/12/1996

IdAppelDLL =AppelDll32 ("CBODBC32", "TotalMvtSolde", "4010000", "", "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)

Page 261: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

250© Sage France

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 Correspondnormalement au code

// erreur de la fonction Sage.

//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement lerésultat de l’appel de

// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera doncplus 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)

Page 262: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

251© Sage France

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 Correspondnormalement au code

// erreur de la fonction Sage.

//Remarque : AppelDLL32 retourne un entier long 4 octets . Ce résultat est normalement lerésultat de l’appel de

// la fonction Sage. Or la fonction sage retourne un entier 2 octets (non un long). Il sera doncplus 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 ))

Page 263: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

252© Sage France

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 lesobjets Sage de la DLL ActiveX ASD100 avec Windev.

Page 264: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

253© Sage France

Visual FoxPro

Avant de pouvoir utiliser une fonction avancée Sage, il faut que Visual FoxPro soit connecté auxbases Sage. Pour utiliser les fonctions de la comptabilité, votre application doit être connectée, viaODBC, à la base comptable. Pour utiliser les fonctions de la gestion commerciale, votre applicationdoit ê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 symbole @ pour indiquer que le paramètre peut varier. Ce caractère sera aussiutilisé 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, STRINGJO_Num,

STRING debut, STRING fin, DOUBLE @Total

Utilisation

&&Appel de la fonction Sage

&& Compte général : 4010000

&& Compte de Tiers : non précisé

&& Code journal : ACH journal des achats

&& Date de début de période : 010196 01/01/1996

&& Date de fin de période : 311296 31/12/1996

Page 265: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

254© Sage France

intCodeerr = TotalMvtSolde ("4010000", "", "ACH", "010196", "311296", @dblResult)

IF intCodeErr = 0 &&Pas d’erreur

&&Affiche le résultat dans une boîte de dialogue

= MESSageBOX (STR (dblResult), 16, "")

ELSE ‘Une erreur est détectée

‘Affiche le code erreur

= 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 estdonc passé

&&par valeur > le caractère @ ne sera pas utilisé pour la déclaration. Par contre, il sera utilisé lorsde l’appel de

&&la fonction Sage

&&N’oubliez pas de respecter les majuscules/minuscules

DECLARE SHORT CIALDocNouvPiece IN CBODBC32 INTEGER DO_Type, INTEGERDO_Souche,

STRING Resultat

Utilisation

&&‘Initialisation de la variable strResult

strResult = SPACE (13)

&&Appel de la fonction Sage

&& Type de document : 1 BC de vente

&& Souche : 0 N° de pièce pour Bijou SA

intCodeerr = CIALDocNouvPiece (1, 0, @strResult)

IF intCodeErr = 0 &&Pas d’erreur

Page 266: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

255© Sage France

&&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 estdonc passé

&&par valeur > le caractère @ ne sera pas utilisé pour la déclaration. Par contre, il sera utilisé lorsde 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", "D_RaisonSoc", @strResult)

IF intCodeErr = 0 &&Pas d’erreur

&&Affiche le résultat dans une boîte de dialogue

Page 267: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

256© Sage France

= 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 nesait 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.

Page 268: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

257© Sage France

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 basecomptable. 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é parré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 : 4010000}

{ Compte de Tiers : non précisé}

Page 269: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

258© Sage France

{ Code journal : ACH journal des achats}

{ Date de début de période : 010196 01/01/1996}

{ Date de fin de période : 311296 31/12/1996}

intCodeerr := TotalMvtSolde (‘4010000’, ‘’, ‘ACH’, ‘010196’, ‘311296’, dblResult) ;

If intCodeErr = 0 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 doncpassé}

{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';

Page 270: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

259© Sage France

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 doncpassé}

Page 271: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

260© Sage France

{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 ;

Page 272: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

261© Sage France

DLL ActiveX

Pour utiliser la DLL ActiveX sous Delphi, vous devez utiliser l’unité OleAuto.dcu. Cette dernière àbesoin que les unités suivantes soient présentes : ole2.dcu et olectl.dcu.

TotalMvtSolde ()

//TotalMvtSolde est une fonction de la comptabilité. L’objet à utiliser est donc ASD100Lib.Cpta

//La propriété à utiliser est TotalMvtSolde

objCPTA : Variant ;//Déclaration de l’objet Cpta

dblResult : Double ; //Variable utilisée pour recueillir le résultat.

//Création de l’objet

objCPTA :=CreateOleObject ('ASD100.Cpta');

//Appel à la propriété TotalMvtSolde. Le résultat est stocké dans la variable dblResult.

// Compte général : 4010000

// Compte de Tiers : non précisé

// Code journal : ACH journal des achats

// Date de début de période : 01/01/1996

// Date de fin de période : 31/12/1996

dblResult := objCPTA.TotalMvtSolde (‘4010000’, ‘’, ‘ACH’, StrToDate (‘01/01/1996’), StrToDate(‘31/12/1996’)) ;

If objCPTA.Erreur = 0 Then //Pas d’erreur

begin

{Conversion d’une double en chaîne}

Str (dblResult:12:2, strResult);

{Affiche le résultat dans une boîte de dialogue}

MessageDlg (strResult, mtInformation,[mbOk], 0);

End ;

Else {Une erreur est détectée}

Page 273: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

262© Sage France

Begin

{Conversion du code erreur en chaîne}

Str (intCodeErr, strResult);

{Affiche le code erreur dans une boîte de dialogue}

MessageDlg (strResult, mtInformation,[mbOk], 0);

End ;

CIALDocNouvPiece ()

//CIALDocNouvPiece est une fonction de la gestion commerciale. L’objet à utiliser est doncASD100Lib.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}

Page 274: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

263© Sage France

Str (intCodeErr, strResult);

{Affiche le code erreur dans une boîte de dialogue}

MessageDlg (strResult, mtInformation,[mbOk], 0);

End ;

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

Page 275: Kito Dbc

Annexe 10 – Utilisation des fonctions avancées Sage

264© Sage France

{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 ;

Déclaration des fonctions avancées Sage

La déclaration des fonctions avancées se trouve dans le fichier « FONCTIONS.TXT »