|
| Decimaler i tabel ? Fra : Is |
Dato : 25-11-06 19:40 |
|
Hej
Jeg henter data fra en forespørgsel i access, og hvis jeg åbner denne qry,
så er der 2 decimaler, men når jeg prøver at vise dem via en asp fil i en
taben, så fjernes for værdien unødvendige decimaler.
hvordan tvinger jeg den til at vise decimalerne, også hvis de er 0 ???
--
Med venlig hilsen
Erik Isager
| |
Ukendt (25-11-2006)
| Kommentar Fra : Ukendt |
Dato : 25-11-06 22:10 |
|
> Jeg henter data fra en forespørgsel i access, og hvis jeg åbner denne qry,
> så er der 2 decimaler, men når jeg prøver at vise dem via en asp fil i en
> taben, så fjernes for værdien unødvendige decimaler.
>
> hvordan tvinger jeg den til at vise decimalerne, også hvis de er 0 ???
Med denne funktion:
Function VisPris(Tal As String) As String
'-----------------------------
'
' f. eks: Pris = VisPris(23.856)
'-----------------------------
Dim intKommapos As Integer
Dim strHeltal As String, strDecimal As String
Dim arrTal
' Find en kommapos i strengen
intKommapos = InStr(Tal, ",")
'Hvis der ikke er noget komma
If intKommapos = 0 Then
Tal = Tal & ",00"
End If
'Hvis der er et komma
If intKommapos > 0 Then
arrTal = Split(Tal, ",")
' så split op i to dele
strHeltal = arrTal(0) & ","
strDecimal = Left(arrTal(1) & strDecimal & "0", 2)
' og saml det igen
Tal = strHeltal & strDecimal
End If
VisPris = Tal
End Function
Med venlig hilsen
Tom Jensen
- Læs mere om asp og databaser her -
www.ffsoft.dk
| |
Is (25-11-2006)
| Kommentar Fra : Is |
Dato : 25-11-06 22:52 |
|
"Tom Jensen" <noone> skrev i en meddelelse
news:12mhc6tf5rdgvc5@corp.supernews.com...
> > Jeg henter data fra en forespørgsel i access, og hvis jeg åbner denne
qry,
> > så er der 2 decimaler, men når jeg prøver at vise dem via en asp fil i
en
> > taben, så fjernes for værdien unødvendige decimaler.
> >
> > hvordan tvinger jeg den til at vise decimalerne, også hvis de er 0 ???
>
> Med denne funktion:
>
> Function VisPris(Tal As String) As String
> '-----------------------------
> '
> ' f. eks: Pris = VisPris(23.856)
> '-----------------------------
> Dim intKommapos As Integer
> Dim strHeltal As String, strDecimal As String
> Dim arrTal
> ' Find en kommapos i strengen
> intKommapos = InStr(Tal, ",")
> 'Hvis der ikke er noget komma
> If intKommapos = 0 Then
> Tal = Tal & ",00"
> End If
> 'Hvis der er et komma
> If intKommapos > 0 Then
> arrTal = Split(Tal, ",")
> ' så split op i to dele
> strHeltal = arrTal(0) & ","
> strDecimal = Left(arrTal(1) & strDecimal & "0", 2)
> ' og saml det igen
> Tal = strHeltal & strDecimal
> End If
> VisPris = Tal
> End Function
>
Tak, det ser spændende ud - den driller mig dog lidt
jeg har det der skal undersøges her:
data.Fields ("Resultat")
Hvor skal jeg indsætte det ???
Er det her: intKommapos = InStr(Tal, ",")
så hvordan??
Det er vel ikke nødvendigt at indsætte det som en function ? Koden kan vel
også indsættes i den tabel hvor data skal tjekkes for decimaler ??
--
Med venlig hilsen
Erik Isager
| |
Ukendt (26-11-2006)
| Kommentar Fra : Ukendt |
Dato : 26-11-06 18:29 |
|
> Hvor skal jeg indsætte det ???
VisPris(data.Fields ("Resultat"))
Er det i en .asp side du bruger det ?? Jeg er lige med på
hvad data.fields er for noget.
> Det er vel ikke nødvendigt at indsætte det som en function ? Koden kan vel
> også indsættes i den tabel hvor data skal tjekkes for decimaler ??
Du kan betragte funktionen som et filter, enten sender du data en tur
igennem
filteret inden du lægger dem i tabellen eller osse sender du data igennem
filteret
inden du præsenterer det for brugerne.
Funktionen kan med stort held indsættes på en speciel side og så kan du lave
et include på hver side der får brug for funktionen.
Med venlig hilsen
Tom Jensen
- Læs mere om asp og databaser her -
www.ffsoft.dk
| |
Is (26-11-2006)
| Kommentar Fra : Is |
Dato : 26-11-06 18:46 |
|
"Tom Jensen" <noone> skrev i en meddelelse
news:12mjjkghuv4c2c5@corp.supernews.com...
> > Hvor skal jeg indsætte det ???
>
> VisPris(data.Fields ("Resultat"))
>
> Er det i en .asp side du bruger det ?? Jeg er lige med på
> hvad data.fields er for noget.
>
> > Det er vel ikke nødvendigt at indsætte det som en function ? Koden kan
vel
> > også indsættes i den tabel hvor data skal tjekkes for decimaler ??
>
> Du kan betragte funktionen som et filter, enten sender du data en tur
> igennem
> filteret inden du lægger dem i tabellen eller osse sender du data igennem
> filteret
> inden du præsenterer det for brugerne.
> Funktionen kan med stort held indsættes på en speciel side og så kan du
lave
> et include på hver side der får brug for funktionen.
>
> Med venlig hilsen
>
> Tom Jensen
> - Læs mere om asp og databaser her -
> www.ffsoft.dk
Jeg trode funktionen skulle være i "tabellen" og ikke kunne køre alle
poster igennem i "data" først.
skal den så være mellem en
While NOT data.EOF
og
data.MoveNext
Wend
--
Med venlig hilsen
Erik Isager
| |
Is (26-11-2006)
| Kommentar Fra : Is |
Dato : 26-11-06 18:54 |
|
"Tom Jensen" <noone> skrev i en meddelelse
news:12mjjkghuv4c2c5@corp.supernews.com...
> > Hvor skal jeg indsætte det ???
>
> VisPris(data.Fields ("Resultat"))
>
> Er det i en .asp side du bruger det ?? Jeg er lige med på
> hvad data.fields er for noget.
Ja det er
Jeg henter indholdet fra en forespørgsel (access) og sætter ind sådan:
data.Open "SELECT * FROM qryResultater WHERE klasse = 'b' ORDER BY resultat
DESC" , strConnect
"Resultat" er så en række i en tabel(access)
--
Med venlig hilsen
Erik Isager
| |
Is (26-11-2006)
| Kommentar Fra : Is |
Dato : 26-11-06 20:27 |
|
Hej
Har rodet lidt med den Tom sendte.
Har ændtet lidt, lagt den i en fil og kaldt den decimal2.inc
Den kalder jeg så i tabellen når data lægges i denne.
Men noget går galt !! hvis der kun er 1 decimal, så tages første decimal
tallet før, og sættes som decimal nr 2
Første decimal er ok.
lidt eksempel
er vises
98, 98,00
95,25 95,25
95,2 95,22
90,7 90,72
90,4 90,47
Er det nogle Dim der skal tømmes ???
Koden ser sådan ud nu:
Dim intKommapos
Dim strHeltal, strDecimal
Dim arrTal
Dim Tal
Tal = data.Fields ("Resultat")
' Find en kommapos i strengen
intKommapos = InStr(Tal, ",")
'Hvis der ikke er noget komma
If intKommapos = 0 Then
Tal = Tal & ",00"
End If
'Hvis der er et komma
If intKommapos > 0 Then
arrTal = Split(Tal, ",")
' så split op i to dele
strHeltal = arrTal(0) & ","
strDecimal = Left(arrTal(1) & strDecimal & "0", 2)
' og saml det igen
Tal = strHeltal & strDecimal
End If
Resultat = Tal
| |
Ukendt (26-11-2006)
| Kommentar Fra : Ukendt |
Dato : 26-11-06 22:00 |
|
Funktionen er placeret i filen funktioner.asp som ligger i mappen inc
**************************************************
Function RetPris(Tal)
Dim intKommapos, strHeltal, strDecimal, arrTal
' Find en kommapos i strengen
intKommapos = InStr(Tal, ",")
'Hvis der ikke er noget komma
If intKommapos = 0 Then
Tal = Tal & ",00"
End If
'Hvis der er et komma
If intKommapos > 0 Then
arrTal = Split(Tal, ",")
' så split op i to dele
strHeltal = arrTal(0) & ","
strDecimal = Left(arrTal(1) & strDecimal & "0", 2)
' og saml det igen
Tal = strHeltal & strDecimal
End If
RetPris = Tal
end function
Test af funktion
**********************************************
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% ' Rettet 26-11-2006
Option Explicit
Response.Expires = 0
Session.LCID=1030
%>
<!-- Funktioner -->
<!--#include file="inc/funktioner.asp" -->
<%
response.write "" & retpris(98.) & "<br>"
response.write "" & retpris(98.25) & "<br>"
response.write "" & retpris(95.2) & "<br>"
response.write "" & retpris(90.7) & "<br>"
response.write "" & retpris(90.4) & "<br>"
%>
Resultat på skærm
**************************************
98,00
98,25
95,20
90,70
90,40
| |
Ukendt (25-11-2006)
| Kommentar Fra : Ukendt |
Dato : 25-11-06 22:18 |
|
"Is" <detteerminnewsgruppemailadresse2@get2net.dk> skrev i en meddelelse
news:45688ddb$0$49208$14726298@news.sunsite.dk...
> Hej
>
> Jeg henter data fra en forespørgsel i access, og hvis jeg åbner denne qry,
> så er der 2 decimaler, men når jeg prøver at vise dem via en asp fil i en
> taben, så fjernes for værdien unødvendige decimaler.
>
> hvordan tvinger jeg den til at vise decimalerne, også hvis de er 0 ???
FormatNumber(ditfelt,2) kan vist gøre det...
Bjarne
| |
Is (25-11-2006)
| Kommentar Fra : Is |
Dato : 25-11-06 23:01 |
|
"bsn" <bsnSNABELAoncableDOTdk> skrev i en meddelelse
news:4568b313$0$156$edfadb0f@dread11.news.tele.dk...
>
> "Is" <detteerminnewsgruppemailadresse2@get2net.dk> skrev i en meddelelse
> news:45688ddb$0$49208$14726298@news.sunsite.dk...
> > Hej
> >
> > Jeg henter data fra en forespørgsel i access, og hvis jeg åbner denne
qry,
> > så er der 2 decimaler, men når jeg prøver at vise dem via en asp fil i
en
> > taben, så fjernes for værdien unødvendige decimaler.
> >
> > hvordan tvinger jeg den til at vise decimalerne, også hvis de er 0 ???
>
> FormatNumber(ditfelt,2) kan vist gøre det...
> Bjarne
Hvor skal det indsættes?
--
Med venlig hilsen
Erik Isager
| |
Ukendt (27-11-2006)
| Kommentar Fra : Ukendt |
Dato : 27-11-06 21:56 |
|
"Is" <detteerminnewsgruppemailadresse2@get2net.dk> skrev
>> FormatNumber(ditfelt,2) kan vist gøre det...
>> Bjarne
>
> Hvor skal det indsættes?
<%Response.Write "<td>" & FormatNumber(ditfelt(eks: RS("Pris")),2) & </td>%>
Bjarne
| |
Is (27-11-2006)
| Kommentar Fra : Is |
Dato : 27-11-06 23:50 |
|
"bsn" <bsnSNABELAoncableDOTdk> skrev i en meddelelse
news:456b50d6$0$142$edfadb0f@dread11.news.tele.dk...
>
> "Is" <detteerminnewsgruppemailadresse2@get2net.dk> skrev
> >> FormatNumber(ditfelt,2) kan vist gøre det...
> >> Bjarne
> >
> > Hvor skal det indsættes?
>
> <%Response.Write "<td>" & FormatNumber(ditfelt(eks: RS("Pris")),2) &
</td>%>
>
> Bjarne
>
umiddelbart ser den jo nemmere ud en den Tom sendte - men jeg kan ikke få
den til at virke
Jeg har denne:
<td><%Response.Write data.Fields ("resultat") %> </td>
den sætter ind, men ikke altid 2 decimaler, hvordan vil du flette din
formatering ind ???
Du skriver "<%Response.Write" før "<td>"
Hvorfor det ?? Skriver du i hele rækken i tabellen med en gang
"Response.Write" ??
--
Med venlig hilsen
Erik Isager
| |
Ukendt (28-11-2006)
| Kommentar Fra : Ukendt |
Dato : 28-11-06 17:49 |
|
"Is" <detteerminnewsgruppemailadresse2@get2net.dk> skrev
>> >> FormatNumber(ditfelt,2) kan vist gøre det...
>> >> Bjarne
>> >
>> > Hvor skal det indsættes?
>>
>> <%Response.Write "<td>" & FormatNumber(ditfelt(eks: RS("Pris")),2) &
> "</td>"%>
>>
> umiddelbart ser den jo nemmere ud en den Tom sendte - men jeg kan ikke få
> den til at virke
>
> Jeg har denne:
>
> <td><%Response.Write data.Fields("resultat") %> </td>
Sådan kan det også skrives...
> den sætter ind, men ikke altid 2 decimaler, hvordan vil du flette din
> formatering ind ???
<td><%Response.Write FormatNumber(data.Fields("resultat"),2) %></td>
Du kan - hvis det er kr. det handler om - også bruge FormatCurrency...
>
> Du skriver "<%Response.Write" før "<td>"
> Hvorfor det ?? Skriver du i hele rækken i tabellen med en gang
> "Response.Write" ??
Det kan gøres på begge måder...
Bjarne
| |
Is (28-11-2006)
| Kommentar Fra : Is |
Dato : 28-11-06 19:13 |
|
> > Jeg har denne:
> >
> > <td><%Response.Write data.Fields("resultat") %> </td>
>
> Sådan kan det også skrives...
>
> > den sætter ind, men ikke altid 2 decimaler, hvordan vil du flette din
> > formatering ind ???
>
> <td><%Response.Write FormatNumber(data.Fields("resultat"),2) %></td>
> Du kan - hvis det er kr. det handler om - også bruge FormatCurrency...
>
Så virker det !!!
Tak for hjælpen.
--
Med venlig hilsen
Erik Isager
| |
|
|