Avatar billede dj-sejler Praktikant
06. marts 2004 - 03:38 Der er 20 kommentarer og
1 løsning

regnestykker i asp

Hej... jeg kunne godt tænke mig at regne følgende ud:

1-(rs("rabat")/100) * rs("pris")

hvordan gør man det?
Avatar billede KingMedia Novice
06. marts 2004 - 09:09 #1
hvis du prøver at uddybe lidt bedre, med en forklaring på hvordan regnestykket skal opstilles, ville det være en hel del nemmere :o)
Avatar billede dj-sejler Praktikant
06. marts 2004 - 09:52 #2
jamen det er sådan set det jeg har gjort...

jeg ved ikke rigtig hvordan jeg skal gøre for at gøre det mere tydligt...
Avatar billede KingMedia Novice
06. marts 2004 - 10:42 #3
ja..  men en tekstlignende forklaring ?  :o)

hvad jeg kan se så skal du regne følgende ud..

rabat divideret med 100 (hvor det efterfølgende skal trækkes fra 1 )

gange pris ?

/Mads
Avatar billede KingMedia Novice
06. marts 2004 - 10:47 #4
hvis det er som jeg har beskrevet ovenfor, ville jeg nok gøre det på denne måde..


rabat = rs("rabat")
pris  = rs("pris")

tempRabat = rabat / 100
finalRabat = 1 - tempRabat

finalSum = finalRabat * pris


Det eneste du skal være 100% sikker på , er at i din database er felterne rabat & pris talfelter. hvis det ikke er tilfældet er jeg ikke sikker på det kan laves så nemt. :o)

/Mads
Avatar billede dj-sejler Praktikant
06. marts 2004 - 11:06 #5
Ja... det ligner noget af det jeg har forsøgt...

Jeg gør sådan:
<%

    Set rs = Server.CreateObject("ADODB.RecordSet")
    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM pf WHERE kategori='bog' ORDER by dato"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF

rabat = rs("rabat")
pris  = rs("pris")

tempRabat = rabat / 100
finalRabat = 1 - tempRabat

finalSum = finalRabat * pris <-- Så snart denne linie er med siger den: Type mismatch

  %>
  <tr>
    <td><%=rs("tekst")%> - <i><%=pris%>kr</i></td>
    <td>rabat: <%=rabat%>%</td>
    <TD><%=rs("dato")%></td>
    <td align="right"><%=finalsum%> kr</td>
    </td>
  </tr>
  <%
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    conn.Close
    set conn = Nothing
%>

I feltet 'rabat' kan der stå 0, men der vil altid stå noget!

Men det virker i hvert fald ikke :(
Avatar billede KingMedia Novice
06. marts 2004 - 11:14 #6
ok ..   

i feltet rs("pris")    er det også af typen Tal ?

/Mads
Avatar billede dj-sejler Praktikant
06. marts 2004 - 11:16 #7
ja...
Avatar billede KingMedia Novice
06. marts 2004 - 11:17 #8
når du skriver denne ud

<i><%=pris%>kr</i>

Hvad får du så vist ?
Avatar billede dj-sejler Praktikant
06. marts 2004 - 11:18 #9
173kr
Avatar billede KingMedia Novice
06. marts 2004 - 11:52 #10
hmm..    lyder godt nok sært...

prøv engang..

rabat = rs("rabat")
pris  = rs("pris")

If rabat <> 0 Then
  tempRabat = rabat / 100
  finalRabat = 1 - tempRabat
  finalSum = finalRabat * pris
Else
  finalSum = pris
End If

det udelukker i hvert tilfælde rabat regnestykket hvis rabat er lig nul.

/Mads
Avatar billede dj-sejler Praktikant
06. marts 2004 - 12:12 #11
nope... der virker heller ikke :(
Avatar billede ellebaek Nybegynder
06. marts 2004 - 12:16 #12
prøv at skrive CDbl(pris) i stedet for pris...
Avatar billede dj-sejler Praktikant
06. marts 2004 - 12:44 #13
Type mismatch: 'CDbl'

rabat = rs("rabat")
CDbl(pris)  = rs("pris")

'tempRabat = rabat / 100
'finalRabat = 1 - tempRabat

If rabat <> 0 Then
  tempRabat = rabat / 100
  finalRabat = 1 - tempRabat
  finalSum = finalRabat * CDbl(pris)
Else
  finalSum = CDbl(pris)
End If



  %>
  <tr>
    <td><%=rs("tekst")%> - <i><%=pris%>kr</i></td>
    <td>rabat: <%=rabat%>%</td>
    <TD><%=rs("dato")%></td>
    <td align="right"><%=finalSum%> kr</td>
    </td>
  </tr>
  <%
Avatar billede ellebaek Nybegynder
06. marts 2004 - 12:45 #14
rabat = rs("rabat")
pris  = rs("pris")

'tempRabat = rabat / 100
'finalRabat = 1 - tempRabat

If rabat <> 0 Then
  tempRabat = rabat / 100
  finalRabat = 1 - tempRabat
  finalSum = finalRabat * CDbl(pris)
Else
  finalSum = CDbl(pris)
End If

Sådan her...
Avatar billede dj-sejler Praktikant
06. marts 2004 - 12:52 #15
Det virkede :D
Avatar billede KingMedia Novice
06. marts 2004 - 13:11 #16
nice :D

ellebaek ..
ku man snige sig til en hurtig beskrivelse af CDbl() funktionen ? :o)

/MAds
Avatar billede ellebaek Nybegynder
06. marts 2004 - 18:09 #17
CDbl konvertere et tal til double, der kan indeholde flere informationer end en almindelig integer.

Men hvorfor tager du points selv ?
Avatar billede KingMedia Novice
06. marts 2004 - 18:11 #18
jeg har ikke taget points selv :o)

det er ikke mit spørgsmål *G*

/Mads
Avatar billede ellebaek Nybegynder
06. marts 2004 - 18:13 #19
arh smart... Men synes stadig det var mærkeligt at du fik pointsene ;-)
Avatar billede KingMedia Novice
06. marts 2004 - 18:42 #20
Ja..  de skulle have været delt, da løsningen jo blev afgivet af os begge to :o)
Avatar billede ellebaek Nybegynder
06. marts 2004 - 18:43 #21
Ja, det kan du godt have ret i..
Men skidt med det. Behold du dem bare.
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
Kurser inden for grundlæggende programmering

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