[Calc] Caisse enregistreuse basique

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

Répondre
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

[Calc] Caisse enregistreuse basique

Message par philou7168 »

Bonjour,

Je me suis mis en tête de concevoir un caisse enregistreuse de bar dans un premier temps basique.
Je souhaite faire en sorte qu'elle puisse être tactile pour ceux qui possède le matos adéquate et donc forcement on passe par la case bouton.
A peine commencé que je suis déjà bloqué. Je souhaite que le nom des bouton soit lié à une cellule.
Feuille1 (Caisse) nous avons les boutons.
Feuille2 (Produit) nous avons les produits de vente et leur prix.
Vous aurez compris le fond de la pensée.

Le but étant que le texte écrit dans la cellule "Produit.A2" soit également le nom du bouton avec lequel elle sera lié sur la feuille1 (caisse).
Pour l'instant je ne met pas de fichier en ligne car il est totalement vide hormis une trentaine de bouton et et une liste de base

Merci d'avance.
Dernière modification par OOoch le 27 mars 2014 21:32, modifié 2 fois.
Raison : Titre modifié pour plus de clarté
LibreOffice 4.1.5.3 sous Windows 7 32bits
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3929
Inscription : 06 oct. 2008 10:03

Re: Projet caisse enregistreuse basic

Message par Oukcha »

Votre question a été déplacée depuis la section Tableur (qui n’est ni consacrée aux projets, ni aux macros) dans la section "Projets".
Vous pouvez prendre connaissance de ce post-it afin de définir un véritable cahier des charges de vos besoins.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: [Calc] caisse enregistreuse basique

Message par jeanmimi »

Bonjour,
Si je comprends bien, dans ton idée, si j'appuie sur un bouton qui s'appelle Harengs à l’huile je me retrouve sur une autre feuille où je retrouve mon hareng à l'huile avec son prix et il me reste à entrer la quantité pour la table 32 ?
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] caisse enregistreuse basique

Message par philou7168 »

jeanmimi a écrit :Bonjour,
Si je comprends bien, dans ton idée, si j'appuie sur un bouton qui s'appelle Harengs à l’huile je me retrouve sur une autre feuille où je retrouve mon hareng à l'huile avec son prix et il me reste à entrer la quantité pour la table 32 ?
Tu vas déjà plus loin que je ne suis.
Mon premier point c'est de pouvoir avoir sur le bouton le nom du produit qui est listé sur une autre feuille. Cela afin que le nom change quand le produit change.
Ensuite, bien entendu, quand tu appuies sur le dit bouton, il ne te restera plus qu' ajouter la quantité. Je vais rapidement faire une ébauche d'image pour que l'on visualise cette caisse enregistreuse.
Je ne cache pas, que l'intérêt c'est surtout la MAJ automatique des boutons. Mais en plus de démarrer ce projet, il faut en parallèle que je conçoive le cahier des charges, car honnêtement, c'est sur un coup de tête que j'ai pris cette décision hier. En plus je suis sur LibreO que depuis la semaine dernière. Comme je ne sais pas encore grand chose, ce projet a deux but.
Créer un logiciel qui n'existe pas en gratuit et contribuer à ma formation sur LibreO. Nous sommes sur un forum d'entraide, et actuellement, je ne peux pas aider grand monde, mais moi au contraire je risque d'en demander beaucoup.

Bref, je reviens courant de la journée avec le cahier des charges (non exhaustif) et cette foutu image.

MAJ: Voici l'idée de caisse, mais bien entendu toutes les idées ou modif sont les bienvenue mais déjà on a un départ.
caisse.png
Les chiffres 5, 10, 20, 50 dans les cases jaunes clair représente une réduction en %, les chiffres sont fantaisistes.
LibreOffice 4.1.5.3 sous Windows 7 32bits
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] caisse enregistreuse basique

Message par philou7168 »

Bon je me lance dans un cahier des charges:

Travaille de base et visuel
Feuille 1 (caisse enregistreuse)
Création de la caisse avec bouton et utilisation des cellules
Lier les boutons a une liste de produit (quand le nom du produit change, le nom du bouton change)
Utilité du prix sur le bouton oui/non
prévoir un bouton dont le montant est à définir
  • explication; imaginons que dans un bar le patron loue un plateau d'échec à l'heure, il ne connaîtra le montant qu'à la fin de la partie, dans ce cas il y aura une ligne Echec dans la DB mais sans montant. Un tableau simpe existe déjà dans lequel est repertorié l'heure de début/fin et le calcul du montant TTC se fait automatiquement. Il restera donc à recopier ce montant après l'appuie du bouton echec, on ne tient donc pas compte d'une éventuelle quantité
Feuille 2 (DB)
Liste des articles avec prix dont TVA
nom raison sociale de l'entreprise etc...

Feuille 3 (facture)
élaboration auto de la facture / Sur la caisse le bouton imprime imprimera la feuille 3
Sur la facture devra être listé les montants de chaque article en fin le total TTC dont TVA 5.5% et TVA 20%
  • Explication: les boissons non alcoolisés n'ont pas la même TVA que les boissons alcoolisées, il me semble.
Développement des macros
Lors de l"appuie d'un bouton demander la quantité (1 par défaut)
Lors de l'appuie d'un bouton ref à la ligne des données de la DB (prix/TVA)
LibreOffice 4.1.5.3 sous Windows 7 32bits
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] Caisse enregistreuse basique

Message par philou7168 »

Donc a première vu impossible de lier le nom d'un bouton à celui d'une cellule.
En parallèle je regarde aussi si c'est possible sur Excel (v.2007).
  • J'y ai trouvé une astuce, il existe deux sortes de boutons un pour les formulaires et le bouton de control (command_button) en activeX
    Celui qui nous concerne est le deuxième, sa particularité est que l'on puisse lui mettre un fond transparent et donc on arrive à lire ce qui est écrit dans la cellule du dessous. Il ne reste qu'a lié la cellule à son homologue de la DB.
Je poursuis mes recherche pour savoir si cela est possible sur Calc, si quelqu'un le sait, merci de le mettre en ligne.
Dernière modification par philou7168 le 31 mars 2014 10:54, modifié 1 fois.
LibreOffice 4.1.5.3 sous Windows 7 32bits
rastapog
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 24 janv. 2014 00:03

Re: [Calc] Caisse enregistreuse basique

Message par rastapog »

Salut !!

Très bon projet !! Pour ma part cela pourrait l’intéressé pour mes magasins, je ne m'y connaît pas assez pour t'aider mais bon courage en tout cas.
LibreOffice 4.1.5 sous Ubuntu 13.10 et Windows 7 64 bits familiale premium
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] Caisse enregistreuse basique

Message par philou7168 »

Pour mon problème de nom de bouton j'ai trouvé une solution, mais sous excel.

Dans Excel, on peut définir une page de code par feuille de calcul, je n'ai pas trouvé comment faire sur LibreO

Donc ma feuille1 porte le nom caisse
Ma feuille2 porte le nom données pour la DB des produits et autre.

Lorsque je selctionne ma feuille 1, automatiquement le nom de mes boutons se mettent à jour avec le code suivant

Code : Tout sélectionner

Private Sub Worksheet_Activate()
   CommandButton1.Caption = Sheets("Données").Cells(2, 1)
   CommandButton2.Caption = Sheets("Données").Cells(3, 1)
End Sub
Comment fait-on pour liste les feuilles de calculs dans l'editeur basic de Calc ? Voir image du dessous sous Excel.
VBA_Excel.png
LibreOffice 4.1.5.3 sous Windows 7 32bits
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: [Calc] Caisse enregistreuse basique

Message par jeanmimi »

Bonjour,
Il est possible de passer d'une feuille à l'autre en utilisant des boutons (voir fichier joint).
Action : Ouvrir la page web puis préciser l'adresse de la cellule
Pour récupérer le libellé d'une cellule dans l'étiquette du bouton, je suppose que ça doit être possible par Macro, il faut chercher dans la section du forum par exemple avec ces mots clés Calc bouton libellé cellule
Pièces jointes
Hyperlien par bouton.ods
(33.64 Kio) Téléchargé 387 fois
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] Caisse enregistreuse basique

Message par Piaf »

Bonjour
Éventuellement, clic droit sur l'onglet de la feuille caisse > Sélectionner Évènements de la feuille
oEVFeuille.png
La macro qui va avec

Code : Tout sélectionner

Sub NomBouton()
Dim oDoc as Object, mesFeuilles as Object, maFeuilleDonnees as Object, maFeuilleCaisse as Object
Dim oForm as Object
	oDoc = thisComponent
	mesFeuilles = oDoc.Sheets
	maFeuilleDonnees = mesFeuilles.getByName("Donnees")
	maFeuilleCaisse = mesFeuilles.getByName("Caisse")
	oForm = maFeuilleCaisse.DrawPage.Forms.getByName("Formulaire")
	oForm.getByName("Bouton1").Label = maFeuilleDonnees.getCellRangeByName("A1").String
	oForm.getByName("Bouton2").Label = maFeuilleDonnees.getCellRangeByName("A2").String
End Sub
le nom des feuilles, du formulaire et des boutons sont à vérifier sur ton fichier.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: [Calc] Caisse enregistreuse basique

Message par jeanmimi »

Avec la Macro de Piaf, dès que tu changes un libelle dans une cellule de Feuille2, celui-ci est récupéré dans le bouton correspondant.
Pièces jointes
Hyperlien par bouton.ods
(35.6 Kio) Téléchargé 345 fois
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] Caisse enregistreuse basique

Message par philou7168 »

Merci pour l'exemple, je m'attaque donc à la conception des boutons. Je reviendrai surement. J'aurai besoin d'une précision, le OBasic utilisé sous OO et LO est basé sur quel langage ? Cela me permettrait de chercher à la source du langage ce que je ne trouve pas dans les aides calc.
LibreOffice 4.1.5.3 sous Windows 7 32bits
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] Caisse enregistreuse basique

Message par philou7168 »

42 boutons produits ont été crées et leur nom dépend d'une cellule de la feuille DB

Je travaille actuellement sur le bouton expresso, mais ma demande vaut pour tous les boutons
Je suis totalement dépassé. Je n'arrive pas à comprendre la logique du langage.
A l'aide de l'enregistreur de macro, j'ai essayé d'insérer une ligne de facture. Je ne comprends pas pourquoi cette ligne est recopiée sur la feuille Dbase alors que les formules ont été faites depuis la feuille caisse.
De plus, et la c'est pas gagné vu que je cale si tôt, je souhaiterai que lorsque j'appuie sur expresso la première ligne vide entre I6 et L18 comprises soit rempli. Comme je suis un chieur, il me faudrait une recherche exacte dans la plage I6 -I18 afin d'incrémenté la quantité (colonne K6 - K18) si l'entrée existe déja.
Donc pour résumé si j'appuie 2 fois sur expresso, il me faudrait une ligne expresso avec quantité 2, soit une incrementation. La Col L sera toujours la même chose soit k*j, j'y ai donc mis une formule conditionnelle avec un formatage conditionnel.
Le bouton effacer consiste à effacer la facture, la même fonction sera ajouté à un futur bouton imprime.
Caisse enr.ods
(18.18 Kio) Téléchargé 727 fois
LibreOffice 4.1.5.3 sous Windows 7 32bits
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 19:56
Localisation : Lille

Re: [Calc] Caisse enregistreuse basique

Message par DLE »

Bonjour,

Avec ce groupe d'instructions la feuille "DBase" est activée, les autres instructions agiront sur cette feuille. Supprimer ces instructions à deux reprises dans la macro (args2 et args6).
Cela résout votre première question.

Code : Tout sélectionner

dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
Pour le reste il y a du codage à faire en plus.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
philou7168
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 24 mars 2014 14:08

Re: [Calc] Caisse enregistreuse basique

Message par philou7168 »

Merci, j'ai aussi du faire une petite modif, car le nom du produit s'inscrivait dans la cellule active et non dans la colonne I. Cela fait je continu mes recherches.
LibreOffice 4.1.5.3 sous Windows 7 32bits
Répondre