Several years ago (literally) a feature request was discussed on Mantis BT. I have at long last spent some time on implementing it!
In version 18.1.5 of Meeting Schedule Assistant you will see a new item added to the File menu:
This new menu item is only enabled when you are using the Workbook view in the editor. Clicking Print Preview – Personal Copies will display this popup window:
A help topic has been provided with the updated program about using this feature. In summary:
- Use the Display options to limit the publishers shown in the list.
- Use the Select options to quickly select all the publishers that meet the given criteria.
- You can also manually use CTRL + Left Mouse Click to select multiple entries.
- Select the Style (there is one installed by default).
- Press Print Preview to close the window and display the preview.
As mentioned above, the updated application includes a modified schedule script Workbook-S-140-Personal. It is based on the existing Workbook-S-140 document and was adapted to facilitate the new requirements. Here is a copy of that script, with the amended items highlighted. This may be of use to you if you are using your own S-140 scripts and want to make a Personal version.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:msa="https://www.publictalksoftware.co.uk/msa">
<xsl:output method="html" indent="yes" version="4.01"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:attribute name="lang">
<xsl:value-of select="//Settings//LanguageCode"/>
</xsl:attribute>
<xsl:attribute name="dir">
<xsl:value-of select="//Settings/Direction"/>
</xsl:attribute>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link rel="stylesheet" type="text/css" href="Workbook-S-140-Personal.css"/>
<title>
<xsl:value-of select="//Labels/Congregation"/> <xsl:value-of select="//Labels/Title" />
</title>
</head>
<body>
<xsl:for-each select="//NamesToHighlight/Name">
<xsl:variable name="NameToHighlight" select="."/>
<div class="containerPage">
<xsl:for-each select="//MeetingWorkBook/Meeting">
<div class="containerMeeting">
<xsl:if test="@PageBreak=1">
<br style="page-break-before: always;"/>
</xsl:if>
<xsl:if test="@PageBreak=1 or position()=1">
<xsl:call-template name="HEADING"/>
</xsl:if>
<xsl:if test="@BookmarkId">
<a>
<xsl:attribute name="name">
<xsl:value-of select="concat('week', @BookmarkId)"/>
</xsl:attribute>
<![CDATA[ ]]>
</a>
</xsl:if>
<xsl:call-template name="WEEK">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:call-template>
<xsl:apply-templates select="TFGW">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
<xsl:apply-templates select="AYFM">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
<xsl:apply-templates select="LAC">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</div>
</xsl:for-each>
<xsl:if test="not(position() = last())" >
<br style="page-break-before: always;"/>
</xsl:if>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
<xsl:template name="WEEK">
<xsl:param name ="NameToHighlight"/>
<table class="tableDATE" cellspacing="0" cellpadding="0">
<xsl:call-template name="SetColumnWidths"/>
<xsl:if test="@SpecialEvent=1">
<tr>
<td class="cellBibleReading" colspan="4">
<xsl:value-of select="Date"/> | <xsl:value-of select="WeeklyBibleReading"/>
</td>
</tr>
<xsl:apply-templates select="SpecialEvent"/>
</xsl:if>
<xsl:if test="@SpecialEvent=0">
<tr>
<td class="cellBibleReading" colspan="3">
<div class="floatRight">
<xsl:value-of select="//Labels/Chairman"/>
<xsl:if test="@NumberClasses = 2">
<br/>
<xsl:value-of select="//Labels/AuxCounsellor"/>
</xsl:if>
<xsl:if test="@NumberClasses = 3">
<br/>
<xsl:value-of select="//Labels/AuxCounsellor1"/>
<br/>
<xsl:value-of select="//Labels/AuxCounsellor2"/>
</xsl:if>
</div>
<xsl:value-of select="Date"/> | <xsl:value-of select="WeeklyBibleReading"/>
</td>
<td class="cellName">
<xsl:choose>
<xsl:when test="Chairman/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="Chairman"/>
</span>
</xsl:when>
<xsl:when test="Chairman=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="Chairman"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Chairman"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="@NumberClasses >= 2">
<br/>
<xsl:choose>
<xsl:when test="AuxCounsellor1/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="AuxCounsellor1"/>
</span>
</xsl:when>
<xsl:when test="AuxCounsellor1=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="AuxCounsellor1"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="AuxCounsellor1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="@NumberClasses = 3">
<br/>
<xsl:choose>
<xsl:when test="AuxCounsellor2/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="AuxCounsellor2"/>
</span>
</xsl:when>
<xsl:when test="AuxCounsellor2=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="AuxCounsellor2"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="AuxCounsellor2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</td>
</tr>
<xsl:apply-templates select="Note"/>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<xsl:apply-templates select="SongOpen" />
<xsl:apply-templates select="PrayerOpen">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</tr>
<xsl:apply-templates select="OpeningComments" />
</xsl:if>
</table>
</xsl:template>
<!--Displays the notes (if any)-->
<xsl:template match="Note">
<xsl:if test="normalize-space(.) != ''">
<tr>
<td class="cellNotes" colspan="4">
<xsl:value-of select="//Labels/Note"/>: <xsl:value-of select="."/>
</td>
</tr>
</xsl:if>
</xsl:template>
<xsl:template match="SpecialEvent">
<tr>
<td class="textSpecialEvent" colspan="4">
<xsl:value-of select="Event"/> [<xsl:value-of select="Date"/>]
</td>
</tr>
<xsl:if test="normalize-space(Location) != ''">
<tr>
<td class="textSpecialEventLocation" colspan="4">
<xsl:value-of select="Location"/>
</td>
</tr>
</xsl:if>
</xsl:template>
<!--Displays heading with a nice double underline-->
<xsl:template name="HEADING">
<div class="borderHEADINGOuter">
<div class="borderHEADINGInner">
<table class="tableHEADING">
<tr>
<td class="textCongregation">
<xsl:value-of select="//Labels/Congregation"/>
</td>
<td class="textTitle">
<xsl:value-of select="//Labels/Title"/>
</td>
</tr>
</table>
</div>
</div>
</xsl:template>
<!--Display the end time (using 24 hour format)-->
<xsl:template match="Time" mode="End">
<td class="cellTime">
<xsl:value-of select="@EndTime24"/>
</td>
</xsl:template>
<!--Display the start time (using 24 hour format)-->
<xsl:template match="Time" mode="Start">
<td class="cellTime">
<xsl:value-of select="@StartTime24"/>
</td>
</xsl:template>
<!--Displays the duration of the item in minutes-->
<xsl:template match="Time" mode="Duration">
<span class="textDuration">
(<xsl:value-of select="."/>)
</span>
</xsl:template>
<!--Display the name of the brother assigned-->
<xsl:template match="Name | PrayerOpen | PrayerEnd">
<xsl:param name="NameToHighlight"/>
<td class="cellName">
<xsl:choose>
<xsl:when test="@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="."/>
</span>
</xsl:when>
<xsl:when test=".=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="."/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:template>
<!--Displays the theme for the assignment-->
<xsl:template match="Theme">
<span class="textTheme">
<xsl:value-of select="." disable-output-escaping="yes"/>
</span>
</xsl:template>
<!--Displays the chairman label-->
<xsl:template name="Chairman">
<td class="cellName">
<!--Trims the " :" from the end of the chairman label-->
<xsl:value-of select="normalize-space(translate(//Labels/Chairman,':',''))"/>
</td>
</xsl:template>
<xsl:template match="Method">
<span class="textMethod">
<xsl:value-of select="." disable-output-escaping="yes"/>
</span>
</xsl:template>
<!--Treasures From God's Word-->
<xsl:template match="TFGW">
<xsl:param name="NameToHighlight"/>
<table class="tableTFGW" cellspacing="0" cellpadding="0">
<xsl:call-template name="SetColumnWidths"/>
<xsl:call-template name="SectionHeading">
<xsl:with-param name="strSection">TFGW</xsl:with-param>
<xsl:with-param name="iSpanColumns">3</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="TFGWItem">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
<xsl:with-param name="iSpanCols">
<xsl:value-of select="@NumberClasses"/>
</xsl:with-param>
</xsl:apply-templates>
<xsl:apply-templates select="BibleReadingItem">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</table>
</xsl:template>
<!--Bible talk and Digging for Spiritual Gems-->
<xsl:template match="TFGWItem">
<xsl:param name="NameToHighlight"/>
<xsl:param name="iSpanCols"/>
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td colspan="{$iSpanCols+1}">
<span class="bulletTFGW">•</span>
<xsl:apply-templates select="Theme"/>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="Method"/>
</td>
<xsl:apply-templates select="Name">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</tr>
</xsl:template>
<!--Displays all of the bible reading students for each class-->
<xsl:template match="BibleReadingItem">
<xsl:param name="NameToHighlight"/>
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td class="cellTheme">
<span class="bulletTFGW">•</span>
<span class="textTheme">
<xsl:value-of select="Type"/>
</span>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="Material"/>
</td>
<td class="cellPosition">
<xsl:value-of select="//Labels/Student"/>
</td>
<xsl:for-each select="Readers/Reader">
<td class="cellName">
<xsl:choose>
<xsl:when test="@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="."/>
</span>
</xsl:when>
<xsl:when test=".=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="."/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:for-each>
</tr>
</xsl:template>
<!--Apply Yourself To The Field Ministry-->
<xsl:template match="AYFM">
<xsl:param name ="NameToHighlight"/>
<table class="tableAYFM" cellspacing="0" cellpadding="0">
<xsl:call-template name="SetColumnWidths"/>
<xsl:call-template name="SectionHeading">
<xsl:with-param name="strSection">AYFM</xsl:with-param>
<xsl:with-param name="iSpanColumns">3</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="Presentations" />
<xsl:apply-templates select="StudentItem">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</table>
</xsl:template>
<!--Displays all the information for a student item.
This includes all the students from each class.-->
<xsl:template match="StudentItem">
<xsl:param name="NameToHighlight"/>
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td class="cellTheme">
<span class="bulletAYFM">•</span>
<span class="textTheme">
<xsl:value-of select="Type"/>
</span>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="Material"/>
</td>
<td class="cellPosition">
<xsl:choose>
<xsl:when test="@IsSampleVideo=1">
<!--We need an empty cell-->
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="//Labels/Student"/>
<xsl:if test="@IsTalk=0">
<br/>
<xsl:value-of select="//Labels/Assistant"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
<xsl:apply-templates select="Students">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</tr>
</xsl:template>
<xsl:template match="Material | SourceMaterial">
<span class="textMaterial">
<xsl:value-of select="." disable-output-escaping="yes"/>
</span>
</xsl:template>
<!--Displays the student and assistant for the current student item-->
<xsl:template match="Students">
<xsl:param name="NameToHighlight"/>
<td class="cellName">
<xsl:choose>
<xsl:when test="../@IsSampleVideo=1">
<xsl:choose>
<xsl:when test="@ChairmanHandleSampleVideo=0">
<xsl:value-of select="//Labels/Counsellor"/>
</xsl:when>
<xsl:otherwise>
<!--Trims the " :" from the end of the chairman label-->
<xsl:value-of select="normalize-space(translate(//Labels/Chairman,':',''))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="Student/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="Student"/>
</span>
</xsl:when>
<xsl:when test="Student=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="Student"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Student"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="../@IsTalk=0">
<br/>
<xsl:choose>
<xsl:when test="Assistant/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="Assistant"/>
</span>
</xsl:when>
<xsl:when test="Assistant=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="Assistant"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Assistant"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:template>
<!--First week of month item-->
<xsl:template match="Presentations">
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td colspan="2">
<span class="bulletAYFM">•</span>
<xsl:apply-templates select="Theme"/>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="Method"/>
</td>
<xsl:apply-templates select="Name"/>
</tr>
</xsl:template>
<!--Define the column widths for the schedule-->
<xsl:template name="SetColumnWidths">
<!--The widths in the column classes will add up to 100%-->
<xsl:choose>
<xsl:when test="not(@NumberClasses) or @NumberClasses=1 or self::Meeting">
<colgroup>
<col class="columnTime"/>
<col class="columnTheme1ClassB"/>
<col class="columnPosition"/>
<col class="columnName"/>
</colgroup>
</xsl:when>
<xsl:when test="@NumberClasses=2">
<colgroup>
<col class="columnTime"/>
<col class="columnTheme2ClassB"/>
<col class="columnPosition"/>
<col class="columnName"/>
<col class="columnName"/>
</colgroup>
</xsl:when>
<xsl:when test="@NumberClasses=3">
<colgroup>
<col class="columnTime"/>
<col class="columnTheme3ClassB"/>
<col class="columnPosition"/>
<col class="columnName"/>
<col class="columnName"/>
<col class="columnName"/>
</colgroup>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--Living As Christians-->
<xsl:template match="LAC">
<xsl:param name ="NameToHighlight"/>
<table class="tableLAC" cellspacing="0" cellpadding="0">
<xsl:call-template name="SetColumnWidths"/>
<xsl:call-template name="SectionHeading">
<xsl:with-param name="strSection">LAC</xsl:with-param>
<xsl:with-param name="iSpanColumns">4</xsl:with-param>
</xsl:call-template>
<tr>
<xsl:apply-templates select="SongMiddle" />
</tr>
<xsl:apply-templates select="LACItem">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
<xsl:choose>
<xsl:when test="@CircuitVisit=0">
<xsl:apply-templates select="CongregationBibleStudy">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
<xsl:apply-templates select="ClosingComments"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="ClosingComments"/>
<xsl:apply-templates select="CircuitVisit/LACItem">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
<tr>
<xsl:apply-templates select="SongEnd"/>
<xsl:apply-templates select="PrayerEnd">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</tr>
</table>
</xsl:template>
<xsl:template name="SectionHeading">
<xsl:param name="strSection"/>
<xsl:param name="iSpanColumns"/>
<tr>
<td class="cell{$strSection}" colspan="{$iSpanColumns}">
<div class="text{$strSection}">
<xsl:value-of select="//Labels/*[name() = $strSection]"/>
</div>
</td>
<xsl:if test="@NumberClasses = 3">
<td class="cellClass">
<xsl:value-of select="//Labels/AuxClass1"/>
</td>
<td class="cellClass">
<xsl:value-of select="//Labels/AuxClass2"/>
</td>
</xsl:if>
<xsl:if test="@NumberClasses = 2">
<td class="cellClass">
<xsl:value-of select="//Labels/AuxClass"/>
</td>
</xsl:if>
<xsl:if test="@NumberClasses >= 1">
<td class="cellClass">
<xsl:value-of select ="//Labels/MainHall"/>
</td>
</xsl:if>
</tr>
</xsl:template>
<xsl:template match="LACItem">
<xsl:param name ="NameToHighlight"/>
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td class="cellTheme" colspan="2">
<span class="bulletLAC">•</span>
<xsl:apply-templates select="Theme"/>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="Method"/>
</td>
<xsl:apply-templates select="Name">
<xsl:with-param name="NameToHighlight" select="$NameToHighlight"/>
</xsl:apply-templates>
</tr>
</xsl:template>
<!--Displays the congregation bible study information-->
<xsl:template match="CongregationBibleStudy">
<xsl:param name ="NameToHighlight"/>
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td class="cellTheme">
<span class="bulletLAC">•</span>
<span class="textTheme">
<xsl:value-of select="//Labels/CBS"/>
</span>
<xsl:apply-templates select="Time" mode="Duration"/>
<xsl:apply-templates select="SourceMaterial" />
</td>
<td class="cellPosition">
<xsl:value-of select="//Labels/Conductor"/>
<br/>
<xsl:value-of select="//Labels/Reader"/>
</td>
<td class="cellName">
<xsl:choose>
<xsl:when test="Conductor/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="Conductor"/>
</span>
</xsl:when>
<xsl:when test="Conductor=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="Conductor"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Conductor"/>
</xsl:otherwise>
</xsl:choose>
<br/>
<xsl:choose>
<xsl:when test="Reader/@Duplicate=1">
<span class="textDuplicate">
<xsl:value-of select="Reader"/>
</span>
</xsl:when>
<xsl:when test="Reader=$NameToHighlight">
<span class="textHighlight">
<xsl:value-of select="Reader"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Reader"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
<!--Displays the song information-->
<xsl:template match="SongOpen | SongMiddle | SongEnd">
<td class="cellTime">
<xsl:value-of select="@EndTime24"/>
</td>
<td class="cellTheme">
<xsl:if test="self::SongMiddle">
<xsl:attribute name="colspan">3</xsl:attribute>
<xsl:attribute name="class"></xsl:attribute>
</xsl:if>
<span>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="self::SongOpen">bulletTFGW</xsl:when>
<xsl:otherwise>bulletLAC</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:text>•</xsl:text>
</span>
<span class="textSongLabel">
<xsl:value-of select="//Labels/Song"/>
</span>
<span class="textSongNumber">
<xsl:value-of select="."/>
</span>
<span class="textSongTitle">
<xsl:value-of select="@Title"/>
</span>
</td>
<xsl:if test="self::SongOpen or self::SongEnd">
<td class="cellPosition">
<xsl:value-of select="//Labels/Prayer"/>
</td>
</xsl:if>
</xsl:template>
<!--Displays the comments-->
<xsl:template name="Comments">
<xsl:param name="bulletClass" />
<tr>
<xsl:apply-templates select="Time" mode="End"/>
<td class="cellTheme" colspan="2">
<span class="{ $bulletClass }">•</span>
<xsl:apply-templates select="Theme"/>
<xsl:apply-templates select="Time" mode="Duration"/>
</td>
<xsl:call-template name="Chairman"/>
</tr>
</xsl:template>
<xsl:template match="OpeningComments">
<xsl:call-template name="Comments">
<xsl:with-param name="bulletClass">bulletTFGW</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="ClosingComments">
<xsl:call-template name="Comments">
<xsl:with-param name="bulletClass">bulletLAC</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="PUBLICTALK">
<table class="tableWeekend">
<tr>
<td class ="cellWEEKEND" colspan="2">
<div class="textWEEKEND" style="float:left">
<xsl:value-of select="//Labels/PTS_WeekendMeeting"/>
</div>
<div style="float:right">
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_Chairman"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Assignments/Chairman"/>
</span>
</div>
</td>
</tr>
<xsl:apply-templates select="HomeTalk"/>
<xsl:apply-templates select="AwayTalk"/>
<xsl:apply-templates select="Assignments"/>
</table>
</xsl:template>
<!--Displays the home talk speaker details-->
<xsl:template match="HomeTalk">
<tr>
<td class="cellWEEKENDText">
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_Speaker"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Speaker"/>
</span>
</td>
<td>
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_Congregation"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Congregation"/>
</span>
</td>
</tr>
<tr>
<td class="cellWEEKENDText" colspan="2">
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_Theme"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Theme"/>
</span>
</td>
</tr>
</xsl:template>
<xsl:template match="AwayTalk">
<tr>
<td class="cellWEEKENDText" colspan="2">
<span class="textPTSLabel">
<xsl:choose>
<!--We only support 2 away speakers. We could just use one label-->
<xsl:when test="position()=1">
<xsl:value-of select="//Labels/PTS_AwaySpeaker1"/>:
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="//Labels/PTS_AwaySpeaker2"/>:
</xsl:otherwise>
</xsl:choose>
</span>
<span class="textPTSValue">
<xsl:value-of select="Speaker"/> (<xsl:value-of select="Congregation"/>)
</span>
</td>
</tr>
</xsl:template>
<!--Displays the Watchtower conductor and reader-->
<xsl:template match="Assignments">
<tr>
<td class="cellWEEKENDText">
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_WTConductor"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Conductor"/>
</span>
</td>
<td>
<span class="textPTSLabel">
<xsl:value-of select="//Labels/PTS_WTReader"/>:
</span>
<span class="textPTSValue">
<xsl:value-of select="Reader"/>
</span>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
The application also installs an updated CSS document:
/* Column widths */
.columnTime {
width: 7%;
}
.columnTheme1Class {
width: 66%;
}
.columnTheme2Classes {
width: 54%;
}
.columnTheme3Classes {
width: 42%;
}
.columnPosition {
width: 10%;
}
.columnName {
width: 17%;
}
table {
border-collapse: collapse;
table-layout: fixed;
width: 100%;
}
table th, td {
/* Comment out the following line if you do not want borders */
border: 1px #d3d3d3 solid;
/* This is the default font for all cells */
font-family: Calibri;
}
table tbody tr:hover td {
color: #000;
background: #efefef;
}
body {
width: 100%;
margin-left: 0;
margin-right: 0;
background: #666;
}
.containerPage {
min-width: 210mm;
max-width: 210mm;
padding-left: 2mm;
padding-right: 2mm;
margin-left: auto;
margin-right: auto;
background: #FFF;
}
.containerMeeting {
margin-bottom: 3mm;
}
.cellBibleReading {
padding-left: 3mm;
font-size: 11pt;
font-weight: 700;
text-transform: uppercase;
border-right-style: none;
}
.cellNotes {
font-size: 10pt;
font-style: italic;
}
.cellTime {
padding-left: 3mm;
padding-right: 5mm;
font-size: 9pt;
font-weight: 700;
color: gray;
}
.cellTheme {
border-right-style: none;
}
.cellPosition {
color: gray;
padding-right: 2mm;
text-align: right;
font-size: 8pt;
font-weight: 700;
vertical-align: middle;
text-transform: none;
border-left-style: none;
}
.cellName {
font-size: 10pt;
font-weight: normal;
}
.floatRight {
color: gray;
padding-top: 1mm;
padding-bottom: 1mm;
padding-right: 2mm;
float: right;
text-align: right;
font-size: 8pt;
font-weight: 700;
text-transform: none;
}
.borderHEADINGOuter {
border-bottom: 1px gray solid;
margin-bottom: 2mm;
}
.borderHEADINGInner {
border-bottom: 4px gray solid;
margin-bottom: 2px;
}
.tableHEADING {
table-layout: auto;
width: 100%;
border: none;
}
.tableHEADING td {
border: none;
}
.textSpecialEvent {
text-align: center;
}
.textSpecialEventLocation {
text-align: center;
}
.tableDATE {
margin-bottom: 2mm;
}
.tableTFGW {
margin-bottom: 2mm;
}
.cellTFGW {
padding-left: 1mm;
}
.textTFGW {
padding-left: 1mm;
padding-top: 1mm;
padding-bottom: 1mm;
color: #fff;
background-color: #606a70;
width: 90mm;
font-size: 10pt;
font-weight: 700;
}
.bulletTFGW {
/*padding-top: 1mm;
padding-bottom: 1mm;*/
padding-right: 1mm;
color: #606a70;
/*font-size: 14pt;*/
font-weight: normal;
}
.tableAYFM {
margin-bottom: 2mm;
}
.cellAYFM {
padding-left: 1mm;
}
.textAYFM {
padding-left: 1mm;
padding-top: 1mm;
padding-bottom: 1mm;
color: #fff;
background-color: #c18626;
width: 90mm;
font-size: 10pt;
font-weight: 700;
}
.bulletAYFM {
/*padding-top: 1mm;
padding-bottom: 1mm;*/
padding-right: 1mm;
color: #c18626;
/*font-size: 14pt;*/
font-weight: normal;
}
.textHighlight {
background-color: #ffff00;
}
.textDuplicate {
background-color: #ff0000;
}
.textMaterial {
/* Uncomment to hide the material */
/* display:none;*/
font-size: 10pt;
font-style: italic;
font-weight: 700;
}
.textMethod {
/* Uncomment to hide the method */
/* display:none;*/
font-size: 10pt;
font-style: italic;
font-weight: 700;
}
.textSongTitle {
/* Uncomment to hide the song title */
/* display:none;*/
font-size: 10pt;
font-weight: 700;
}
.cellClass {
font-size: 8pt;
font-weight: 700;
vertical-align: bottom;
color: gray;
}
.tableLAC {
margin-bottom: 2mm;
}
.cellLAC {
padding-left: 1mm;
}
.textLAC {
padding-left: 1mm;
padding-top: 1mm;
padding-bottom: 1mm;
color: #fff;
background-color: #961526;
width: 90mm;
font-size: 10pt;
font-weight: 700;
}
.bulletLAC {
/*padding-top: 1mm;
padding-bottom: 1mm;*/
padding-right: 1mm;
color: #961526;
/*font-size: 14pt;*/
font-weight: normal;
}
.textDuration {
padding-left: 1mm;
font-family: Calibri;
font-size: 9pt;
font-weight: normal;
}
.textTheme {
font-size: 10pt;
font-weight: normal;
}
.textSongLabel {
font-size: 10pt;
font-weight: normal;
}
.textSongNumber {
font-size: 10pt;
font-weight: normal;
}
.textCongregation {
vertical-align: bottom;
text-align: left;
font-size: 11pt;
font-weight: 700;
text-transform: uppercase;
}
.textTitle {
vertical-align: bottom;
text-align: right;
font-family: Cambria;
font-size: 18pt;
font-weight: 700;
}
.tableWeekend {
margin-bottom: 2mm;
}
.cellWEEKEND {
padding-left: 1mm;
}
.textWEEKEND {
padding-left: 1mm;
padding-top: 1mm;
padding-bottom: 1mm;
color: #fff;
background-color: #8b8378;
width: 90mm;
font-size: 10pt;
font-weight: 700;
text-transform: uppercase;
}
.cellWEEKENDText {
padding-left: 3mm;
}
.textPTSLabel {
font-weight: 700;
font-size: 10pt;
}
.textPTSValue {
font-size: 10pt;
}
/* For right-to-left: text directions swapped */
[dir=rtl] .textCongregation {
text-align: right;
}
[dir=rtl] .textTitle {
text-align: left;
}
@media print {
body {
background: #FFF;
}
.containerPage, .containerMeeting, .tableDATE, .tableHEADING, .tableTFGW, .tableAYFM, .tableLAC, .tableWeekend {
width: 99%;
min-width: 99%;
max-width: 99%;
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
}
}
At line 172 you will see a new class:
.textHighlight {
background-color: #ffff00;
}
This class sets any assigned name with a YELLOW BACKGROUND.


This new feature work well and is very useful.