informations générales 
 - A propos de GnuCash
 - Gnucash en Anglais
 - Captures d'écrans - [ gnome ]
 - Captures d'écrans - [ motif ]
 - Caractéristiques
 - Téléchargement
informations pour le dévelopeur
 - Architecture du système
 - Buts du projet
  - Dévelopeurs
 - Liste de courriers - Aide
 - Liste de courriers - Archives
 - Récupération du code source
autres informations 
 - Documentation
 - Liens
- Gnucash dans les nouvelles

vue d'ensemble de l'architecture
GnuCash actuellement consiste en six modules indépendents (pour la plupart):

Le moteur
----------
"Le moteur" (src/engine) fournit une interface pour les comptes et transactions.
Un compte consiste en un nom de compte, une monnaie par défaut, un code d'identification d'action (si applicable), des notes, quelques sélections et une liste de transactions séparées/transférées.
Une transaction consiste en une liste de division/transferts, avec chaque transfert ayant une description et un champ memo, des champs de date entréeset de date rapprochées, des champs de quantité et de prix (prix == 1.0 pour les vieux comptes bancaires ordinaires), et quelques divers champs de disposition/destination.

L'implementation actuelle est basé sur un format de fichier (pas SQL) . Il definit un flux de données(byte stream) , pour la sauvegarde dans un fichier  ou la transmission  via pipes/sockets ("persistence" et  "migration de données" -- le flux de données permet  aux objets du moteur d'être déplacé/copié/recréé dynamiquement  sur n'importe quel hôte. ). L'API fournit aussi des controles concourrants simples, incluant une session objet, et des primitives pour les editions/affichages débutants/en réalisation/rejetés (beginning/committing/rejecting edits). Celà devrait être assez pour permettre un fond de transaction basé sur SQL (SQL-based transactional back ends) d'être implementé. Le GUI utilise et respecte ces primitives, aussi GnuCash de manière générale devrait "juste fonctionner " avec un fond en SQL ( SQL back end).

Le code du moteur ne contient aucun code graphique/GUI qui soit, et il est essentiellement  neutre par rapport à l'OS.(Il peut même être compiler et fonctionner sous DOS!)
 

Le registre 
------------
"Le registre" (src/register) implémente un Grand Livre(compta) grahique qui permet à l'utilisateur de d'entrer dynamiquement les dates, prix/cours, mémos, descriptions, etc. d'une manière naturelle, intuitive qui devrait être évidente pour n'importe qui utilise le registre de son talon de son chéquier . Le code est très configurable, permettant aux lignes et colonnes du registre d'être étendu dans n'importe quel sens/direction, avec aucune restrictions sur la fonction, le type et le nombre de colonnes/lignes. Par exemple, un peut être défini comme un gran livre/registre avec trois champs de dates , un champ de prix/cours, et quatre champs de memo  de manière directe. La cellule chargeant les objets supporte et valide automatiquement la date entrée , le memo entré (avec/auto-remplissage), les prix/cours, les boites combo (menus déroulants), les cases de pointage à plusieurs niveaux. Les cellules peuvent être autorisées en lecture-écriture , ou en lecture seule.Aux cellules peuvent être assignées des couleurs uniques obligatoires. Le bloc de lignes du registre actif actuel peut être mis en valeur/en évidence avec une unique couleur. 

Le code du registre est pour la plupart indépendant du GUI; par exemple le code motif/gtk/qt est limitéà deux fichiers et une petite quantité de lignes de code . La version Motif est la meilleure actuellement , Le code gtk fonctionne, mais le widget de tableau du gtk sous-jacent/au-dessous n'est pas réellement assez puissant pour fournir une inteface superbe/élégante.

Le code du registre est complètement indépendant du code du moteur, il ne sait rien du tout au sujet de la comptabilité ou de n'importe quel autres sous-systèmes de  GnuCash. Il peut être utilisé dans des projets indépendant qui n'ont rien à voir avec la comptabilité.

Rapports
-------
"Rapports" (src/reports) est un système basé sur perl/html pour créer des feuilles de soldes,
etats des profits et pertes , etc. en utilisant le moteur de l' API qpour rapporter et afficher les données. Code très alpha, en développement.
(n.d.t:au 25/03/2000 ,en développement constant avec des graphiques, développé en Schème)

Cotations
------
"Cotations" (src/quotes) est un système perl  pour récupérer les données des  cours des actions  sur internet et le traiter dans l'API du moteur de GnuCash. Très alpha, en  développement.

Scheme
------
"Le Scheme" (src/scm, src/guile, src/prefs) est une infrastructure basé sur scheme qui 
avait pour intention de fournir une extensibilité générale , en plus d'un traitement de fichier resource/ou en ligne de commande, la gestion de l'état des préférences de l'utilisateur, et autres fonctions. Très alpha, en développement.

GnuCash
-------
"GnuCash" (src/motif, src/gnome, src/qt) est la principale application graphique (GUI). Il
consiste en une collection de diverses code GUI (graphique) qui sont coller ensemble avec toutes les pièces ci-dessus dans un ensemble cohérent, et en totalité permettant le pointage et le click. Il  avait pour intention d'être facile à utiliser et intuitif pour l'utilisateur novice sans sacrifier la puissance et la flexibilité qu'un professionnel est en droit d'attendre. Quand les gens disent que GnuCash essaie d'être un "ressemblant /fonctionnant/agissant comme Quicken/MSMoney ", c'est à un logiciel/une référence auquel il se réfère. Il avait réellement l'intention d'être un gestionnaire de finances personnelles avec assez de puissance pour le power user/utilisateur expert et la facilité d'utilisation pour le débutant .

Actuellement, l'interface Motif est la seule interface opérationelle .
(n.d.t: au 25/03/2000, l'interface motif est abandonnée)
Le code gtk se compile, mais la plupart des fonctions sont maintenant intégrées.
(Le code gtk est désormais le code par défaut et en développement constant).
Le code  Qt ne se compile pas , la plupart de toutes les fonctions sont manquantes.


[ site web hébergé par www.multimania.com ]
[ email:y-le-ny@ifrance.com ]