Hej! <info>Klurig tidfråga? Eller cyklar jag som vanligt ;)
Har idag simpel "stämpelklocka" som vi har här på jobbet
Denna exporterar jag sen till Excel och får väldigt snabbt ut tiderna totalt för period/person.
Min fundering är om det går att gör något liknande i ASP direkt (Obs. måste vara någon form av felkontroll här.)
Grundkod jag har är;
<code>
<!--#Include virtual="/funktioner.asp"-->
<html>
<%
Set RS=Conn.Execute("SELECT TOP 1 * FROM tid ORDER BY id DESC ")
If RS.EOF then
Response.Write("<b>felmed</b>")
Else Do until RS.EOF
%>
person1 är: <B><%=TEST(RS("inne"))%></B> Sen; <%=RS("Datum")%> | <%=RS("tid")%>
<%
RS.Movenext
Loop
End If
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>
<Logga in> <Logga ut></html>
</code>
funktioner.asp innehåller dB-con och replace
in.asp
<code>
Set Conn = Server.CreateObject("ADODB.Connection")
HuvudDb = Server.MapPath("/xxxx/tid.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & HuvudDb
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM Tid"
RecSet.Open Addera, Conn, 3, 3
RecSet.Addnew
RecSet("Inne") = True
RecSet.Update
RecSet.Close
Conn.Close
Response.Redirect "./"
%>
</code>
och Db
<code>
ID = Datum xx-xx-xx xx:xx:xx (primär/unik)
Datum = Datum xx-xx-xx
Tid = Datum (tid xx:xx)
Inne = Ja/Nej
Alla fält obligatoriska
</code>
En tabell för varje person (detta kan vara fel redan här ... ;) ) men vart enkelt att göra på detta vis då jag sen skall exportera hela perioder till excel
Fråga - kan man fixa till något i asp och har jag tänk "rätt" från början?Sv: Klurig tidfråga? Eller cyklar jag som vanligt ;)
Table: Users
Field: UserId int PK
Field: UserName varchar(20)
Field: UserPassword varchar(20)
Table: Entries
Field: EntryId int PK
Field: EntryUser int FK -> Users.UserId
Field: EntryFrom datetime
Field: EntryTo datetime
</info>
När man loggar in skapar du en ny post i Entries:
<code>
INSERT INTO Entries (EntryUser, EntryFrom, EntryTo)
VALUES (@UserId, Now(), Null)
</code>
När man loggar ut:
<code>
UPDATE Entries SET EntryTo = Now()
WHERE EntryUser = @UserId AND EntryTo IS Null
</code>
Summera hur mycket man jobbat:
<code>
SELECT EntryUser, SUM(EntryTo - EntryFrom) AS Time
FROM Entries
GROUP BY EntryUser
</code>