Document made with SciTEDocument
made with
SciTE

Développer des plugins pour BankPerfect

1. Théorie

BankPerfect est désormais modulaire : il vous permet de créer vos propres fonctions qui seront appelées de façon transparente telles des fonctionnalités intégrées au logiciel.
Pour ce faire, il vous suffit de :
  1. Créer une dll depuis n'importe quel langage exportant la fonction Execute(BP : IDispatch)
  2. D'accompagner cette dll d'un fichier plugin.ini qui sera situé dans le même dossier que la dll et qui va servir à décrire comment BankPerfect doit intégrer cette dll.

2. Pratique

2.1 Fichiers nécessaires

2.2. Le fichier plugin.ini

Le fichier plugin.ini doit contenir les clés suivantes :

2.3. L'interface avec BankPerfect

Pour développer votre DLL, vous avez accès à toutes les fonctions décrites dans la section 3 grâce au paramètre BP (de type IDispatch) de la fonction exportée Execute.
L'interface IDispatch est en fait une interface vers un objet IBankPerfectPlugin qui intègre toutes les fonctions vous permettant d'accéder aux données des fichiers BankPerfect et de piloter l'application tel que vous le souhaitez.
Si vous développez votre plugin sous Delphi, l'interface est disponible en ouvrant directement depuis Delphi le fichier bankPerfect.exe.

2.4. Déploiement du plugin

Pour faire fonctionner votre plugin, il doit être placé avec son fichier plugin.ini de la façon suivante :
Cette procédure manuelle peut être automatisée : le kit de déploiement vous permet de créer en 2 clics de souris un fichier auto-extractible compressé qui installera votre plugin dans BankPerfect.

3. Fonctions disponibles depuis l'interface IDispatch (IBankPerfectPlugin)

3.1. Fonctions de gestion des comptes

 procedure AccountChangeCurrent (AccountIndex : Integer)
Cette procédure charge à l'écran le compte dont l'index est spécifié par AccountIndex 

Paramètre Type Description
AccountIndex Integer Index du compte à charger

Cette procédure ne renvoie pas de valeur
 procedure AccountRefreshScreen
Cette procédure raffraîchit l'écran de relevé de BankPerfect (à utiliser après des modifications des différentes lignes d'un compte)

Cette procédure ne renvoie pas de valeur
 property AccountNumber [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le numéro du compte dont l'index est spécifié par AccountIndex 

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie une valeur de type WideString
 property AccountBranchNumber [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le numéro d'agence du compte dont l'index est spécifié par AccountIndex 

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie une valeur de type WideString
 property AccountCurrency1 [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le symbole et le taux de change de l'unité monétaire principale du compte dont l'index est spécifié par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString représentant le symbole et le taux séparés par le caractère pipe ("|")
 property AccountBankLogo [AccountIndex : Integer] : WideString readonly
Cette propriété en lecture seule renvoie le chemin du fichier image de type BMP affectée du logo bancaire affecté à ce compte.
Si aucun logo n'est affectée à ce compte, une chaîne est renvoyée.

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie une valeur de type WideString et est en lecture seule
 property AccountCurrency2 [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le symbole ou le taux de change de l'unité secondaire du compte dont l'index est spécifié par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString représentant le symbole et le taux séparés par le caractère pipe ("|")
 property AccountBranchAddress [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier l'adresse de l'agence du compte dont l'index est spécifié par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property AccountCurrent : Integer readonly
Cette propriété renvoie l'index du compte chargé à l'écran

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property AccountBankName [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le nom de la banque du compte dont l'index est spécifié par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property AccountCount : Integer readonly
Cette propriété en lecture seule renvoie le nombre de comptes contenus dans le fichier

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property AccountBranchName [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le nom de l'agence du compte dont l'index est spécifié par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property AccountName [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le nom du compte dont l'index est spécifié par AccountIndex
Remarque importante : la liste renvoyée est triée dans l'ordre des ID. Pour obtenir une liste classée selon les réglages de l'utilisateur, il faut utiliser la fonction GetURL("get_accounts")

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property AccountIsVirtual [AccountIndex : Integer] : Integer
Cette propriété permet de lire ou modifier le statut 'fictif' du compte dont l'index est spécifié par AccountIndex.
Ce statut est activé par l'utilisateur pour des comptes qui ne doivent pas être inclus dans les calculs de totaux ou statistiques.

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type Integer (0 : si le compte est normal ou 1 si le compte est fictif).
 property AccountIBAN [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le code IBAN (International Bank Account Number) du compte dont l'index est spécifié par AccountIndex.
Le code IBAN est un numéro de compte bancaire normalisé au niveau mondial destiné à faciliter le traitement des opérations transfrontières.

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property AccountBIC [AccountIndex : Integer] : WideString
Cette propriété permet de lire ou modifier le code BIC (Bank Identification Code) du compte dont l'index est spécifié par AccountIndex.
Le code BIC est un identifiant unique international propre à chaque établissement financier.

Paramètre Type Description
AccountIndex Integer Index du compte

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString

3.2. Fonctions liées au fichier BankPerfect

 function BankPerfectExePath : WideString
Cette fonction retourne le chemin complet de l'exécutable de BankPerfect
(par défaut : c:\Program Files\BankPerfect\bankperfect.exe)

Cette fonction renvoie une valeur de type WideString
 function BankPerfectFileName : WideString
Cette fonction renvoie le chemin du fichier chargé à l'écran.
Si aucun fichier n'est ouvert, une chaîne vide est renvoyée (elle permet donc de savoir si un fichier est actuellement ouvert dans BankPerfect en testant si le résultat retourné est vide ou non).

Cette fonction renvoie une valeur de type WideString
 function BankPerfectPluginPath : WideString
Cette fonction retourne le chemin complet du plugin qui l'appelle

Cette fonction renvoie une valeur de type WideString
 function BankPerfectOpenFile (const Path : WideString; const Password : WideString) : Integer
Cette fonction charge un fichier BankPerfect à l'écran.
Si un fichier est déjà ouvert, il est automatiquement sauvegardé et fermé avant l'ouverture du nouveau fichier.

Paramètre Type Description
const Path WideString Chemin du fichier à charger
const Password WideString Mot de passe nécessaire à l'ouverture du fichier (si le fichier n'est pas protégé par un mot de passe, spécifier une chaîne vide)

Cette fonction renvoie une valeur de type Integer :
 procedure BankPerfectCloseFile
Cette procédure ferme le fichier ouvert à l'écran

Cette procédure ne renvoie pas de valeur
 procedure BankPerfectNewFile (const Path : WideString; const UserName : WideString; Solde : Double)
Cette procédure crée un fichier BankPerfect vide contenant un compte 'Courant' par défaut dont le solde initial est Solde

Paramètre Type Description
const Path WideString Chemin du fichier à créer
const UserName WideString Nom de l'utilisateur du compte
Solde Double Solde initial du compte

Cette procédure ne renvoie pas de valeur
 procedure BankPerfectSave (const Path : WideString)
Cette procédure sauvegarde le fichier chargé à l'écran

Paramètre Type Description
const Path WideString Si Path est spécifié, il s'agit d'un 'Enregistrer sous...' et le fichier est sauvegardé sous le nom et dans le dossier spécifiés par Path.
Si Path est une chaîne vide, il s'agit d'un 'Enregistrer' simple. Le fichier est sauvegardé sous son chemin d'origine.

Cette procédure ne renvoie pas de valeur

3.3. Gestion des catégories

 procedure CategRename (CategIndex : Integer; const NewName : WideString)
Cette procédure permet de renommer une catégorie.
Toutes les lignes des comptes portant cette catégorie seront alors modifiées.

Paramètre Type Description
CategIndex Integer Index de la catégorie à renommer
const NewName WideString Nouveau nom à affecter à la catégorie

Cette procédure ne renvoie pas de valeur
 procedure CategDelete (CategIndex : Integer)
Cette procédure supprime une catégorie de la liste.
Toutes les lignes des comptes qui portaient cette catégorie n'auront alors plus de catégorie.

Paramètre Type Description
CategIndex Integer Index de la catégorie à supprimer

Cette procédure ne renvoie pas de valeur
 procedure CategAdd (const CategName : WideString; IsSubCateg : Integer)
Cette procédure ajoute une catégorie à la liste des catégories

Paramètre Type Description
const CategName WideString Nom de la catégorie à créer
IsSubCateg Integer Spécifier 1 pour créer une sous-catégorie ou 0 pour une catégorie principale

Cette procédure ne renvoie pas de valeur
 property CategCount : Integer readonly
Cette propriété en lecture seule renvoie le nombre de catégories de la liste des catégories

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property CategName [CategIndex : Integer] : WideString readonly
Cette propriété en lecture seule renvoie le nom d'une catégorie en fonction de son index dans la liste

Paramètre Type Description
CategIndex Integer Index de la catégorie dont on cherche le nom

Cette propriété renvoie une valeur de type WideString et est en lecture seule
 property CategParent [CategIndex : Integer] : Integer readonly
Cette propriété en lecture seule renvoie la catégorie parent d'une sous-catégorie.
Si cette catégorie n'est pas une sous catégorie, l'index envoyé en paramètre est renvoyé.

Paramètre Type Description
CategIndex Integer Index de la sous-catégorie

Cette propriété renvoie une valeur de type Integer et est en lecture seule

3.4. Traitement des lignes

 procedure LineAdd (AccountIndex : Integer; const Date : WideString; const Mode : WideString; const People : WideString; const Details : WideString; Categ : Integer; Amount : Double; Mark : Integer) : Integer
Cette procédure ajoute une ligne d'opération au compte spécifé par AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte auquel on ajoute une ligne
const Date WideString Date de l'opération sous la forme d'une chaîne au format JJ-MM-AAAA
const Mode WideString Mode de paiement de l'opération : il doit être valide sinon, l'opération est refusée (la fonction retourne alors la valeur 0)
const People WideString Tiers de l'opération
const Details WideString Détails de l'opération
Categ Integer Index de la catégorie de l'opération (-1 si vous ne souhaitez pas en spécifier une)
Amount Double Montant de l'opération (sans le signe : c'est le mode de paiement qui le détermine)
Mark Integer Pointage de l'opération : 0 (non pointé), 1 (pointé) ou 2 (rapproché)

Cette procédure renvoie une valeur de type Integer :
 procedure LineDelete (AccountIndex : Integer; LineIndex : Integer)
Cette procédure supprime une ligne d'opération (dont l'index est LineIndex) du compte AccountIndex

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut supprimer une ligne
LineIndex Integer Index de la ligne à supprimer

Cette procédure ne renvoie pas de valeur
 procedure LineSelect (LineIndex : Integer)
Cette procédure sélectionne la ligne d'opération (dont l'index est LineIndex) du compte courant.

Paramètre Type Description
LineIndex Integer Index de la ligne à sélectionner

Cette procédure ne renvoie pas de valeur

3.5. Fonctions génériques et boîtes de dialogue

Ces fonctions peuvent être facilement créées depuis tout langage, mais, fournies par BankPerfect, elles permettent pour des plugins simples de ne pas avoir à inclure d'unités de dialogues ou de form et donc de réduire la taille de la dll.

 function MsgBox (const Msg : WideString; uType : LongWord) : Integer
Cette fonction affiche une boîte de message modale

Paramètre Type Description
const Msg WideString Message à afficher
uType LongWord Combinaison de valeurs permettant de contrôler la boîte de message.

MB_ABORTRETRYIGNORE : avec cette valeur, la boîte va contenir 3 boutons, Réessayer, Ignorer et Annuler
MB_OK : avec cette valeur, la boîte ne va contenir q'un seul bouton, OK
MB_OKCANCEL : avec cette valeur, la boîte va contenir 2 boutons, OK et Annuler
MB_RETRYCANCEL : avec cette valeur, la boîte va contenir 2 boutons, Réessayer et Annuler
MB_YESNO : avec cette valeur, la boîte va contenir 2 boutons, Oui et Non
MB_YESNOCANCEL : avec cette valeur, la boîte va contenir 3 boutons, Oui, Non et Annuler

MB_ICONWARNING : Affiche une icône représentant un point d'exclamation
MB_ICONINFORMATION : Affiche une icône représentant un i
MB_ICONQUESTION : Affiche une icône représentant un point d'interrogation
MB_ICONSTOP : Affiche une icône représentant une erreur

Cette fonction renvoie une valeur de type Integer :
Si l'utilisateur clique sur Oui, Non ou Annuler, une valeur de type ID_YES, ID_NO, ID_CANCEL est retournée

Exemples :
MsgBox('Ceci est un test', MB_OK);
if MsgBox('Souhaitez-vous continuer ?', MB_ICONQUESTION+MB_YESNO) = ID_YES then ...
 function OpenDialog (const Title : WideString; const FileName : WideString; const DefaultExt : WideString; const Filters : WideString) : WideString
Cette fonction affiche une boîte d'ouverture de fichier et renvoie le nom du fichier sélectionné (ou une chaîne vide si aucun fichier n'a été sélectionné).

Paramètre Type Description
const Title WideString Titre de la fenêtre
const FileName WideString Fichier par défaut
const DefaultExt WideString Extension par défaut à ajouter au fichier (Ex : '.exe')
const Filters WideString Chaîne représentant les types de fichiers acceptés sous la forme type1|extension1|type2|extension2 etc.
Exemple : Exécutables (*.exe)|*.exe|Fichiers de commande (*.com)|*.com|Fichiers binaires (*.bin)|*.bin

Cette fonction renvoie une valeur de type WideString
 function InputText (const ACaption : WideString; const APrompt : WideString; var Value : WideString) : Integer
Cette fonction affiche une boîte de saisie de texte.

Paramètre Type Description
const ACaption WideString Titre de la fenêtre
const APrompt WideString Texte de description affiché au dessus du champ de saisie
var Value WideString Texte retourné par l'utilisateur. Si Value contient du texte à l'appel de cette fonction, ce texte est affiché comme valeur par défaut dans le champ de saisie.

Cette fonction renvoie une valeur de type Integer : 1 si l'utilisateur à validé sa saisie et 0 si il l'a annulée.
 function CustomForm (const Caption, Code : WideString; const Width, Height : Integer) : WideString
Cette fonction affiche une fenêtre de saisie Windows entièrement personnalisable et renvoie les valeurs qui y ont été saisies.
Cette fonction est utile pour créer des plugins compacts sans avoir à y inclure les "forms", pour peu que l'interface utilisateur soit simple.

Paramètre Type Description
Caption WideString Titre de la fenêtre
Code WideString Texte qui décrit la liste des contrôles à créer dans la fenêtre (Cf. Pour créer le "Code")
Width Integer Largeur de la fenêtre à créer
Height Integer Hauteur de la fenêtre à créer

Cette fonction renvoie une valeur de type WideString : la liste des contrôles et leur valeur à la fermeture de la fenêtre.

Pour créer le "Code" :
La variable Code est une chaîne composée de plusieurs lignes séparées par des retours-chariot. Chaque ligne correspond à la description d'un composant à créer dans la fenêtre.
Cette ligne est composée de la liste des propriétés du composant (séparées par des points-virgules) sous la forme "propriété=valeur". La première propriété de la ligne doit toujours être de la forme "type=nom" (Ex: button=MonBouton1)
Contrôles Propriétés Type
Tous contrôles Left, Top, Width, Height Integer
label Caption
Bold
string
Integer (1)
edit Text
Enabled, Readonly
string
Integer (0 ou 1)
maskedit Text, Mask
Enabled, ReadOnly
string
Integer (0 ou 1)
combo, listbox Text
Enabled
ItemIndex
string
Integer (0 ou 1)
Integer
checkbox, radio Caption
Checked, Enabled
string
Integer (0 ou 1)
date Date
Enabled
string
Integer (0 ou 1)
button Caption
Enabled
string
Integer (0 ou 1)
picture Path string
memo Text
Wrap, Enabled, Readonly
Font
string
Integer (0 ou 1)
string (nom de la police)
Remarque : Si un champ contient un point-virgule, il devra être saisi sous la forme \s et les retours-chariot (pour le texte du memo par exemple) sous la forme \r\n.

La variable Code peut contenir par exemple la chaîne suivante :
label=label1;left=10;top=10;caption=Text de mon label
edit=edit1;left=150;top=10;width=200;text=texte contenant un point-virgule : \s
combo=cb1;left=150;top=40;width=200;text=option1\r\noption2;itemindex=0
listbox=lb1;left=400;top=10;width=120;height=90;text=option1\r\noption2;itemindex=0
date=dt1;left=150;top=70;width=200;date=13-10-2004
memo=memo1;left=10;top=110;width=550;height=100;text=Voici,\r\nun exemple de texte;wrap=0
button=ButtonOK;left=10;top=230;width=100;height=30;caption=OK
button=ButtonCancel;left=120;top=230;width=100;height=30;caption=Annuler

En fonction de ce qui aura été saisi par l'utilisateur, une chaîne de la forme suivante sera renvoyée :
edit1=texte contenant un point-virgule : ;
cb1=0
lb1=0
dt1=13-10-2004
memo1=Voici,\r\nun exemple de texte
SelectedButton=ButtonOK
 function GetURL (const URL : WideString) : WideString
Cette fonction permet de faire exécuter des commandes diverses par BankPerfect.
Requête Commande à saisir
Pour télécharger une page web GetURL("adresse_de_la_page")
La fonction reverra le code source de la page (ou une chaîne vide si la page ne peut pas être téléchargée.)
Pour télécharger un fichier GetURL(file:chemin_local_complet_du_fichier@url_du_fichier")
Le fichier sera alors téléchargé et la fonction renverra une chaîne vide si tout s'est bien passé ou le message d'erreur généré si une exception s'est produite
Pour envoyer un fichier vers un site FTP GetURL("ftp_put:chemin_fichier_local|chemin_fichier_distant|login|password@adresse_serveur_ftp")

Pour se connecter automatiquement au serveur FTP spécifié comme sauvegarde dans BankPerfect, il suffit de fournir comme valeur pour l'URL, le login, le mot de passe et le dossier : default_bp_url, default_bp_login, default_bp_password et default_bp_folder
Pour télécharger un fichier depuis un site FTP GetURL("ftp_get:chemin_fichier_local|chemin_fichier_distant|login|password@adresse_serveur_ftp")
Pour récupérer la liste de fichiers situés dans un dossier distant via FTP GetURL("ftp_lst:chemin_du_dossier_distant_et_masque|login|password@adresse_serveur_ftp")
Ici, chemin_du_dossier_distant_et_masque sera par exemple : www/backup/*.*
Pour récupérer le dossier de stockage des fichiers .bp de BankPerfect GetURL("bp_save_folder")
Pour récupérer le dossier de sauvegarde de BankPerfect (pour les fichiers de backup .bp0) GetURL("bp_backup_folder")
Pour récupérer le dossier d'export de BankPerfect (destiné aux exports : rapports PDF, HTML, XLS etc.) GetURL("bp_export_folder")
Pour récupérer la valeur d'une clé du fichier INI de BankPerfect GetURL("ini_read:section;clé") : renvoie la valeur de la clé
Pour écrire dans le fichier INI de BankPerfect GetURL("ini_write:section;clé;valeur")
Pour générer un fichier PDF GetURL("pdf:code de génération du PDF (non documenté ici)")
Remplir les champs de filtrage et filtrer le tableau des comptes GetURL("set_filter:date_debut;date_fin;mode;tiers;catégorie;montant;pointage")
Simuler un filtrage (ne remplit pas réellement les champs de filtrage) GetURL("simulate_set_filter:date_debut;date_fin;mode;tiers;catégorie;montant;pointage") : renvoie une chaîne contenant la liste des ID des lignes visibles séparées par des points-virgules
Pour récupérer la liste des comptes dans leur ordre d'affichage à l'écran (et non dans leur ordre de création) GetURL("get_accounts")
La fonction renverra une chaîne contenant la liste des comptes séparés par des points-virgules sous la forme suivante:
id1=nom1;id2=nom2;id3=nom3...
Les comptes étant triés en fonction des réglages de l'utilisateur, la position du compte dans la liste ne donne pas le numéro réel du compte : l'index réel du compte correspond à l'id situé juste avant la virgule.
Pour copier un fichier GetURL("copy_file:fichier_origine;fichier_destination") : renvoie la chaîne "ok" ou "ko"
Pour récupérer une des valeurs supplémentaires (OperationExtra) d'une opération GetURL("extra_get:index_du_compte;index_de_la_ligne;clé") : renvoie la valeur extra de l'opération dont le nom est "clé"
Pour modifier ou insérer une valeur supplémentaire (OperationExtra) à une opération GetURL("extra_set:index_du_compte;index_de_la_ligne;clé;valeur")
Pour récupérer l'identifiant unique du fichier BankPerfect ouvert GetURL("bp_file_guid")
Pour récupérer le nombre de modes de paiement disponibles (y compris les modes personnalisés) GetURL("mode_count")
Pour stocker des informations dans le fichier BP courant GetURL("save_script_data:clé_unique:valeur")
Attention à utiliser une clé réellement unique pour qu'un autre script ne vienne pas écraser vos données par erreur pour avoir utilisé la même clé. La clé ne doit contenir que les caractères a-z et des chiffres.
Cette fonction est très utile pour permettre aux scripts de stocker des données propre à chaque fichier BP.
Pour récupérer des informations préalablement stockées dans le fichier BP courant GetURL("load_script_data:clé_unique")
La fonction renverra la valeur préalablement stockée via la méthode save_script_data (Cf. point précédent)
Pour récupérer le chemin du répertoire temporaire de Windows GetURL("temp_dir")
La fonction renverra le chemin du répertoire temp de l'utilisateur courant
Pour récupérer le chemin du répertoire contenant les données de configuration de l'application BankPerfect (fichiers .ini, etc.) GetURL("appdata_dir")
La fonction renverra le chemin du répertoire contenant les fichiers de configuration de BankPerfect.
Si BankPerfect fonctionne en mode portable, il s'agit du répertoire où se trouve le fichier bankperfect.exe (généralement c:\Program Files\BankPerfect\). Sinon, il s'agit du répertoire Application Data\BankPerfect\ de l'utilisateur courant
Pour convertir un fichier PNG ou JPG en BMP GetURL("convert_to_bitmap:chemin_origine|chemin_destination")
La fonction va convertir le fichier chemin_origine ()qui doit désigner le chemin d'une image JPG ou PNG existante) en chemin_destination (qui doit désigner le chemin de l'image BMP à créer)
Renvoie la liste des lignes qui viennent d'être insérées ou modifiées GetURL(get_lines_changed)
La fonction renvoie une chaine contenant la liste des index des lignes accompagnées de l'index du compte sous la forme: sous la forme “compte-ligne;compte-ligne...”
Pour envoyer un e-mail (en passant par les serveurs BankPerfect pour éviter tout problème de configuration SMTP). GetURL("send_mail:adresse_emetteur|adresse_destinataire|sujet_du_mail|contenu_du_mail|fichier_a_joindre|nom_du_fichier_qui_apparaitra_dans_le_mail")
La fonction va envoyer le mail et renverra une chaine vide (si le mail a été correctement envoyé) ou un message d'erreur.
Remarque importante: Cette fonction est limitée aux utilisateurs possèdant une licence BankPerfect. Sans cette restriction, BankPerfect pourrait être utilisé comme système d'envoi de SPAM.

3.6. Fonctions propres aux opérations (lignes des comptes)

 function OperationGetNameFromModeIndex (ModeIndex : Integer) : WideString
Cette fonction renvoie le nom d'un mode de paiement en fonction de son index

Paramètre Type Description
ModeIndex Integer Index du mode de paiement

Cette fonction renvoie une valeur de type WideString
 property OperationDate [AccountIndex : Integer; LineIndex : Integer] : WideString
Cette propriété permet de lire ou de modifier la date d'une opération.
La date à envoyer ou à lire est une chaîne de caractères au format DD-MM-YYYY

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier la date

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property OperationMode [AccountIndex : Integer; LineIndex : Integer] : WideString
Cette propriété permet de lire ou de modifier le mode de paiement d'une opération.
Pour le modifier, le mode a affecter à l'opération doit être valide (faire partie de la liste des modes de paiement du compte)

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier le mode de paiement

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property OperationAmount [AccountIndex : Integer; LineIndex : Integer] : Double
Cette propriété permet de lire ou de modifier le montant d'une opération.
Le montant est toujours spécifié sans le signe : c'est le mode de paiement qui indique si une opération est débitrice ou créditrice)

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier le montant

Cette propriété renvoie (ou on peut lui affecter) une valeur de type Double
 property OperationCount [AccountIndex : Integer] : Integer readonly
Cette propriété renvoie le nombre d'opérations (de lignes) contenues dans le compte passé en paramètre

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut connaître le nombre de lignes

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property Operationthirdparty [AccountIndex : Integer; LineIndex : Integer] : WideString
Cette propriété permet de lire ou de modifier le tiers d'une opération

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier le tiers

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property OperationModeSign [AccountIndex : Integer; LineIndex : Integer] : Integer readonly
Cette propriété renvoie le sens de l'opération (débitrice ou créditrice) passée en paramètre

Paramètre Type Description
AccountIndex Integer Index du compte où apparaît l'opération
LineIndex Integer Index de la ligne dont on veut lire le signe

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property OperationModeIndex [AccountIndex : Integer; LineIndex : Integer] : Integer readonly
Cette propriété en lecture seule renvoie l'index du mode de paiement de l'opération passée en paramètre

Paramètre Type Description
AccountIndex Integer Index du compte où apparaît l'opération
LineIndex Integer Index de la ligne dont on veut lire le mode de paiement

Cette propriété renvoie une valeur de type Integer et est en lecture seule
 property OperationMark [AccountIndex : Integer; LineIndex : Integer] : Integer
Cette propriété permet de lire ou de modifier la valeur du pointage de l'opération passée en paramètre

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier le pointage

Cette propriété renvoie (ou on peut lui affecter) une valeur de type Integer
 property OperationDetails [AccountIndex : Integer; LineIndex : Integer] : WideString
Cette propriété permet de lire ou de modifier le détail d'une opération

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier les détails

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString
 property OperationCateg [AccountIndex : Integer; LineIndex : Integer] : Integer
Cette propriété permet de lire ou de modifier la catégorie d'une opération

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier la catégorie

Cette propriété renvoie (ou on peut lui affecter) une valeur de type Integer
 property OperationMarkDate [AccountIndex : Integer; LineIndex : Integer] : WideString
Cette propriété permet de lire ou de modifier la date de valeur d'une opération.
La date à envoyer ou à lire est une chaîne de caractères au format DD-MM-YYYY

Paramètre Type Description
AccountIndex Integer Index du compte dont on veut lire ou modifier une ligne
LineIndex Integer Index de la ligne dont on veut lire ou modifier la date de valeur

Cette propriété renvoie (ou on peut lui affecter) une valeur de type WideString au format 'DD-MM-YYYY'

4. Fonctions disponibles uniquement en Python

 function SingleLine() : Integer
Cette fonction renvoie le numéro de la dernière ligne insérée.

Cette fonction renvoie une valeur de type Integer
 property BPEval [Data : WideString] : WideString
Cette fonction est un raccourci de la méthode BP.GetURL().

Paramètre Type Description
Data WideString Requête à évaluer

Cette fonction renvoie une valeur de type WideString
 property CreateChart [PanelName : WideString]
Cette fonction permet de créer un graphique dans un panel.

Paramètre Type Description
PanelName WideString Nom du Panel

Cette fonction ne renvoie pas de valeur.
 property DrawChart [PanelName: WideString; Names: List; Values: List; ShowNullValue : Integer; 3D: Integer; GraphType: Integer]
Cette fonction permet de dessiner un graphique (créé préalablement avec la fonction CreateChart).

Paramètre Type Description
PanelName WideString Nom du Panel dans lequel le graphique a été préalablement créé
Names List of string Liste des titres du graphique
Values List of double Liste des valeurs associées
ShowNullValues Integer Indique si le graphique doit inclure les valeurs nulles (1) ou non (0)
3D Integer Indique si le graphique doit être dessiné en 2D (0) ou en 3D (1)
GraphType Integer Indique le type de graphique (0=histogramme, 1=histogramme+ligne, 2=histogramme empilé, 3=nuage de points, 4=ligne, 5=aire, 6=secteurs)

Cette fonction ne renvoie pas de valeur.
Remarques importantes : La couleur de fond du panel détermine la couleur de fond du graphique. Pour afficher la légende, la propriété ShowHint du panel doit être égale à 1
 property DestroyChart [PanelName : WideString]
Cette fonction permet de supprimer un graphique (créé préalablement avec la fonction CreateChart).

Paramètre Type Description
PanelName WideString Nom du Panel qui contient le graphique à supprimer

Cette fonction ne renvoie pas de valeur
 property ExportChart [PanelName : WideString]
Cette fonction permet d'exporter un graphique vers un fichier PDF.

Paramètre Type Description
PanelName WideString Nom du Panel qui contient le graphique à exporter

Cette fonction ne renvoie pas de valeur