<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Thema "Re: Raumstempel" in Alte Wunschliste</title>
    <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429285#M114</link>
    <description>Ja das ist wieder ein anders Thema, verbessern kann man immer. Der eine arbeitet so, der andre so. Grundsätzlich hast du sicher recht.&lt;BR /&gt;&lt;BR /&gt;Mir gehts es aber nur um das Ergebnis und die Darstellung. Bei einem 200er machen wir von 100 Raumstempel 95 einzeilig, 5 mal geht es sich dann in zwei Zeilen doch besser aus.&lt;BR /&gt;&lt;BR /&gt;Diese Flexibilität muss aber gewährleistet sein, sollte ja absolut machbar sein. Für die Lesbarkeit der Pläne ganz entscheidend.&lt;BR /&gt;&lt;BR /&gt;Vielen Dank.</description>
    <pubDate>Sun, 18 May 2014 15:45:49 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2014-05-18T15:45:49Z</dc:date>
    <item>
      <title>Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429283#M112</link>
      <description>Grundsätzlich wünschen wir uns einen Raumstempel bei dem Raumname und Flächenmaß in eine Zeile geschrieben werden kann.&lt;BR /&gt;&lt;BR /&gt;Konkret wäre es schön, wenn der Raumstempel als eine Art Text der mit dem Raum verknüpft ist funktioniert und man sich die Werte wie beim Auto-Text auf dem Layout holen kann. &lt;BR /&gt;&lt;BR /&gt;Damit kann man die Formatierung komplett selbstständig wählen. Bei Wettbewerben oder generell 200er Plänen verwenden wir immer mehr Texte und Schraffuren für eine freiere Gestaltung, das hat natürlich auch große Nachteile. Auch im 100er fangen wir damit jetzt schon an.&lt;BR /&gt;&lt;BR /&gt;LG Stefan</description>
      <pubDate>Sun, 18 May 2014 00:03:01 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429283#M112</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-05-18T00:03:01Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429284#M113</link>
      <description>Ich würde mir zusätzlich zu einem x+y-Hotspots zum Verschieben jedens einzelnen Eintrages (Textzeile) noch viel mehr wünschen, dass man die paar Einträge, welche eben angezeigt werden - entweder in der Infoleiste findet - oder direkt bei Anklicken dieser Beschriftungen ein Fenster aufpoppt, wo diese Einträge direkt zu editieren sind. Weiterspringen innerhalb eines solchen Dialoges mit der Tab-Taste!&lt;BR /&gt;&lt;BR /&gt;Mich nervt das Rumspringen in den Dialogboxen viel mehr als nur die fehlende freie Gestaltungsmöglichkeit.&lt;BR /&gt;&lt;BR /&gt;Wenn man die X_YHotspots der einzelenen Textzeilen auch noch in allen Raumstempel-GDLS  gleich benennt, wäre es problemlos zwischen verschiedenen Stempelvarianten herumzuschalten und der Text stünde doch an der ausgewählten Stelle.</description>
      <pubDate>Sun, 18 May 2014 08:07:54 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429284#M113</guid>
      <dc:creator>Hmooslechner</dc:creator>
      <dc:date>2014-05-18T08:07:54Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429285#M114</link>
      <description>Ja das ist wieder ein anders Thema, verbessern kann man immer. Der eine arbeitet so, der andre so. Grundsätzlich hast du sicher recht.&lt;BR /&gt;&lt;BR /&gt;Mir gehts es aber nur um das Ergebnis und die Darstellung. Bei einem 200er machen wir von 100 Raumstempel 95 einzeilig, 5 mal geht es sich dann in zwei Zeilen doch besser aus.&lt;BR /&gt;&lt;BR /&gt;Diese Flexibilität muss aber gewährleistet sein, sollte ja absolut machbar sein. Für die Lesbarkeit der Pläne ganz entscheidend.&lt;BR /&gt;&lt;BR /&gt;Vielen Dank.</description>
      <pubDate>Sun, 18 May 2014 15:45:49 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429285#M114</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-05-18T15:45:49Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429286#M115</link>
      <description>Ich habe mir jetzt mal das entsprechende Macro in der Bibliothek angesehen:&lt;BR /&gt;&lt;BR /&gt;Leider ist es gar nicht auskommentiert.&lt;BR /&gt;&lt;BR /&gt;Ich würde gerne versuchshalber einen Verschiebevektor (x+y) vor dem Richtext-Kommando einsetzen - aber kann aus diesem folgenden Text nur durch schnelles drüberschauen nicht herausfinden - für was welcher Richtext zuständig ist.&lt;BR /&gt;&lt;BR /&gt;Wenn dies ordentlich auskommentiert wäre - wäre (schöne Wortwiederholung..) es sehr leicht sowas dazu zu scripten...&lt;BR /&gt;&lt;BR /&gt;Man könnte natürlich auch vor jeden Richtext einen Verschiebevektor mit einem Array für die vielen X und Y setzten, mit jeweils einem X+Y Hotspot. Dann könnte man all diese Texteinträge mit der Maus wo anders hin ziehen..&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Unübersichtlich?  Hier - seht - was ich meine:&lt;BR /&gt;&lt;BR /&gt;Jetzt bitte nicht erschrecken: &lt;!-- s:mrgreen: --&gt;&lt;span class="lia-unicode-emoji" title=":strahlendes_Gesicht_mit_lächelnden_Augen:"&gt;😁&lt;/span&gt;&lt;!-- s:mrgreen: --&gt; &lt;BR /&gt;Es ist nur die untere Hälfte des Codes weil es sonst hier zu lang wäre...&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"drawStampLine":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		maxStampWidth:			Zone Stamp Width (length)&lt;BR /&gt;!		currentPosY:			Current Y Position of String (length)&lt;BR /&gt;!	Output Parameters:			none&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if iStyleType = STYLE_2 &amp;amp; bShowFrame then&lt;BR /&gt;		pen framePen&lt;BR /&gt;		line2 0, -currentPosY,  maxStampWidth, -currentPosY&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"drawHeightWithNum":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;! Print Row - Only for Style 1&lt;BR /&gt;! -- doesnt use "printRow" subroutine like all the others --&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		General Parameters&lt;BR /&gt;!			bMove2D:						(GLOB_CONTEXT &amp;gt; 19)&lt;BR /&gt;!			bMarker							Use Marker (bool)&lt;BR /&gt;!			currentPosY						Current Y Position of String (length)&lt;BR /&gt;!&lt;BR /&gt;!		Text Parameters						Text Style Datas (Style Name, Height, Space, Font)&lt;BR /&gt;!			textStyles[]&lt;BR /&gt;!			textSpace[]&lt;BR /&gt;!			textOffset[]&lt;BR /&gt;!			textStyleFont[]:&lt;BR /&gt;!&lt;BR /&gt;!		Text Row Parameters&lt;BR /&gt;!			idx:							Current Row Index (integer)&lt;BR /&gt;!			rowStrings[][2]:				Left String, Right String&lt;BR /&gt;!			rowType[][4]:					Row Type[1], Show Row[2], Unit Type[3], Row has Calculated Leght[4]	(integer)&lt;BR /&gt;!			rowValue[]:						Quantity	(real)&lt;BR /&gt;!			rowWidth[][3]:					Total, Left, Right (length)&lt;BR /&gt;!&lt;BR /&gt;!	Output Parameters:						none&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	add2  maxStampWidth - _posXHeight + borderDistance, -(stampH/2-textSpace[TEXTSTYLE_DATA_LEFT])/2&lt;BR /&gt;&lt;BR /&gt;	markerPosX	= 0&lt;BR /&gt;	if bMarker then gosub "drawMarker"&lt;BR /&gt;&lt;BR /&gt;	unitValue	= rowValue[idx]&lt;BR /&gt;	iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;	textAlign	= TEXTALIGN_LEFT&lt;BR /&gt;	szPrefix	= rowStrings[idx][1]&lt;BR /&gt;	bShowUnit	= 0&lt;BR /&gt;	add2 markerwidth, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;	pen SYMB_VIEW_PEN&lt;BR /&gt;	gosub "callQuantity"&lt;BR /&gt;	rectLength	= rowWidth[idx][3] + markerwidth&lt;BR /&gt;	if bMove2D then&lt;BR /&gt;		rect2 -markerwidth, 0, -markerwidth+rectLength, -textSpace[TEXTSTYLE_DATA_LEFT]+2*textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;	endif&lt;BR /&gt;	del 2&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"drawMarker":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		markerPosX:				Marker X position (length)&lt;BR /&gt;!		markerHeigth:			Marker Height (length)&lt;BR /&gt;!		currentPosY:			Current Y Position of String (length)&lt;BR /&gt;!	Output Parameters:			none&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	line_type 1&lt;BR /&gt;	pen SYMB_VIEW_PEN&lt;BR /&gt;	add2 markerPosX, -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+markerHeigth*1.3&lt;BR /&gt;	poly2 3, 1+2+4,&lt;BR /&gt;		0, 0,&lt;BR /&gt;		markerHeigth/2, -markerHeigth/sqr(2),&lt;BR /&gt;		markerHeigth, 0&lt;BR /&gt;	del 1&lt;BR /&gt;&lt;BR /&gt;	line_type frameLineType&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;!&lt;BR /&gt;! Calculation Subroutines&lt;BR /&gt;!&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_None":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		groupWidth[orderIdx]	= 0&lt;BR /&gt;		groupLines[orderIdx]	= 1&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__NONE		: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_ZoneName":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__ZONE_NAME__ZONE_NAME		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__ZONE_NAME__ZONE_NAME2		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2]&lt;BR /&gt;		groupHeight[orderIdx]	= rowHeight[idx1] + rowHeight[idx2]&lt;BR /&gt;		bHasFrame				= 0&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__ZONE_NAME__ZONE_NAME		: gosub "printRow"&lt;BR /&gt;		idx = ROW__ZONE_NAME__ZONE_NAME2	: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_ZoneNumber":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__ZONE_NUMBER__ZONE_NO1		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__ZONE_NUMBER__ZONE_NO2		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;		idx3 = ROW__ZONE_NUMBER__ZONE_NO3		: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__ZONE_NUMBER__ZONE_NO1	: gosub "printRow"&lt;BR /&gt;		idx = ROW__ZONE_NUMBER__ZONE_NO2	: gosub "printRow"&lt;BR /&gt;		idx = ROW__ZONE_NUMBER__ZONE_NO3	: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_ID":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__ID__CAT_ID				: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__ID__ID					: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;		idx3 = ROW__ID__SHORT_TITLE			: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__ID__CAT_ID				: gosub "printRow"&lt;BR /&gt;		idx = ROW__ID__ID					: gosub "printRow"&lt;BR /&gt;		idx = ROW__ID__SHORT_TITLE			: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_Apartment":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__APARTMENT__APART_NAME		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__APARTMENT__APART_POS		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;		idx3 = ROW__APARTMENT__HOUSE_NUM		: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;		idx4 = ROW__APARTMENT__FUNCTION			: idx =idx4	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1], rowWidth[idx4][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2] + rowType[idx4][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__APARTMENT__APART_NAME	: gosub "printRow"&lt;BR /&gt;		idx = ROW__APARTMENT__APART_POS		: gosub "printRow"&lt;BR /&gt;		idx = ROW__APARTMENT__HOUSE_NUM		: gosub "printRow"&lt;BR /&gt;		idx = ROW__APARTMENT__FUNCTION		: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_Finishing":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if bEnableRenovationSettings then&lt;BR /&gt;		if phaseCalc then&lt;BR /&gt;			idx1 = ROW__FINISHING__FLOOR		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;			idx2 = ROW__FINISHING__FLOOR__EXIST	: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;			idx3 = ROW__FINISHING__WALL			: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;			idx4 = ROW__FINISHING__CEILING		: idx =idx4	: gosub "calcRowWidth"&lt;BR /&gt;	&lt;BR /&gt;			groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1], rowWidth[idx4][1])&lt;BR /&gt;			groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2] + rowType[idx4][2]&lt;BR /&gt;			groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;			bHasFrame				= 1&lt;BR /&gt;		else&lt;BR /&gt;			idx = ROW__FINISHING__FLOOR			: gosub "printRow"&lt;BR /&gt;			idx = ROW__FINISHING__FLOOR__EXIST	: gosub "printRow"&lt;BR /&gt;			idx = ROW__FINISHING__WALL			: gosub "printRow"&lt;BR /&gt;			idx = ROW__FINISHING__CEILING		: gosub "printRow"&lt;BR /&gt;		endif&lt;BR /&gt;	else&lt;BR /&gt;		if phaseCalc then&lt;BR /&gt;			idx1 = ROW__FINISHING__FLOOR		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;			idx2 = ROW__FINISHING__WALL			: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;			idx3 = ROW__FINISHING__CEILING		: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;	&lt;BR /&gt;			groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1])&lt;BR /&gt;			groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2]&lt;BR /&gt;			groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;			bHasFrame				= 1&lt;BR /&gt;		else&lt;BR /&gt;			idx = ROW__FINISHING__FLOOR			: gosub "printRow"&lt;BR /&gt;			idx = ROW__FINISHING__WALL			: gosub "printRow"&lt;BR /&gt;			idx = ROW__FINISHING__CEILING		: gosub "printRow"&lt;BR /&gt;		endif&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_Height":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__HEIGHT__FLOOR		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__HEIGHT__ZONE		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__HEIGHT__FLOOR	: gosub "printRow"&lt;BR /&gt;		idx = ROW__HEIGHT__ZONE		: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_HeightAndNumber":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;! Calculate and Print Row - Only for Style 1&lt;BR /&gt;! -- doesnt use "printRow" subroutine like all the others --&lt;BR /&gt;!&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!			phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!			orderIdx:				Order Index&lt;BR /&gt;!&lt;BR /&gt;!		if (phaseCalc == 0)&lt;BR /&gt;!			bMarker					Use Marker (bool)&lt;BR /&gt;!			idx:					Current Row Index (integer)&lt;BR /&gt;!			rowStrings[][2]:		Left String, Right String&lt;BR /&gt;!			rowType[][4]:			Show Row[2], Unit Type[3]	(integer)&lt;BR /&gt;!			rowValue[]:				Quantity	(real)&lt;BR /&gt;!			maxStampWidth:			Zone Stamp Width (length)&lt;BR /&gt;!			bMove2D:				(GLOB_CONTEXT &amp;gt; 19)&lt;BR /&gt;!			currentPosY				Current Y Position of String (length)&lt;BR /&gt;!			Text Parameters			Text Style Datas (Style Name, Height, Space, Font)&lt;BR /&gt;!			rowType[][4]:			Row Type[1], Show Row[2], Unit Type[3], Row has Calculated Leght[4]	(integer)&lt;BR /&gt;!			rowWidth[][3]:			Total, Left, Right (length)&lt;BR /&gt;!			rowValue[]:				Quantity	(real)&lt;BR /&gt;!&lt;BR /&gt;!	Output Parameters:				if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]				Group Width (length)&lt;BR /&gt;!		groupLines[]				Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]				Group Width (length)&lt;BR /&gt;!		bHasFrame					Group has Frame (bool)&lt;BR /&gt;!&lt;BR /&gt;! Group Width design (old function)&lt;BR /&gt;!	Height Values align right with offset to the frame line, but align left for max string length of themself&lt;BR /&gt;!	Numbers align left with offset to the frame line&lt;BR /&gt;! Group Height design : minimum 2 x Height Values Row Height when number`s on&lt;BR /&gt;!	even if Height Values aren`t shown&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__HEIGHT__FLOOR		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__HEIGHT__ZONE		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		idx3 = ROW__ZONE_NUMBER__ZONE_NO1		: idx =idx3	: rowType[idx][1] = ROWTYPE_ZONENUM_HEIGHT	: gosub "calcRowWidth"&lt;BR /&gt;		idx4 = ROW__ZONE_NUMBER__ZONE_NO2		: idx =idx4	: rowType[idx][1] = ROWTYPE_ZONENUM_HEIGHT	: gosub "calcRowWidth"&lt;BR /&gt;		idx5 = ROW__ZONE_NUMBER__ZONE_NO3		: idx =idx5	: rowType[idx][1] = ROWTYPE_ZONENUM_HEIGHT	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		_posXHeight = max(rowWidth[idx1][1], rowWidth[idx2][1])&lt;BR /&gt;		_numZoneNumber = rowType[idx3][2] + rowType[idx4][2] + rowType[idx5][2]&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max( max(rowWidth[idx1][1], rowWidth[idx2][1]), max (rowWidth[idx3][1], rowWidth[idx4][1], rowWidth[idx5][1])) * 2&lt;BR /&gt;		groupLines[orderIdx]	= max(rowType[idx1][2] + rowType[idx2][2], rowType[idx3][2] + rowType[idx4][2] + rowType[idx5][2])&lt;BR /&gt;		groupHeight[orderIdx]	= max(2 * textSpace[TEXTSTYLE_DATA_LEFT] * (groupLines[orderIdx] &amp;gt; 0), _numZoneNumber * textSpace[TEXTSTYLE_TITLE])&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		if groupLines[orderIdx] then&lt;BR /&gt;			fill fillType&lt;BR /&gt;			pen framePen&lt;BR /&gt;			line_type frameLineType&lt;BR /&gt;			stampH = stampHeight[orderIdx][2]-stampHeight[orderIdx][1]&lt;BR /&gt;			rect2 0, -currentPosY,  maxStampWidth, -currentPosY-stampH&lt;BR /&gt;			line2 maxStampWidth/2, -currentPosY, maxStampWidth/2, -currentPosY-stampH&lt;BR /&gt;			line2 maxStampWidth/2, -currentPosY-stampH/2, maxStampWidth, -currentPosY-stampH/2&lt;BR /&gt;&lt;BR /&gt;			idx = ROW__HEIGHT__FLOOR&lt;BR /&gt;			if rowType[idx][2] then&lt;BR /&gt;				set fill 65&lt;BR /&gt;				gosub "drawHeightWithNum"&lt;BR /&gt;			endif&lt;BR /&gt;&lt;BR /&gt;			idx = ROW__HEIGHT__ZONE&lt;BR /&gt;			if rowType[idx][2] then&lt;BR /&gt;				set fill 64&lt;BR /&gt;				add2 0, -stampH/2&lt;BR /&gt;				gosub "drawHeightWithNum"&lt;BR /&gt;				del 1&lt;BR /&gt;			endif&lt;BR /&gt;&lt;BR /&gt;			nZoneNum = bShowZoneNum + bShowZoneNum2 + bShowZoneNum3&lt;BR /&gt;			add2 borderDistance, -currentPosY - (stampH - nZoneNum * textSpace[TEXTSTYLE_TITLE]) / 2 - textOffset[TEXTSTYLE_TITLE]&lt;BR /&gt;			for i = 1 to 3&lt;BR /&gt;				if i = 1 then idx = ROW__ZONE_NUMBER__ZONE_NO1&lt;BR /&gt;				if i = 2 then idx = ROW__ZONE_NUMBER__ZONE_NO2&lt;BR /&gt;				if i = 3 then idx = ROW__ZONE_NUMBER__ZONE_NO3&lt;BR /&gt;				if rowType[idx][2] then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					stText			= rowStrings[idx][1]&lt;BR /&gt;					_bFixWidth		= 0&lt;BR /&gt;&lt;BR /&gt;					pen SYMB_VIEW_PEN&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 0, 0, "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;					if bMove2D then&lt;BR /&gt;						rect2 0, textOffset[TEXTSTYLE_TITLE], rowWidth[idx][2], -textSpace[TEXTSTYLE_TITLE] + textOffset[TEXTSTYLE_TITLE]&lt;BR /&gt;					endif&lt;BR /&gt;					add2 0, -textSpace[TEXTSTYLE_TITLE]&lt;BR /&gt;				endif&lt;BR /&gt;			next i&lt;BR /&gt;			del 1 + nZoneNum&lt;BR /&gt;&lt;BR /&gt;			currentPosY = currentPosY + stampH&lt;BR /&gt;		endif&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_ZoneAreas":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if bEnableRenovationSettings then&lt;BR /&gt;		if phaseCalc then&lt;BR /&gt;			idx1 = ROW__ZONE_AREAS__MES_AREA		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;			idx2 = ROW__ZONE_AREAS__EXIST_AREA		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;			idx3 = ROW__ZONE_AREAS__MES_NET_AREA	: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;			idx4 = ROW__ZONE_AREAS__VENT_AREA		: idx =idx4	: gosub "calcRowWidth"&lt;BR /&gt;			idx5 = ROW__ZONE_AREAS__REDUC_AREA		: idx =idx5	: gosub "calcRowWidth"&lt;BR /&gt;			idx6 = ROW__ZONE_AREAS__CALC_AREA		: idx =idx6	: gosub "calcRowWidth"&lt;BR /&gt;	&lt;BR /&gt;			groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1], rowWidth[idx4][1], rowWidth[idx5][1], rowWidth[idx6][1])&lt;BR /&gt;			groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2] + rowType[idx4][2] + rowType[idx5][2] + rowType[idx6][2]&lt;BR /&gt;			groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;			bHasFrame				= 1&lt;BR /&gt;		else&lt;BR /&gt;			idx = ROW__ZONE_AREAS__MES_AREA		: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__EXIST_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__MES_NET_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__VENT_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__REDUC_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__CALC_AREA	: gosub "printRow"&lt;BR /&gt;		endif&lt;BR /&gt;	else&lt;BR /&gt;		if phaseCalc then&lt;BR /&gt;			idx1 = ROW__ZONE_AREAS__MES_AREA		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;			idx2 = ROW__ZONE_AREAS__MES_NET_AREA	: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;			idx3 = ROW__ZONE_AREAS__VENT_AREA		: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;			idx4 = ROW__ZONE_AREAS__REDUC_AREA		: idx =idx4	: gosub "calcRowWidth"&lt;BR /&gt;			idx5 = ROW__ZONE_AREAS__CALC_AREA		: idx =idx5	: gosub "calcRowWidth"&lt;BR /&gt;	&lt;BR /&gt;			groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1], rowWidth[idx4][1], rowWidth[idx5][1])&lt;BR /&gt;			groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2] + rowType[idx4][2] + rowType[idx5][2]&lt;BR /&gt;			groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;			bHasFrame				= 1&lt;BR /&gt;		else&lt;BR /&gt;			idx = ROW__ZONE_AREAS__MES_AREA		: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__MES_NET_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__VENT_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__REDUC_AREA	: gosub "printRow"&lt;BR /&gt;			idx = ROW__ZONE_AREAS__CALC_AREA	: gosub "printRow"&lt;BR /&gt;		endif&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_WindowArea":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx = ROW__WINDOW_AREA__WINDOW_AREA	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= rowWidth[idx][1]&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__WINDOW_AREA__WINDOW_AREA	: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_Size":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx1 = ROW__SIZE__PERIMETER		: idx =idx1	: gosub "calcRowWidth"&lt;BR /&gt;		idx2 = ROW__SIZE__CEILING_H		: idx =idx2	: gosub "calcRowWidth"&lt;BR /&gt;		idx3 = ROW__SIZE__VOLUME		: idx =idx3	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= max (rowWidth[idx1][1], rowWidth[idx2][1], rowWidth[idx3][1])&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx1][2] + rowType[idx2][2] + rowType[idx3][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__SIZE__PERIMETER	: gosub "printRow"&lt;BR /&gt;		idx = ROW__SIZE__CEILING_H	: gosub "printRow"&lt;BR /&gt;		idx = ROW__SIZE__VOLUME		: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_AreaCode":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx = ROW__AREA_CODE_GER__AREACODE	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= rowWidth[idx][1]&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__AREA_CODE_GER__AREACODE	: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcOrDraw_Onorm":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		orderIdx:				Order Index&lt;BR /&gt;!	Output Parameters:			if (phaseCalc == 1)&lt;BR /&gt;!		groupWidth[]			Group Width (length)&lt;BR /&gt;!		groupLines[]			Group Lines Number (integer)&lt;BR /&gt;!		groupHeight[]			Group Height&lt;BR /&gt;!		bHasFrame				Group has Frame (bool)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	if phaseCalc then&lt;BR /&gt;		idx = ROW__ONORM_AUT__ONORM	: gosub "calcRowWidth"&lt;BR /&gt;&lt;BR /&gt;		groupWidth[orderIdx]	= rowWidth[idx][1]&lt;BR /&gt;		groupLines[orderIdx]	= rowType[idx][2]&lt;BR /&gt;		groupHeight[orderIdx]	= textSpace[TEXTSTYLE_DATA_LEFT] * groupLines[orderIdx]&lt;BR /&gt;		bHasFrame				= 1&lt;BR /&gt;	else&lt;BR /&gt;		idx = ROW__ONORM_AUT__ONORM	: gosub "printRow"&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;!&lt;BR /&gt;! General Subroutines&lt;BR /&gt;!&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"callQuantity":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Call Quantity Text Macro&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		modelToPaper:			Scale (real)&lt;BR /&gt;!		phaseCalc:				Calculation Phase? (bool)&lt;BR /&gt;!		unitValue				Printed Unit Value (double)&lt;BR /&gt;!		iUnitType				Unit Type (integer) see "Units"&lt;BR /&gt;!		textAlign				Text Align	(1 left, 3 right) (integer)&lt;BR /&gt;!		szPrefix				String Prefix value (±,-)&lt;BR /&gt;!		bShowUnit				Show Unit (bool)&lt;BR /&gt;!		bShowSuperScript		Show Superscrit (bool)&lt;BR /&gt;!	Output Parameters:&lt;BR /&gt;!		totalLength:			Quantity Total Length (length)&lt;BR /&gt;!		textboxHeight:			Quantity Total Height (length)&lt;BR /&gt;!		szExtraPrecision:		Quantity Extra Precision (string)&lt;BR /&gt;!		lengthOfIntegerPart:	Length of Integer Part (length)&lt;BR /&gt;!		lengthOfUnit:			Length of Unit (length)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;	mul2 modelToPaper, modelToPaper&lt;BR /&gt;	call "quantity_text_writer" parameters 	lengthValue				= unitValue,&lt;BR /&gt;											iUnitType				= iUnitType,&lt;BR /&gt;											GS_iMarkerDir			= 1,&lt;BR /&gt;											horizontalAlignment 	= textAlign,&lt;BR /&gt;											verticalAlignment		= 2,&lt;BR /&gt;											AC_TextFont				= textStyleFont[TEXTSTYLE_UNIT],&lt;BR /&gt;											AC_TextSize				= textStyleSize[TEXTSTYLE_UNIT],&lt;BR /&gt;											AC_TextStyle			= textStyleCode[TEXTSTYLE_UNIT][idx],&lt;BR /&gt;											szPrefix				= szPrefix,&lt;BR /&gt;											AC_Readable				= 0,&lt;BR /&gt;											gs_readable_angle		= 90,&lt;BR /&gt;											useLeadingAndDescent	= 1,&lt;BR /&gt;											bShowText				= not(phaseCalc),&lt;BR /&gt;											bShowUnit				= bShowUnit,&lt;BR /&gt;											bShowSuperScript		= bShowSuperScript,&lt;BR /&gt;					returned_parameters		totalLength,&lt;BR /&gt;											textboxHeight,&lt;BR /&gt;											szExtraPrecision,&lt;BR /&gt;											lengthOfIntegerPart,&lt;BR /&gt;											lengthOfUnit&lt;BR /&gt;	del 1&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"calcRowWidth":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Calculation one row width, height, etc..&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		General Parameters&lt;BR /&gt;!			bShowDimensionUnits:			Show Dimension Unit (bool)&lt;BR /&gt;!			frameDist:						Frame Distance (length)&lt;BR /&gt;!			frameDistHalf:					Frame Distance /2 (length)&lt;BR /&gt;!			bFixWidth						Fixed frame distance (bool)&lt;BR /&gt;!			bMarker							Use Marker (bool)&lt;BR /&gt;!&lt;BR /&gt;!		Text Parameters						Text Style Datas (Style Name, Height, Space, Font)&lt;BR /&gt;!			textStyles[]&lt;BR /&gt;!			textSpace[]&lt;BR /&gt;!			textOffset[]&lt;BR /&gt;!			textStyleFont[]:&lt;BR /&gt;!&lt;BR /&gt;!		Text Row Parameters&lt;BR /&gt;!			idx:							Current Row Index (integer)&lt;BR /&gt;!			rowStrings[][2]:				Left String, Right String&lt;BR /&gt;!			rowType[][4]:					Row Type[1], Show Row[2], Unit Type[3]	(integer)&lt;BR /&gt;!												ROWTYPE_NONE			= 1&lt;BR /&gt;!												ROWTYPE_1COL			= 2&lt;BR /&gt;!												ROWTYPE_2COL			= 3&lt;BR /&gt;!												ROWTYPE_2COL_BACK		= 4&lt;BR /&gt;!												ROWTYPE_2COL_UNIT		= 5&lt;BR /&gt;!												ROWTYPE_TITLE			= 6&lt;BR /&gt;!												ROWTYPE_ONORM			= 7&lt;BR /&gt;!												ROWTYPE_MEASUREDNET		= 8&lt;BR /&gt;!												ROWTYPE_LEVEL			= 9&lt;BR /&gt;!												ROWTYPE_ZONENUM_HEIGHT	= 10&lt;BR /&gt;!			rowValue[]:						Quantity	(real)&lt;BR /&gt;!&lt;BR /&gt;!	Output Parameters:&lt;BR /&gt;!		rowWidth[][3]:					Total, Left, Right (length)&lt;BR /&gt;!		rowType[][4]:					Row has Calculated Leght[4]	(integer)&lt;BR /&gt;!		rowHeight[]:					Row Heights (Only uses in Zone Name)&lt;BR /&gt;!		bNormCustomString[]:			Show Onorm Strings (bool)&lt;BR /&gt;!		widthNormCustomString[]:		Onorm String Width (length)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;&lt;BR /&gt;	szPrefix	= ""&lt;BR /&gt;	bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_NONE then&lt;BR /&gt;		rowWidth[idx][3]	= 0&lt;BR /&gt;		rowWidth[idx][2]	= 0&lt;BR /&gt;		rowWidth[idx][1]	= 0&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_1COL then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= 0&lt;BR /&gt;			rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;			if (rowWidth[idx][2]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + frameDist ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_ZONENUM_HEIGHT then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= 0&lt;BR /&gt;			rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;			if (rowWidth[idx][2]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;&lt;BR /&gt;			_offset = frameDist/2 + borderDistance&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + _offset ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_2COL then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= stw (rowStrings[idx][2])&lt;BR /&gt;			rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;			if (rowWidth[idx][2] + rowWidth[idx][3]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + rowWidth[idx][3] + frameDist ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_2COL_BACK then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= stw (rowStrings[idx][2])&lt;BR /&gt;			rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;			if (rowWidth[idx][2] + rowWidth[idx][3]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + rowWidth[idx][3]  + unitLengthMax + frameDist ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_LEVEL then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			unitValue	= rowValue[idx]&lt;BR /&gt;			iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;			szPrefix	= rowStrings[idx][1]&lt;BR /&gt;			bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;			gosub "callQuantity"&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= totalLength&lt;BR /&gt;			rowWidth[idx][2]	= markerwidth&lt;BR /&gt;			if usedRows[orderIdx]= ORDER_HEIGHT_NUMBER then	! with Number in one box&lt;BR /&gt;				_offset = frameDist/2 + borderDistance&lt;BR /&gt;			else&lt;BR /&gt;				_offset = frameDist&lt;BR /&gt;			endif&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + rowWidth[idx][3] + _offset ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_2COL_UNIT | rowType[idx][1] = ROWTYPE_MEASUREDNET then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			unitValue	= rowValue[idx]&lt;BR /&gt;			iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;			szPrefix	= ""&lt;BR /&gt;			bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;			gosub "callQuantity"&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= totalLength + unitLength[rowType[idx][3]][2]&lt;BR /&gt;			rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + rowWidth[idx][3] + frameDist ) * rowType[idx][2]&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_TITLE then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			if bFixWidth then&lt;BR /&gt;				if idx = ROW__ZONE_NAME__ZONE_NAME then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					stText			= rowStrings[idx][1]&lt;BR /&gt;					_bFixWidth		= bFixWidth&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					n = REQUEST ("TEXTBLOCK_INFO", "textBlock" + textStyleName, widthTitleString, calcTitleHeightZoneName1)&lt;BR /&gt;					calcTitleHeight = calcTitleHeightZoneName1&lt;BR /&gt;				endif&lt;BR /&gt;&lt;BR /&gt;				if idx = ROW__ZONE_NAME__ZONE_NAME2 then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					stText			= rowStrings[idx][1]&lt;BR /&gt;					_bFixWidth		= bFixWidth&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					n = REQUEST ("TEXTBLOCK_INFO", "textBlock" + textStyleName, widthTitleString, calcTitleHeightZoneName2)&lt;BR /&gt;					calcTitleHeight = calcTitleHeightZoneName2&lt;BR /&gt;				endif&lt;BR /&gt;&lt;BR /&gt;				rowWidth[idx][3]	= 0&lt;BR /&gt;				rowWidth[idx][2]	= widthTitleString&lt;BR /&gt;				if (rowWidth[idx][2]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;				rowWidth[idx][1]	= ( rowWidth[idx][2] ) * rowType[idx][2]&lt;BR /&gt;				rowHeight[idx]		= (calcTitleHeight + 2*textOffset[TEXTSTYLE_TITLE]) * rowType[idx][2]&lt;BR /&gt;&lt;BR /&gt;			else&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;				stText			= ""&lt;BR /&gt;				_bFixWidth		= bFixWidth&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;&lt;BR /&gt;				rowWidth[idx][3]	= 0&lt;BR /&gt;				rowWidth[idx][2]	= stw (rowStrings[idx][1])&lt;BR /&gt;				if (rowWidth[idx][2]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;				rowWidth[idx][1]	= ( rowWidth[idx][2] ) * rowType[idx][2]&lt;BR /&gt;				rowHeight[idx]		= (textSpace[TEXTSTYLE_TITLE]) * rowType[idx][2]&lt;BR /&gt;			endif&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][1] = ROWTYPE_ONORM then&lt;BR /&gt;		if rowType[idx][4]	= 0 then&lt;BR /&gt;			style textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;&lt;BR /&gt;			nOnormData = 0&lt;BR /&gt;			dim widthNormCustomString[17]&lt;BR /&gt;			dim bNormCustomString[17]&lt;BR /&gt;			dim normCustomString[17]&lt;BR /&gt;				normCustomString[1] = normCustom1&lt;BR /&gt;				normCustomString[2] = normCustom2&lt;BR /&gt;				normCustomString[3] = normCustom3&lt;BR /&gt;				normCustomString[4] = normCustom4&lt;BR /&gt;				normCustomString[5] = normCustom5&lt;BR /&gt;				normCustomString[6] = normCustom6&lt;BR /&gt;				normCustomString[7] = normCustom7&lt;BR /&gt;				normCustomString[8] = normCustom8&lt;BR /&gt;				normCustomString[9] = normCustom9&lt;BR /&gt;				normCustomString[10] = normCustom10&lt;BR /&gt;				normCustomString[11] = normCustom11&lt;BR /&gt;				normCustomString[12] = normCustom12&lt;BR /&gt;				normCustomString[13] = normCustom13&lt;BR /&gt;				normCustomString[14] = normCustom14&lt;BR /&gt;				normCustomString[15] = normCustom15&lt;BR /&gt;				normCustomString[16] = normCustom16&lt;BR /&gt;				normCustomString[17] = normCustom17&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;			for i = 1 to vardim1(normCustomString)&lt;BR /&gt;				if normCustomString[i] &amp;lt;&amp;gt; "" &amp;amp; bShowOnormData then&lt;BR /&gt;					bNormCustomString[i] = 1&lt;BR /&gt;					nOnormData = nOnormData + 1&lt;BR /&gt;				else&lt;BR /&gt;					bNormCustomString[i] = 0&lt;BR /&gt;				endif&lt;BR /&gt;			next i&lt;BR /&gt;&lt;BR /&gt;			oNormMaxWidth = 0&lt;BR /&gt;			for i = 1 to vardim1(normCustomString)&lt;BR /&gt;				widthNormCustomString[i] = stw (normCustomString[i])&lt;BR /&gt;				if widthNormCustomString[i] &amp;gt; oNormMaxWidth then oNormMaxWidth = widthNormCustomString[i]&lt;BR /&gt;			next i&lt;BR /&gt;&lt;BR /&gt;			rowWidth[idx][3]	= 0&lt;BR /&gt;			rowWidth[idx][2]	= oNormMaxWidth&lt;BR /&gt;			rowType[idx][2]		= nOnormData&lt;BR /&gt;			if (rowWidth[idx][2] + rowWidth[idx][3]) &amp;lt; EPS then  rowType[idx][2] = 0&lt;BR /&gt;			rowWidth[idx][1]	= ( rowWidth[idx][2] + rowWidth[idx][3]  + frameDist ) * (rowType[idx][2] &amp;gt; eps)&lt;BR /&gt;			rowType[idx][4]		= 1&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;		return&lt;BR /&gt;	endif&lt;BR /&gt;&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"printRow":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Draw one row text&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		General Parameters&lt;BR /&gt;!			bShowDimensionUnits:			Show Dimension Unit (bool)&lt;BR /&gt;!			frameDistHalf:					Frame Distance /2 (length)&lt;BR /&gt;!			maxStampWidth:					Zone Stamp Width (length)&lt;BR /&gt;!			bMove2D:						(GLOB_CONTEXT &amp;gt; 19)&lt;BR /&gt;!			bMeasuredNetAreaCodeIsEmpty:	Empty Measured Area (bool)&lt;BR /&gt;!			bMarker							Use Marker (bool)&lt;BR /&gt;!			currentPosY						Current Y Position of String (length)&lt;BR /&gt;!			nRow:							Current No. Row (integer)&lt;BR /&gt;!&lt;BR /&gt;!		Text Parameters						Text Style Datas (Style Name, Height, Space, Font)&lt;BR /&gt;!			textStyles[]&lt;BR /&gt;!			textSpace[]&lt;BR /&gt;!			textOffset[]&lt;BR /&gt;!			textStyleFont[]:&lt;BR /&gt;!&lt;BR /&gt;!		Text Row Parameters&lt;BR /&gt;!			idx:							Current Row Index (integer)&lt;BR /&gt;!			rowStrings[][2]:				Left String, Right String&lt;BR /&gt;!			rowType[][4]:					Row Type[1], Show Row[2], Unit Type[3], Row has Calculated Leght[4]	(integer)&lt;BR /&gt;!												ROWTYPE_NONE			= 1&lt;BR /&gt;!												ROWTYPE_1COL			= 2&lt;BR /&gt;!												ROWTYPE_2COL			= 3&lt;BR /&gt;!												ROWTYPE_2COL_BACK		= 4&lt;BR /&gt;!												ROWTYPE_2COL_UNIT		= 5&lt;BR /&gt;!												ROWTYPE_TITLE			= 6&lt;BR /&gt;!												ROWTYPE_ONORM			= 7&lt;BR /&gt;!												ROWTYPE_MEASUREDNET		= 8&lt;BR /&gt;!												ROWTYPE_LEVEL			= 9&lt;BR /&gt;!												ROWTYPE_ZONENUM_HEIGHT	= 10&lt;BR /&gt;!			rowValue[]:						Quantity	(real)&lt;BR /&gt;!			rowWidth[][3]:					Total, Left, Right (length)&lt;BR /&gt;!			rowHeight[]:					Row Heights (Only uses in Zone Name)&lt;BR /&gt;!			bNormCustomString[]:			Show Onorm Strings (bool)&lt;BR /&gt;!			widthNormCustomString[]:		Onorm String Width (length)&lt;BR /&gt;!&lt;BR /&gt;!	Output Parameters:&lt;BR /&gt;!		currentPosY:						Updated Y Position of String (length)&lt;BR /&gt;!		nRow:								Update No. Row (integer)&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;&lt;BR /&gt;	if rowType[idx][2] then&lt;BR /&gt;		textPen = SYMB_VIEW_PEN&lt;BR /&gt;		if idx = ROW__ZONE_NAME__ZONE_NAME		then textPen = _penZoneName&lt;BR /&gt;		if idx = ROW__ZONE_NAME__ZONE_NAME2		then textPen = _pen2ndZoneNameLine&lt;BR /&gt;		if idx = ROW__ZONE_AREAS__MES_AREA		then textPen = _penMeasuredArea&lt;BR /&gt;		if idx = ROW__ZONE_AREAS__EXIST_AREA	then textPen = _penExistingArea&lt;BR /&gt;		if idx = ROW__FINISHING__FLOOR			then textPen = _penFloorFinish&lt;BR /&gt;		if idx = ROW__FINISHING__FLOOR__EXIST	then textPen = _penExistingFloorFinish&lt;BR /&gt;		pen textPen&lt;BR /&gt;&lt;BR /&gt;		nRow		= nRow + 1&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_NONE then&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_1COL then&lt;BR /&gt;			textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			stText			= rowStrings[idx][1]&lt;BR /&gt;			_bFixWidth		= 0&lt;BR /&gt;			gosub "makeParagraph"&lt;BR /&gt;			richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf + rowWidth[idx][2], -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_2COL then&lt;BR /&gt;			if rowStrings[idx][1] = "" then&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				stText			= rowStrings[idx][2]&lt;BR /&gt;				_bFixWidth		= 0&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;				rectLength	= rowWidth[idx][1]&lt;BR /&gt;			else&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				stText			= rowStrings[idx][1]&lt;BR /&gt;				_bFixWidth		= 0&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;				if iStyleType = STYLE_3 then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;					stText			= rowStrings[idx][2]&lt;BR /&gt;					_bFixWidth		= 0&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 rowWidth[idx][2]+frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;					rectLength	= rowWidth[idx][1]&lt;BR /&gt;				else&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_DATA_RIGHT][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_DATA_RIGHT][idx]&lt;BR /&gt;					stText			= rowStrings[idx][2]&lt;BR /&gt;					_bFixWidth		= 0&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 maxStampWidth-frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;					rectLength	= maxStampWidth-frameDistHalf*2&lt;BR /&gt;				endif&lt;BR /&gt;			endif&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf + rectLength, -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_2COL_BACK then&lt;BR /&gt;			textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			stText			= rowStrings[idx][1]&lt;BR /&gt;			_bFixWidth		= 0&lt;BR /&gt;			gosub "makeParagraph"&lt;BR /&gt;			richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;			if iStyleType = STYLE_3 then&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				stText			= rowStrings[idx][2]&lt;BR /&gt;				_bFixWidth		= 0&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 rowWidth[idx][2]+frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;				rectLength	= rowWidth[idx][1]&lt;BR /&gt;			else&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_DATA_RIGHT][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_DATA_RIGHT][idx]&lt;BR /&gt;				stText			= rowStrings[idx][2]&lt;BR /&gt;				_bFixWidth		= 0&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 maxStampWidth-frameDistHalf-unitLengthMax, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;				rectLength	= maxStampWidth-frameDistHalf*2&lt;BR /&gt;			endif&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf + rectLength, -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_2COL_UNIT then&lt;BR /&gt;			textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;			stText			= rowStrings[idx][1]&lt;BR /&gt;			_bFixWidth		= 0&lt;BR /&gt;			gosub "makeParagraph"&lt;BR /&gt;			richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;			unitValue	= rowValue[idx]&lt;BR /&gt;			iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;			szPrefix = ""&lt;BR /&gt;			bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;&lt;BR /&gt;			if iStyleType = STYLE_3 then&lt;BR /&gt;				add2 rowWidth[idx][2]-frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;&lt;BR /&gt;				textAlign	= TEXTALIGN_LEFT&lt;BR /&gt;				gosub "callQuantity"&lt;BR /&gt;				rectLength	= rowWidth[idx][1]&lt;BR /&gt;				del 1&lt;BR /&gt;			else&lt;BR /&gt;				add2 maxStampWidth-frameDistHalf-unitLength[rowType[idx][3]][2], -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;&lt;BR /&gt;				textAlign	= TEXTALIGN_RIGHT&lt;BR /&gt;				gosub "callQuantity"&lt;BR /&gt;				rectLength	= maxStampWidth-frameDistHalf*2&lt;BR /&gt;				del 1&lt;BR /&gt;			endif&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf + rectLength, -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_LEVEL then&lt;BR /&gt;			if iStyleType = STYLE_1 then	! Style 1 DONT use "printrow" subroutine anyway&lt;BR /&gt;				markerPosX	= borderDistance&lt;BR /&gt;			else&lt;BR /&gt;				markerPosX	= frameDistHalf&lt;BR /&gt;			endif&lt;BR /&gt;			if idx = ROW__HEIGHT__FLOOR then set fill 65&lt;BR /&gt;			if idx = ROW__HEIGHT__ZONE then set fill 64&lt;BR /&gt;			if bMarker then gosub "drawMarker"&lt;BR /&gt;			unitValue	= rowValue[idx]&lt;BR /&gt;			iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;			textAlign	= TEXTALIGN_LEFT&lt;BR /&gt;			szPrefix	= rowStrings[idx][1]&lt;BR /&gt;			bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;&lt;BR /&gt;			add2 frameDistHalf+rowWidth[idx][2], -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "callQuantity"&lt;BR /&gt;			rectLength	= rowWidth[idx][3]&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 0, 0, rectLength, -textSpace[TEXTSTYLE_DATA_LEFT]+2*textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			del 1&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_TITLE then&lt;BR /&gt;			if bFixWidth then&lt;BR /&gt;				if idx = ROW__ZONE_NAME__ZONE_NAME then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					stText			= rowStrings[idx][1]&lt;BR /&gt;					_bFixWidth		= bFixWidth&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;					if bMove2D then&lt;BR /&gt;						rect2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], rowWidth[idx][1], -currentPosY-textOffset[TEXTSTYLE_TITLE]-calcTitleHeightZoneName1&lt;BR /&gt;					endif&lt;BR /&gt;					currentPosY = currentPosY + rowHeight[idx]&lt;BR /&gt;				endif&lt;BR /&gt;&lt;BR /&gt;				if idx = ROW__ZONE_NAME__ZONE_NAME2 then&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;					stText			= rowStrings[idx][1]&lt;BR /&gt;					_bFixWidth		= bFixWidth&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;					if bMove2D then&lt;BR /&gt;						rect2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], rowWidth[idx][1], -currentPosY-textOffset[TEXTSTYLE_TITLE]-calcTitleHeightZoneName2&lt;BR /&gt;					endif&lt;BR /&gt;					currentPosY = currentPosY + rowHeight[idx]&lt;BR /&gt;				endif&lt;BR /&gt;			else&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_TITLE][idx]&lt;BR /&gt;				stText			= rowStrings[idx][1]&lt;BR /&gt;				_bFixWidth		= bFixWidth&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], "textBlock" + textStyleName&lt;BR /&gt;				if bMove2D then&lt;BR /&gt;					rect2 0, -currentPosY-textOffset[TEXTSTYLE_TITLE], rowWidth[idx][1], -currentPosY-textSpace[TEXTSTYLE_TITLE]+textOffset[TEXTSTYLE_TITLE]&lt;BR /&gt;				endif&lt;BR /&gt;				currentPosY = currentPosY + textSpace[TEXTSTYLE_TITLE]&lt;BR /&gt;			endif&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_ONORM then&lt;BR /&gt;			for i = 1 to vardim1(bNormCustomString)&lt;BR /&gt;				if bNormCustomString[i] then&lt;BR /&gt;					nRow = nRow + 1&lt;BR /&gt;					textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;					iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;					stText			= normCustomString[i]&lt;BR /&gt;					_bFixWidth		= 0&lt;BR /&gt;					gosub "makeParagraph"&lt;BR /&gt;					richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;					pen SYMB_VIEW_PEN&lt;BR /&gt;					if bMove2D then&lt;BR /&gt;						rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf+widthNormCustomString[i], -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;					endif&lt;BR /&gt;					currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;					gosub "drawStampLine"&lt;BR /&gt;				endif&lt;BR /&gt;			next i&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;		if rowType[idx][1] = ROWTYPE_MEASUREDNET then&lt;BR /&gt;			unitValue	= rowValue[idx]&lt;BR /&gt;			iUnitType	= unitType[rowType[idx][3]][1]&lt;BR /&gt;			szPrefix = ""&lt;BR /&gt;			bShowUnit	= bShowDimensionUnit[idx]&lt;BR /&gt;&lt;BR /&gt;			if bMeasuredNetAreaCodeIsEmpty then&lt;BR /&gt;				add2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;				textAlign	= TEXTALIGN_LEFT&lt;BR /&gt;				gosub "callQuantity"&lt;BR /&gt;				del 1&lt;BR /&gt;			else&lt;BR /&gt;				textStyleName	= textStyles[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				iAnchorPos		= textAnchor[TEXTSTYLE_DATA_LEFT][idx]&lt;BR /&gt;				stText			= rowStrings[idx][1]&lt;BR /&gt;				_bFixWidth		= 0&lt;BR /&gt;				gosub "makeParagraph"&lt;BR /&gt;				richtext2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], "textBlock" + textStyleName&lt;BR /&gt;&lt;BR /&gt;				if iStyleType = STYLE_3 then&lt;BR /&gt;					add2 rowWidth[idx][2]-frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;&lt;BR /&gt;					textAlign	= TEXTALIGN_LEFT&lt;BR /&gt;					gosub "callQuantity"&lt;BR /&gt;					rectLength	= rowWidth[idx][1]&lt;BR /&gt;&lt;BR /&gt;					del 1&lt;BR /&gt;				else&lt;BR /&gt;					add2 maxStampWidth-frameDistHalf-unitLength[rowType[idx][3]][2], -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;&lt;BR /&gt;					textAlign	= TEXTALIGN_RIGHT&lt;BR /&gt;					gosub "callQuantity"&lt;BR /&gt;					rectLength	= maxStampWidth-frameDistHalf*2&lt;BR /&gt;&lt;BR /&gt;					del 1&lt;BR /&gt;				endif&lt;BR /&gt;			endif&lt;BR /&gt;			if bMove2D then&lt;BR /&gt;				rect2 frameDistHalf, -currentPosY-textOffset[TEXTSTYLE_DATA_LEFT], frameDistHalf + rectLength, -currentPosY-textSpace[TEXTSTYLE_DATA_LEFT]+textOffset[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			endif&lt;BR /&gt;			currentPosY = currentPosY + textSpace[TEXTSTYLE_DATA_LEFT]&lt;BR /&gt;			gosub "drawStampLine"&lt;BR /&gt;			return&lt;BR /&gt;		endif&lt;BR /&gt;	endif&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;"makeParagraph":&lt;BR /&gt;! ------------------------------------------------------------------------------&lt;BR /&gt;!	Input Parameters:&lt;BR /&gt;!		textStyleName:			Current Text Style Name&lt;BR /&gt;!		stText:					Current string&lt;BR /&gt;!		iAnchorPos:				Current Anchor Position&lt;BR /&gt;!		_bFixWidth:				FixWidth&lt;BR /&gt;!	Output Parameters:			none&lt;BR /&gt;! ==============================================================================&lt;BR /&gt;&lt;BR /&gt;	PARAGRAPH textStyleName 1, 0, 0, 0, 1, 0&lt;BR /&gt;		style textStyleName&lt;BR /&gt;		stText&lt;BR /&gt;	ENDPARAGRAPH&lt;BR /&gt;	TEXTBLOCK "textBlock" + textStyleName _bFixWidth * fixWidth, iAnchorPos, 0, 1, 1, 0, textStyleName&lt;BR /&gt;return&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 18 May 2014 19:35:25 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429286#M115</guid>
      <dc:creator>Hmooslechner</dc:creator>
      <dc:date>2014-05-18T19:35:25Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429287#M116</link>
      <description>&lt;BLOCKQUOTE&gt;Wenn dies ordentlich auskommentiert wäre - wäre (schöne Wortwiederholung..) es sehr leicht sowas dazu zu scripten...&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;Ich habe mich in den originalen Raumstempel seit mehreren Versionen "reingekniet" und weiss wie der alte und der neue (ab AC17) aufgebaut sind. Und da geht gar nix mal schnell dazuzuskripten. Ich wünsche da jedem viel Erfolg, der den Mut hat den anzufassen.</description>
      <pubDate>Sun, 18 May 2014 21:10:06 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429287#M116</guid>
      <dc:creator>Frank Beister</dc:creator>
      <dc:date>2014-05-18T21:10:06Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429288#M117</link>
      <description>Wenn ich das schon sehe, sorry nicht böse sein aber für so Späße haben wir keine Zeit.&lt;BR /&gt;&lt;BR /&gt;Der Wunsch der freien Darstellung bleibt, bis dahin bleibt nur Text und Schraffur, was für das Ergebnis wunderbar klappt... aber eben ein lästiger Umweg ist.&lt;BR /&gt;&lt;BR /&gt;Lg</description>
      <pubDate>Mon, 19 May 2014 01:10:52 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429288#M117</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-05-19T01:10:52Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429289#M118</link>
      <description>Stefan: - ich wollte Dir nicht Zeit stehlen, sondern darauf hinweisen - woran es krankt.&lt;BR /&gt;&lt;BR /&gt;Das Programm ist teuer genug, dass es Anwenderwünsche dieser einfachen Art zulassen-unterstützen sollte.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Frank: Damit bestätigst Du meine Kritik an der Sache - das es unnötig zu komplex gestaltet ist. Fehlende Dokumentation erschwert zusätzlich sonst eigentlich einfache Eingriffe.&lt;BR /&gt;&lt;BR /&gt;Dies führt zu einer "Entmündigung" von uns Usern.&lt;BR /&gt;&lt;BR /&gt;Ich behaupte mal - der gleiche aussehende Raumstempel ließe sich mit einem Zehntel des Sriptes sehr leicht realisieren - wenn man sich auf das Wesentliche beschränkte. &lt;BR /&gt;&lt;BR /&gt;Damit meine ich die Plandarstellung in verschiedensten Varianten.&lt;BR /&gt;&lt;BR /&gt;Der Raumstempel nutzt ein gemeinsames Script für viele (alle?) Raumstempel. &lt;BR /&gt;&lt;BR /&gt;Sorry - Ist Bullshit! &lt;BR /&gt;&lt;BR /&gt;Bullshit - weil alleine durch die nötige Parameterübergabe eine unnötige Komplexität erzeugt wird.&lt;BR /&gt;&lt;BR /&gt;Meiner Ansicht nach besser wäre der selbe Script und die selben Variablen in verschiedenen Raumstempeln zu verwenden - und viel übersichtlicher - und eine ordentliche Dokumentation drüber - und direkt im Script ausreichend Kommentare.&lt;BR /&gt;Das fehlt.&lt;BR /&gt;&lt;BR /&gt;GDL wurde damals mit eingebaut  - um den Anwender die Möglichkeit zu geben - bei sowas einzugreifen. Das geht so nicht (unnötig schwer).&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;FONT color="#FF4000"&gt;Wenn so ein wirklich einfacher Wunsch auftaucht - wie eben Stefans Wunsch - sollte es sehr leicht zu realisieren sein - ohne auf die Größzügigkeit Graphisofts angewiesen zu sein!&lt;/FONT&gt;&lt;/FONT&gt;</description>
      <pubDate>Mon, 19 May 2014 07:26:52 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429289#M118</guid>
      <dc:creator>Hmooslechner</dc:creator>
      <dc:date>2014-05-19T07:26:52Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429290#M119</link>
      <description>&lt;BLOCKQUOTE&gt;Der Raumstempel nutzt ein gemeinsames Script für viele (alle?) Raumstempel. &lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;Das hat auch einen Grund. Früher gab es keine gemeinsamen Scripte, sondern nur einzelne Bibliotheken (für jede Länderversion eine einzelne).&lt;BR /&gt;Nun stell dir mal vor, es gibt einen Fehler. Und dann müssen alle Länderbibliotheken (mittlerweile 25+) durchsucht und überarbeitet werden. &lt;BR /&gt;Deswegen haben wir seit einigen Versionen zentrale Macros, die in allen Objekten verwendet werden.</description>
      <pubDate>Mon, 19 May 2014 22:37:06 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429290#M119</guid>
      <dc:creator>Holger Kreienbrink</dc:creator>
      <dc:date>2014-05-19T22:37:06Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429291#M120</link>
      <description>Ist schon klar. Für Graphisoft ist es leichter zu händeln. &lt;BR /&gt;&lt;BR /&gt;Für uns Anwender aber nicht. &lt;BR /&gt;&lt;BR /&gt;Für wen ist das Programm nochmals geschrieben worden? &lt;!-- s:mrgreen: --&gt;&lt;span class="lia-unicode-emoji" title=":strahlendes_Gesicht_mit_lächelnden_Augen:"&gt;😁&lt;/span&gt;&lt;!-- s:mrgreen: --&gt;</description>
      <pubDate>Tue, 20 May 2014 16:36:50 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429291#M120</guid>
      <dc:creator>Hmooslechner</dc:creator>
      <dc:date>2014-05-20T16:36:50Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429292#M121</link>
      <description>Der Raumstempel ist sehr umständlich programmiert, ja. Jedenfalls der aktuelle. Aber nicht in dem Teil, den Du anmahnst. Das ist sogar ziemlich logisch. Vielleicht kommt der Part ja auch mal in ein Extramakro wie der &lt;I&gt;qauntitytextwriter&lt;/I&gt;, dann wird das Skript überschaubarer.&lt;BR /&gt;&lt;BR /&gt;Der Aktuelle Stempel besteht aus einem Objekt, das nichts anderes aufruft als ein einziges Makro. Dessen Code wird zu 90% von der deutschen Version der Stempel benutzt. Die anderen 10% von der Österreichischen. Andere Lokalisierungen verwenden weniger Code davon.&lt;BR /&gt;&lt;BR /&gt;Du programmierst doch selber Heimo, komplexe Objekte haben nunmal ein komplexes Skript. Mir ist es lieber, ich habe funktionierende und pflegbare Objekte, als einfache. Im Übrigen nimm doch einfach einen älteren Raumstempel, der ist dann auch einfacher und durchschaubarer programmiert. Und wenn man es nicht selber programmieren kann und unbedingt braucht, kann man es ja auch beauftragen. &lt;!-- s;) --&gt;&lt;span class="lia-unicode-emoji" title=":zwinkerndes_Gesicht:"&gt;😉&lt;/span&gt;&lt;!-- s;) --&gt;</description>
      <pubDate>Tue, 20 May 2014 18:48:10 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429292#M121</guid>
      <dc:creator>Frank Beister</dc:creator>
      <dc:date>2014-05-20T18:48:10Z</dc:date>
    </item>
    <item>
      <title>Re: Raumstempel</title>
      <link>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429293#M122</link>
      <description>&lt;BLOCKQUOTE&gt;"hmooslechner" wrote:&lt;BR /&gt;Für wen ist das Programm nochmals geschrieben worden? &lt;!-- s:mrgreen: --&gt;&lt;span class="lia-unicode-emoji" title=":strahlendes_Gesicht_mit_lächelnden_Augen:"&gt;😁&lt;/span&gt;&lt;!-- s:mrgreen: --&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;ehm ... ich denke für die Aktionäre  &lt;!-- s:evil: --&gt;&lt;span class="lia-unicode-emoji" title=":wütendes_Gesicht_mit_Hörnern:"&gt;👿&lt;/span&gt;&lt;!-- s:evil: --&gt;</description>
      <pubDate>Wed, 28 May 2014 18:33:56 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Alte-Wunschliste/Raumstempel/m-p/429293#M122</guid>
      <dc:creator>don1</dc:creator>
      <dc:date>2014-05-28T18:33:56Z</dc:date>
    </item>
  </channel>
</rss>

