25. juli 2002 - 00:17Der er
9 kommentarer og 1 løsning
Arbejds plan
Hejsa..
Jeg skal lave en arbejdsplan, hvor folk skal kunne logge ind, og krydse de dage af, som de kan arbejde i løbet af et år. Nogle gode ideer til hvordan man gør det. ? det er jo lidt dumt at oprette 356 JA/NEJ felter i en database...
Er der evt. nogle som har et system som kan bruges, eller noget man kan bruge som eksempel... :-)
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.
Alternativt kunne du havde en tabel med, medarbejdernr, dato.
Når man så logger ind så får man oversigten hvor man kan vælge de forskellige dato man vil arbejde ?? er det månede for månede eller hvordan havde du tænkt det.... Det er også lige meget med layoutet.. Jeg forstiller mig at man vægler en dag ved at afkrydse en checkbox.
Når man trykker på Gem så gemmer man dato'erne som man har sat kryds i i databasen sammen med medarbejdernr.. Så har du en liste med dato'er som en medarbejder kan arbejde.
Som du selv er inde på kan man havde 365 checkbox i pr mand men man skal afligevel havde en dato for hver tjekbox eller kan man ikke holde styr på det, men mindre man låser sig meget fast i designet.
Jeg har delt det op i to asp filer, oversigt.asp og gemdatoer.asp. Design = 03 :) det var bare for at vise hvad jeg tænkte:
Filen oversigt.asp:
<% Session.LCID = 1030 set rs = server.CreateObject("ADODB.Recordset") set conn = server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
'Til dette eks har jeg lagt datbase sammen med de to filer og den hedder db.mdb 'Den indeholder en table dage med følgende kolonner ' 'Tabel: dage 'ID : Autonummer 'medarbejderID : Tal 'dato : dato/tids type
%> <html> <head></head> <body>
<table align="center"> <form action="gemdatoer.asp" method="POST"> <% 'Vælg start dato 01-01-yyyy startDato = "01-01-2002" 'Lig et år til og find slut dato slutDato = DateAdd("yyyy",1,startDato) maxColsPrRow = 7 colsPrRow = 0 do while CDate(startDato) < CDate(slutDato) if colsPrRow = 0 then Response.Write "<tr>"
'Tjek om dagen er valgt og sæt checkboxen CHECKED.. 'Denne SQL skal så tilpasses med medarbejderID eller hvordan du vil skelne melem flere.. sql = "SELECT id FROM dage WHERE medarbejderID = 25 AND dato = #" & valueDato & "#" Set rs = conn.Execute(sql) Response.Write "<td>" & dagnavn & " " & startDato & " <input type=""checkbox"" name=""dato"" value=""" & valueDato & """" if not rs.EOF then Response.Write " CHECKED" Response.Write "></td>"
colsPrRow = colsPrRow + 1 if colsPrRow = maxColsPrRow then Response.Write "</tr>" colsPrRow = 0 end if startDato = DateAdd("d",1,startDato) loop if colsPrRow > 0 then Response.Write "</tr>" %> <tr><td align="center" colspan="<%=maxColsPrRow%>"><input type="submit" value="Gem"></td> <tr><td align="center" colspan="<%=maxColsPrRow%>">Medarbejder ID:<input type="text" name="medarbejderID" value="25"></td> </form> </table>
</body> </html> <% Conn.Close Set rs=Nothing Set Conn=Nothing %>
Filen gemdatoer.asp Det er denne fil som gemmer datoer. Oversigt filen kigger i databasen og sætte kryds i de dage man har valgt. Jeg har brugt medarbejderID = 25 til disse eksempler... Jeg synts der var noget mere jeg lige skulle skrive. hmmm det kan jeg ikke lige komme på, bare spørg.
<html> <head> <title></title> </head> <body> <% set rs = server.CreateObject("ADODB.Recordset") set conn = server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb") 'Lav SQL som hendter info the select1
strSQL = "SELECT * FROM dage WHERE medarbejderID = " & medarbejderID Set rs = Conn.Execute (strSQL) do while not rs.EOF dbDato = Year(rs("dato")) & "-" & Right("0" & month(rs("dato")),2) & "-" & Right("0" & Day(rs("dato")),2) index = instr(1,datoList, "," & dbDato & ",") if index > 0 then 'Fjern fra listen dagen var valgt i forvejen datoList = Left(datoList,index-1) & Mid(datoList,index+11) else 'Dato'en er fjerne fra lsit og skal sletes sql = "DELETE * FROM dage WHERE medarbejderID = " & medarbejderID & " AND dato = #" & dbDato & "#" Conn.Execute (sql) end if rs.MoveNext loop
if len(datoList) > 2 then 'Fjern første og sidste komma fra dato listen datoList = Mid(datoList,2,len(datoList)-2) else datoList = "" end if 'Split dato ud i et array og gem dem i databasen. datoArr = split(datoList,",") for i = lbound(datoArr) to ubound(datoArr) 'Indsæt nye datoer i databasen sql = "INSERT INTO dage (medarbejderID, dato) " sql = sql & "VALUES (" & medarbejderID & ", #" & datoArr(i) & "#)" Conn.Execute (sql) next
Conn.Close Set rs=Nothing Set Conn=Nothing %> <center> Databasen er opdateret med de nye data.. </center> </body> </html>
Ja, men det er normalt ikke noget jeg gør så meget i: 4162545
Synes godt om
Ny brugerNybegynder
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.