Ik ben alweer een tijdje aan 't prutsen, maar krijg het niet voor elkaar. Ik probeer het volgende te doen:
Ik haal een recordset op, persist die in een XML object en jas die samen met een XSL door een XSLT Processor. Nu kom ik 2 problemen tegen, waarvan ik er 1 (nogal ranzig) heb opgelost maar waar ik niet erg tevreden over ben.
Het project is als volgt:
Ik maak een bezorglijst voor een Pizza-Groothandel (fictief) gegroepeerd per datum waarop de pizza's bezorgd moeten worden en daarbinnen gegroepeerd per klant. Ik wil nu per klant een subtotaal weergeven, zodat de chauffeur niet alleen weet wat hij moet afleveren, maar ook wat hij moet afrekenen (de klant krijgt een factuur in envelop).
De problemen:
* RobIII Probleem 1 Ik vergelijk klant-id's met het volgende record, en als deze niet gelijk zijn dien ik een subtotaal weer te geven. Ja, de recordset is altijd gesorteerd op datum en klant. Als ik de ID's met elkaar vergelijk krijg ik echter maar soms een subtotaal, en soms niet. Hiermee bedoel ik het volgende:
In mijn XSL staat de regel:
Dit werkt soms wel, soms niet. Ik heb dat als volgt opgelost:
Ik tel er 0 bij op (waardoor het waarschijnlijk gecast wordt naar een number of int ofzo). Dan werkt het dus wel.
Iemand enig idee hoe ik dit netter oplos
De huidige oplossing werkt wel, maar dat moet netter kunnen. Ik kan alleen nergens iets vinden als een "Convert", "Cast", "toInt" of iets dergelijks om dit tot een goed einde te brengen.
* RobIII Probleem 2 Ik wil een subtotaal per klant berekenen. Ik heb al vanalles geprobeerd met sum() met bepaalde selects e.d., maar behalve een hele boel errors of NaN-waardes krijg ik er weinig zinnigs uit.
Ik heb nu:
Ik probeer dus een subtotaal in een variabele te gooien, en deze op de juiste plaats af te drukken. Dit werkt dus niet, want ik krijg NaN. Ook heb ik geprobeerd het in een for-each loop op te lossen, maar dat kreeg ik ook niet werkend.
De bestanden
De bestanden waarom het gaat heb ik ingekort zodat ze goed leesbaar zijn en gezipt op onze webspace gegooid. Wil een XSL guru hier eens zijn licht op laten schijnen en dit probleem bekijken?
De zipfile vind je hier. (3Kb, 3 bestanden XML, XSL en CSS)
Ik vraag niet om een compleet uitgewerkte oplossing, maar een vinger in de juiste richting of een URL-etje zou ik erg op prijs stellen.
En wee degene die met w3schools komt aanpoepen
Die heb ik namelijk al uit
Ik haal een recordset op, persist die in een XML object en jas die samen met een XSL door een XSLT Processor. Nu kom ik 2 problemen tegen, waarvan ik er 1 (nogal ranzig) heb opgelost maar waar ik niet erg tevreden over ben.
Het project is als volgt:
Ik maak een bezorglijst voor een Pizza-Groothandel (fictief) gegroepeerd per datum waarop de pizza's bezorgd moeten worden en daarbinnen gegroepeerd per klant. Ik wil nu per klant een subtotaal weergeven, zodat de chauffeur niet alleen weet wat hij moet afleveren, maar ook wat hij moet afrekenen (de klant krijgt een factuur in envelop).
De problemen:
* RobIII Probleem 1 Ik vergelijk klant-id's met het volgende record, en als deze niet gelijk zijn dien ik een subtotaal weer te geven. Ja, de recordset is altijd gesorteerd op datum en klant. Als ik de ID's met elkaar vergelijk krijg ik echter maar soms een subtotaal, en soms niet. Hiermee bedoel ik het volgende:
In mijn XSL staat de regel:
code:
1
2
3
4
5
| <xsl:if test="not (current()/@kl_id = following-sibling::z:row/@kl_id)">
<!-- Subtotaal per klant rij -->
...
...
</xsl:if> |
Dit werkt soms wel, soms niet. Ik heb dat als volgt opgelost:
code:
1
2
3
4
5
| <xsl:if test="not (((current()/@kl_id)+0) = ((following-sibling::z:row/@kl_id)+0))">
<!-- Subtotaal per klant rij -->
...
...
</xsl:if> |
Ik tel er 0 bij op (waardoor het waarschijnlijk gecast wordt naar een number of int ofzo). Dan werkt het dus wel.
Iemand enig idee hoe ik dit netter oplos
* RobIII Probleem 2 Ik wil een subtotaal per klant berekenen. Ik heb al vanalles geprobeerd met sum() met bepaalde selects e.d., maar behalve een hele boel errors of NaN-waardes krijg ik er weinig zinnigs uit.
Ik heb nu:
code:
1
| <xsl:variable name="subtot" select="sum(xml/rs:data/z:row/@totaalex)"/> |
Ik probeer dus een subtotaal in een variabele te gooien, en deze op de juiste plaats af te drukken. Dit werkt dus niet, want ik krijg NaN. Ook heb ik geprobeerd het in een for-each loop op te lossen, maar dat kreeg ik ook niet werkend.
De bestanden
De bestanden waarom het gaat heb ik ingekort zodat ze goed leesbaar zijn en gezipt op onze webspace gegooid. Wil een XSL guru hier eens zijn licht op laten schijnen en dit probleem bekijken?
De zipfile vind je hier. (3Kb, 3 bestanden XML, XSL en CSS)
Ik vraag niet om een compleet uitgewerkte oplossing, maar een vinger in de juiste richting of een URL-etje zou ik erg op prijs stellen.
En wee degene die met w3schools komt aanpoepen
[ Voor 9% gewijzigd door RobIII op 07-05-2004 12:10 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij