TinyButStrong - the PHP Template Engine
Categories > OpenTBS with ODS >

[fr] Construire un modele ods avec des block automatiquement imbriquées

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs

By: Ralph7
Date: 2014-11-28
Time: 01:00

[fr] Construire un modele ods avec des block automatiquement imbriquées

Bonjour à tous,

J'ai construis récemment  un modèle odt avec lequel j ai pu effectuer une edtion sur des blocks automatiquement imbriquées.
La logique utilisée pour la création de mon model odt consistait à créer des cellules dans d autres cellules(autrement dit, des tableau à 1 ligne une colonne), que je scindais alors ensuite selon mes préférences, jusqu'à obtenir le niveau d imbrication souhaité. Tout s'est alors bien passé.
(Voir http://www.tinybutstrong.com/forum.php?thr=3459#m14604 )

Seulement à présent je souhaite effectuer ce même travail avec un modèle ods. Or la notion de construction de  "tableau" sous OpenOffice Calc n' est pas proposée comme une "manipulation" utilisateur (du moins il me semble) au sens où je peux réaliser à peu pres la meme operation que sous OpenOffice Writer...

Je suis donc un peu bloqué, je n'arrive pas à reproduire le concept de block imbriqués, tel que fait précédemment dans mon modèle odt.

Quelqu'un aurait-il une suggestion à me faire? Toutes propositions seraient la bienvenue,

Je vous remercie.
By: Skrol29
Date: 2014-11-28
Time: 22:38

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

Bonjour Ralph7,

Avec une feuille de calcul tu ne peux pas définir un tableau dans un tableau.
En fait il n'y a pas de tableau, il y a une plage de cellules. On peut voir cette plage de cellules comme un grand tableau, mais dans tout les cas il ne peut y en avoir qu'un seul par feuille.

La solution c'est de voir un bloc TBS à fusionner comme un groupe de lignes.
Si je reprends ton modèle dans le file dont tu parle, cela donne :
[detail.cod_class;block=tbs:row+tbs:row+tbs:row;sub1=list_cpte] (défini sur 3 lignes donc inclue les deux autres qui suivent)
[detail_sub1.cod_cpte;block=tbs:ros+tbs:row;sub1=detail_cpte] (défini sur 2 lignes donc inclue celle qui suit)
[detail_sub1_sub1.lib_ecrit;block=tbs:row]
By: Ralph7
Date: 2014-12-01
Time: 19:02

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

Merci pour le retour rapide Skrol29 !

J'ai essayé de faire telle que tu m as indiqué, mais voici le message d erreur que j obtiens :

" Fatal error: Uncaught exception 'tinyDocException' with message 'at least one tag corresponding to tbs:row+tbs:row+tbs:row is not found. Check opening tags, closing tags and embedding levels.' in /lib/tinyDoc.class.php:1578 Stack trace: #0 /lib/edition/tinyDoc-1.0.3/lib/tbs_class.php(1620): tinyDoc->meth_Misc_Alert(Object(clsTbsLocator), 'at least one ta...', false, 'in block's defi...') #1 /lib/edition/tinyDoc-1.0.3/lib/tbs_class.php(1719): clsTinyButStrong->meth_Locator_FindBlockNext('meth_Locator_FindBlockLst('meth_Merge_Block('..."


Peux-tu s'il te plait m expliquer la différence entre la définition des blocks avec: "block=tbs:row" et "block=table:table-row"  ?
En effet, dans mes modèles odt/ods c'est la 2ème que j ai toujours utilisé.

Mais dans ce cas, quand j 'essaie avec cette 2e définition qui m est familière, obtiens un résultat avec plusieurs feuilles vides, seuls les informations de 1er niveau sont mergées (donc les cod_class)...

Une idée ?

Merci.
By: Skrol29
Date: 2014-12-01
Time: 23:35

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

> Peux-tu s'il te plait m expliquer la différence entre la définition des blocks avec: "block=tbs:row" et "block=table:table-row"  ?

"tbs:row" est un alias qui reste le même dans tous les documents Ms Office et LibreOffice.
Pour un ODS, "tbs:row" est un alias de "table:table-row".
Les alias de bloc sont supportés depuis OpenTBS 1.8.0.
By: Skrol29
Date: 2014-12-02
Time: 11:10

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

heu... y'a de l'écho dans cette pièce
By: Ralph7
Date: 2014-12-02
Time: 11:40

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

Oui, désolé pour le dernier post; C' était une erreur. J ai pas su comment faire pour supprimer...

Merci pour l 'information sur le rapport entre les deux définitions.

Ceci dit, j'ai effectué d'autres tests. Et le merge marche à présent pour tous les niveaux d imbrications !
Je me suis rendu compte que ca ne marchait pas dans mon 1er essai parce que je placais le bloc racine en dessous des autres.

Donc quand je les place dans mon modèle dans l'ordre indiquée dans le ticket d'origine (racine vers les feuilles), tout se passe bien.

Seulement je ne suis pas encore au bout de ma peine! Car ce que je souhaite faire à présent, ce sont les choses suivantes:

[ Mais avant quelques précisions :
- Les trois niveaux d imbrications de sous-blocks que j utilise sont ceux ci: Les classes de compte (niveau 1), Les Comptes (niveau 2), Les Ecritures pour chaque compte (Niveau 3).
- Ainsi, on a plusieurs écritures par compte, et plusieurs comptes par classe
- Une écriture contient des informations tels que numéro de lot, débit, crédit, solde,... ]

1 - Dans chaque sous-block 'comptes' comment afficher aussi les totaux(débit, crédit) sur une ligne indépendante de l ensemble des lignes des 'écritures' ?
2-  Dans chaque block 'classes'  comment afficher aussi les totaux  sur une ligne indépendante de l ensemble des blocks des 'comptes'?
3-  si possible, comment placer d'autres informations à merger pour les blocks 'classes', juste en dessous des informations des blocks 'comptes'


Merci d'avance pour toute contribution utile !

PS: Est il possible de joindre une capture d écran? Je ne vois pas comment faire... Juste au cas où cela aiderait à y voir plus clair dans ma pensée.
By: Raoul7
Date: 2014-12-09
Time: 18:42

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

Permettez moi de vous relancer par rapport à ce problème...

Merci!

By: Skrol29
Date: 2014-12-10
Time: 01:14

Re: [fr] Construire un modele ods avec des block automatiquement imbriquées

Bonjour,

Pour les totaux, tu peux les calculer côté PHP et les enregistrer dans les entité de niveau Classe et Compte.
Tu peux essayer le plug-in Aggregate (voir ici http://www.tinybutstrong.com/plugins.php). Ce plug-in peut s'installer avec OpenTBS.
Mais en tout état de cause je pense que tu n'y arriveras pas avec des formules de total dans l'ODS. Ces formules deviendront incohérentes lors de la fusion car elles sont enregistrées avec les références des cellules.

Une fois que tu as calculé les totaux, il suffit d'ajouter un ligne dans le bloc correspondant.
Exemple:
[detail.cod_class;block=tbs:row+tbs:row+tbs:row+tbs:row+tbs:row;sub1=list_cpte] (défini sur 5 lignes y compris sa ligne de total)
[detail_sub1.cod_cpte;block=tbs:row+tbs:row+tbs:row;sub1=detail_cpte] (défini sur 3 lignes y compris sa ligne de total)
[detail_sub1_sub1.lib_ecrit;block=tbs:row]
Total Compte : [detail_sub1.total_compte]
Total Classe : [detail.total_class]