Allereerst, ik ben een volledige beginner op het gebied van Javascript (en op code kloppen in het algemeen, for that matter). Ik heb de afgelopen anderhalve dag zitten proberen en lezen om dit werkend te krijgen maar ik kan wel wat hulp gebruiken. Ik heb al behoorlijk was beginnersartikelen e.d. gelezen maar ik denk dat ik nog wel een maandje aan het lezen ben voor ik weet wat ik moet weten.
De helpfile bevat codereferenties en aanwijzingen, maar ik kom er nog niet uit.
Ik ben bezig met het maken van een rapport in (Oracle) Hyperion Intelligence Explorer. Deze maakt gebruik van een SQL-database. Met Javascript kunnen de uitgelezen gegeven uit die database vervolgens aangeroepen en bewerkt worden:

Voor zover het van belang is, de procedure is als volgt:
Allereerst wordt in de "Query"-sectie op een redelijk simpele manier een query gebouwd met joins etc. De resultaten van die query zijn vervolgens te zien in de "Results"-sectie. Dit ziet er als volgt uit:

Door middel van "Add Computed Item" kan ik een kolom bijmaken en vullen m.b.v. Javascript.
Ik wil nu voor de zaken waar een regeling getroffen is (als er gegevens staan in de kolom "Id_Ribbedr" dan is dit het geval) een lopende zin maken met het bedrag en de periode. De periode staat in de kolom "Periode".
Als er dus een regeling getroffen is van €100,50 per maand moet er in mijn "Computed"-kolom komen te staan: "Er is een regeling getroffen van €100,50 per maand.
Na enig zwoegen is dit ongeveer gelukt, en wel met de volgende code:
Resultaat: "Er is een regeling getroffen van €100,5 per maand."
Er mist dus een nul. Twee opties kwamen in mij op:
1. Zoek een manier om een gedeelte van de gegenereerde zin (het bedrag) "opmaak" mee te geven zodat het bedrag ook gezien wordt als bedrag en de rest van de zin als tekst.
Geprobeerd:
En vele vele varianten hierop (de meeste met incorrecte syntax, maar ook met "juiste" syntax (voor zover ik dat kan zien) die als resultaat "#NAME" of "#ERROR" gaven).
2. Neem de waarde uit "Id_Ribbedr" en zet die in een variabele om die vervolgens op te roepen midden in de zin.
Dit heb ik als volgt geprobeerd:
Hier heb ik ook een aantal varianten op geprobeerd echter steeds met als resultaat "#NAME". Voor zover ik JS nu begrijp, zou de laatstgenoemde code moeten werken, maar dat doet 'ie dus niet en een mogelijkheid om te tracen of debuggen is mij niet bekend.
Dit is voor jullie vast ubersimpel maar ik kom er echt niet uit.
De helpfile bevat codereferenties en aanwijzingen, maar ik kom er nog niet uit.
Ik ben bezig met het maken van een rapport in (Oracle) Hyperion Intelligence Explorer. Deze maakt gebruik van een SQL-database. Met Javascript kunnen de uitgelezen gegeven uit die database vervolgens aangeroepen en bewerkt worden:

Voor zover het van belang is, de procedure is als volgt:
Allereerst wordt in de "Query"-sectie op een redelijk simpele manier een query gebouwd met joins etc. De resultaten van die query zijn vervolgens te zien in de "Results"-sectie. Dit ziet er als volgt uit:

Door middel van "Add Computed Item" kan ik een kolom bijmaken en vullen m.b.v. Javascript.
Ik wil nu voor de zaken waar een regeling getroffen is (als er gegevens staan in de kolom "Id_Ribbedr" dan is dit het geval) een lopende zin maken met het bedrag en de periode. De periode staat in de kolom "Periode".
Als er dus een regeling getroffen is van €100,50 per maand moet er in mijn "Computed"-kolom komen te staan: "Er is een regeling getroffen van €100,50 per maand.
Na enig zwoegen is dit ongeveer gelukt, en wel met de volgende code:
JavaScript:
1
| if (Id_Ribbedr > "0") {"Er is een regeling getroffen van €" + Id_Ribbedr + " per " + Periode + "."} |
Resultaat: "Er is een regeling getroffen van €100,5 per maand."
Er mist dus een nul. Twee opties kwamen in mij op:
1. Zoek een manier om een gedeelte van de gegenereerde zin (het bedrag) "opmaak" mee te geven zodat het bedrag ook gezien wordt als bedrag en de rest van de zin als tekst.
Geprobeerd:
JavaScript:
1
| if (Id_Ribbedr > "0") {"Er is een regeling getroffen van €" + toPrecision(2) Id_Ribbedr + " per " + Periode + "."} |
JavaScript:
1
| if (Id_Ribbedr > "0") {"Er is een regeling getroffen van €" + Id_Ribbedr.toFixed(2) + " per " + Periode + "."} |
En vele vele varianten hierop (de meeste met incorrecte syntax, maar ook met "juiste" syntax (voor zover ik dat kan zien) die als resultaat "#NAME" of "#ERROR" gaven).
2. Neem de waarde uit "Id_Ribbedr" en zet die in een variabele om die vervolgens op te roepen midden in de zin.
Dit heb ik als volgt geprobeerd:
JavaScript:
1
2
| var bedrag=ActiveDocument.Sections["Results"].Columns["Id Ribbedr"].GetCell(); if (Id_Ribbedr > "0") {"Er is een regeling getroffen van €" + bedrag.toFixed(2) + " per " + Periode + "."} |
Hier heb ik ook een aantal varianten op geprobeerd echter steeds met als resultaat "#NAME". Voor zover ik JS nu begrijp, zou de laatstgenoemde code moeten werken, maar dat doet 'ie dus niet en een mogelijkheid om te tracen of debuggen is mij niet bekend.
Dit is voor jullie vast ubersimpel maar ik kom er echt niet uit.