Forum - Beitrag anzeigen

Datenbanken/SQL - Kalender / Jahresplan

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 13.10.2008 13:46 (5005 Aufrufe)
Name: Sabine
Titel: Kalender / Jahresplan
Inhalt: Hallo

Ich versuche seit einigen Tagen einen Kalender / Jahresplan für unsere Spieler/Trainer zu programmieren. Eigentlich bin ich schon fast fertig, es gibt glaub nur noch ein Problem das ich einfach nicht lösen kann:

Ich habe die Spieler und Trainer links aufgelistet. Oben die Tage des Monats, je nach Auswahl 30, 31 etc. Die Events bzw. Turniere sollten mir jetz farblich zum Spieler und Tag angezweigt werden. Das Problem ist, wenn ein Spieler zwei und mehr Events im Monat hat, wird nur ein Event angezeigt. Irgendwie ist mir auch logisch warum, aber ich komme einfach auf keine Lösung. Obtisch sieht das in etwas so aus: http://www.statim.ch/images/forum_kalender.gif

Meine Datenbank (MsAccess) beinhaltet zwei Tabellen: t_spieler und t_calendar. In der t_calender habe ich einen Fremdschlüssel (fk_spieler) wo der Event jeweils dem Spieler zugewiesen wird, zum Teil eben auch mehrere im Monat.

Muss ich die Datenbank anders aufbauen oder wie kriege ich es hin, dass pro Spieler mehrer Events pro Monat angezeigt werden ?

Bin sehr dankbar für jeden Hinweis. Vielen Dank schon mal zum voraus

Grüsse
Sabine



Hier noch mein Code:
<cfparam name="CurntDate" default="#now()#">
<cfparam name="td1" default="<td bgcolor=">
<cfparam name="td2" default="ffffff">
<cfparam name="td3" default="><img src=images/abstand.gif border=0 width=15 height=13></td>">

<cfif isdefined("MonthChange")>
<cfif monthchange is 'forward'>
<cfset curntdate = createodbcdate(dateadd("m", 1, lastdate))>
<cfelse>
<cfset curntdate = createodbcdate(dateadd("m", -1, lastdate))>
</cfif>
</cfif>
<cfparam name="YearSet" default="#year(CurntDate)#">
<cfparam name="MonthSet" default="#month(CurntDate)#">

<!--- Create the date variables to search the Database by. --->
<cfset monthstart = createdatetime(#yearset#, #monthset#, 1, 0, 0, 0)>
<cfset monthend = createdatetime(#yearset#, #monthset#, #daysinmonth(monthstart)#, 23, 59, 59)>

<!--- Code for calculating the days format to display --->
<cfset offset = #dayofweek(monthstart)#>
<cfset lastslot = #offset# + #daysinmonth(monthstart)#-1>
<!---<CFSET caldays = (#ceiling(lastslot/7)#)*7>--->
<cfset caldays = #DaysInMonth(CurntDate)#>
<cfset caldaysplayer = #DaysInMonth(CurntDate)#>
<cfset day = 1>
<cfset dayPlayer = 1>
<cfset wochentag = #DateFormat(lastslot,"ddd")#>

<td valign="top">

<cfquery datasource="#DSN#" name="qPlayerTrainer">
select pkid, spieler, spielerfarbe, spielerkat, darstellung, sortierung
from t_spieler
order by darstellung, sortierung asc
</cfquery>

<table width="100%" class="GridViewDataWebControlStyle" cellspacing="0" border="0" id="ctl00_MainContent_GridView1" style="border-collapse:collapse;">
<tr class="ausgabe-content-td4">
<cfloop index="ii" from="1" to="#CalDays#">

<cfif #ii# lte #lastslot#>

<td valign="top" align="center">
<cfoutput><span style="#datestylenorm#">#Day#</span></cfoutput>
</td>
<cfset day = #day# + 1>

<cfelse>

</cfif>

<cfif (#ii# mod #caldays# is 0)>
</tr>
</cfif>

</cfloop>

<cfloop query="qPlayerTrainer">
<tr>

<cfquery datasource="#DSN#" name="SearchResults">
select *
from a_calendar
where CalendarDate Between #MonthStart# and #MonthEnd#
and fk_spieler = #qPlayerTrainer.pkid#
order by CalendarDate asc
</cfquery>

<cfquery datasource="#DSN#" name="getAnzahl">
select count(Calendar_ID) as anzahl
from a_calendar
where CalendarDate Between #MonthStart# and #MonthEnd#
</cfquery>

<cfoutput>

<cfloop index="iii" from="1" to="#CalDaysPlayer#">

<cfif #dayPlayer# GT #CalDaysPlayer#>
<cfset dayPlayer = 1>
</cfif>

<cfif not SearchResults.recordcount>

<cfset td1 = "<td bgcolor=">
<cfset td2 = "ffffff">
<cfset td3 = ">&nbsp;</td>">

<cfelse>

<!--- i.O.
<cfloop query="SearchResults">
#Eventname#<br>
</cfloop>
--->

<cfif #getAnzahl.anzahl# lte #lastslot#>

<cfloop query="SearchResults">

<cfset daydbstart = #SearchResults.calendardate#>
<cfset daydbende = #SearchResults.CalendarDateEnde#>

<cfif #daydbstart# neq "" and #daydbende# neq "">

<cfif #dayPlayer# gte '#day(daydbstart)#' and #dayPlayer# lte '#day(daydbende)#'>
<!--- GREATER THAN OR EQUAL TO LESS THAN OR EQUAL TO --->

<cfset anlass = #SearchResults.Eventname#>
<cfset anlassid = #SearchResults.Calendar_ID#>
<cfset farbe = #SearchResults.EventColor#>
<cfset td1 = "<td bgcolor=">
<cfset td2 = #farbe#>
<cfset td3 = " align=center><a href=javascript:popUp('showevent.cfm?CalID=#anlassid#')><img src=images/abstand.gif border=0 width=15 height=13 border=0></a></td>">

<cfelse>
<cfset td1 = "<td bgcolor=">
<cfset td2 = "ffffff">
<cfset td3 = "><img src=images/abstand.gif border=0 width=15 height=13></td>">
</cfif>

</cfif>

</cfloop>

</cfif>

</cfif>

<cfset dayPlayer = #dayPlayer# + 1>

#td1##td2##td3#

</cfloop>

</cfoutput>
</tr>
</cfloop>
</table>

</td>


Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen