[Résolu] Formulaire et sous formulaire

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

[Résolu] Formulaire et sous formulaire

Message par El_Brouno »

Bonjour,

Je me lance dans la création d'un nouveau module pour ma base de données.
J'aimerais créer un mode de gestion de suivi sav.
Bien sur je n'ai pas encore le niveau de certain ici, voilà pourquoi je poste ici espérant que comme d'habitude une âme charitable et compétente vole à mon secours.

Je vais vous donner le max de détails et pour que ce soit plus pertinent, je vous met un lien où vous pourrez télécharger une base exemple.
Celle ci faisant 1,5Mo, je me permets d'utiliser wetransfer pour la mettre à dispo

https://we.tl/t-p8QFfhXKIF

Donc :
- J'ai une table TMaterielFiches, qui concentre l'ensemble des données de mon matos.
- J'ai créer une table TMaterielGestionSAV qui intégré les champs suivant : idSAV (primaire et integer), RefMateriel (Integer), Date, Détails.
- J'ai créer une relation entre ma table TMaterielFiches et TMaterielGestionSAV
- J'ai créer un formulaire FormConsulterGestionSAV, qui affiche dans un premier formulaire TMaterielFiches puis un sous formulaire TMaterielGestionSAV.
- J'aimerais faire en sorte que je puisse choisir dans une liste déroulante un élément du matériel listé dans TMaterielFiches ( premier formulaire )
Et que tous les id sav lié à ce matos soit listés dans le tableau du sous formulaire TMaterielGestionSAV.

Pour le menu déroulante filtrant, j'ai déjà quelque chose (dans un autre contexte) qui fonctionne bien dans le formulaire FormConsulterLeMatos.

Pourriez vous m'aider un peu ?
D'avance merci.

Bruno
Dernière modification par El_Brouno le 12 mars 2021 10:37, modifié 4 fois.
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: Formulaire et sous formulaire

Message par micmac »

Bonjour,

Rappel de la procédure :
Comment joindre un fichier
Lorsque le fichier dépasse les 500 ko acceptés vous pouvez le joindre en passant uniquement par le site https://www.cjoint.com/
Vous placez dans votre message le lien que vous donne cjoint après votre téléversement.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Parfait, merci micmac.
J'avais oublié le site que vous conseillez.
Bonne journée.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

Bonjour,
El_Brouno a écrit :- J'aimerais faire en sorte que je puisse choisir dans une liste déroulante un élément du matériel listé dans TMaterielFiches ( premier formulaire )
Le principe est le même que ce que tu as déjà réussi : un contrôle Zone de liste (instruction SQL sur la Table TMaterielFiches) d'une Table Sélection avec affichage de la Table TMaterielGestionSAV.
Dans ma copie d'écran, l'affichage se fait par clic sur un Bouton ayant l'action Rafraîchir le formulaire, que tu peux remplacer comme tu sais le faire par une Macro.
Suivi SAV.jpg
La Table TmaterielGestionSAV se remplit correctement.
Table Suivi SAV.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

§Salut jeanmimi,

Merci pour ta réactivité.

Oui j'ai quelques restes mais impossible de me souvenir l'utilité de cette fameuse table sélection dans ce montage ...
Pourrais tu me faire un petit rappel synoptique/briefing sur l'orchestration de tout ce bazar ?

- Le premier formulaire va chercher dans quelle table, TmaterielFiches ?
Comment fait on dèjà pour concatener comme tu l'as fait sur ton image exemple ?

Le second formulaire affiche les données de la table TMaterielGestionSAV selon ce que j'ai sélectionné dans le formulaire principal faisant appel à TMaterielFiches. ?

Le bouton rafraichissement agit sur TMaterielGestionSAV ou TMaterielFiches ?

Pour la macro, à l'époque je m'étais fait aider, il me semble qu'il y a une partie du forum dédié au fil macros ... Est ce toujours le cas ?

D'avance merci.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

El_Brouno a écrit :Pourrais tu me faire un petit rappel synoptique/briefing sur l'orchestration de tout ce bazar ?
El_Brouno a écrit :Le second formulaire affiche les données de la table TMaterielGestionSAV selon ce que j'ai sélectionné dans le formulaire principal faisant appel à TMaterielFiches. ?
Le principe est commenté ici, avec soit un Bouton, soit une Macro.
El_Brouno a écrit :- Le premier formulaire va chercher dans quelle table, TmaterielFiches ?
Oui, c'est ça.
El_Brouno a écrit :Comment fait on dèjà pour concaténer comme tu l'as fait sur ton image exemple ?
Au cas où un jour tu voudrais transférer ta Base sous Firebird, j'ai concaténé de cette manière :

Code : Tout sélectionner

SELECT "Marque" || ' ' || "Modele" || ' ' || "Numero_De_Serie" || ' ' || "Infos" AS "Description_Materiel", "ID_Materiel" FROM "TMaterielFiches" ORDER BY "ID_Materiel" ASC
Dans ta Base HSQLDB, ça fonctionne, mais tu peux aussi utiliser la fonction CONCAT.
El_Brouno a écrit :Le bouton rafraichissement agit sur TMaterielGestionSAV ou TMaterielFiches ?
Sur TMaterielGestionSAV . Pour le constater, tu affiches le formulaire en Mode Édition, puis tu examines sa structure avec la Navigateur : le Bouton est dans le SubForm
Bouton dans SubForm.jpg
Il est possible que ce sujet soit déplacé dans la Section Projets, car dans la Section Base, c'est seulement une question par message.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmimi le 26 févr. 2021 20:56, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Ok merci.
Bon c'est un gros morceau pour moi cette histoire.
Je vais d'abord aller dormir un peu.
J'arrive plus à rien là.
Bonne soirée jeanmimi
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Ok, me revoilà et en meilleur forme ... :)

Je joins une nouvelle base test où j'ai placer dans FormAjouterGestionSAV les différents boites et listes déroulantes que j'aimerais voir apparaitre sur mon formulaire.
A ce stade, rien ne marche sauf les listes déroulantes qui affichent les données désirées pour FAMILLE, CATEGORIE et MARQUE et MODELE concatenés.
Mais j'aimerais ton avis sur la faisabilité de mon idée.

Dans la table TMaterielFiches, j'aimerais pouvoir d'abord choisir la FAMILLE dans une première liste déroulante, qui trierait la CATEGORIE dans une autre liste déroulante, qui me permettrait ensuite de choisir un article dans une troisième liste déroulante.
En cliquant sur un bouton ou en mettant une place une macro d'automatisation après sélection de l'article dans la 3ème liste déroulante, les idsav et autres de l'article sélectionné apparaitraient dans le tableau du dessous qui lui serait paramétré pour afficher la table TMaterielGestionSAV.

Est ce quelque chose de réalisable ?

https://www.cjoint.com/c/KCbhuKzGttL

D'avance merci
Bruno
Dernière modification par El_Brouno le 01 mars 2021 07:21, modifié 1 fois.
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

El_Brouno a écrit :Dans la table TMaterielFiches, j'aimerais pouvoir d'abord choisir la FAMILLE dans une première liste déroulante, qui trierait la CATEGORIE dans une autre liste déroulante, qui me permettrait ensuite de choisir un article dans une troisième liste déroulante.
Ce sont des listes en cascade. Elles ont bien documentées dans le forum, et se réalisent avec des Macros.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

À oui c'est vrai, je me rappele de ce terme. Merci !
Bon je vais creuser tout ça.

En revanche si une âme charitable se sont l'envie de me construire ce formulaire, je lui en serais très reconnaissant.

Ceci étant dit, je m'en retourne à mes tables, formulaires et autres joyeusetés !

:wink: Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Bonjour,

Bon je continue à chercher une solution pour réaliser mon formulaire d'affichage de données de table après avoir sélectionner un choix dans une zone de liste.

Je me suis inspiré de cette page https://forum.openoffice.org/fr/forum/v ... 393#p81393 et j'ai fais une base test à partir de l'exemple d'un sous formulaire qui est trié en fonction du terme Civilité choisie depuis une première zone de liste.

Mais je dois encore avoir fait un truc de traviol, j'ai beau choisir dans la liste déroulante la marque ASUS, cliquer sur le bouton " Actualiser ", le tableau du dessous ne m'affiche rien du tout.
Pourtant j'ai créer directement dans la table TGestionSAV un enregistrement concernant cet écran d''ordinateur de la marque ASUS avec comme détail de panne Badaboom Test

J'ai pourtant créer dans le formulaire une zone de liste à partir de la table de T_Selection qui via une requête SQL va chercher les choix Marque dans la table T_MaterielFiches.
Et paramétré les liens Esclaves/Maires du contrôle de table comme suit :

Maitre Selection
Eclave : Marque

Le bouton Actualiser rafraichit le Formulaire TGestionSAV.

Quelqu'un pourrait jeter un oeil ?
D'avance merci.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

El_Brouno a écrit :Maître Selection
Esclave : Marque
Regarde dans le formulaire Form_Selection_pour_SAV comment se fait la dépendance MainForm et SubForm :
https://www.cjoint.com/c/KCbkXdhIqdB
Dans ton cas, ce serait Selection pour le MainForm où il y a la Zone de liste et RefMarque (INTEGER) pour le SubForm où il y a aussi le Bouton (voir ma copie d’écran plus haut dans le fil de messages)
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Merci pour ta réponse rapide.

J'ai bien étudié ton exemple.

- Pourquoi ne pas avoir utiliser la table T_Selection existante ? A t elle une particularité qui fait qu'on ne peut pas s'en servir dans ce cas ?
- Mon lien esclave aurait du être RefMarque, mais le soucis. Cette integer n'existe pas dans ma table TMaterielFiches, Je comprends donc mieux l'intérêt de récupérer les infos via RefMateriel au lieu de Marque.
- Je vois aussi que dans le formulaire, mon tableau affiche les résultats de la requête RGestionSAV alors que dans ta base exemple, tu vas chercher les données afficher dans TMaterielGestionSAV.

Bon après avoir passé une bonne heure à comprendre, je n'arrive toujours pas à faire fonctionner ma base exemple
En pièce jointe.

Bruno
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

El_Brouno a écrit :- Pourquoi ne pas avoir utiliser la table T_Selection existante ? A t elle une particularité qui fait qu'on ne peut pas s'en servir dans ce cas ?
J'ai préféré en créer une dédiée au SAV
El_Brouno a écrit :- Je vois aussi que dans le formulaire, mon tableau affiche les résultats de la requête RGestionSAV .
Ça fonctionne aussi avec l'affichage de la Requête.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Et bien j'ai beau fouiller et farfouiller, je ne comprends toujours pas pourquoi mon chose ne marche pas alors que le tien oui.
En tout cas, merci pour le coup de main, le formulaire fonctionne.

EDIT
J'ai finalement eu l'idée de repartir de 0. En re-construisant un tout nouveau formulaire avec les paramètres et tuyaux que tu m'a conseillé, ça marche !
J'ai toujours pas bien compris pourquoi l'autre ne marchait pas mais j'ai au moins compris la gymnastique cérébrale à effectuer. :D

J'aimerais pourtant encore y apporter un petit détail, j'aimerais pouvoir trier les produits par FAMILLE puis par CATEGORIE, avant d'afficher les idSAV..
Pourrais tu me filer un autre coup de main ?
Il me semble que l'utilisation de macros est conseillé pour réaliser cette fonction.

Si j'ai bien compris, il s'agit de la fonction listes en cascade.
En attendant je vais continuer mes investigations.
D'avance merci.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Formulaire et sous formulaire

Message par jeanmimi »

El_Brouno a écrit :J'aimerais pourtant encore y apporter un petit détail, j'aimerais pouvoir trier les produits par FAMILLE puis par CATEGORIE, avant d'afficher les idSAV..
Je ne sais pas le faire avec des Macros, par contre, je le fais avec des MainForm et SubForm contenant des Tables (Grid)
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: Formulaire et sous formulaire

Message par micmac »

@El_Brouno

Nouvelle question => nouveau sujet et cette fois dans la partie Macros et API.

Merci de clore ce sujet :
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: Formulaire et sous formulaire

Message par El_Brouno »

Ok.
Bonne journée
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: [Résolu]Formulaire et sous formulaire

Message par El_Brouno »

J'aimerais un peu d'aide sur un nouveau pb que j'observe avec mon formulaire FormAjouterGestionSAV.
Je joins une base exemple.

J'ai dans ce formulaire 2 formulaires distincts :
Un principal, qui va chercher un matériel précis grâce à 3 listes déroulantes en cascades dans la table TMaterielFiches
Et un sous formulaire, qui remplierai la table TGestionSAV.

Je n'arrive pas à orchestrer mes formulaires.
Actuellement, je peux sélectionner mon matériel mais si je clique sur le champs DETAILS, j'ai une erreur qui m'indique que je ne peux pas laisser vide le champs MODELE.
Je ne comprends pas pourquoi alors que je lui ai dis que ce champ DETAILS était lié avec la table TGestionSAV.

Pourquoi me parle t il de MODELE qui lui se trouve dans TMaterielFiches ?

??

Autrement dit, Est il possible d'une part de faire appel à une table pour choisir un produit et d'une autre part utiliser le produit choisi pour enregistrer d'autres choses dans les champs d'une autre table ?

Il me faudrait passer par l' ID_Materiel qui est un integer.
Seulement, j'ai du mal à voir comment utiliser l'integer entre les deux tables dans le même formulaire.

D'avance merci pour votre aide.
Bruno
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Formulaire et sous formulaire

Message par Bidouille »

Bonjour,

El_Brouno a écrit :'aimerais un peu d'aide sur un nouveau pb
Un nouveau problème doit fait l'objet d'un nouveau fil distinct avec un titre en rapport.
Le principe des listes déroulantes se faisant à base de macro, vous lirez donc le bandeau rouge en haut de la page.

La question précédente ayant été déclarée résolue, je ferme ce fil.