[Résolu] Gestion de composants électroniques

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

Modérateur : Vilains modOOs

Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion de composants électroniques

Message par Piaf »

Bonsoir
A tester
A+
Pièces jointes
Electronique(1).odb
(219.8 Kio) Téléchargé 178 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
marbache
Membre lOOyal
Membre lOOyal
Messages : 38
Inscription : 04 nov. 2016 08:24

Re: [Base] Gestion de composants électroniques

Message par marbache »

Ta solution, pour à partir du formulaire F_R_RECHERCHE_BOITE_CASIER, ouvrir le formulaire F_COMPOSANT pointant sur le bon enregistrement fonctionne parfaitement. :super:
Je peux, donc , modifier ou visualiser à loisir un composant directement sans repasser par le formulaire F_ACCUEIL

J'ai appliqué ta solution avec réussite pour les formulaires:
F_R_LISTE_COMPOSANT
F_R_RECHERCHE_BOITE
F_R_RECHERCHE_CASIER

PREALABLE
Pour les trois formulaires, ci-dessus, j'ai ajouté soit à la requête SQL ou soit à SQL le champ id_composant. identifiant indispensable pour pointer sur le bon enregistrement :shock:

PROBLEME
Mais, j'ai deux problèmes avec F_R_RECHERCHE_TYPECOMPOSANT
Le premier problème: l'ensemble des composants ne s'affiche plus en intégralité dans MainForm_GridTypeComposant
Le second problème: une erreur macro
Sub OuvrirComposant(oEv as Object)
Dim oForm as Object, oFormComp as Object
Dim IdentComp as Long, NomForm as String
oForm = oEv.Source.Model.Parent
IdentComp = oForm.Columns.getByName("id_composant").getInt
NomForm = oEv.Source.Model.Tag
oFormComp = OuvrirFormulaire(nomForm)
With oFormComp.drawpage.forms.getbyname(nomForm)
.Filter="""id_composant"" =" & IdentComp
.Applyfilter = True
.reload
End With
End Sub

ErreurMacro.jpg

INFO
Dans Electronique04012017 j'ai laissé l'ancien formulaire F_R_RECHERCHE_TYPECOMPOSANT_ANCIEN

Cordialement

Alain
Pièces jointes
Electronique04012017.odb
(231.99 Kio) Téléchargé 171 fois
LibreOffice 5.1.6.2 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion de composants électroniques

Message par Piaf »

Bonjour
A tester
A+
Pièces jointes
Electronique04012017.odb
(231.97 Kio) Téléchargé 190 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
marbache
Membre lOOyal
Membre lOOyal
Messages : 38
Inscription : 04 nov. 2016 08:24

Re: [Base] Gestion de composants électroniques

Message par marbache »

Bonjour PIAF

Comme d'habitude Parfait :D

CONTEXTE
J'ai actuellement 3XX "composants" dans la base
Il est possible à partir des formulaires F-R-LISTE-COMPOSANTS, F_R_RECHERCHE_TYPECOMPOSANT, et F_R_RECHERCHE_BOITE_CASIER d'afficher la liste des composants

PROBLEME
AscenseurPasComplet.jpg
Si j'utilise l'ascenseur "1" (Voir schéma ci-dessous) pour parcourir la liste des enregistrements, il n'apparait qu'une portion de celle-ci.
Si je clique "2" dernier enregistrement alors apparait l'ensemble des composants.
AscenseurComplet.jpg
Tu remarqueras que dans l'ascenseur, la taille du "pointeur" (Cercle vert) est proportionnelle au nombre d'enregistrements.

BESOIN
Est-il possible d'afficher l'ensemble des enregistrements sans passer par "2" dernier enregistrement ?

Tout petit problème, pas de solution ça n'est pas grave :lol:

Bon dimanche

Alain
LibreOffice 5.1.6.2 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion de composants électroniques

Message par Piaf »

Bonjour
Voir [Résolu] Formulaire - Etoile numérotation enregistrements.
Dans ton cas, pour le formulaire F_R_LISTE_COMPOSANTS par exemple, ajouter cette macro

Code : Tout sélectionner

Sub AfficherNbrComp
Dim oForm as Object
	oForm = thisComponent.DrawPage.Forms.GetByName("MainFormComposant")
	oform.last
	oForm.First
End Sub
à l'événement Lors du chargement du formulaire
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
marbache
Membre lOOyal
Membre lOOyal
Messages : 38
Inscription : 04 nov. 2016 08:24

Re: [Base] Gestion de composants électroniques

Message par marbache »

Bonjour PIAF


Ta macro fonctionne parfaitement pour MainFormComposant
oForm = thisComponent.DrawPage.Forms.GetByName("MainFormComposant")

CONTEXTE
J'ai essayé de remplacer MainFormComposant par le nom du formulaire afin d'employer la même macro pour quasi tous les formulaires contenant une liste.
J'ai même activé XRAY pour m'aider dans cette tâche et j'ai compris que je n'y arriverai pas.
MacroAfficheTousLesEnregistements.jpg
J'ai créé un nouveau module(Macro) AfficherNbrComp avec plusieurs macros afin d'afficher dans les listes le nombre exact d’enregistrements.
ça fonctionne parfaitement, mais pas TOP.
Pourquoi un nouveau module, pour t'éviter de chercher :D

BESOIN
activer une seule macro pour afficher dans la liste le nombre exact d'enregistrements pour n'importe quel formulaire

Sub AfficherNbrComp
Dim oForm as Object
oForm = thisComponent.DrawPage.Forms.GetByName(NomDuFormulaireActif)
oform.last
oForm.First
End Sub

Amicalement

Alain
Pièces jointes
Electronique.odb
(224.9 Kio) Téléchargé 191 fois
LibreOffice 5.1.6.2 sous Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion de composants électroniques

Message par Piaf »

Bonjour
A tester

Code : Tout sélectionner

Sub AfficherNbr
Dim oForm as Object
Dim NomForm as String
	NomForm = thisComponent.DrawPage.Forms.ElementNames(0)
	oForm = thisComponent.DrawPage.Forms.GetByName(NomForm)
	oForm.Last
	oForm.First
End Sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
marbache
Membre lOOyal
Membre lOOyal
Messages : 38
Inscription : 04 nov. 2016 08:24

Re: [Base] Gestion de composants électroniques

Message par marbache »

bonjour PIAF

Déjà ta solution ça fonctionne, comme d'habitude parfaitement.

CONTEXTE
Je réalise des projets électroniques pour tester des circuits ou parfois des projets d'une utilité relative. (Détection, température, humidité, mouvements GPS etc..)
Je reçois des circuits simples voire complexes d'amis ou achetés sur EBAY.
Tous ces circuits et projets qui fonctionnent ou pas, deviennent une source de composants disponibles pour les projets suivants.
Comme je suis relativement fainéant Je ne souhaite pas dessouder les composants de leur platine avant besoin.
Actuellement gestion des composants électroniques fonctionne avec des rangements (boite, casier, compartiment)

BESOIN
J'aimerais que ces circuits ou anciens projets puissent "intégrer" Gestion des composants électroniques.
J'aimerais que l'on puisse rechercher les composants électroniques aussi bien dans les rangements(boites)que (projets) que (circuit) de la même manière ou presque.
Je différencie PROJET et CIRCUIT car j'ai un avenir pour PROJET (PROJET contiendra les composants dont j'aurai besoin lors de la création d'un nouveau projet )




IDÉE I
Faut-il utiliser l'existant "rangement" car le nombre de casiers et compartiments sont illimités ?
Exemple BOITE devient CIRCUIT I avec CASIER 1 pour le premier composant CASIER 2 pour le second composant
Cette solution me semble douteuse et pas très sérieuse :evil:

IDÉE II
Créer une nouvelle TABLE CIRCUIT -> COMPOSANT (Les composants se trouvant sur le circuit )
Créer une nouvelle TABLE PROJET -> COMPOSANT (Les composants se trouvant sur le projet ) ou (les composants pour le prochain projet)
Exemple
CicuitProjet.jpg
J'aimerais peaufiner ce modèle avant d'aller plus en avant :mrgreen:

Merci par avance

Alain
Pièces jointes
Electronique.odb
(225.62 Kio) Téléchargé 235 fois
LibreOffice 5.1.6.2 sous Windows 10
Répondre