SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
www.filemaker-konferenz.com
eigenes HTML5-Framework mit Drag (und Drop)

Otmar Kramis
Kalender in FileMaker
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Über den Sprecher
• *1959 Hildisrieden, Luzern

• 80er-Jahre, Jazz-Saxofon Studium an der
Hochschule für Musik und darstellende Kunst
Graz

• ab 91 Dozent an der Jazzschule Luzern, heute
Hochschule Luzern - Musik

• ab ~97 fliessender Übergang vom Dozenten zum
Informatiker, durch Fusion der Fachhochschulen
Zentralschweiz seit 2006 Applikationsentwickler
an der Hochschule Luzern - IT Services

• Erstkontakt mit FileMaker, durch Übernahme einer
Mediathek-Selbstausleihe-Lösung unter FM3

• erste eigene Lösung? Raum-Reservation für die
Jazzschule Luzern mit FM6;-)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Kurze Demo
fmp://fmslocal.gibi.loc/ResourceCalendarFMK

9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Tabellen
• Resources	 UUID, fkResourceGroup, ResName, ResnameShort, State, Info

• Groups	 	 UUID, GroupName, active, Info

• Colors	 	 ColorID, Background, Border, Name

• Events	 	 Details nächste Folien

• GUI	 	 Details nächste Folien
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Events - Daten
• UUID	 	 Text	 Indexed, Auto-Enter = Get ( UUID )

• fkResource	 Text	 Indexed

• fkGroup		 Text	 Indexed, Auto-Enter = Events_Resources::fkGroup

• datefrom	 Date	 Indexed

• dateto	 	 Date	 (Indexed)

• overlapGrid	 Calc	 Unstored = 5

• timefrom	 Time	 Indexed, Auto-Enter = 

	 	 	 Let ( _step = overlapGrid * 60 ; Div ( Self ; _step ) * _step )

• timeto	 	 Time	 (Indexed), Auto-Enter = 

	 	 	 Let ( _step = overlapGrid * 60 ; Div ( Self ; _step ) * _step )

• Event	 	 Text	 Indexed

• color	 	 Text	 Indexed
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Events - berechnete Felder
• dateList	 	 Text	 Indexed, Auto-Enter = 

	 	 	 ListOfDate ( datefrom ; dateto - ( timeto = Time ( 0 ; 0 ; 0 ) ) )

• FieldList		 Text	 Indexed, Auto-Enter =

	 	 	 Substitute ( List ( 

	 	 	 datefrom; dateto; timefrom; timeto; Event; color; fkResource; tooltip

	 	 	 ) ; "¶" ; "t" )

• timestampfrom	 Timestamp	 Indexed, Auto-Enter = 

	 	 	 Let ( _timefrom = 

	 	 	 If ( IsEmpty ( timefrom ) ; GetAsTime ( "00:00" ) ; timefrom ) ; 

	 	 	 Timestamp ( datefrom ; _timefrom ) )

• timestampto	 Timestamp	 Indexed, Auto-Enter = 

	 	 	 Let ( _timeto = 

	 	 	 If ( IsEmpty ( timeto ) ; GetAsTime ( "24:00" ) ; timeto ) ; 

	 	 	 Timestamp ( dateto ; _timeto ) )

• timestampList	 Text	 Indexed, Auto-Enter =

	 	 	 TimestampList ( timestampfrom ; timestampto ; overlapGrid )

• noverlap		 Calculation	 Unstored = Count ( Events@start::UUID )
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
GUI - Felder
• UUID	 	 Text	 Indexed, Auto-Enter = Get ( UUID ) 

• gDate	 	 Date	 Global (Startdatum des Anzeigebereichs)

• gNumberOfDays	 Number	 Global (Anzahl anzuzeigende Tage)

• HTMLCalendar	 Text	 Global (der berechnete html-Code)

• gDateList	 Calc	 Let ( [ _date = GUI::gDate ; _ndays = GUI::gNumberOfDays ] ;

	 	 	 ListOfDate ( _date ; _date + _ndays - 1 ) )

	 	 	 (Ankerfeld für Beziehung GUI <—> Events::dateList )

• gResourceList	 Text	 Global (Ankerfeld für Beziehung GUI <—> Events::fkResource )

• gEventId	 Text	 Global (Ankerfeld für GUI_Events@gEventId)

• gResourceId	 Text	 Global (Ankerfeld für GUI_Resources@gResourceID)

• gGroupID	 Text	 Global (Ankerfeld für GUI_Groups@gGroupID)

• gLanguage	 Text	 Global

• g1	 	 Calc	 Unstored, = 1 (für Statusfilter)

• GFilterGroupID	 Text	 Global (Filterfeld für Gruppenauswahl)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Beziehungsgraph
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
html
<html>	
			<head>	
						<meta	charset="utf-8">	
						<script>	
									unser	JavaScript-Code	hier	
						</script>	
						<style>	
									unser	CSS-Code	hier	
						</style>	
			</head>	
			<body>	
						<svg>	(Scalable	Vector	Graphics)	
									das	Kalender-Grid	hier,	Kopf,	Gruppen-	und	Ressourcenlabel	u.s.w.	
						</svg>	
						<div	class="calendar">	
									unsere	Termine	hier	
						</div>	
						<a>	
									hier	noch	die	aktuelle	Zeitlinie	
						</a>	
			</body>	
</html>
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
JavaScript
<script>	
			var	xdown	=	null;	
			var	ydown	=	null;	
			u.s.w	
			document.addEventListener('mousedown',	function(event)	{	
						wenn	Terminobjekt	geklickt,	Variablen	mit	Eigenschaften	füllen,	Klick-Koordinaten	sichern	
			});	
			document.addEventListener('mouseup',	function(event)	{	
						wenn	vorheriger	Mousdown-Event	in	Terminobjekt	war,	
						falls	Koordinaten	ungleich	Koordinaten	gesichert,	FM-Update-Script	ausführen	
						sonst	FM-Zeigedetail-Script	ausführen	
			});	
			document.addEventListener('mousemove',	function(event)	{	
						wenn	Mousdown-Event	in	Terminobjekt	und	Koordinaten	ungleich	Startkoordinaten	
						Terminobjekt	an	neuer	Position	/	mit	neuer	Länge	zeichnen	
			});	
			helper	Funktionen	
</script>
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
CSS
<style>	
//Elemente	
			body	{	font-family:	'Helvetica	Neue',	Helvetica,	Arial,	sans-serif;	font-size:	10px;	color:	#202020;	width:	100%;	}	
			svg	{	width:	100%;	stroke:	rgba(200,200,200,0.5);	stroke-width:	1px;	}	
			text	{	font-size:	1.2em;	fill:	#505050;	width:	100%;	stroke:	none;	cursor:	default;	}	
			a	{	padding-left:	2px;	padding-right:	2px;	display:	block;	text-decoration:	none;	color:	#404040;	}	
			figure	{	display:	table;	position:	absolute;	font-size:	1em;	border-left:	solid;	border-top:	1px	solid;	
																border-bottom:	1px	solid;	border-right:	0px	solid;	height:	29px;	max-height:	29px;	cursor:	pointer;	}	
//Klassen	
			.button	{	cursor:	pointer;	}	
			.calendar	{	position:	absolute;	left:	0px;	right:	1%;	top:0px;	}	
			.label	{	padding-top:	2px;	padding-left:	2px;	padding-right:	2px;	height:	26px;	max-height:	26px;	

																color:	#404040;	overflow:	hidden;	overflow-y:	hidden;	white-space:	nowrap;	}	
			.hand	{	display:	table-cell;	vertical-align:	middle;	}	
		…….	
			.row45C9AC81-6E97-44A4-A7CD-1CC110698BCC11	{	top:	40px;	height:	27px;	}	
			.row302666EE-90C1-4058-AEC0-BB74CD1E587A31	{	top:	70px;	height:	27px;	}	
			…….	
			.BLUE	{	background-color:	rgba(24,108,227,0.45);	border-color:	#0074D9;	display:	table;	}	
			.BLUEhand	{	width:7px;	background:	none;	border-right:	1px	solid	#0074D9;	cursor:	ew-resize;	}	
			…..	
</style>
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
CFs für CSS-Zeilen
setCSSrows	(	_list	;	_nrows	;	_n	;	_offsettop	;	_height	)	
Let	(	[	
_value	=	Substitute	(	GetValue	(	_list	;	_n	)	;	"|"	;	"¶"	)	
;	_id	=	GetValue	(	_value	;	1	)	
;	_nslots	=	GetAsNumber	(	GetValue	(	_value	;	5	)	)	
;	_slotstart	=	GetValue	(	_value	;	6	)	
;	_top	=	_height	*	(	_slotstart	-	1	)	+	_offsettop	
;	_row	=	setCSSslots	(	_id	;	_nslots	;	1	;	_top	;	_height	)	//generate	slots	for	concurrent	events	
]	;	
_row	&	If	(	_n	<	_nrows	;	setCSSrows	(	_list	;	_nrows	;	_n	+	1	;	_offsettop	;	_height	)	;	""	)	
)	
___________________________________________________________________________________	
setCSSslots	(	_id	;	_count	;	_n	;	_top	;	_height	)	
".row"	&	_id	&	_count	&	_n	&	"	{	top:	"	&	_top	&	"px;	height:	"	&	_height	-	3	&	"px;}¶"	&	
If	(	_n	<	_count	;	setCSSslots	(	_id	;	_count	;	_n	+	1	;	_top	+	_height	;	_height	)	)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
CF für CSS-Farben
setCSScolors	(	_list	;	_handwidth	)	
Let	(	[	
_params	=	Substitute	(	GetValue	(	_list	;	1	)	;	"|"	;	"¶"	)	
;	_col	=	GetValue	(	_params	;	1	)	
;	_bgr	=	GetValue	(	_params	;	2	)	
;	_brd	=	GetValue	(	_params	;	3	)	
;	_width	=	_handwidth	-	1	
;	_tag	=	Substitute	(	"	
._col	{	background-color:	rgba(_bgr);	border-color:	_brd;	display:	table;	}¶	
._colhand	{	width:_widthpx;	background:none;	border-right:	1px	solid	_brd;	cursor:	ew-resize;	}¶	
¶"	
;	["_col"	;	_col]	
;	["_brd"	;	_brd]	
;	["_bgr"	;	_bgr]	
;	["_width"	;	_width]	
)	
;	_list	=	RightValues	(	_list	;	ValueCount	(	_list	)	-	1	)	
]	;	
_tag	&	If	(	ValueCount	(	_list	)	;	setCSScolors	(	_list	)	)	
)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
CFs für Kalenderraster und Daten
• setCalendarGrid	 	 zeichnet Kopfbereich und vertikale Linien, Monat, Woche, 

	 	 	 Datum, Stunden, je nach anzahl anzuzeigender Tage und Breite 

	 	 	 des Kalenders.

• setCalendarHourGrid	 Wird durch setCalendarGrid aufgerufen, Parameter abhängig von 

	 	 	 der Breite eines Tages in Pixel.

• setCalendarGridRows	 zeichnet Gruppen- und Ressourcen-Label, horzontale Linien und 

	 	 	 Hintergrundrechtecke. Label und Hintergrundrechtecke werden für 

	 	 	 Klickaktionen registriert.

• setCalendar	 	 rendert schlussendlich die Termin-Elemente:



<figure class='row45C9AC81-6E97-44A4-A7CD-1CC110698BCC21 BLUE' evt='CFFC101D-89B6-4BEF-9B6B-94FDC71E7391'
start='28800' end='79200' dstart='1538956800000' dend='1539302400000' info='Math' rowpos='1' 

style='left:308.44px; width:310.92px'>

<div class='block' style='width:304.92px; max-width:304.92px'>08:00 - 22:00<br>Math</div>

<div class='hand BLUEhand' evt='CFFC101D-89B6-4BEF-9B6B-94FDC71E7391' style='left:304.92px;'></div>

</figure>
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Skripte
• refresh	 	 Hauptskript, berechnet das HTML-Feld und aktualisiert Tasten, installiert 

	 	 Timer-Skript für WebDirect.

• ShowEvent	 öffnet das entsprechnede Detailfenster (Karte) an der Klickposition	 

• ShowGroup	 

• ShowResource	 

• UpdateEvent	 speichert Änderungen per Ziehen im WebViewer in der Events Tabelle, triggert 

	 	 wenn nötig das refresh Skript

• NewEvent	 wird durch Doppelklick in einen leeren Bereich im Kalender aufgerufen, erstellt 

	 	 einen neuen Termin an der Klickposition mit der voreigestellten Dauer für neue 

	 	 Termine

• DeleteEvent	 Aufgerufen durch Taste im Termin Detail-Fenster
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Skript refresh
# parameter 1: (text) refresh-object 2: (bool) clear gGroupID
If [ GetValue ( Get ( ScriptParameter ) ; 2 ) ]
Set Field [ GUI::gFilterGroupID ; "" ]
End If
Set Variable [ $grouplist ;
Value: If ( IsEmpty ( GUI::gFilterGroupID ) ; List ( GUI_Groups@g1::UUID ) ; GUI::gFilterGroupID ) ]
Set Field [ GUI::gResourceList ;
Let ( [ $$reslist =
ExecuteSQL ( "SELECT UUID FROM Resources WHERE fkResourceGroup IN('" & Substitute ( $grouplist ; "¶" ; "', '" )
& "')" & If ( $$hideon ; " AND State IS NULL " ) & "ORDER BY GroupName ASC, ResnameShort ASC" ; "" ; "" ) ] ;
$$reslist ) ]
Set Field [ Resources::gDateList ; GUI::gDateList ]
Set Variable [ $calendar ;
Value: Let ( [ /******************************************** ****** configuration variables **************
********************************************/ _offset = 80 //start of 1. column ; _offsettop = 40 //start of 1. row ; _linespace =
-5 //event-rect size… ]
Set Field [ GUI::HTMLCalendar ; $calendar ]
Set Field [ GUI::gEventId ; "" ]
Refresh Object [ Object Name: GetValue ( Get ( ScriptParameter ) ; 1 ) ; Repetition: 1 ]
Go to Object [ Object Name: "Calendar" ]
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Berechnung $calendar 1
Let	(	[	
Konfigurationsvariablen	hier	;	_offsetleft	=	80	;	_offsettop	=	40	;	....	;	_script_drag	;	_script_show	...	u.s.w.	
berechnete	Variablen	;	_scroll	=	...	;	_copy	=	...	;	_filname	......		
;	_dwidth	=	Round	(	_width	/	_days	;	2	)	
;	_list	=	ExecuteSQL	(	"	
SELECT	UUID,	ResnameShort,	fkResourceGroup,	GroupName,	State,	"	&	If	(	_slots	;	"noverlap	"	;	"1	"	)	&	
"FROM	Resources	WHERE	UUID	IN('"	&	Substitute	(	$$reslist	;	"¶"	;	"',	'"	)	&	"')		
ORDER	BY	GroupName	ASC,	ResnameShort	ASC	
"	;	"|"	;	""	)	
;	_list	=	resourcesAddSlotIndex	(	_list	;	0	;	1	)	
;	$$residx	=	_list	
;	_nrows	=	ValueCount	(	$$reslist	)	
;	_nslots	=	getResourceValue	(	GetValue	(	$$reslist	;	_nrows	)	;	8	)	
;	_height	=	_rowheight	*	_nslots	
;	_timegrid	=	"<svg	style='height:"	&	_height	+	_offsettop	&	"px;'>¶"	&		
setCalendarGrid	(	_offsetleft	;	_days	;	0	;	_dstart	;	_dwidth	;	_offsettop	;	_height	;	_ampm	;	_language	;	_bhstart	;	_bhend	;	_centerdate	)	
;	_resgrid	=	setCalendarGridRows	(	_list	;	_rowheight	;	1	;	_linespace	;	_filename	;	_offsettop	;	_dwidth	;	_calwidth	;	_script_new	;	
_offsetleft	;	_script_info	;	_script_group	;	_bhstart	;	_bhend	;	_newlength	;	_dragstep	;	""	)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Berechnung $calendar 2
;	_rows	=	setCSSrows	(	_list	;	_rowheight	;	_nrows	;	1	;	_offsettop	)	
;	_colors	=	setCSScolors	(	ExecuteSQL	(	"SELECT	Name,	Background,	Border	FROM	Colors"	;	"|"	;	""	)	;	_handwidth	)	
;	_css	=	setCSS	(	_rows	;	_colors	)	
;	_caldates	=	eventsSetSlot	(	List	(	GUI_Events::FieldList	)	;	""	;	1	;	"";	""	)	
;	_calendar	=	setCalendar	(	_caldates	;	_delimiter	;	_calspace	;	_offsetleft	;	_dstart	;	_dwidth	;	_calend	;	_rowheight	;	_ampm	;	
_showtime	;	_showdate	;	_minwidth	;	_bhstart	;	_bhend	;	_showtooltip	;	_handwidth	)	
;	_script	=	jsDragAndDrop	(	_rowheight	;	_dwidth	;	_filename	;	_script_drag	;	_script_show	;	_ampm	;	_dragstep	;	_nslots	;	_showdate	;	
_dstart	;	_offsetleft	;	_offsettop	;	_bhstart	;	_bhend	;	_copy	)	
]	;	
"<!DOCTYPE	html>¶<html>¶<head>¶<meta	charset='utf-8'>¶	
¶<script>¶"	&	_script	&	"¶</script>¶"	&	
_css	&		
"¶</head>¶¶<body>¶¶"	&	
_timegrid	&	_resgrid	&	
"¶<div	class='calendar'>¶¶"	&	
_calendar	&		
<timeline	div	hier>	&	
"¶¶</body>¶</html>"	
)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
FM-Datei
fmp://fmslocal.gibi.loc/ResourceCalendarFMK
ResourceCalendarFMK - WebDirect

9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Tipps
• WebViewer Debug-Funktion einschalten (nur macOS):

FM17: defaults write com.filemaker.client.pro12 WebKitDebugDeveloperExtrasEnabled -bool YES

FM16: defaults write com.filemaker.client.advanced12 WebKitDebugDeveloperExtrasEnabled -bool YES

FM14/15: defaults write com.filemaker.client.advanced12 WebKitDeveloperExtras -bool true

https://blog.beezwax.net/2015/07/20/enable-debugger-for-a-filemaker-web-viewer/

• Prefs Editor von Thomas Tempelmann (macOS):

Preferenzfiles ansehen/editieren, auch von Sandbox-Anwendungen

http://apps.tempel.org/PrefsEditor/index.php

• SwiftDefaultApps von Gregorio Litenstein (macOS):

Protokoll-Handler zwischen Versionen umschalten, Standartanwendung für Filetyp setzen

https://github.com/Lord-Kamina/SwiftDefaultApps

• Protokoll-Handler Windows (letzte Zeile Pfad anpassen, Achtung Doppel-Backslash):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTFMP]

@="URL:FMP Protocol"

"URL Protocol"=""

[HKEY_CLASSES_ROOTFMPshell]

[HKEY_CLASSES_ROOTFMPshellopen]

[HKEY_CLASSES_ROOTFMPshellopencommand]

@="c:Program FilesFileMakerFileMaker Pro 16 AdvancedFileMaker Pro Advanced.exe %1"
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Quellen / Dank
• Longin Ziegler: FMK 2016 - Schritt für Schritt zum eigenen Kalender

https://www.filemaker-konferenz.com/downloads.php

• Stefan Rexroth: php-Musterdatei für den Aufruf von Skripten aus dem
WebViewer in WebDirect

https://filemaker-magazin.de/forum/beitrag/178738

• Alle die meinen Kalender in ihren Lösungen einsetzen und durch ihre
Anforderungen und Wünsche die Funktionalität vorwärtstreiben.

• Alle aktiven Forumsteilnehmer auf Filemaker-Magazin.de und
community.filemaker.com, die beitragen das FM-Fachwissen zu verbreiten.

• Meine Kalender-Musterdateien liegen hier:

https://community.filemaker.com/docs/DOC-8518
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Kalender in FileMaker – Otmar Kramis
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages

Mais conteúdo relacionado

Semelhante a FMK2018 Kalender in FileMaker eigenes HTML5-Framework mit Drag und Drop by Otmar Kramis

Workshop Logfile Analyse mit Splunk
Workshop Logfile Analyse mit SplunkWorkshop Logfile Analyse mit Splunk
Workshop Logfile Analyse mit SplunkHannes Richter
 
FMK2018- JSON Innerhalb FileMaker Thomas Hirt
FMK2018- JSON Innerhalb FileMaker Thomas HirtFMK2018- JSON Innerhalb FileMaker Thomas Hirt
FMK2018- JSON Innerhalb FileMaker Thomas HirtVerein FM Konferenz
 
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzFMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinVerein FM Konferenz
 
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten Risseeuw
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten RisseeuwFMK2018- Benutzerverwaltung für FileMaker Pro Karsten Risseeuw
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten RisseeuwVerein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeNETWAYS
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinVerein FM Konferenz
 
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzFMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzVerein FM Konferenz
 
FMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerFMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerVerein FM Konferenz
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
FMK2015: FileMaker Grundlagen Formeln by Longin Ziegler
FMK2015: FileMaker Grundlagen Formeln by Longin ZieglerFMK2015: FileMaker Grundlagen Formeln by Longin Ziegler
FMK2015: FileMaker Grundlagen Formeln by Longin ZieglerVerein FM Konferenz
 
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderFMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderVerein FM Konferenz
 
FMK2018- Anforderungen einer Standardsoftware Karsten Risseeuw
FMK2018- Anforderungen einer Standardsoftware Karsten RisseeuwFMK2018- Anforderungen einer Standardsoftware Karsten Risseeuw
FMK2018- Anforderungen einer Standardsoftware Karsten RisseeuwVerein FM Konferenz
 
FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtFMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtVerein FM Konferenz
 
Web-Streams und Web-Geoinformationssysteme
Web-Streams und Web-GeoinformationssystemeWeb-Streams und Web-Geoinformationssysteme
Web-Streams und Web-GeoinformationssystemeChristian Kehl
 

Semelhante a FMK2018 Kalender in FileMaker eigenes HTML5-Framework mit Drag und Drop by Otmar Kramis (19)

Workshop Logfile Analyse mit Splunk
Workshop Logfile Analyse mit SplunkWorkshop Logfile Analyse mit Splunk
Workshop Logfile Analyse mit Splunk
 
FMK2018- JSON Innerhalb FileMaker Thomas Hirt
FMK2018- JSON Innerhalb FileMaker Thomas HirtFMK2018- JSON Innerhalb FileMaker Thomas Hirt
FMK2018- JSON Innerhalb FileMaker Thomas Hirt
 
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzFMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten Risseeuw
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten RisseeuwFMK2018- Benutzerverwaltung für FileMaker Pro Karsten Risseeuw
FMK2018- Benutzerverwaltung für FileMaker Pro Karsten Risseeuw
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
 
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzFMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
 
FMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerFMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen Bauer
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
FMK2015: FileMaker Grundlagen Formeln by Longin Ziegler
FMK2015: FileMaker Grundlagen Formeln by Longin ZieglerFMK2015: FileMaker Grundlagen Formeln by Longin Ziegler
FMK2015: FileMaker Grundlagen Formeln by Longin Ziegler
 
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderFMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
 
FMK2018- Anforderungen einer Standardsoftware Karsten Risseeuw
FMK2018- Anforderungen einer Standardsoftware Karsten RisseeuwFMK2018- Anforderungen einer Standardsoftware Karsten Risseeuw
FMK2018- Anforderungen einer Standardsoftware Karsten Risseeuw
 
FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtFMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Web-Streams und Web-Geoinformationssysteme
Web-Streams und Web-GeoinformationssystemeWeb-Streams und Web-Geoinformationssysteme
Web-Streams und Web-Geoinformationssysteme
 

Mais de Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg KösterVerein FM Konferenz
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...Verein FM Konferenz
 

Mais de Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
 

FMK2018 Kalender in FileMaker eigenes HTML5-Framework mit Drag und Drop by Otmar Kramis

  • 1. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 www.filemaker-konferenz.com eigenes HTML5-Framework mit Drag (und Drop) Otmar Kramis Kalender in FileMaker
  • 2. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Über den Sprecher • *1959 Hildisrieden, Luzern • 80er-Jahre, Jazz-Saxofon Studium an der Hochschule für Musik und darstellende Kunst Graz • ab 91 Dozent an der Jazzschule Luzern, heute Hochschule Luzern - Musik • ab ~97 fliessender Übergang vom Dozenten zum Informatiker, durch Fusion der Fachhochschulen Zentralschweiz seit 2006 Applikationsentwickler an der Hochschule Luzern - IT Services • Erstkontakt mit FileMaker, durch Übernahme einer Mediathek-Selbstausleihe-Lösung unter FM3 • erste eigene Lösung? Raum-Reservation für die Jazzschule Luzern mit FM6;-)
  • 3. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Kurze Demo fmp://fmslocal.gibi.loc/ResourceCalendarFMK

  • 4. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Tabellen • Resources UUID, fkResourceGroup, ResName, ResnameShort, State, Info
 • Groups UUID, GroupName, active, Info
 • Colors ColorID, Background, Border, Name
 • Events Details nächste Folien
 • GUI Details nächste Folien
  • 5. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Events - Daten • UUID Text Indexed, Auto-Enter = Get ( UUID ) • fkResource Text Indexed • fkGroup Text Indexed, Auto-Enter = Events_Resources::fkGroup • datefrom Date Indexed • dateto Date (Indexed) • overlapGrid Calc Unstored = 5 • timefrom Time Indexed, Auto-Enter = 
 Let ( _step = overlapGrid * 60 ; Div ( Self ; _step ) * _step ) • timeto Time (Indexed), Auto-Enter = 
 Let ( _step = overlapGrid * 60 ; Div ( Self ; _step ) * _step ) • Event Text Indexed • color Text Indexed
  • 6. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Events - berechnete Felder • dateList Text Indexed, Auto-Enter = 
 ListOfDate ( datefrom ; dateto - ( timeto = Time ( 0 ; 0 ; 0 ) ) ) • FieldList Text Indexed, Auto-Enter =
 Substitute ( List ( 
 datefrom; dateto; timefrom; timeto; Event; color; fkResource; tooltip
 ) ; "¶" ; "t" ) • timestampfrom Timestamp Indexed, Auto-Enter = 
 Let ( _timefrom = 
 If ( IsEmpty ( timefrom ) ; GetAsTime ( "00:00" ) ; timefrom ) ; 
 Timestamp ( datefrom ; _timefrom ) ) • timestampto Timestamp Indexed, Auto-Enter = 
 Let ( _timeto = 
 If ( IsEmpty ( timeto ) ; GetAsTime ( "24:00" ) ; timeto ) ; 
 Timestamp ( dateto ; _timeto ) ) • timestampList Text Indexed, Auto-Enter =
 TimestampList ( timestampfrom ; timestampto ; overlapGrid ) • noverlap Calculation Unstored = Count ( Events@start::UUID )
  • 7. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis GUI - Felder • UUID Text Indexed, Auto-Enter = Get ( UUID ) • gDate Date Global (Startdatum des Anzeigebereichs) • gNumberOfDays Number Global (Anzahl anzuzeigende Tage) • HTMLCalendar Text Global (der berechnete html-Code) • gDateList Calc Let ( [ _date = GUI::gDate ; _ndays = GUI::gNumberOfDays ] ;
 ListOfDate ( _date ; _date + _ndays - 1 ) )
 (Ankerfeld für Beziehung GUI <—> Events::dateList ) • gResourceList Text Global (Ankerfeld für Beziehung GUI <—> Events::fkResource ) • gEventId Text Global (Ankerfeld für GUI_Events@gEventId) • gResourceId Text Global (Ankerfeld für GUI_Resources@gResourceID) • gGroupID Text Global (Ankerfeld für GUI_Groups@gGroupID) • gLanguage Text Global • g1 Calc Unstored, = 1 (für Statusfilter) • GFilterGroupID Text Global (Filterfeld für Gruppenauswahl)
  • 8. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Beziehungsgraph
  • 9. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis html <html> <head> <meta charset="utf-8"> <script> unser JavaScript-Code hier </script> <style> unser CSS-Code hier </style> </head> <body> <svg> (Scalable Vector Graphics) das Kalender-Grid hier, Kopf, Gruppen- und Ressourcenlabel u.s.w. </svg> <div class="calendar"> unsere Termine hier </div> <a> hier noch die aktuelle Zeitlinie </a> </body> </html>
  • 10. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis JavaScript <script> var xdown = null; var ydown = null; u.s.w document.addEventListener('mousedown', function(event) { wenn Terminobjekt geklickt, Variablen mit Eigenschaften füllen, Klick-Koordinaten sichern }); document.addEventListener('mouseup', function(event) { wenn vorheriger Mousdown-Event in Terminobjekt war, falls Koordinaten ungleich Koordinaten gesichert, FM-Update-Script ausführen sonst FM-Zeigedetail-Script ausführen }); document.addEventListener('mousemove', function(event) { wenn Mousdown-Event in Terminobjekt und Koordinaten ungleich Startkoordinaten Terminobjekt an neuer Position / mit neuer Länge zeichnen }); helper Funktionen </script>
  • 11. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis CSS <style> //Elemente body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 10px; color: #202020; width: 100%; } svg { width: 100%; stroke: rgba(200,200,200,0.5); stroke-width: 1px; } text { font-size: 1.2em; fill: #505050; width: 100%; stroke: none; cursor: default; } a { padding-left: 2px; padding-right: 2px; display: block; text-decoration: none; color: #404040; } figure { display: table; position: absolute; font-size: 1em; border-left: solid; border-top: 1px solid; border-bottom: 1px solid; border-right: 0px solid; height: 29px; max-height: 29px; cursor: pointer; } //Klassen .button { cursor: pointer; } .calendar { position: absolute; left: 0px; right: 1%; top:0px; } .label { padding-top: 2px; padding-left: 2px; padding-right: 2px; height: 26px; max-height: 26px; 
 color: #404040; overflow: hidden; overflow-y: hidden; white-space: nowrap; } .hand { display: table-cell; vertical-align: middle; } ……. .row45C9AC81-6E97-44A4-A7CD-1CC110698BCC11 { top: 40px; height: 27px; } .row302666EE-90C1-4058-AEC0-BB74CD1E587A31 { top: 70px; height: 27px; } ……. .BLUE { background-color: rgba(24,108,227,0.45); border-color: #0074D9; display: table; } .BLUEhand { width:7px; background: none; border-right: 1px solid #0074D9; cursor: ew-resize; } ….. </style>
  • 12. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis CFs für CSS-Zeilen setCSSrows ( _list ; _nrows ; _n ; _offsettop ; _height ) Let ( [ _value = Substitute ( GetValue ( _list ; _n ) ; "|" ; "¶" ) ; _id = GetValue ( _value ; 1 ) ; _nslots = GetAsNumber ( GetValue ( _value ; 5 ) ) ; _slotstart = GetValue ( _value ; 6 ) ; _top = _height * ( _slotstart - 1 ) + _offsettop ; _row = setCSSslots ( _id ; _nslots ; 1 ; _top ; _height ) //generate slots for concurrent events ] ; _row & If ( _n < _nrows ; setCSSrows ( _list ; _nrows ; _n + 1 ; _offsettop ; _height ) ; "" ) ) ___________________________________________________________________________________ setCSSslots ( _id ; _count ; _n ; _top ; _height ) ".row" & _id & _count & _n & " { top: " & _top & "px; height: " & _height - 3 & "px;}¶" & If ( _n < _count ; setCSSslots ( _id ; _count ; _n + 1 ; _top + _height ; _height ) )
  • 13. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis CF für CSS-Farben setCSScolors ( _list ; _handwidth ) Let ( [ _params = Substitute ( GetValue ( _list ; 1 ) ; "|" ; "¶" ) ; _col = GetValue ( _params ; 1 ) ; _bgr = GetValue ( _params ; 2 ) ; _brd = GetValue ( _params ; 3 ) ; _width = _handwidth - 1 ; _tag = Substitute ( " ._col { background-color: rgba(_bgr); border-color: _brd; display: table; }¶ ._colhand { width:_widthpx; background:none; border-right: 1px solid _brd; cursor: ew-resize; }¶ ¶" ; ["_col" ; _col] ; ["_brd" ; _brd] ; ["_bgr" ; _bgr] ; ["_width" ; _width] ) ; _list = RightValues ( _list ; ValueCount ( _list ) - 1 ) ] ; _tag & If ( ValueCount ( _list ) ; setCSScolors ( _list ) ) )
  • 14. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis CFs für Kalenderraster und Daten • setCalendarGrid zeichnet Kopfbereich und vertikale Linien, Monat, Woche, 
 Datum, Stunden, je nach anzahl anzuzeigender Tage und Breite 
 des Kalenders. • setCalendarHourGrid Wird durch setCalendarGrid aufgerufen, Parameter abhängig von 
 der Breite eines Tages in Pixel. • setCalendarGridRows zeichnet Gruppen- und Ressourcen-Label, horzontale Linien und 
 Hintergrundrechtecke. Label und Hintergrundrechtecke werden für 
 Klickaktionen registriert. • setCalendar rendert schlussendlich die Termin-Elemente: 
 <figure class='row45C9AC81-6E97-44A4-A7CD-1CC110698BCC21 BLUE' evt='CFFC101D-89B6-4BEF-9B6B-94FDC71E7391' start='28800' end='79200' dstart='1538956800000' dend='1539302400000' info='Math' rowpos='1' 
 style='left:308.44px; width:310.92px'>
 <div class='block' style='width:304.92px; max-width:304.92px'>08:00 - 22:00<br>Math</div>
 <div class='hand BLUEhand' evt='CFFC101D-89B6-4BEF-9B6B-94FDC71E7391' style='left:304.92px;'></div>
 </figure>
  • 15. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Skripte • refresh Hauptskript, berechnet das HTML-Feld und aktualisiert Tasten, installiert 
 Timer-Skript für WebDirect.
 • ShowEvent öffnet das entsprechnede Detailfenster (Karte) an der Klickposition • ShowGroup • ShowResource • UpdateEvent speichert Änderungen per Ziehen im WebViewer in der Events Tabelle, triggert 
 wenn nötig das refresh Skript • NewEvent wird durch Doppelklick in einen leeren Bereich im Kalender aufgerufen, erstellt 
 einen neuen Termin an der Klickposition mit der voreigestellten Dauer für neue 
 Termine • DeleteEvent Aufgerufen durch Taste im Termin Detail-Fenster
  • 16. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Skript refresh # parameter 1: (text) refresh-object 2: (bool) clear gGroupID If [ GetValue ( Get ( ScriptParameter ) ; 2 ) ] Set Field [ GUI::gFilterGroupID ; "" ] End If Set Variable [ $grouplist ; Value: If ( IsEmpty ( GUI::gFilterGroupID ) ; List ( GUI_Groups@g1::UUID ) ; GUI::gFilterGroupID ) ] Set Field [ GUI::gResourceList ; Let ( [ $$reslist = ExecuteSQL ( "SELECT UUID FROM Resources WHERE fkResourceGroup IN('" & Substitute ( $grouplist ; "¶" ; "', '" ) & "')" & If ( $$hideon ; " AND State IS NULL " ) & "ORDER BY GroupName ASC, ResnameShort ASC" ; "" ; "" ) ] ; $$reslist ) ] Set Field [ Resources::gDateList ; GUI::gDateList ] Set Variable [ $calendar ; Value: Let ( [ /******************************************** ****** configuration variables ************** ********************************************/ _offset = 80 //start of 1. column ; _offsettop = 40 //start of 1. row ; _linespace = -5 //event-rect size… ] Set Field [ GUI::HTMLCalendar ; $calendar ] Set Field [ GUI::gEventId ; "" ] Refresh Object [ Object Name: GetValue ( Get ( ScriptParameter ) ; 1 ) ; Repetition: 1 ] Go to Object [ Object Name: "Calendar" ]
  • 17. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Berechnung $calendar 1 Let ( [ Konfigurationsvariablen hier ; _offsetleft = 80 ; _offsettop = 40 ; .... ; _script_drag ; _script_show ... u.s.w. berechnete Variablen ; _scroll = ... ; _copy = ... ; _filname ...... ; _dwidth = Round ( _width / _days ; 2 ) ; _list = ExecuteSQL ( " SELECT UUID, ResnameShort, fkResourceGroup, GroupName, State, " & If ( _slots ; "noverlap " ; "1 " ) & "FROM Resources WHERE UUID IN('" & Substitute ( $$reslist ; "¶" ; "', '" ) & "') ORDER BY GroupName ASC, ResnameShort ASC " ; "|" ; "" ) ; _list = resourcesAddSlotIndex ( _list ; 0 ; 1 ) ; $$residx = _list ; _nrows = ValueCount ( $$reslist ) ; _nslots = getResourceValue ( GetValue ( $$reslist ; _nrows ) ; 8 ) ; _height = _rowheight * _nslots ; _timegrid = "<svg style='height:" & _height + _offsettop & "px;'>¶" & setCalendarGrid ( _offsetleft ; _days ; 0 ; _dstart ; _dwidth ; _offsettop ; _height ; _ampm ; _language ; _bhstart ; _bhend ; _centerdate ) ; _resgrid = setCalendarGridRows ( _list ; _rowheight ; 1 ; _linespace ; _filename ; _offsettop ; _dwidth ; _calwidth ; _script_new ; _offsetleft ; _script_info ; _script_group ; _bhstart ; _bhend ; _newlength ; _dragstep ; "" )
  • 18. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Berechnung $calendar 2 ; _rows = setCSSrows ( _list ; _rowheight ; _nrows ; 1 ; _offsettop ) ; _colors = setCSScolors ( ExecuteSQL ( "SELECT Name, Background, Border FROM Colors" ; "|" ; "" ) ; _handwidth ) ; _css = setCSS ( _rows ; _colors ) ; _caldates = eventsSetSlot ( List ( GUI_Events::FieldList ) ; "" ; 1 ; ""; "" ) ; _calendar = setCalendar ( _caldates ; _delimiter ; _calspace ; _offsetleft ; _dstart ; _dwidth ; _calend ; _rowheight ; _ampm ; _showtime ; _showdate ; _minwidth ; _bhstart ; _bhend ; _showtooltip ; _handwidth ) ; _script = jsDragAndDrop ( _rowheight ; _dwidth ; _filename ; _script_drag ; _script_show ; _ampm ; _dragstep ; _nslots ; _showdate ; _dstart ; _offsetleft ; _offsettop ; _bhstart ; _bhend ; _copy ) ] ; "<!DOCTYPE html>¶<html>¶<head>¶<meta charset='utf-8'>¶ ¶<script>¶" & _script & "¶</script>¶" & _css & "¶</head>¶¶<body>¶¶" & _timegrid & _resgrid & "¶<div class='calendar'>¶¶" & _calendar & <timeline div hier> & "¶¶</body>¶</html>" )
  • 19. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis FM-Datei fmp://fmslocal.gibi.loc/ResourceCalendarFMK ResourceCalendarFMK - WebDirect

  • 20. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Tipps • WebViewer Debug-Funktion einschalten (nur macOS):
 FM17: defaults write com.filemaker.client.pro12 WebKitDebugDeveloperExtrasEnabled -bool YES
 FM16: defaults write com.filemaker.client.advanced12 WebKitDebugDeveloperExtrasEnabled -bool YES
 FM14/15: defaults write com.filemaker.client.advanced12 WebKitDeveloperExtras -bool true
 https://blog.beezwax.net/2015/07/20/enable-debugger-for-a-filemaker-web-viewer/ • Prefs Editor von Thomas Tempelmann (macOS):
 Preferenzfiles ansehen/editieren, auch von Sandbox-Anwendungen
 http://apps.tempel.org/PrefsEditor/index.php • SwiftDefaultApps von Gregorio Litenstein (macOS):
 Protokoll-Handler zwischen Versionen umschalten, Standartanwendung für Filetyp setzen
 https://github.com/Lord-Kamina/SwiftDefaultApps • Protokoll-Handler Windows (letzte Zeile Pfad anpassen, Achtung Doppel-Backslash):
 Windows Registry Editor Version 5.00
 [HKEY_CLASSES_ROOTFMP]
 @="URL:FMP Protocol"
 "URL Protocol"=""
 [HKEY_CLASSES_ROOTFMPshell]
 [HKEY_CLASSES_ROOTFMPshellopen]
 [HKEY_CLASSES_ROOTFMPshellopencommand]
 @="c:Program FilesFileMakerFileMaker Pro 16 AdvancedFileMaker Pro Advanced.exe %1"
  • 21. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Quellen / Dank • Longin Ziegler: FMK 2016 - Schritt für Schritt zum eigenen Kalender
 https://www.filemaker-konferenz.com/downloads.php • Stefan Rexroth: php-Musterdatei für den Aufruf von Skripten aus dem WebViewer in WebDirect
 https://filemaker-magazin.de/forum/beitrag/178738 • Alle die meinen Kalender in ihren Lösungen einsetzen und durch ihre Anforderungen und Wünsche die Funktionalität vorwärtstreiben. • Alle aktiven Forumsteilnehmer auf Filemaker-Magazin.de und community.filemaker.com, die beitragen das FM-Fachwissen zu verbreiten. • Meine Kalender-Musterdateien liegen hier:
 https://community.filemaker.com/docs/DOC-8518
  • 22. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 Kalender in FileMaker – Otmar Kramis Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages