Avatar billede Slettet bruger
26. juni 2001 - 08:43 Der er 4 kommentarer og
1 løsning

Formatering af tal

Jeg har en sql sætning:
<%
SQL1= \"SELECT SUM(Total) AS TotalPris FROM Basket %>

Denne sætning opsummerer alle køb i en kurv og giver outputtet TotalPris aka et tal.

I en anden tabel har jeg nogle priser for levering som skal lægges til TotalPris hvorfor jeg gør således:

<%If \"\"&RS2(\"Levering\")&\"\" = 1 Then
          SQL3=\"Select * from Levering\"
          Set RS3=Conn.execute(SQL3)
          %>
          <% Set mus = (RS1(\"TotalPris\"))
          Set mas = (RS3(\"Gebyr\"))
          Set mis = (RS3(\"Leveringspris\"))
          If mus < 600 then
          set LevPris = mas + mis
          else
          Set LevPris = mis
          end if
         
          %>

Grunden til den lidt omstændige kode er at hvis beløbet er under 600 så skal der lægges gebyr på. Her kommer så problemet:

<%Set TOTINCL = \"\"&RS1(\"TotalPris\")&\"\" + \"&LevPris&\"%>
                <%

Response.write(TOTINCL)%>
<%end if%>

Denne sætning giver følgende fejl:

Der opstod en Microsoft VBScript-kørselsfejl error \'800a01a8\'

Et objekt er obligatorisk: \'[string: \"1343&LevPris&\"]\'

PayOrderView.asp, line 199

Jeg ved det er noget med formateringen af tal. Det ene er sikkert opfattet som text og det andet tal.

Har prøvet følgende som egentlig også skal indgå:

<%
kroner = \"Kr. \"&formatnumber(RS1(\"TotalPris\"),2)
Response.write kroner%>

Avatar billede erikjacobsen Ekspert
26. juni 2001 - 08:48 #1
Du skal vel bare skrive

<% TOTINCL = cdbl(RS1(\"TotalPris\")) + cdbl(LevPris) %>
Avatar billede sbm Nybegynder
26. juni 2001 - 08:50 #2
<%Set TOTINCL = \"\"&RS1(\"TotalPris\")&\"\" + \"&LevPris&\"%>

Du har et forkert antal anførselstegn. Der skal sættes et mere ind:

<%Set TOTINCL = \"\"&RS1(\"TotalPris\")&\"\" + \"\"&LevPris&\"%>

Men jeg vil mene du burde kunne klare dig med

<%Set TOTINCL = RS1(\"TotalPris\") + LevPris%>

...hvis LevPris vel at mærke er sat? Længere oppe refererer du først til RS(\"Leveringspris\") og sidenhen til mis, men du sætter ikke LevPris?

Avatar billede Slettet bruger
26. juni 2001 - 09:00 #3
Jammen Erik det er jo fuldstændig korrekt...

Lige et hurtigt spørgsmål på falderebet inden du får dine points.

I denne sætning får jeg en fejl hvis beløbet er under 600 kr.

<% Set mus = (RS1(\"TotalPris\"))
          Set mas = (RS3(\"Gebyr\"))
          Set mis = (RS3(\"Leveringspris\"))
          If mus < 600 then
          set LevPris = mas + mis
          else
          Set LevPris = mis
          end if
         
          %>

Fejlen er:

Der opstod en Microsoft VBScript-kørselsfejl error \'800a01a8\'

Et objekt er obligatorisk: \'[number: 60]\'
PayOrderView.asp, line 178

RSGebyr = 35
RSLeveringspris = 25

Så den får dem altså lagt sammen???
Avatar billede kichian Nybegynder
26. juni 2001 - 09:39 #4
Jeg forstår ikke din brug af SET. Dette keyword bruges kun til at tildele en variabel et objekt.
Du bruger det konsekvent alle steder, hvilket burde give mange flere:
Et objekt er obligatorisk: \'[number: 60]\'

Dvs.
LevPris = mas + mis (Bemærk at mas er et Field-objekt, med default property Value).
else
LevPris = mis.

Avatar billede kichian Nybegynder
26. juni 2001 - 09:41 #5
Dvs at
    Set mas = (RS3(\"Gebyr\"))
    Set mis = (RS3(\"Leveringspris\"))
også bør ændres til:
    mas = RS3(\"Gebyr\")
    mis = RS3(\"Leveringspris\")

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