Avatar billede tahoo Nybegynder
25. juli 2002 - 00:17 Der 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... :-)

/simon
Avatar billede eagleeye Praktikant
25. juli 2002 - 01:19 #1
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.
Avatar billede tahoo Nybegynder
25. juli 2002 - 01:28 #2
Det lyder rigtig godt. Design er ligemeget :-)...

Er det der meget svært at lave ?...... eller kunne du måske lave et lille eksempel... (det er lige meget med log ind og ud  - det kan jeg selv lave..)
Avatar billede eagleeye Praktikant
25. juli 2002 - 01:51 #3
Ja jeg kan lige lave et eks.... Det bliver først i morgen. Jeg vil i seng nu..
Avatar billede tahoo Nybegynder
25. juli 2002 - 01:54 #4
1000 tak
Avatar billede tahoo Nybegynder
25. juli 2002 - 12:11 #5
:-)
Avatar billede eagleeye Praktikant
25. juli 2002 - 12:17 #6
Jeg har ikke glemt dig.. jeg har lige spist morgenmad :) smider lige filerne.
Avatar billede eagleeye Praktikant
25. juli 2002 - 12:18 #7
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>"
 
  dagnavn = WeekDayName(Weekday(startDato,vbMonday))
  valueDato = Year(startDato) & "-" & Right("0" & Month(startDato), 2) & "-" & Right("0" & Day(startDato), 2)
 
  '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
%>
Avatar billede eagleeye Praktikant
25. juli 2002 - 12:20 #8
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

datoList = "," & Request.Form("dato") & ","
datoList = Replace(datoList," ","")
medarbejderID = Request.Form("medarbejderID")

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>
Avatar billede tahoo Nybegynder
25. juli 2002 - 12:40 #9
jamen det var lige det - 10000 tak:-) -fordi du brugte tid på det.

svar også er der point til dig :-)

Må jeg få dit ICQ nr ?
Avatar billede eagleeye Praktikant
25. juli 2002 - 12:45 #10
Ok..:

Ja, men det er normalt ikke noget jeg gør så meget i: 4162545
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