Avatar billede rene_petersen Nybegynder
12. maj 2003 - 15:33 Der er 10 kommentarer og
1 løsning

Foretage beregninger via JavaScript

I forbindelse med en site om salg af erhvervsgrunde skal jeg bruge et beregningsskema der kan udregne de samlede omkostninger ved et køb.

Regnestykket ser sådan ud:
B1 Købesum (indtastes af bruger)
B2 Tilslutningsbidrag (indtastes af bruger)
B3 Skøde (BEREGNES på basis af B1 (0,006 x B1 + 1.400 kr)
B4 Pantebrev (BEREGNES på basis af B1 (0,015 x (0,8 x B1)+ 1.400 kr)
B5 Eltilslutning (Indtastes af bruger)
B6 Vandtilslutning (Indtastes af bruger)
B7 Varmetilslutning (indtastes af bruger)

I alt (BEREGNES B1+B2+B3+B4+B5+B6+B7)

Jeg har ikke forstand på JavaScript, men jeg kan se at man kan indtaste et færdigt script i pdf-dokumentet. Det er netop dette script jeg er ude efter. 

Beregningsskemaet er ret vigtigt for mig, så jeg håber der er nogen der kan hjælpe mig.

Venlig hilsen
René
Avatar billede olebole Juniormester
12. maj 2003 - 15:38 #1
<ole>

Ehhh .... "i pdf-dokumentet"? Er du sikker på, du kan afvikle JavaScript i en pdf?
Jeg kan hjælpe dig med et HTML-dokument  :)

/mvh
</bole>
Avatar billede olebole Juniormester
12. maj 2003 - 16:00 #2
Du kan gøre noget à la:

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.B1.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    f.B8.value = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>

/mvh
Avatar billede skovenborg Nybegynder
12. maj 2003 - 22:50 #3
For en god ordens skyld kunne du jo skrive
Skøde: <input type="text" name="B3" maxlength=0>
Pantebrev: <input type="text" name="B4" maxlength=0>

Bare så brugeren ikke begynder at skrive noget unødvendigt.
Avatar billede grunken Nybegynder
12. maj 2003 - 22:59 #4
ole ->

i pdf kan du sagtens afvikle js, dette er lige p.t. en af adobes største huller :/

http://partners.adobe.com/asn/developer/pdfs/tn/5186AcroJS.pdf
Avatar billede skovenborg Nybegynder
12. maj 2003 - 23:04 #5
Undskyld - brug hellere readonly altså
<input type="text" name="B3" readonly>
Avatar billede rene_petersen Nybegynder
13. maj 2003 - 09:11 #6
Olebole

Tak for det, jeg har prøvet dit script og det ser ud til at virke.
Jeg er dog kommet til at lave en fejl da jeg beskrev skemaet. Brugeren skal ikke selv kunne indtaste tilslutningsbidraget, dette skal altid være 0 kr. Til gengæld skal brugeren kunne indtaste et beløb på nogle udstykningsomkostninger. Jeg tænkte også på at det kunne være smart hvis købesummen kunne beregnes ud fra et antal m2 og en pris på m2.

Rent designmæssigt kunne det også være rart med et par ændringer. Jeg har forsøgt at lave et html dokument der viser hvordan jeg forestiller mig at det endelige dokument skal se ud:


<html>
<table border="1" width="604">
  <tr>
    <td colspan="2"><p align="center"><font face="Arial"> <big><strong>Beregninsgskema til
    brug ved køb af erhvervsjord</strong></big></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><strong>Købesum:</strong> </font></td>
    <td><font face="Arial">Ialt</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Antal m2 <input type="text" name="T1" size="4">,&nbsp; pris på m2 <input
    type="text" name="T1" size="4"></font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr. </font></td>
  </tr>
  <tr>
    <td><font face="Arial"><strong>Kloak:</strong><br>
    (Tilslutningsbidraget er indluderet i købesummen)</font></td>
    <td><p align="right"><font face="Arial"> 0 Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial"><strong>Udstykningsomkostninger:</strong><br>
    (Køber betaler halvdelen af udstykningsomkostningerne)</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial"><strong>Tinglysningsafgifter:</strong></font></td>
    <td><font face="Arial">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Skøde - beregnes automatisk</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Pantebrev - beregnes automatisk</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial"><br>
    Omkostninger udenfor købesum:</font></td>
    <td><font face="Arial">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Eltilslutning:</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Vandtilslutning:</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial">Varmetilslutning:</font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
  <tr>
    <td><font face="Arial"><input type="submit" value="Beregn samlede udgifter" name="B1"></font></td>
    <td><p align="right"><font face="Arial"><input type="text" name="T1" size="13">Kr.</font></td>
  </tr>
</table>
</html>

Kan dette lade sig gøre i JavaScript ?

Venlig hilsen
René
Avatar billede rene_petersen Nybegynder
13. maj 2003 - 10:45 #7
Olebole
Har fundet ud af det med designet.
Nu mangler jeg kun én ting før skemaet er perfekt - og du får 200 p.
Jeg vil gerne have skemaet til at kunne beregne købesummen.
Jeg forestiller mig at beregningne skal kunne foretages ved at brugeren indtaster det ønskede antal m2 (L1) og prisen på m2 (L2). Hvad skal der ændres for at dette kan lade sig gøre ?
MVH René
Ve
Avatar billede rene_petersen Nybegynder
13. maj 2003 - 11:23 #8
Jeg har forsøgt at rette Scriptet til, men der er et eller andet der ikke virker - er der nogen der kan sige hvad der er galt ?

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.B1.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Du har glemt at udfylde ét eller flere felter");
        return false;
    }
    f.B1.value = (f.L1.value*f.L2.value)
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    f.B8.value = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

Jeg har indsat denne i det oprindelige script:
f.B1.value = (f.L1.value*f.L2.value)

L1=antal m2 og L2=pris på m2.
Det er planen at disse to skal ganges med hinanden, så man får B1. B1 bruges så senere til at beregne B3 og B4

Hvad går der galt ?

Venlig hilsen
René
Avatar billede olebole Juniormester
13. maj 2003 - 12:20 #9
Jeg skal kikke på det senere idag, rene - jeg har lidt travlt lige nu  :)
/mvh
Avatar billede rene_petersen Nybegynder
15. maj 2003 - 09:16 #10
olebole
Jeg har fundet en løsning på det sidste lille problem - du havde jo løst langt det meste. Smid et svar ind og indkasser dine 200 velfortjente point.

Mange tak for hjælpen
René
Avatar billede olebole Juniormester
22. maj 2003 - 22:59 #11
Hej René ... undskyld forsinkelsen, men jeg er lige flyttet og har måtte vente lidt på mit bredbånd  :)
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester