29. august 2002 - 16:40Der er
57 kommentarer og 1 løsning
Jeg skal bruge en superduper ASP-koder til denne opgave
Jeg vil gerne have lavet en beregning af tidsforbrug. Jeg har fået en xtension til quark, der poster i database hvornår et dokument er åbnet og lukket. Jeg skal så have regnet arbejdstiden ud (forskellen mellem START og STOP. Det jeg gør nu er at kalde felterne i db og poste dem - det går fint nok: <kode> strSQL = "Select * FROM ANNTID WHERE TEXT = '" & get_adno &"' order by timestamp" </kode> det giver flg. resultat: TEXT EVENT TIMESTAMP STATIONID 215223.qxd START 29-08-2002 11:39:57 01_mac 215223.qxd STOP 29-08-2002 11:42:57 01_mac 215223.qxd START 29-08-2002 11:45:00 01_mac 215223.qxd STOP 29-08-2002 11:50:00 01_mac
Jeg vil så gerne lave en kolonne mere, hvor der ud for hver linie med STOP skal stå tidsforbruget. I bunden skal der så være en række hvor tidsfobruget regnes sammen og ydermere skal der laves en tælling på hvor mange gange dokumentet har været åbnet (antal linier med EVENT "START"
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Er det ikke bare at udtrække værdien af start, inden du indsætter værdien af Stop og så indsætte differencen mellem de to værdier, samtidig med du indsætter Stop-værdien?
det kan godt være - men jeg har slet ikke arbejdet på datediff-kommandoen... vil ovenstående også lykkes, når der er tale om at en ordre kan åbnes mere end en gang
OK - her er HELE koden - Det er der hvor <!-- history --> jeg skal bruge det dersens datadiff...
<% Response.Buffer = True %> <% mode = Request("mode") %> <!-- counter --> <% 'This declares all the variables Dim Counter Dim ObjCounterFile, ReadCounterFile, WriteCounterFile Dim CounterFile Dim CounterHits 'Sets location of the Counter File. CounterFile = Server.MapPath ("counter.txt") Set ObjCounterFile = Server.CreateObject("Scripting.FileSystemObject")
'Opens the file for Read Access Set ReadCounterFile= ObjCounterFile.OpenTextFile (CounterFile, 1, True)
If Not ReadCounterFile.AtEndOfStream Then 'Loads the stored value of the counter into CounterHits CounterHits = Trim(ReadCounterFile.ReadLine) If CounterHits = "" Then CounterHits = 0 Else CounterHits = 0 End If
ReadCounterFile.Close Set ReadCounterFile = Nothing 'Adds 1 to the value of the CounterHits CounterHits = CounterHits + 1 'Opens the file for Writing Set WriteCounterFile= ObjCounterFile.CreateTextFile (CounterFile, True) 'Writes teh value of CounterHits to the file WriteCounterFile.WriteLine(CounterHits)
WriteCounterFile.Close Set WriteCounterFile = Nothing Set ObjCounterFile = Nothing %>
<html> <head> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-store"> <LINK REL="STYLESHEET" TYPE="text/css" HREF=../../scripts/style.css> <title>..:: SAPSS ::..</title> </head> <BODY> <div align="center"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1"> <tr> <td> <h1 align="center">SAPSS</h1> <h2 align="center" style="margin-top: 0; margin-bottom: 0">Ordre StyringsSystem</h2> </td> </tr> <tr> <td> <form method="get" action="default_history.asp?action=get"> <h3 align="center">Indtast ordrenummer: <input name="ordrenummer" size="10"><input type="submit" value="hent info" style="font-size: 10px; font-weight: bold; border: 2px solid #000000; background-color: #CECFA5"></h3> </form> </td> </tr> <% If Request.Querystring ("Ordrenummer") > "0" Then %> <% Set dbOracle = CreateObject("ADODB.Connection") get_adno = request.querystring ("ordrenummer") strConn = "DSN=xxxxxxx;Database=xxx;uid=xxxxxxxx;pwd=xxxxxx" dbOracle.Open strConn //strSQL = "Select distinct(a.adno), p.pdate, a.iremarks, p.colour, p.xsize, p.ysize, p.paper, a.ad_type, p.prmethod, p.ready, a.maker, a.salno, p.modifier, p.remarks, p.adrno, a.adrname, a.adrtel, a.receiver FROM pub p, ad a WHERE p.adno=a.adno AND a.adno='"&get_adno&"' order by p.paper, length(p.paper)" strSQL = "Select * FROM pub p, ad a WHERE p.adno=a.adno AND a.adno='"&get_adno&"' order by p.paper, length(p.paper)" Set rsOracle = CreateObject("ADODB.Recordset") rsOracle.Open strSQL, dbOracle
%>
<% if rsOracle.eof then %> <h2><font align="center" color="#dd0000">Der er ikke noget ordrenummer, der hedder "<%=get_adno%>"....prøv igen.</font></h2> <% else %>
<div align="center"> <center> <table border="0" cellspacing="5" style="border-collapse: collapse; border: 0px width=" id="AutoNumber1" "600"> <tr> <td> <table border="0" cellspacing="5" style="border:2px solid #000000; border-collapse: collapse" bordercolor="#111111" width="600" id="AutoNumber2" bgcolor="#FFFFFF" cellpadding="0"> <tr> <td colspan="3"><h1 style="margin:0 1; "><%=(rsOracle("adno"))%> "<%=(rsOracle("iremarks"))%>"</h1> <h3 align="right" style="margin:0 1; ">benyttet <%=(rsOracle("pdate"))%> </h3></td> </tr> <tr> <td colspan="3" valign="top" bgcolor="#E6E6D0"> <h3 style="margin: 0 1"></h3> <h2 style="margin:0 1; "> Kundeinformation</h2></td> </tr> <tr> <td valign="top"><h4 style="margin:0 1; "><b>Kundenr.: </b><%=(rsOracle("adrno"))%></h4></td> <td valign="top"><h4 style="margin:0 1; "><b>Kundenavn: </b><%=(rsOracle("adrname"))%></h4></td> <td valign="top"><h4 style="margin:0 1; "><b>Tlf.nr.: </b><%=(rsOracle("adrtel"))%></h4></td> </tr> <tr> <td valign="top" colspan="3"><h4 style="margin:0 1; "><b>Kontaktperson: </b><%=(rsOracle("caller"))%></h4></td> </tr> <tr> <td colspan="3" valign="top" height="157"> <table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="600"> <tr> <td width="586" colspan="6" bgcolor="#E6E6D0"> <h2 style="margin:0 1; "> ordreinformation </h2> </tr> <tr> <% checkfarve = ("" & rsOracle("colour")) If checkfarve = "" or null Then checkfarve = "sort/hvid" %> <% checktype = ("" & rsOracle("ad_type")) If checktype = "L" Then checktype = "L - Liners" else If checktype = "D" Then checktype = "D - egenproduktion" else If checktype = "M" Then checktype = "M - Materiale" else If checktype = "S" Then checktype = "S - Scan" else If checktype = "F" Then checktype = "F - Film" else If checktype = "N" Then checktype = "N - Ikke elektronisk" else If checktype = "P" Then checktype = "P - Via Posten" else If checktype = "I" Then checktype = "I - ISDN" else If checktype = "A" Then checktype = "A - Via ADS" else
checkstatus = ("" & rsOracle("ready")) If checkstatus = "" or null Then checkstatus = "Ej Påbegyndt" else If checkstatus = "S" Then checkstatus = "S - Sorteres" else If checkstatus = "E" Then checkstatus = "E - Påbegyndt" else If checkstatus = "B" Then checkstatus = "B - I kø i Batheps" else If checkstatus = "R" Then checkstatus = "R - Tjekkes for Ripfejl" else If checkstatus = "K" Then checkstatus = "K - Klar"
checkprodsted = ("" & rsOracle("prmethod")) If checkprodsted = "1" or null Then checkprodsted = "1" else If checkprodsted = "2" or null Then checkprodsted = "2" else If checkprodsted = "3" or null Then checkprodsted = "3" else If checkprodsted = "4" or null Then checkprodsted = "4" else If checkprodsted = "5" or null Then checkprodsted = "5" else If checkprodsted = "6" or null Then checkprodsted = "6" else If checkprodsted = "7" or null Then checkprodsted = "7" else If checkprodsted = "8" or null Then checkprodsted = "8" else If checkprodsted = "U" or null Then checkprodsted = "Ut" else If checkprodsted = "S" or null Then checkprodsted = "10" else If checkprodsted = "Y" or null Then checkprodsted = "11" else If checkprodsted = "K" or null Then checkprodsted = "12" else If checkprodsted = "E" or null Then checkprodsted = "13" else If checkprodsted = "V" or null Then checkprodsted = "14" else If checkprodsted = "F" or null Then checkprodsted = "SKS" else If checkprodsted = "P" or null Then checkprodsted = "PP" else If checkprodsted = "A" or null Then checkprodsted = "17" else If checkprodsted = "C" or null Then checkprodsted = "Creatix" else If checkprodsted = "?" or null Then checkprodsted = "Ukendt" %> <tr> <td colspan="6" valign="top" width="100%"> <table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3"> <tr> <td valign="top"><h4 style="margin:0 1;"><b>Gl. ordrenummer: </b><%=rsOracle("pickupadno")%></h4></td> <td valign="top"><h4 style="margin:0 1;"></h4> </td> <td valign="top"><h4 style="margin:0 1;"></h4> </td> <td valign="top"><h4 style="margin:0 1;"></h4> </td> </tr> <tr> <td valign="bottom"><h4 style="margin:0 1; "><b>Annoncetype:</b></h4> <td valign="bottom"><h4 style="margin:0 1; "><b>Produktionssted:</b></h4> <td valign="bottom"><h4 style="margin:0 1; "><b>Status:</b></h4> <td valign="top"> </td> </tr> <tr> <form method="post" action="default.asp?mode=update&ordrenummer=<%=rsOracle("adno")%>"> <td valign="top"> <h6 style="margin:0 1; "> <select size="1" name="ddtbl_ad_type" style="border-style:solid; border-width:1; font-size: 7pt; background-color:#E6E6D0"> <option value="<%=rsOracle("ad_type")%>" selected><%=checktype%></option> <option value="L">L - Liners</option> <option value="D">D - DTP-egenproduktion</option> <option value="M">M - Materiale</option> <option value="S">S - Scanning</option> <option value="N">N - Ikke elektronisk</option> <option value="P">P - Via posten</option> <option value="I">I - Via ISDN</option> <option value="A">A - Via ADS</option> </select> </h6> </td>
dbOracle.Close Set dbOracle = Nothing %> <% End if %> <% End if %>
</table> <!-- history start--> <% Set dboracle = CreateObject("ADODB.Connection") strConn = "DSN=xxxxxxxx;Database=xxx;uid=xxxxxxxx;pwd=xxxxx" get_adno = request.querystring("ordrenummer")&".qxd" dboracle.Open strConn strSQL = "Select * FROM ANNTID WHERE TEXT = '" & get_adno &"' order by timestamp" Set rsoracle = CreateObject("ADODB.Recordset") rsoracle.Open strSQL, dbOracle %> <% 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="3"> <h3>historik for <%=get_adno%></h3> <tr> <td width="60" bgcolor="#E6E6D0"><h3 style="margin: 0 3">dato & 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> </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> </tr> <%rsoracle.movenext%> <% loop %>
<% end if %> <% rsoracle.Close Set rsoracle = Nothing Set SQL = Nothing %>
</td> </tr> </table> <%
dbOracle.Close Set dbOracle = Nothing %>
<!--- history slut --> </td> </tr> </table> </div> <h6 align="center"><span style="font-weight: 400">Denne side er blevet vist <% =CounterHits %> gange</span></h6> </body> </html> <% If mode = "update" then %> <% ADNO = Request.Querystring ("Ordrenummer")
Set dbOracle = CreateObject("ADODB.Connection") strConn = "DSN=xxxxxxxx;Database=xxxx;uid=xxxxxxxx;pwd=xxxxx" dbOracle.Open strConn
Ann_type = Request.Form("ddtbl_ad_type") Pr_sted = Request.Form("ddtbl_prmethod") Status = Request.Form("ddtbl_ready")
//SQLstmt = "UPDATE pub p, ad a SET a.ad_type = '" & Ann_type & "', p.prmethod = '" & Pr_sted & "',p.ready = '" & Status & "' WHERE p.adno = a.adno AND a.ADNO =" & ADNO //'SQLstmt = SQLstmt & "VALUES ('" & Request.Form("ddtbl_ad_type") & "', '" & Request.Form("ddtbl_prmethod") & "','" & Request.Form("ddtbl_ready") & "')" //response.write sqlstmt
ok - det sklrider fremad (jeg er utrolig glad for din tid) nu har jeg tidsforbrug, men den viser "0:11:627" ved første start/stop og "0:28:1673" ved anden - så man må vel kunne lave en eller anden forkortelse med decimaler ?
Den tager kun 2 cifre, men det er forkert regnet ud - det er ikke vitgit sekunderne tæller alligevel ikke med i sidste ende.. det er vigtigere at få lagt datdiff'erne sammen
ja, f.eks. en ordre, der har været åbnet 2 gange; 1. gang var den åben i 11 minutter og anden gang var den åben i 17 minutter. Inder histaorikken skulle der så gerne stå "ordren har været under i behandling i 28 minutter" Altså en sammenlægning af den kode du har lavet for mig.
Se evt. på det eksempel (den nederste tabel på http://www.jman.dk/exempel.htm) jeg lavede. De to tidsforbrug er lagt sammen til sidst
If rsoracle("event") = "START" Then eventstart = rsoracle("timestamp") Else eventstop = rsoracle("timestamp") hours = datediff("h", eventstart, eventstop) min = datediff("n", eventstart, eventstop)
If hours = 0 Then Response.Write "Ordren har været under behandling i " & min & " minutter" Else Response.Write "Ordren har været under behandling i " & hours & " timer og " & min & " minutter" End If End If
nej, nej. Det du har lavet indtil nu er fint - den viser tiden godt nok nu mellem de forskellige START/STOP-sessioner. Det jeg søger er den sammenlagte tid - d.v.s tiden fra den allerførste START til den allersidste SLUT. men det skal så bare komme efter det, du allerede har lavet.
kun en lille detalje - og det er de forbandede sekunder.. men det vil jeg prøve at lege lidt med - ellers bliver de bare ikke vist - du skal have tusind tak for hjælpen!!
sidespørgsmål (kan godt oprette et nyt sp, hvis du ønsker det)
Jeg har lavet en historik, hvor jeg slår alle ordre op på en given dato. Den viser også alle ordrene fint. ...men-men-men det er kun den sidste ordre, hvor den sammenlagte tid bliver beregnet... Hvorledes kan man slå alle ordrene sammen i bunden, så der er en sammenlgt tidsberegning på alle ordrene ?
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.