---
title: "Räkna volym och energi för varje enskild datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2004-05-03T16:40:46.000Z"
updated: "2004-05-14T11:34:09.000Z"
replies: 68
views: 953
page: 1
pages: 4
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum"
---

# Räkna volym och energi för varje enskild datum

_Sida 1 av 4._

## #1 — plelkes, 2004-05-03T16:40Z

Just nu ser koden ut

```
 <%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &""
		  Set rs1 = vbalans.Execute (strSQL)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
Function FirstVersal(txt)
      versal = UCase(Left(txt,1)) & LCase(Right(txt, Len(txt)-1))
  FirstVersal = versal
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & FirstVersal(rs1("ftEnamn")) & ", " & FirstVersal(rs1("ftFnamn")) & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
v = 0
e = 0
dat = ""
 Do While Not rs1.EOF
v = v + cint(rs1("Volym"))
e = e + cint(rs1("Energi"))
If dat <> CDate(rs1("Dag")) then
dat = CDate(rs1("Dag"))  
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
End If
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
</TABLE>
<BR><BR><BR>
<%
Response.Write "<B><U>Totala volymen är</U></B>" & ":     " & v & "<BR>"
Response.Write "<B><U>Totala energi är</U></B>" & ":        " & e & "<BR>"
%>
```

 Som ger följande utskrift

> 111111 - 1111
> Elvansson, Elvan
> Datum      Vätska    Volym    Energi 
> 2004-03-21 Blod 1000 0 
>   Sondmat 550 275 
>   Sondmat 550 275 
>   Sondmat 550 275 
> 2004-04-29 Albumin 40 mg/ml 76 0 
> 2004-05-02 Proviva 123 0 
> 
> Totala volymen är: 2849
> Totala energi är: 825

 Om jag istället vill sumera för alla aktuella datum - hur skulle koden se ut då?

Permalänk: https://www.webforum.nu/p/102837

## #2 — plelkes, 2004-05-04T10:45Z

Har försökt med följande ändring (= fet-stil)

```
<%@ Language=VBScript LCID=1053%>
<HTML>
<title>Rapport</title>
<BODY>
 <%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &""
		  Set rs1 = vbalans.Execute (strSQL)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
Function FirstVersal(txt)
      versal = UCase(Left(txt,1)) & LCase(Right(txt, Len(txt)-1))
  FirstVersal = versal
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & FirstVersal(rs1("ftEnamn")) & ", " & FirstVersal(rs1("ftFnamn")) & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
v = 0
e = 0
dat = ""
 Do While Not rs1.EOF
v = v + cint(rs1("Volym"))
e = e + cint(rs1("Energi"))
If dat <> CDate(rs1("Dag")) then
dat = CDate(rs1("Dag"))  
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
End If
[B]Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" v "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" e "</TD></TR>"[/B]
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
</TABLE>
<BR><BR><BR>
%>
</body>
</html>
```

 
Men fungerar ej - tyvärr är jag på jobbet och kan inte få felutskrift...

Permalänk: https://www.webforum.nu/p/1337805

## #3 — OveRRidE, 2004-05-04T11:22Z

Det är säkerligen inte det som är felet, men du har iallafall konkatenerat inkorrekt. 

```
Response.Write "<TR><TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
```

Permalänk: https://www.webforum.nu/p/1337848

## #4 — plelkes, 2004-05-04T12:51Z

Tack OveRRidE blev bättre, men inte bra.
Har möblerat om i koden

```
 <%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &""
		  Set rs1 = vbalans.Execute (strSQL)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
Function FirstVersal(txt)
      versal = UCase(Left(txt,1)) & LCase(Right(txt, Len(txt)-1))
  FirstVersal = versal
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & FirstVersal(rs1("ftEnamn")) & ", " & FirstVersal(rs1("ftFnamn")) & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
v = 0
e = 0
dat = ""
 Do While Not rs1.EOF
v = v + cint(rs1("Volym"))
e = e + cint(rs1("Energi"))
If dat <> CDate(rs1("Dag")) then
dat = CDate(rs1("Dag"))  
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
</TABLE>
```

 
Resultatet är bättre, men inte bra
Jag har nog tänkt fel:

1. Lista alla givna vätskor för första datumet ( dvs dat =CDate(rs1("Dag"))
2. sedan skriva ut summan för volym för den dagen
3. skriva ut summan energi för den dagen
4. lista nästa gällande datum

Permalänk: https://www.webforum.nu/p/1337890

## #5 — PDahlen, 2004-05-04T13:26Z

Skapa en "dagsvariabel" för volym och en för energi.
Ha en variabel som håller koll på "dagen innan". För varje record i din loop kollar du om aktuellt datum är samma som "dagen innan" om det inte är det skriver du ut dagstotalen, nollställer den och sätter "dagen innan" till aktuellt datum.
Om det är samma dag fortfarande plussar du på precis som du gör med totala volymen och energin.

Permalänk: https://www.webforum.nu/p/1337915

## #6 — plelkes, 2004-05-04T14:52Z

Tack för hjälpen Patrik, trodde att det var det jag gjorde med ändringarna jag komm påunder resan hem

```
<%
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
   v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
```

 Men så är inte fallet!!!

> **PDahlen skrev:**
>
> Skapa en "dagsvariabel" för volym och en för energi.

 det har jag väl gjort med

```
v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
```

 

> **PDahlen skrev:**
>
> Ha en variabel som håller koll på "dagen innan". För varje record i din loop kollar du om aktuellt datum är samma som "dagen innan"

 Är inte det jag gör med

```
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
        Response.Write 
 Else
       Response.Write "<TR><TD>&nbsp;</TD>"
```

Permalänk: https://www.webforum.nu/p/1338013

## #7 — PDahlen, 2004-05-04T14:59Z

Du måste ju plussa på värden även när det inte är samma dag. Med andra ord efter Else

Permalänk: https://www.webforum.nu/p/1338021

## #8 — plelkes, 2004-05-04T15:03Z

Vet inte Patrik om det är så här du menar,

```
<%
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
   v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
   v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
```

 Men det funkar ändå inte som jag vill bifogar sidan

Permalänk: https://www.webforum.nu/p/1338025

## #9 — PDahlen, 2004-05-04T15:05Z

Du ska inte nollställa dagstotalerna vid Else, bara plussa på.
Sen vet jag inte riktigt vad du gör.
Du använder v och e som totala värden på slutet. Om du ska ha både dag och total så måste du ha två värden för varje.
Sen ska du skriva ut om dagen inte är samma som dagen innan och SEN nollställa.

Permalänk: https://www.webforum.nu/p/1338028

## #10 — plelkes, 2004-05-04T15:10Z

funkar ändå inte

```
<%
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
   v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
     v = v + cint(rs1("Volym"))
   e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
```

Bilagor:

- [rapport.zip](https://www.webforum.nu/a/3436.zip)

Permalänk: https://www.webforum.nu/p/1338042

## #11 — PDahlen, 2004-05-04T15:13Z

Nej, klart att det inte funkar. Du har inte gjort det jag skrev i mitt förra inlägg.
Dina fel.
1\. Du använder samma variabler (e och v) till både dag och total
2\. Du skriver inte ut några dagsvariabler innan du nollställer

Permalänk: https://www.webforum.nu/p/1338047

## #12 — plelkes, 2004-05-04T15:18Z

1) Jag skall inte ha ngr total variabler bara dags total

> Du skriver inte ut några dagsvariabler innan du nollställer

 Gör jag inte?

```
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
```

 ovanstående kod trodde jag betydde just detta:

1. jag skriver ut variabeln
2. jag flyttar mig till nästa post
3. jag nollställer variablerna

Permalänk: https://www.webforum.nu/p/1338053

## #13 — PDahlen, 2004-05-04T15:22Z

Kolla igenom din kod. 
Den utskriften ska stå INNAN du nollställer direkt efter IF-frågan som visar att nu har du bytt dag.
Som du gör nu så skriver du ut varje gång som den aktuelle dagen är samma som dagen innan.

Permalänk: https://www.webforum.nu/p/1338059

## #14 — plelkes, 2004-05-04T15:30Z

Brinkster bråkar, så jag kommer ej åt...
Menar du så här

```
<%
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
   v = 0
   e = 0
  v = v + cint(rs1("Volym"))
  e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
 Else
     v = v + cint(rs1("Volym"))
   e = e + cint(rs1("Energi"))
       Response.Write "<TR><TD> </TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

End If
Response.Write "<B><U>Totala volymen är:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<TD> </TD>"
Response.Write "<B><U>Totala energi är:</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"
End If
rs1.MoveNext
```

Permalänk: https://www.webforum.nu/p/1338070

## #15 — PDahlen, 2004-05-04T15:54Z

Nej, du vill ju skriva ut e och v för varje dag. Flytta upp den utskriften så den står direkt innan du nollställer e och v.
Gör även en koll om dat = "". Om det är så så skriver du inte ut eftersom det betyder att det är första dagen du är på.

Permalänk: https://www.webforum.nu/p/1338089

## #16 — plelkes, 2004-05-04T16:12Z

Ursäktamig,men jag fattar inte hur jag skall få till det...

```
<%
dat = "" 
Do While Not rs1.EOF
If dat <> CDate(rs1("Dag")) then
   dat = CDate(rs1("Dag")) 
        Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
       
 Else
         Response.Write "<TR><TD>&nbsp;</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"

End If
  v = v + cint(rs1("Volym"))
     e = e + cint(rs1("Energi"))

Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Volym givet idag:</U></B>"
Response.Write "<TD>" & v & "</TD></TR>"
Response.Write "<TR><TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<TD>&nbsp;</TD>"
Response.Write "<B><U>Givet energi</U></B>"
Response.Write "<TD>" & e & "</TD></TR>"

v = 0
e = 0
rs1.MoveNext
Loop

vbalans.Close
Set vbalans = Nothing
 %>
```

 gerbättre utskrift,men inte bra - se bilag\<

Bilagor:

- [rapport2.zip](https://www.webforum.nu/a/3437.zip)

Permalänk: https://www.webforum.nu/p/1338109

## #17 — plelkes, 2004-05-04T17:07Z

Nu har jag bollat fram och tillbaka så att ajg ser i kors...
Men inte har jag kommit närmare en lösning...

Permalänk: https://www.webforum.nu/p/1338160

## #18 — PDahlen, 2004-05-04T17:12Z

Du skriver fortfarande inte ut e och v för varje dag. Du har inte flyttat in utskriften och nu nollställer du inte ens dagsvärdena när du byter dag.

```
<%
dat = "" 
v = 0
e = 0
Response.Write "<table>"
Do While Not rs1.EOF
	If dat <> CDate(rs1("Dag")) then
		if not dat = "" then
			Response.Write "<TR><TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<B><U>Volym givet idag:</U></B>"
			Response.Write "<TD>" & v & "</TD></TR>"
			Response.Write "<TR><TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<B><U>Givet energi</U></B>"
			Response.Write "<TD>" & e & "</TD></TR>"
		end if
		v = cint(rs1("Volym"))
		e = cint(rs1("Energi"))
		dat = CDate(rs1("Dag")) 
		Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	Else
		v = v + cint(rs1("Volym"))
		e = e + cint(rs1("Energi"))
		Response.Write "<TR><TD> </TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	End If
rs1.MoveNext
Loop
Response.Write "</table>"

vbalans.Close
Set vbalans = Nothing
%>
```

Använd den här koden. Jämför den med din så ser du vad du gjort för fel.

Ett tips. När en utskrift blir fel ta fram papper och penna. SKriv upp lite testdata och alla dina variabler. Stega sedan igenom koden rad för rad och skriv på pappret vad variablerna ändras till och vad som skrivs ut.
Ett litet knep som min datalärare lärde mig.

Permalänk: https://www.webforum.nu/p/1338163

## #19 — plelkes, 2004-05-04T17:25Z

Patrik, du ärlycklig du som har en datalärare -själv är jag helt obildad och hankar mig fram med hjälp av böcker och er på wf...
Koden funkade nästan... Enda är att utskriften 

> Volym givet idag: 
> Givet energi

 inte hamnar på dess rätta plats, utan **Ovanför**  tabellen. Kan du  hjälpa mig med detta med\*ber snällt\*
Så ser koden ut

```
<%@ Language=VBScript LCID=1053%>
<HTML>
<title>Rapport</title>
<BODY>
 <%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &""
		  Set rs1 = vbalans.Execute (strSQL)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
Function FirstVersal(txt)
      versal = UCase(Left(txt,1)) & LCase(Right(txt, Len(txt)-1))
  FirstVersal = versal
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & FirstVersal(rs1("ftEnamn")) & ", " & FirstVersal(rs1("ftFnamn")) & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
dat = "" 
v = 0
e = 0

Do While Not rs1.EOF
	If dat <> CDate(rs1("Dag")) then
		if not dat = "" then
			Response.Write "<TR><TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<B><U>Volym givet idag:</U></B>"
			Response.Write "<TD>" & v & "</TD></TR>"
			Response.Write "<TR><TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<TD> </TD>"
			Response.Write "<B><U>Givet energi</U></B>"
			Response.Write "<TD>" & e & "</TD></TR>"
		end if
		v = cint(rs1("Volym"))
		e = cint(rs1("Energi"))
		dat = CDate(rs1("Dag")) 
		Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	Else
		v = v + cint(rs1("Volym"))
		e = e + cint(rs1("Energi"))
		Response.Write "<TR><TD> </TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	End If
rs1.MoveNext
Loop
Response.Write "</table>"

vbalans.Close
Set vbalans = Nothing
%>
<BR><BR><BR>
</TABLE>

</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1338164

## #20 — PDahlen, 2004-05-04T17:30Z

Hade en datalärare. Jag börjar ju bli gammal nu. ;)
Men när det gäller webb (ASP och .NET) så är jag självlärd från böcker. Tänket har jag dock från skolan för sättet att tänka är så gott som likadant i alla programmeringsspråk.
Böcker är bra och att koda är också bra men det viktigaste är att lära sig grunderna och sättet att tänka först. I det här fallet t.ex. så hade du behövt rita upp själva strukturen på hur det ska funka. En pseudokod, innan du skriver koden. Då hade du sett när du skulle addera, nollställa och skriva ut.

Felet du får nu är för att jag hade lagt till en \</table\>. Ta bort 10:e raden nerifrån. Raden direkt efter Loop där det står Response.Write "\</table\>"

Ett till tips. När du får ett sånt här fel i utskriften kolla sourcen i webbläsaren och felsök dina tabeller.

Permalänk: https://www.webforum.nu/p/1338166

---

Tråden på webben: https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum  
Nästa sida: https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum/page2.md
