<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Groschengedanken zu Software &#187; Interface</title>
	<atom:link href="http://aysx.de/eingroschen/?feed=rss2&#038;tag=interface" rel="self" type="application/rss+xml" />
	<link>http://aysx.de/eingroschen</link>
	<description>... und vielleicht auch dem ganzen Rest</description>
	<lastBuildDate>Tue, 18 Jun 2019 17:59:37 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Notes: Alle Teil-Formulare kennen; Interface</title>
		<link>http://aysx.de/eingroschen/?p=533</link>
		<comments>http://aysx.de/eingroschen/?p=533#comments</comments>
		<pubDate>Thu, 15 Jan 2015 18:55:41 +0000</pubDate>
		<dc:creator><![CDATA[matthias]]></dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://aysx.de/eingroschen/?p=533</guid>
		<description><![CDATA[In der Programmier-Umgebung von Lotus Notes, &#8220;Designer&#8221; genannt, kann man Daten-Eingabemasken, sogenannte &#8220;Formulare&#8221;, erstellen. Ausserdem kann man im Designer Teil-Formulare erstellen. Ein Formular kann beliebig viele Teil-Formulare enthalten. Teil-Formulare clever nutzen Die Möglichkeit, Teil-Formulare zu erstellen und einzubinden, hat zwei &#8230; <a href="http://aysx.de/eingroschen/?p=533">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>In der Programmier-Umgebung von Lotus Notes, &#8220;Designer&#8221; genannt, kann man Daten-Eingabemasken, sogenannte &#8220;Formulare&#8221;, erstellen. Ausserdem kann man im Designer Teil-Formulare erstellen. Ein Formular kann beliebig viele Teil-Formulare enthalten.</p>
<h2>Teil-Formulare clever nutzen</h2>
<p>Die Möglichkeit, Teil-Formulare zu erstellen und einzubinden, hat zwei Vorteile. Einen offensichtlichen und einen weniger offensichtlichen.</p>
<p>Der offensichtliche Vorteil ist die Möglichkeit, wiederkehrende Abschnitte zu kapseln. Wenn ich erkenne, dass ein gewisser Bereich in mehreren Formularen vorkommt, dann verschiebe ich diesen Bereich in ein Teil-Formular und entferne ihn aus den entsprechenden Formularen. An der Leerstelle setze ich jeweils das Teil-Formular ein. Das spart Schreibarbeit und folgt dem guten Muster &#8220;Don&#8217;t Repeat Yourself&#8221;. Wenn ich das Teil-Formular ändere, dann wirkt sich das auf alle Formulare aus, die das Teil-Formular verwenden.</p>
<p>Weniger offensichtlich ist dies: Ein Teil-Formular kann als Interface dienen. Seine Feldwerte werden dazu durch einen Event-Handler im Formular gesetzt, beispielsweise durch das Exiting-Event eines zugehörenden Feldes oder das QuerySave-Event des Formulars. Dadurch, dass ein Formular ein Teil-Formular einbindet, codifiziert das Formular, dass es das Interface des Teil-Formluars implementiert &#8211; um java-ähnlich zu sprechen.</p>
<h2>Teil-Formulare auflisten</h2>
<p>Die Notes-Pogrammierung, die ich von meinen Vorgängern geerbt habe, ist voll von Teilmasken und schlecht dokumentiert. Wie erkenne ich, welche Teil-Formulare in einem Formular eingebunden sind? Anders formuliert: Wie erkenne ich, welche Interfaces ein Formluar implementiert? Mit den Bordmitteln des Designer kommt man leider nicht weiter. Das Notes-eigene XML und eine Transformation beenden die Not.</p>
<p>Zum Glück hat jedes (Teil-)Formular eine XML-Repräsentation in einem Dialekt namens dxl. Und der Designer kann eine XML-Transformation auf auswählbare Elemente anwenden. Fehlt nur die passende Transformation. Hier ist sie:</p><pre class="crayon-plain-tag">&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dxl="http://www.lotus.com/dxl"&gt;

&lt;xsl:output method="text" indent="yes"/&gt;

&lt;xsl:template match="/"&gt;
	&lt;xsl:apply-templates/&gt;
&lt;/xsl:template&gt;

&lt;xsl:template match="dxl:*"&gt;
	&lt;xsl:apply-templates select="dxl:*"/&gt;
&lt;/xsl:template&gt;

&lt;xsl:template match="dxl:subformref"&gt;
	&lt;xsl:value-of select="@name"/&gt;
&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre><p>Grafische Tools, wie der Designer eins ist, beschleunigen die Schaffung der Benutzeroberfläche enorm. Aber der gute alte Quelltext wird weiterhin seine Daseinberechtigung haben. Beruhigend.</p>
]]></content:encoded>
			<wfw:commentRss>http://aysx.de/eingroschen/?feed=rss2&#038;p=533</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
