Ma cave à vin

Une application complète et détaillée pour gérer sa cave à vin

Vous pouvez démarrer votre formation à Suneido avec cette application (un grand cru 2003) qui vous guidera pas à pas. C'est ici l'occasion d'apprendre les bases de Suneido et de créer un logiciel fonctionnel que vous pourrez personnaliser par la suite.

Tests réalisés avec succès sur la version alpha de gSuneido-2022-03-04.
Maj 14/07/2022 par jeanluc : Photo en-tête : Partage des eaux, l'Isle-sur-la-Sorgue, Vaucluse, France

Installation

  • Téléchargez SuneiDojo-2022-07-14.zip (10MO) contenant les fichiers de cette application

  • Après avoir décompressé le fichier, cliquez sur le fichier gsuneido.exe : une fenêtre intitulée Espace de travail s’ouvre

  • Cliquez sur la ligne contenant (Window(Cave_Menu)) et validez en appuyant sur F9 ou en cliquant sur !

Toutes les explications sur cette application

Vous voulez savoir comment ces fichiers ont été obtenus? Reprenons depuis le début...

L’analyse

Une cave est constituée de bouteilles. Une bouteille de vin est référencée de la manière suivante :

  • le cru : dénomination du vin

  • le millésime : année de la récolte

  • l’appellation : provenance et méthode de récolte

  • la couleur : rouge, blanc, rosé....

  • la région : région de provenance

  • le cépage : variété de plan de vigne cultivé

  • la quantité : nombre de bouteille identiques

  • l’appréciation : vos commentaires

Création d’un écran de saisie

L’analyse a permis de définir les champs nécessaires. Créez d’abord la table mycave dans Espace de travail>IDE>Vues>Vue des requêtes :

create mycave (cru, millesime, appellation, couleur, region, cepage, quantite, memo)

key(cru, millesime, couleur)

Note : les champs ne supportent pas les caractères accentués. Le contraire de create est drop

Le message en pied d'écran "SUCCEEDED" indique que la création s'est bien passée. Vous pouvez visualiser votre table (vide pour le moment) en exécutant :

mycave

Créez ensuite la bibliothèque cavelib dans Espace de travail>IDE>Vues>Vue des bibliothèques : exécutez Nouveau>Bibliothèque et donnez lui le Nom : cavelib

Dans l’arborescence de gauche, cliquez sur cavelib et à l’intérieur de celle-ci créez un nouvel élément. Renommez New en Cave_Control, et saisissez le code suivant :

Controller

{

Title: 'Ma cave a vin'

Controls:

(Tabs

// onglet mes bouteilles

#(ExplorerListViewControl

#('ExplorerListModel', 'mycave

sort cru' ('millesime') ()),

#(Form

(cru group:0) (millesime group:1) (quantite group:2) nl

(appellation group:0) (couleur group:1) nl

(region group:0) (cepage group:1)nl

(memo group:0)nl nl

(Button 'New') (Button 'Delete')

)

columns: #(cru, millesime, quantite, appellation, couleur, region, cepage, memo),

title: 'Ma cave a vin',

status : false

Tab: 'Mes bouteilles'

)

)

}

Il faut maintenant soigner la présentation en créant des champs, et pour cela, dans Espace de travail>IDE>Vues>Vue des bibliothèques>cavelib, créez un nouvel élément en saisissant le code suivant :
Field_appellation

Field_string

{

Prompt: 'Appellation'

Control: ('Field' width: 20)

Format: (Text width: 20)

}

Les autres éléments sont à créer de la même manière :

Field_cepage

Field_string

{

Prompt: 'Cépages'

Control: ('Field' width: 20)

Format: (Text width: 20)

}

Field_couleur

Field_string

{

Prompt: 'Couleur'

Control: ('Field' width: 10)

Format: (Text width: 10)

}

Field_cru

Field_string

{

Prompt: 'Cru'

Control: ('Field' width: 20)

Format: (Text width: 20)

}

Field_memo

Field_string

{

Prompt: 'Appréciations'

Control: ('Field' width: 20)

Format: (Text width: 20)

}

Field_millesime

Field_number

{

Prompt: 'Millésime'

Control: (Number, mask: "#########")

Format: (Number, mask: "#########")

}

Field_quantite

Field_number

{

Prompt: 'Quantité'

Control: (Number, mask: "########")

Format: (Number, mask: "########")

}

Field_region

Field_string

{

Prompt: 'Région ou pays'

Control: ('Field' width: 20)

Format: (Text width: 20)

}

Contrôlez le résultat dans Espace de travail en exécutant :

Window(Cave_Control)

et faites quelques essais de saisie.

Création d’un état

Il existe un générateur d’états très complet, voir : suneidoc/Tools/Reporter, mais ici vous allez créer un état prêt à l’emploi en quelques lignes de code.

Il nous faudrait une liste d’inventaire de la cave triée par couleur et par année avec des totaux sur les quantités. Et bien sur, un total général des quantités.

Pour cela, dans Espace de travail>IDE>Vues>Vue des bibliothèques>cavelib, créez un nouvel élément Cave_Inventaire, et saisissez le code suivant :

#(Params

title: 'Inventaire de ma cave'

name: 'Cave_Inventaire'

QueryFormat

{

Query()

{

return 'mycave sort couleur, millesime'

}

Output:

#(Row cru, millesime, couleur, quantite, appellation, region, cepage)

Before()

{

return Object('Text', 'Trié par couleur et par millésime')

}

Total: (quantite)

After_couleur()

{

return #(_output

quantite: (Total 'total_quantite'))

}

After()

{

return #(_output

quantite: (GrandTotal 'total_quantite'))

}

AfterAll()

{

return Object('Text', 'Signature du caviste :')

}

}

)

et pour apporter la touche finale ajoutez la fonction PageHeadName qui permettra de personnaliser l’en-tête du livre

function ()

{ 'Ma Cave à Vin' }

Admirez le résultat dans Espace de travail en exécutant :

Window(Cave_Inventaire)

Faites un test en prévisualisation ou PDF/Exporter un fichier avant d’imprimer.

Création d’un livre

Dans Espace de travail>IDE>Éditer un livre>Nouveau Livre indiquez le nom du nouveau livre : cavebook. Choisissez Nouvel élément pour créer les pages :

la page Saisie :

Cave_Control

la page Edition :

Cave_Inventaire

la page Aide :

<h1>Ma cave à vin</h1>

<p>Un logiciel pour gérer sa cave à vin.</p>

<p>Une bouteille de vin est référencée de la manière suivante :<br>

- le cru : c'est la dénomination du vin<br>

- le millésime : année de la récolte<br>

- l'appellation : indique la provenance et la méthode de récolte<br>

- la couleur : rouge, blanc, rosé....<br>

- la région : région de provenance<br>

- le cépage : variété de plan de vigne cultivé<br>

- la quantité : nombre de bouteille identiques<br>

</p>

<a href='https://www.suneidojo.fr/'><h3>SuneiDojo www.suneidojo.fr</a></h3>

Admirez le résultat dans Espace de travail>IDE>Ouvrir un livre>cavebook

Variante : présentation classique avec des menus

Vous pouvez aussi présenter l'application d’une manière classique, avec des menus.

Dans Espace de travail>IDE>Vues>Vue des bibliothèques>cavelib créez un nouvel élément Cave_Menu :

Controller

{

Title: 'Ma Cave à Vin - Présentation classique avec des menus'

On_Bouteille()

{

Window(Cave_Control)

}

On_Inventaire()

{

Window(Cave_Inventaire)

}

On_A_propos_de()

{

Window( #( Vert

(Static 'SuneiDojo www.suneidojo.fr')))

}

On_Livre()

{

BookControl('cavebook', 'Ma Cave à Vin - Présentation sous forme de livre')

}

Menu:

(

('File',

'Bouteille','','Exit')

('Print',

'Inventaire')

('Help',

'A propos de ...', 'Livre')

)

Controls:

(Vert

Editor)

}

Notes : les libellés en anglais du menu sont traduits par translatelanguage. Vous pouvez éventuellement compléter les traductions pour obtenir une application avec des menus multilingues. Exit est une fonction du Controller qui déclenche la fermeture de la fenêtre. Pour que votre libellé de menu Bouteille déclenche une action, on utilise une méthode On_Bouteille (préfixeOn_+libellé) pour définir notre action. La méthode doit être déclarée avant le menu. Dans le cas de A propos de...., la méthode s’appelle On_A_propos_de, car ni les espaces ne sont admis, ni les points. Un espace à blanc donne un trait de séparation dans le menu.

Contrôlez le résultat dans l’Espace de travail en exécutant :

Window(Cave_Menu)

Création d’un raccourci de démarrage

C’est mieux avec un raccourci sur le bureau. Pour démarrer sur le menu, ouvrez le bloc-note et saisissez :

Use ('cavelib') ; Window(Cave_Menu, exitOnClose:)

ou pour démarrer sur le livre :

Use ('cavelib') ; Window(#(Book cavebook, 'Ma Cave à Vin'))

Sauvegardez le fichier sous le nom de caveapplimenu (ou caveapplilivre) dans le répertoire de Suneido. Enlevez l’extension .txt qui générerait une erreur. Créez un icône sur le bureau d’un clic droit Nouveau / Raccourci, puis Parcourir, avec en ligne de commande :
"C:\Suneido\gsuneido.exe" caveapplimenu
(ou caveapplilivre, toujours saisi après les guillemets), cliquez sur suivant et changez le nom de gsuneido.exe par "Menu Ma Cave Classique" (ou par "Menu Ma Cave Livre") et validez sur Terminer.