Avatar billede Jman Praktikant
12. september 2002 - 16:46 Der er 19 kommentarer og
1 løsning

Beregne sekunder til alm. tid samt samlet tidsforbrug

Kode:
<!-- history start-->
<% if not rsoracle.EOF then %>
<table border="2" cellpadding="0" cellspacing="3" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4" bgcolor="#FFFFFF">
  <tr>
    <td colspan="4">
    <h3>historik for <%=get_adno%></h3>
    <tr>
          <td width="150" bgcolor="#E6E6D0"><h3 style="margin: 0 3">dato &amp; tid</h3></td>
          <td width="40" bgcolor="#E6E6D0"><h3 style="margin: 0 3">handling</h3></td>
          <td bgcolor="#E6E6D0"><h3 style="margin: 0 3">udført på arbejdsstation:</h3></td>
          <td width="135" bgcolor="#E6E6D0"><h3 style="margin: 0 3">tidsforbrug:</h3></td>
        </tr>
<% do while not rsoracle.EOF %>
        <tr>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("timestamp")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("event")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("stationid")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("Prodtime")%></h4>
          </td>
        </tr>
<%rsoracle.movenext%>
<% loop %>
----------------------------------------

Mit problem er at Prodtime viser sekunder (ikke nummerisk, men alfanummerisk)
Jeg ville gerne have at der, hvor jeg kalder prodtime skal der omregnes til tid alá 0:00:00
og til slut skal der sættes en <td> ind, hvor prodtime beregnes totalt (hvis der er flere records i loopet)
Avatar billede somaliomar Praktikant
12. september 2002 - 16:52 #1
Hvad mener du med nummerisk og alfanummerisk?
Avatar billede Jman Praktikant
12. september 2002 - 16:54 #2
Prodtime viser eksempelvis ved 7 sekunder bare tallet 7 (det er ikke et rigtigt tidsstempel)
Jeg vil gerne have det til at vise 0:0:07
Avatar billede Jman Praktikant
12. september 2002 - 16:55 #3
0:00:07 .. selvfølgelig
Avatar billede eagleeye Praktikant
12. september 2002 - 16:56 #4
Du kan lave en function som udregner det for dig eks:



function ConvertSekunder(antalSec)
Dim diff, mins, hours, secs
diff = antalSec
hours = int(diff / (60*60))
mins = Int(60*(diff / (60*60) - hours))
secs = Int(diff - ((60*60)* hours) - (60 * mins))

if len(hours) = 1 then hours = "0" & hours
if len(mins) = 1 then mins = "0" & mins
if len(secs) = 1 then secs = "0" & secs

TimeCalc = hours & ":" & mins & ":" & secs
end function



og så kalde den sådah her:

<h4 style="margin: 0 3"><% =ConvertSekunder(rsoracle("Prodtime"))%></h4>
Avatar billede eagleeye Praktikant
12. september 2002 - 16:58 #5
uden for loop et kan du lave en variable som sættes til 0 for total tiden..:

<%
  totalAntalSec = 0
  do while not rsoracle.EOF
    totalAntalSec = totalAntalSec + Clng(rsoracle("Prodtime")) %>
..
..
<%rsoracle.movenext%>
<% loop %>

Response.write "Total tid = " & ConvertSekunder(totalAntalSec)
Avatar billede Jman Praktikant
12. september 2002 - 17:02 #6
kan man godt det, når det "bare" er et tal i tabellen ?
Jeg synes ikke rigtigt det virker - men det er nok fordi jeg stadig er en spasser til functions og beregninger...)
Avatar billede somaliomar Praktikant
12. september 2002 - 17:05 #7
Hvad gør du?
Avatar billede eagleeye Praktikant
12. september 2002 - 17:06 #8
ok.. der er også en fejl i functionen sådan her skal den være:

function ConvertSekunder(antalSec)
Dim diff, mins, hours, secs
diff = antalSec
hours = int(diff / (60*60))
mins = Int(60*(diff / (60*60) - hours))
secs = Int(diff - ((60*60)* hours) - (60 * mins))

if len(hours) = 1 then hours = "0" & hours
if len(mins) = 1 then mins = "0" & mins
if len(secs) = 1 then secs = "0" & secs

ConvertSekunder = hours & ":" & mins & ":" & secs
end function
Avatar billede Jman Praktikant
12. september 2002 - 17:07 #9
<% if not rsoracle.EOF then %>
<%
function ConvertSekunder(antalSec)
Dim diff, mins, hours, secs
diff = antalSec
hours = int(diff / (60*60))
mins = Int(60*(diff / (60*60) - hours))
secs = Int(diff - ((60*60)* hours) - (60 * mins))

if len(hours) = 1 then hours = "0" & hours
if len(mins) = 1 then mins = "0" & mins
if len(secs) = 1 then secs = "0" & secs

TimeCalc = hours & ":" & mins & ":" & secs
end function
%>
<table border="2" cellpadding="0" cellspacing="3" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4" bgcolor="#FFFFFF">
  <tr>
    <td colspan="4">
    <h3>historik for <%=get_adno%></h3>
    <tr>
          <td width="150" bgcolor="#E6E6D0"><h3 style="margin: 0 3">dato &amp; tid</h3></td>
          <td width="40" bgcolor="#E6E6D0"><h3 style="margin: 0 3">handling</h3></td>
          <td bgcolor="#E6E6D0"><h3 style="margin: 0 3">udført på arbejdsstation:</h3></td>
          <td width="135" bgcolor="#E6E6D0"><h3 style="margin: 0 3">tidsforbrug:</h3></td>
        </tr>
<% do while not rsoracle.EOF %>
        <tr>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("timestamp")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("event")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =rsoracle("stationid")%></h4>
          </td>
          <td>
            <h4 style="margin: 0 3"><% =ConvertSekunder(rsoracle("Prodtime"))%></h4>
          </td>
        </tr>
<%rsoracle.movenext%>
<% loop %>

<% end if %>

Resultatet er at feltet er tomt (men jeg ved der står 7, uden ovenstående beregning)
Avatar billede Jman Praktikant
12. september 2002 - 17:08 #10
ja, den sidste var bedre
Avatar billede eagleeye Praktikant
12. september 2002 - 17:10 #11
Hvis du vil gemme det i dette format 0:00:07 i databasen så skal det gemmes i et dato/klokkeslet type. Så kan man ikke ligge 65 sekuner i databasen så skal man ligge 0:01:05 i databasen så udregningen skal du havde et eller andet sted...
Avatar billede Jman Praktikant
12. september 2002 - 17:14 #12
det er nemlig der problemet ligger.. jeg bestemmer ikke input-feltet - det gør en xtension til quark
Avatar billede eagleeye Praktikant
12. september 2002 - 17:20 #13
Skriver den (xtension) selv til databasen eller får du et variable som indeholder sekuner?
Avatar billede eagleeye Praktikant
12. september 2002 - 17:23 #14
Jeg er dessvære nød til at smutte et par timer..
Avatar billede Jman Praktikant
12. september 2002 - 17:26 #15
ok - jeg leger videre med total-tiden - den driller nemlig også
Avatar billede Jman Praktikant
12. september 2002 - 17:33 #16
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'Clng'

/prepres/sapss/default_adm_history_copy(1).asp, line 328
-----
linie 328:    totalAntalSec = totalAntalSec + Clng(rsoracle("Prodtime"))
Avatar billede somaliomar Praktikant
12. september 2002 - 17:35 #17
Prøv det her:

If isNull(rsoracle("Prodtime")) then
  totalAntalSec = totalAntalSec + 0
else
  totalAntalSec = totalAntalSec + Clng(rsoracle("Prodtime"))
end if
Avatar billede Jman Praktikant
12. september 2002 - 17:48 #18
jeps - det virkede sammen med at jeg lige skulle rykke
<%
  totalAntalSec = 0
  do while not rsoracle.EOF
    totalAntalSec = totalAntalSec + Clng(rsoracle("Prodtime")) %>
på plads - smid lige et svar... så deler I
Avatar billede somaliomar Praktikant
12. september 2002 - 17:58 #19
Jeg synes, at eagleeye fortjener pointene!
Avatar billede Jman Praktikant
12. september 2002 - 18:07 #20
ok - som du vil
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