1 (edited by Nuri 2014-03-05 14:44:31)

Topic: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Libellé de l'idée :

Editer les données gérées par QET par l'intermédiaire d'un tableur (propre tableur QET ou LibreOffice ou Excel...).

Grossière présentation de l'idée :

Dans QET :
- sélectionner des éléments (bornes, contacts... ou même des folios ou des projets)
- cliquer sur un nouveau bouton "éditer dans le tableur"

...le tableur s'ouvre...

Dans le tableur :
- réaliser les modifications désirées en profitant de tout ce qu'un tableur peut offrir
- cliquer sur un nouveau bouton "réécrire les données dans QET" (bouton qui peut être réalisé par une macro du tableur)

...QET est invité par le tableur à réécrire les données dans ses fichiers...
...QET vérifie que le tableur ne lui envoie pas n'importe quoi...
...en cas de problème : on annule les modifs (on revient à QET) ou on revient au tableur pour correction, sinon...
...QET écrit les nouvelles données dans ses fichiers.

Buts de l'idée :

Considérablement augmenter la productivité de l'édition de plans électrotechniques en évitant de "cliquer comme un malade" sur le schéma pour modifier les propriétés d'éléments une par une.
Editer automatiquement des données à l'échelle du projet et non plus seulement au niveau du schéma ouvert.

Avantages de l'édition sous tableur :

- on dispose des fonctions "chercher et remplacer"
- on peut filtrer, classer, ordonner TOUTES les données mis à disposition par QET.
- on peut facilement incrémenter des variables (par ex. des désignations de composants, des numéros de bornes...) sans avoir à cliquer séparément sur les éléments dans QET
- on peut facilement éditer des données d'article (référence, désignation, fabricant...)
- on peut écrire des macros et là, la capacité de travail devient phénoménale !
- éventuellement faire vérifier la cohérence du plan par une macro tableur
Bref... on dispose de la flexibilité et de la puissance d'un tableur.

Voies d'implémentation dans QET:

A mon avis, il n'existe que 2 possibilités:
1. intégrer un tableur à QET (et allez... encore du boulot pour les programmeurs...)
2. concevoir une interface d'échange de données vers LibreOffice (et pourquoi pas MS Office)

Personnellement, je penche plutôt pour la possibilité 2 :
- on n'alourdit pas inutilement QET
- on profite de bons programmes Open Source déjà existants (dont l'avenir est plutôt sûr : que serait Linux sans un bon tableur ?!?)

Evidemment, il faudra créer une interface dans QET et définir des formats d'échange (txt, xml, csv..?), des répertoires lus et écrits par QET et le tableur. Je suis bien conscient que cela représente du travail mais ce serait vraiment pratique !

Avantages pour les développeurs de QET :

Par cette voie, on peut implémenter de nombreuses fonctionalités, qui, tôt ou tard, seront demandées à QET.
Par exemple : plutôt que de créer une fonction "numérotage automatique des borniers", on passe par le tableur, on modifie manuellement ou on lance une macro et c'est réglé !
QET serait étendu par de nombreuses fonctionalités ne dépendant plus de connaissances poussées en C++ et Qt. Savoir écrire une macro de tableur suffira pour résoudre une grande partie des problèmes. Et les macros pourront être mises à disposition sur qelectrotech.org... Du vrai OpenSource quoi !!!

Gros bémol :

Je ne suis pas développeur, donc incapable de sentir à priori la faisabilité de cette idée.
Quelques logiciels pros ont des tableurs intégrés, mais c'est souvent mal pensé et on n'a pas vraiment toutes les fonctions d'un tableur  à disposition (et il faut acheter une licence...).
Il va de soi que l'édition sous tableur n'a de sens que si l'échange de données entre QET et le tableur se fait "on the fly" (ou presque...) et ca, je ne sais pas si c'est faisable...


Qu'en pensez-vous ?

2

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Bonjour Nuri,

Bonne remarque nomicons/wink
Nous avons déjà pensé au fait d'ajouter une base de donnée constructeurs pour les champs du widget propriété du symbole posé dans les schémas, nos réflexions se sont heurtées au travail titanesque à produire ...
Le nombre important de constructeurs, de références, désignation, prix etc.
Comment gérer ces catalogues sous une quinzaine de langues diverses?
Les références d'un constructeur sur un produit sont elles identiques en français en anglais ou en russe? ...
De plus il est rare de trouver des catalogues tout fait au format base de données directement.
Volume de ces bdd?
Certes, il est possible de convertir des données CSV en sqlite ou  autres.

Pour en revenir sur ta proposition,
Je pense que ça devrait pas poser de problemes insurmontables comme les bdd.
Puisque il s'agit juste de rajouter des informations dans le xml du projet -> toXml(document));

3

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

http://download.tuxfamily.org/qet/forum_img/crossf-ref1.png

dans l'exemple de ce contacteur, ça a joute au fichier du projet ces informations supplémentaires:

<elementInformations>
                    <elementInformation name="manufacturer-reference" show="0">CAKN31B7</elementInformation>
                    <elementInformation name="machine-manufacturer-reference" show="0">contatcteur CA2-K  3F +1O</elementInformation>
                    <elementInformation name="comment" show="0">bobine EV montée</elementInformation>
                    <elementInformation name="manufacturer" show="0">Schneider</elementInformation>
                    <elementInformation name="label" show="1">KA1</elementInformation>
                </elementInformations>

Il est déjà possible de hacker le XML du projet pour ajouter ses propres informations.
Les outils sous gnu/linux sont légions pour ça nomicons/smile


<project folioSheetQuantity="0" title="" version="0.4">
    <properties/>
    <newdiagrams>
        <border displayrows="true" cols="17" displaycols="true" colsize="60" rows="8" rowsize="80"/>
        <inset title="test" folio="%id/%total" author="laurent" filename="ssd" date="now"/>
        <conductors num="_" vertirotatetext="270" type="multi" horizrotatetext="0" numsize="7"/>
        <report label="/%f.%l%c"/>
    </newdiagrams>
    <diagram title="test" displayrows="true" version="0.4" cols="17" folio="%id/%total" displaycols="true" height="660" colsize="60" order="1" rows="8" author="laurent" filename="ssd" date="20140305" rowsize="80">
        <defaultconductor num="_" vertirotatetext="270" type="multi" horizrotatetext="0" numsize="7"/>
        <elements>
            <element x="220" y="190" type="embed://import/03relayage/bobines/bobine3.elmt" uuid="{9ff8e951-d87d-42d2-a385-448a6c74f51f}" orientation="0">
                <terminals>
                    <terminal x="0" y="-17" nameHidden="0" number="_" id="0" name="_" orientation="0"/>
                    <terminal x="0" y="17" nameHidden="0" number="_" id="1" name="_" orientation="2"/>
                </terminals>
                <inputs>
                    <input x="2" y="19.3333" text="A2"/>
                    <input x="2" y="-16.6667" text="A1"/>
                    <input x="25" y="3.3333" text="KA1"/>
                </inputs>
                <elementInformations>
                    <elementInformation name="manufacturer-reference" show="0">CAKN31B7</elementInformation>
                    <elementInformation name="machine-manufacturer-reference" show="0">contatcteur CA2-K  3F +1O</elementInformation>
                    <elementInformation name="comment" show="0">bobine EV montée</elementInformation>
                    <elementInformation name="manufacturer" show="0">Schneider</elementInformation>
                    <elementInformation name="label" show="1">KA1</elementInformation>
                </elementInformations>
            </element>
        </elements>
    </diagram>
    <collection>
        <category name="import">
            <names>
                <name lang="ru">Импортированные элементы</name>
                <name lang="el">Εισηγμένα στοιχεία</name>
                <name lang="en">Imported elements</name>
                <name lang="it">Elementi importati</name>
                <name lang="fr">Éléments importés</name>
                <name lang="pl">Elementy importowane</name>
                <name lang="es">Elementos importados</name>
                <name lang="cs">Zavedené prvky</name>
            </names>
            <category name="03relayage">
                <names>
                    <name lang="el">Καλωδίωση</name>
                    <name lang="en">Wiring</name>
                    <name lang="it">Cablaggio</name>
                    <name lang="fr">Relayage</name>
                    <name lang="pl">Oprzewodowanie</name>
                    <name lang="cs">Zapojení</name>
                </names>
                <category name="bobines">
                    <names>
                        <name lang="ar">ملفات</name>
                        <name lang="de">Spulen</name>
                        <name lang="ru">Обмотки</name>
                        <name lang="pt">Bobines</name>
                        <name lang="el">Πηνία</name>
                        <name lang="en">Coils</name>
                        <name lang="it">Bobine</name>
                        <name lang="fr">Bobines</name>
                        <name lang="pl">Cewki</name>
                        <name lang="es">Bobinas</name>
                        <name lang="cs">Cívky</name>
                    </names>
                    <element name="bobine3.elmt">
                        <definition width="40" version="0.3" hotspot_x="20" hotspot_y="20" height="40" link_type="master" type="element" orientation="dnny">
                            <names>
                                <name lang="ar">ملف</name>
                                <name lang="de">Spule</name>
                                <name lang="ru">Обмотка</name>
                                <name lang="el">Πηνίο</name>
                                <name lang="en">Coil</name>
                                <name lang="it">Bobina</name>
                                <name lang="fr">Bobine</name>
                                <name lang="pl">Cewka</name>
                                <name lang="es">Bobina</name>
                                <name lang="cs">Cívka</name>
                            </names>
                            <informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
                            <description>
                                <rect width="28" x="-14" y="-8" antialias="false" height="16" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
                                <line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-8" x2="0"/>
                                <input x="2" y="19.3333" size="4" rotate="true" text="A2"/>
                                <input x="2" y="-16.6667" size="4" rotate="true" text="A1"/>
                                <line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="0" y2="20" x2="0"/>
                                <input x="25" y="3.3333" size="9" text="KA1"/>
                                <terminal x="0" y="-21" orientation="n"/>
                                <terminal x="0" y="21" orientation="s"/>
                            </description>
                        </definition>
                    </element>
                </category>
            </category>
        </category>
    </collection>
</project>

4 (edited by Nuri 2014-03-05 16:29:44)

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Salut Scorpio,

oui, je te suis complètement: ne surtout pas faire de bases de données !!! Ce serait le début de la fin... le travail est gigantesque, personne ne pourra actualiser les données constructeurs, ce sera bardé d'erreurs et à la fin chacun fait sa bdd comme il l'entend... il n'y a qu'à voir comment les logiciels pros se cassent les dents avec ce genre de projets utopiques...
Travail totalement inutile, on est d'accord.

Mais ce n'était pas vraiment l'objet de ma suggestion !

Je me vois bien bosser avec QET et LibreOffice ouverts en parallèle. LibreOffice servant d'extension de la GUI de QET.
Au lieu d'implémenter un petit tableur incomplet à QET qu'il faudra coder, déboguer, améliorer...
QET gère le graphisme et les projets, LibreOffice édite les données (en plus de ce que QET sait déjà faire, pas à la place de QET).
Eplan dispose d'un tableur intégré, mais c'est assez pourri... Vu le prix des licences, c'est carrément une honte.
Mais l'idée est bonne en soi !
A partir d'une certaine échelle, dès que l'on veut travailler des blocs de données, la tableur s'impose ! Hop, je switch vers LibreOffice, modifs terminées je retourne sur QET. Donc tout le raffinement consiste à établir une bonne liaison entre les 2 progs permettant de switcher très rapidement de l'un à l'autre (sans passer par des import/export explicites, "voulez-vous enregistrer le fichier ?", "où ?"... beaucoup trop lourd à l'utilisation).

S'il y a de l'intérêt, je peux mettre l'idée QET/Tableur sur papier. Etant donné que je ne sais pas coder, je peux uniquement faire une description de fonctionnement et peut-être qu'un développeur s'y mettra...

5

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Oui, il y a de l’intérêt dans tes remarques.
Autant Qt permet de construire un mini tableur, dans le libre on aime pas re inventer la roue... autant ce servir de LibreOffice.
De plus il semble qu'il puisse travailler directement sur un import export direct en xml avec calc.
https://help.libreoffice.org/Common/Cre … Filters/fr

[XML Filter] Create XSLT filters for import and export
https://forum.openoffice.org/en/forum/v … 0&f=45

De plus les données à gérer seraient en soit limités à:
manufacturer
manufacturer-reference
machine-manufacturer-reference
comment

6 (edited by Joshua 2014-03-05 19:10:57)

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Salut Nuri,

Merci de tes suggestion très intéressante,
est ce possible -> oui tout est faisable, ce n'est qu'une question de temps et ressource (et dans c'est deux dernier on est pas au top, mais on fait de notre mieux).


S'il y a de l'intérêt, je peux mettre l'idée QET/Tableur sur papier. Etant donné que je ne sais pas coder, je peux uniquement faire une description de fonctionnement et peut-être qu'un développeur s'y mettra...

-> je veut bien que tu nous envoie tes idée de manière plus concrète et expliqué afin de pouvoir envisagé cela.


Donc tout le raffinement consiste à établir une bonne liaison entre les 2 progs permettant de switcher très rapidement de l'un à l'autre (sans passer par des import/export explicites, "voulez-vous enregistrer le fichier ?", "où ?"... beaucoup trop lourd à l'utilisation).

-> veut tu dire par la que qet devrait surveillé les changements du fichier en question, et appliqué les changement sans demandé à l'user?

Je travail actuellement sur les ref croisé et par la suite probablement sur les fonctionnalité de bornier (car ce sont de grosse fonctionnalité manquante) , étant actuellement deux dev pour qet (Abishek et moi même) la fonctionnalité de tableur ne sera probablement pas faite dans un avenir proche (pas pour la 0,4 de sur).
Cela ne veut pas dire qu'on ne le fera pas, juste question de priorité de feature (regarde la todo list, elle déborde...).

Merci de tes idées.
Joshua

7

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Ou directement un tableur en interne

http://www.os4depot.net/index.php?funct … esheet.lha
http://qt-apps.org/content/show.php/QSi … tent=75343

https://qt-project.org/doc/qt-5.0/qtwid … sheet.html
http://docs.huihoo.com/qt/4.4/demos-spreadsheet.html

8

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Bonsoir,

Is it posible to connect qelectrotech to a database?, as it is posible then i have create an excel file witch i use to update an mdb file with artikels, and read these back, maby it is posible to add an option to when you has selected an artikel to. Create then THE nesccearie xml code to copy and paste it into an element. THE excel is creaties to copy paste artikels from a webshop, to import xls files from manufactors and Load them into THE database

On this way you can have a tool to manage artikel information
I work with this xls with About +150000 artikel revérences

Sorry for THE strange typing, but THE speller is dutch and i get. som strange reactions and effects on my ipad when typing in oder Langes

9

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Pour ma part je trouve qu'il serait mieux d'utiliser un tableur tel que openoffice ou excel car on est tous habitué de fonctionner avec cela autant pour le drag &drop, copier coller ect ... l'édition se fait rapidement puisqu'on maîtrise déjà bien ces logiciels

10

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Le projet.qet est un simple fichier XML, qui peut être ouvert avec LibreOffice en le renommant en XML pour les filtres.
Faut juste créer le filtre import.xlst qui va bien sur /project/diagram/elements/element/elementInformations
pour editer les "label, comment, designation, manufacturer, manufacturer-reference, machine-manufacturer-reference".
Et un filtre export.xlst pour convertir et sauvegarder les modifications dans le XML.

elementInformations": {
              "elementInformation": [
                {
                  "-name": "manufacturer-reference",
                  "-show": "0",
                  "#text": "3RT2015-1BB42"
                },
                {
                  "-name": "machine-manufacturer-reference",
                  "-show": "0",
                  "#text": "test"
                },
                {
                  "-name": "comment",
                  "-show": "1",
                  "#text": "CONTACTEUR POMPE"
                },
                {
                  "-name": "manufacturer",
                  "-show": "0",
                  "#text": "siemens"
                },
                {
                  "-name": "label",
                  "-show": "1",
                  "#text": "KM1"
                },
                {
                  "-name": "designation",
                  "-show": "0",
                  "#text": "125"
                }

https://forum.openoffice.org/en/forum/v … slt#p15517
https://forum.openoffice.org/en/forum/v … p;start=30
https://help.libreoffice.org/Common/Cre … Filters/fr

https://forum.openoffice.org/en/forum/v … mp;t=11865

http://openclassrooms.com/courses/les-b … -avec-xslt


Si quelqu'un connait bien les filtres xlst...


http://download.tuxfamily.org/qet/forum_img/xlst.png

11

Re: SUGGESTION : éditer les données QET dans un tableur (on the fly)

Bonjour,
C'était le sens de ma proposition dans mon message du 5 Nov.2014.
Il ne s'agit d'incrémenter le label K4M à K5M, mais par exemple:

  • sur la base d'un numéro d'article ou d'une position d'aller chercher dans une base de données extérieure tout les informations de cet article pour Qelectrotech (j'ai un projet qui dure depuis 2008 avec env. 1000 articles.)

  • Ou d'actualiser / d'échanger les opérandes d'un API (j'en ai environ 2000).

  • Cette manière d'opérer permet à Qelectrotech de rester simple, mais à chaque utilisateur d'adapter Qelectrotech a ses besoins, de plus si un utilisateur ne possède pas l'extension "LibreOffice", il peut quand même ouvrir, lire et modifier les schémas.

Citation:
"une idée: Interface avec des applications extérieures (ActiveX) : A la place d'afficher une boîte de dialogues "propriété élément", QElectroTech sauve le code xml (les labels !)  + un numéro concernant la boîte de dialogue qui aurait du être affichée, sur le disque dur. L'utilisateur modifie le code xml (essentiellement texte et champs de texte, event. apparence), incrémente le numéro et sauve les modifications. Lorsque QElectroTech remarque que le numéro à été incrémenté il actualise le projet.La consistance, le contrôle des modifications et du ressort de l'utilisateur. QElectroTech a un bouton de commande "Boîte de dialogue"  ou "Extern".

Tout les système d'exploitation peuvent repérer un nouveau fichier, le modifier et le sauver.
Bonne salutations.
Bernard_andre