Bonjour,

J'ai un souci que je n'arrive pas à résoudre, et me voilà bien embêté, j'ai l'impression d'avoir les neurones en pelote.

J'ai normalement une liste de mouvements de produits à afficher, avec un sous-total par produit. Et c'est là que je bloque.
Je voudrais pouvoir sortir une ligne du bloc total, après les lignes détail, mais çà ne fonctionne pas bien entendu. Je trouve mes lignes détail d'abord, puis mes lignes total regroupées en bas.
Je sais faire des imbrications, mais dans ce cas, j'ai mon total en 1ère ligne... Et forcément je le veux en dernière ligne.
Çà doit être évident mais je suis fatigué là.

Voici en résumé, les blocs et le PHP qui me sort les lignes détails d'abord, lignes total ensuite (j'ai simplifié et virer des lignes de codes inutiles pour gagner en lisibilité) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            <!-- BEGIN TABLEROW -->
            <tr>
              <td align="right">{REPLIG} </td>
              <td align="left"> {NUMACC}</td>
              <td align="left">{REFCON}</td>
              <td align="left">{REFDES}</td>
              <td align="right">{QTECON}</td>
              <td align="center">{GARANT}</td>
              <td align="center">{REPDCO}</td>
            </tr>
            <!-- END TABLEROW -->
            <!-- BEGIN TABLETOT -->
            <tr bgcolor="#dddddd">
              <td align="right" colspan="2">Total </td>
              <td align="left">{REFCON}</td>
              <td align="left">{REFDES}</td>
              <td align="right"><b>{QTECON}</b></td>
              <td colspan="2"> <br />
              </td>
            </tr>
            <!-- END TABLETOT -->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Création du template
$template = new template(".");
 
// Indication du fichier tpl servant de modèle
$template->set_file("LstConsRep","LstConsRep.tpl");
 
// -- Déclaration du bloc TABLEROW
$template->set_block("LstConsRep","TABLEROW","tablerow");
// -- Déclaration du bloc TABLETOT
$template->set_block("LstConsRep","TABLETOT","tabletot");
 
// Tant que des enregs
while($Rcd) {
	// Tant que des enregs et même référence
	while(($Rcd) and ($SameRef)) {
 
		$QteTot += $QteCon;
		$template->set_var("REPLIG",$RepNum);
		$template->set_var("REFCON",$RefCon);
		$template->set_var("REFDES",$RefDes);
		$template->set_var("QTECON",$QteCon);
		// Ecriture du bloc TABLEROW
	  	$template->parse("tablerow", "TABLEROW", true);
	}
	$template->set_var("REFCON",$SavRef);
	$template->set_var("REFDES",$SavDes);
	$template->set_var("QTECON",$QteTot);
        // Quantité totale remise à 0
	$QteTot = 0;
}
 
// Traitement de la page entière
$template->parse("parse", "LstConsRep", true);
 
 
// Suppression des blocs simples sans valeur ou boucles non utilisés (ici aucun)
// Affichage de la page
$template->p("parse");
Voici les blocs et le PHP qui me sort (solution en service) chaque ligne total avant les lignes détail associées :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            <!-- BEGIN TABLETOT -->
            <tr>
              <td align="right">Total </td>
              <td align="left">{REFCON}</td>
              <td align="left">{REFDES}</td>
              <td align="right"><b>{QTECON}</b></td>
              </td>
            </tr>
            <!-- BEGIN TABLEROW -->
            <tr>
              <td align="right">{REPLIG} </td>
              <td align="left">{REFCON}</td>
              <td align="left">{REFDES}</td>
              <td align="right">{QTECON}</td>
            </tr>
            <!-- END TABLEROW -->
            <!-- END TABLETOT -->
Le code PHP est le même à l'exception de l'ajout après la remise à 0 de la variable $QteTot de la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
	$template->set_var("tablerow",""); 				// ligne à ne pas oublier sous peine de surprise !!!
Une âme charitable saura t-elle dénouer les nœuds que je me suis fais tout seul ?