Provides instructions on customizing the XML-based Lease Summary screen using XSL style sheets.
This document assumes you have a working knowledge of CSS, HTML, JavaScript, XML, and XSLT. Contact your NetSol representative for more information.
The file report_path_fn.xsl contains the template fn_get_rpt_path
, which specifies the path to the XSL style sheet directory. This file is not installed with the LeasePak client software. Instead, LeasePak creates it using the following process:
Each time a user logs on to the LeasePak client, LeasePak verifies that the report_path_fn.xsl file exists and that the location it specifies matches the location established through the Custom General setup. If you are customizing the XSL style sheet location, NetSol recommends allowing all users write access to that location until you have determined and configured your XSL style sheet location. Once your setup is complete, you can restrict write access to the XSL style sheet location.
By default, the location of the XSL style sheets, and therefore the location specified in report_path_fn.xsl, is install_path\Report Templates, where install_path is the installed location of the LeasePak client software on each user's computer. The following sections describe situations in which you may need to change the XSL style sheet location. If you need to do this, you will also need to specify the new location using Custom General [U0712] (refer to XSL Style Sheet Location Customization for instructions).
To use the stored procedures and style sheets that LeasePak provides--without customizations--the administrative user (such as lpadmin
) or LeasePak client software installer must:
The administrative user can change the XSL style sheet location using Custom General [U0712]: Miscellaneous Customizations. See XSL Style Sheet Location Customization for instructions.
You must also provide users needing access to the XML-based Lease Summary with a start point XSL style sheet. This is the style sheet LeasePak uses to perform the initial data retrieval and transformation when the user selects a lease and clicks Retrieve. Refer to the section Lease Summary "Start Point" Customization for instructions.
If you are customizing any of the style sheets or scripts LeasePak provides or creating your own, do not use the default install_path\Report Templates location, otherwise future LeasePak client installations may overwrite your customizations. Instead, NetSol recommends one of the following options based on your business needs:
Place the contents (style sheet files, as well as css, html, images, scripts, and xml subdirectories and files) in one central location, such as a directory under a shared network drive. This solution works well for the following conditions:
Place different sets of contents in two or more different locations that all users map as the same location. For example, a set of style sheets, etc. with French text resides on \\français\data, while a set of style sheets with English text resides on \\english\data. Some users map drive M: to point to \\français, while others map the same drive M: to point to \\english. You configure the XSL style sheet location as M:\data\ in Custom General. This solution works well for the following conditions:
The administrative user can change the designated XSL style sheet location using Custom General [U0712]: Miscellaneous Customizations. See XSL Style Sheet Location Customization for instructions.
You must also provide users needing access to the XML-based Lease Summary with a start point XSL style sheet. This is the style sheet LeasePak uses to perform the initial data retrieval and transformation when the user selects a lease and clicks Retrieve. Refer to the section Lease Summary "Start Point" Customization for instructions.
Use Custom General [U0712]: Miscellaneous Customizations to customize the XSL style sheet location.
You must exit LeasePak and log back on to finish setting this parameter.
Do not attempt to modify
report_path_fn.xsl directly. Each time you log in, LeasePak checks the file against the value from Custom General, displays an error message if they do not match, and overwrites report_path_fn.xsl with the value set in LeasePak.
Users needing access the XML-based Lease Summary must have read access to the XSL style sheet location.
The XML-based Lease Summary is available for use with the following:
Each user accessing the XML-based Lease Summary must have a "start point" XSL style sheet--that is, the style sheet LeasePak uses for the initial data retrieval and transformation when the user clicks Retrieve. You can find the field for specifying this in one of the following locations:
Lease Summary F5 | Security [U0706], XSL Files/Dlr. Alerts Tab |
Collection Tracking [U11] | Collection Setup: User Profile [U1131], Signature Tab |
Maturing Lease Tracking [U14] | Maturing Lease Setup: User Profile [U1431], Signature Tab |
Customer Service Tracking [U16] | Customer Service Setup: User Profile [U1631], Signature Tab |
Recovery Tracking [U17] | Recovery Setup: User Profile [U1731], Signature Tab |
To specify the path of this and other XSL style sheets, use the field XSL Report Templates in Custom General [U0712]: Miscellaneous Customizations.
The following example is from Customer Service Setup: User Profile [U1631]:
To specify the path of this and other XSL style sheets, use the field XSL Report Templates in Custom General [U0712]: Miscellaneous Customizations.
The following diagram illustrates the initial process LeasePak uses to display the user's Lease Summary "start point"--that is, the screen they first see after requesting a summary for a particular lease.
In the above diagram, lsesum refers to one of the following stored procedures:
Lease Summary F5 | dbms_cp_cus_lsesum |
Collection Tracking [U11] | dbms_cp_col_lsesum |
Maturing Lease Tracking [U14] | dbms_cp_mat_lsesum |
Customer Service Tracking [U16] | dbms_cp_cus_lsesum |
Recovery Tracking [U17] | dbms_cp_rec_lsesum |
Where dbms is either ora for Oracle or syb for Sybase. |
An administrative user must set up both the global location for all XSL style sheets and the Lease Summary "start point"--the starting style sheet pertaining to Lease Summary F5 or the particular tracking module--for each user accessing Lease Summary. Then when the user retrieves the Lease Summary for a particular lease, LeasePak executes the lsesum stored procedure corresponding to either Lease Summary F5 or the tracking module. This in turn generates the XML that LeasePak transforms using the XSL "start point" style sheet specified for the user. What happens after the initial data retrieval and transformation depends on the design of the starting style sheet--by controlling what links appear on this sheet, you control what the user is able to subsequently access.
LeasePak provides the following components that you can use as building blocks for your Lease Summary customizations:
Lease Summary F5 | dbms_cp_cus_lsesum |
Collection Tracking [U11] | dbms_cp_col_lsesum |
Maturing Lease Tracking [U14] | dbms_cp_mat_lsesum |
Customer Service Tracking [U16] | dbms_cp_cus_lsesum |
Recovery Tracking [U17] | dbms_cp_rec_lsesum |
Where dbms is either ora for Oracle or syb for Sybase. |
You cannot use stored procedures created or modified for XSLT customizations (LeasePak reports, Lease Summary, etc.) to update a LeasePak database.
Below are the file naming and procedure naming conventions of LeasePak database stored procedures:
File | Stored Procedure | Description |
---|---|---|
dbms_mp_procedure.sql |
mp_procedure |
NetSol stored procedures. NetSol ships these with each release. The user cannot modify them. |
dbms_cp_procedure.sql |
cp_procedure |
Custom stored procedures. NetSol ships these with each release. The user can make extensive modifications, but since LeasePak executes these as part of its program, the user must not delete any of the procedures outright and must not change or delete the interface (the initial arguments or parameters) that LeasePak uses to run the procedures. |
dbms_up_procedure.sql |
up_procedure |
User stored procedures. The user must maintain these for each release. These are wholly user-defined. |
For the above names, dbms is either ora for Oracle or syb for Sybase, and
procedure is the name of the stored procedure.
|
Read the instructions in
End User Code Objects (part of the System Administration Guide) before modifying any of the cp procedures or creating up procedures. Do not modify the originals of cp procedures that install with the LeasePak software.
Below are the main sections of a typical custom stored procedure (note that some sections are excerpts), using
syb_cp_cus_lsesum
as an example.
Each stored procedure script begins by reading in (using the ex command r) the contents of the file
leasepak_syb_use
, located in your environment's etc
directory:
:r leasepak_syb_use go
The file leasepak_syb_use
contains the command
use leasepak_database
where leasepak_database is the name of the LeasePak database corresponding to your environment.
The next section of the script checks to see if a version of the procedure already exists. If so, the script drops it from the database:
if exists (select * from sysobjects where name = 'cp_cus_lsesum') begin drop procedure cp_cus_lsesum end go
The script then creates a fresh version of the procedure along with its interface (also known as arguments or parameters):
create procedure cp_cus_lsesum @lse_s char(10), @d_today_s datetime as
Do not modify the interface of a custom procedure (
cp_*
)--that is, do not change its arguments or parameters. LeasePak runs a cp_*
procedure as part of its client software program, and it expects and needs the parameters
as originally defined in order to run correctly. As long as you leave the parameters alone, you can customize the rest of the procedure in any way needed, following the guidelines for general structure and the rules for the use of column aliases.
As delivered with the LeasePak software, the Lease Summary procedures execute a central procedure mp_xml_lsesum
to retrieve and format the basic lease summary information:
begin /*------------------------------------------------------------------| | NetSol maintains one centralized stored procedure (mp_xml_lsesum) | | to retrieve Lease Summary information for the various tracking | | modules. The mp_xml_lsesum procedure is called from the | | cp_col_lsesum procedure of each tracking module. | |-------------------------------------------------------------------| | If there are special business requirements for this tracking | | module for a particular client of NetSol, then please feel free | | to remove the call to the mp_xml_lsesum procedure below, and | | place in your custom SQL code here. Just do not change the | | interface above. The interface is the name of the procedure | | (cp_cus_lsesum), the names and types of the parameters, and | | the number of parameters. | |------------------------------------------------------------------*/ exec mp_xml_lsesum @lse_s, @d_today_s end go
If instead you wish to customize this portion of the procedure, you can replace the begin...end
block shown above with your own SQL. The following example begins by declaring variables--selecting data in order to facilitate the use of column aliases:
declare @por_s char(2) -- Portfolio declare @com_s char(2) -- Region declare @reg_s char(2) -- Company declare @off_s char(3) -- Office declare @les_s char(9) -- Lessee # declare @cus_s char(9) -- Customer # declare @grp_s char(3) -- Group #
In circumstances where you do not need to specify column aliases, you also do not need to declare variables. For an example of this, refer to the section Alternate Structure.
At the beginning of the main procedure, the script must ensure that any incoming arguments or parameters needed in
select
statements are properly aligned and space padded:
begin -- Right justify the lease value select @lse_s = (select stuff( space(10), 11 - char_length(rtrim(@lse_s)), char_length(rtrim(@lse_s)), rtrim(@lse_s)) )
The script should also check to see if key values (in this case, the lease for Lease Summary) exist. If not, the script jumps
to error_exit
and resumes execution from that point:
-- First check to see if lease number exists if not exists ( select lse_s from rls where lse_s = @lse_s) goto error_exit
This section of the script selects the data and assigns it to the corresponding variables:
select @por_s = rls.por_s, @com_s = rls.com_s, @reg_s = rls.reg_s, @off_s = rls.off_s, @les_s = rls.les_s, @cus_s = rls.cus_s, @grp_s = rls.grp_s from rls where rls.lse_s = @lse_s
In circumstances where you do not need to specify column aliases, you also do not need to load your data into variables. For an example of this, refer to the section Alternate Structure.
The script then uses the select statement to pair the variable data with column aliases:
select -- Main Lease Information @por_s por_s, @com_s com_s, @reg_s reg_s, @off_s off_s, @lse_s lse_s, @les_s les_s, @cus_s cus_s, @grp_s grp_s, @d_today_s d_today_s, @tracking_c tracking_c,
This uses the SQL syntax
select value1 column_alias1, value2 column_alias2, ...
where value is either a LeasePak database column, variable value, computed value, returned value from a function, etc. and column-alias is the column-alias or column-heading name.
LeasePak creates XML element names using the column aliases. Therefore all column-alias names must conform to XML element naming specifications. See Column Aliases for more information.
The end of the script includes error_exit
and the final go
command:
error_exit: end go
The NetSol stored procedure mp_xml_lsesum
provides extensive examples of the syntax discussed above.
In cases where the stored procedure uses the original column names, using variables or assigning column aliases is not needed.
An example of this is in the NetSol stored procedure mp_remit_info
.
Although mp_remit_info
is an NetSol stored procedure, you can use the same structure with the
customizable procedures.
:r leasepak_syb_use go if exists (select * from sysobjects where name = 'mp_remit_info') begin drop procedure mp_remit_info end go create procedure mp_remit_info @remit_s char(4) as begin -- Right justify the remit value select @remit_s = (select stuff( space(4), 5 - char_length(rtrim(@remit_s)), char_length(rtrim(@remit_s)), rtrim(@remit_s)) ) -- Get the remittance data select * from rna where rna_flg_c = '8' and rna_code_s = @remit_s end go
Here the script is selecting fields from a single table. The output will use the original column names for the column headings.
Below are the Oracle and Sybase datatypes you can use within the stored procedures, as well as the formatting that the parser uses when writing the XML output for each datatype:
Datatype | Format |
---|---|
CHAR(n) (for general data) | No special format |
CHAR(n) (for time value data) | 24-hour HH:MM:SS |
DATE | MM/DD/YY or DD/MM/YY, according to your LeasePak Date Format Preference (from rsc.date_format_pref_s) |
NUMBER(precision,scale) | Comma (,) as thousands separator |
INTEGER | Comma (,) as thousands separator |
VARCHAR2(n) | No special format |
Datatype | Format |
---|---|
char(n) (for general data) | No special format |
char(n) (for time value data) | 24-hour HH:MM:SS |
datetime | MM/DD/YY or DD/MM/YY, according to your LeasePak Date Format Preference (from rsc.date_format_pref_s) |
double precision | Comma (,) as thousands separator |
integer | Comma (,) as thousands separator |
The parser that processes the stored procedures needs either the original column name or a column alias for each column
returned by the final output select statement in order to create the corresponding XML element. If you first select into variables, create a column that is a composite of two or more columns, use aggregate functions such as sum()
or count()
, or otherwise select a column that is not simply the data value of a single table column, you will need to assign an alias (also known as column heading) to that column.
For ease of reference and consistency with LeasePak database column names, NetSol recommends using the following column alias naming conventions:
Datatype | Recommended Column Alias |
---|---|
CHAR, VARCHAR2, char (for general data) | name_s |
CHAR, char (for time value data) | t_name_s |
DATE, datetime | d_name_s |
NUMBER, double precision | name_d |
INTEGER, integer | name_l |
For the above examples, name is main body of the column alias name, which may consist of multiple words or abbreviations separated by underscores. |
The column heading or alias name becomes the name of the corresponding XML element. Therefore column headings and aliases must conform to XML naming specifications. They must also conform to the specifications listed below, which are a subset of the XML naming specifications. Note that only lowercase letters are allowed; LeasePak translates any uppercase letters found in alias names to lowercase.
A column alias name may only begin with one of the following:
*A column alias name may not begin with xml.
A column alias name may only contain the following:
A column alias name may not contain:
In the NetSol examples above, the final section of the stored procedure has the select
statement containing the value/column alias pairs that LeasePak
will use to produce the XML output:
select -- Main Lease Information @por_s por_s, @com_s com_s, @reg_s reg_s, @off_s off_s, @lse_s lse_s, @les_s les_s, @cus_s cus_s, @grp_s grp_s, @d_today_s d_today_s, @tracking_c tracking_c,
The correct use of the msi_ reserved column aliases in this section of the stored procedure causes LeasePak to perform one or more predefined calculations and write out the results to corresponding special elements in the XML output. The following describes these calculations and the NetSol reserved column aliases LeasePak needs to perform them.
Do not create your own custom aliases beginning with msi_
--NetSol reserves this prefix for future aliases, calculations, and result XML elements.
msi_calc_taxes_c
is set to 'Y,' LeasePak calculates the sales/use tax amount based on the lease's tax rate and the
payment amount:
the lease's sales/use tax rate
* the payment amount
<msi_stax_amt_d>
in the XML output.
msi_stax_amt_d
would be:
500.00 * 0.0725 = 36.25
Do not includemsi_stax_amt_d
in the stored procedure.
msi_stax_amt_d
.
'Y' means calculate, while 'N' means do not calculate.select 'Y' msi_calc_taxes_c, @lse_s msi_lse_s, @pmt_amt_d msi_pmt_amt_d(etc.) where you have assigned values to
@lse_s
and @pmt_amt_d
previously in the stored procedure.
msi_next_pmt_d
in the stored procedure, LeasePak calculates the next payment amount as
the amount of msi_pmt_amt_d
(required)
+ the amount of msi_stax_amt_d
(if any--optional)
+ the amount of msi_adj_next_d
(if any--optional)
<msi_next_pmt_d>
in the XML output.
msi_next_pmt_d
in the stored procedure. You can assign it any value--LeasePak will perform the calculation and overwrite your
assigned value with the calculated result.
msi_stax_amt_d
in the calculation, see the section on msi_stax_amt_d
for information on its
required aliases.
msi_adj_next_d
in the calculation, include the alias in the stored procedure.
select 'Y' msi_calc_taxes_c, @lse_s msi_lse_s, @pmt_amt_d msi_pmt_amt_d, @adj_next_d msi_adj_next_d, 0.0 msi_next_pmt_d(etc.) where you have assigned values to
@lse_s
, @pmt_amt_d
, and @adj_next_d
previously in the stored procedure.
msi_calc_taxes_c
is set to 'Y,' LeasePak calculates the lease sales/use tax amount based on the lease's tax rate and the
payment amounts 1-5:
the lease's sales/use tax rate
* the payment amount
<msi_lse_amtN_tax_d>
(where N is payment 1, 2, 3, 4, or 5) in the XML output.
msi_stax_amt_d
.
msi_lse_amtN_tax_d
in the stored procedure.
msi_stax_amt_d
.
'Y' means calculate, while 'N' means do not calculate.select 'Y' msi_calc_taxes_c, @lse_s msi_lse_s, @pmt_lse_amt1_d msi_lse_amt1_tax_d, @pmt_lse_amt2_d msi_lse_amt2_tax_d, @pmt_lse_amt3_d msi_lse_amt3_tax_d, @pmt_lse_amt4_d msi_lse_amt4_tax_d, @pmt_lse_amt5_d msi_lse_amt5_tax_d(etc.) where you have assigned values to
@lse_s
and @pmt_lse_amtN_d
previously in the stored procedure.
msi_calc_taxes_c
is set to 'Y,' LeasePak calculates the asset sales/use tax amount based on the asset's tax rate and the
payment amounts 1-5:
the asset's sales/use tax rate
* the payment amount
<msi_unit_amtN_tax_d>
(where N is payment 1, 2, 3, 4, or 5) in the XML output.
msi_stax_amt_d
.
msi_unit_amtN_tax_d
in the stored procedure.
msi_stax_amt_d
.
'Y' means calculate, while 'N' means do not calculate.select 'Y' msi_calc_taxes_c, @lse_s msi_lse_s, @unit_s msi_unit_s, @pmt_unit_amt1_d msi_unit_amt1_tax_d, @pmt_unit_amt2_d msi_unit_amt2_tax_d, @pmt_unit_amt3_d msi_unit_amt3_tax_d, @pmt_unit_amt4_d msi_unit_amt4_tax_d, @pmt_unit_amt5_d msi_unit_amt5_tax_d(etc.) where you have assigned values to
@lse_s
, @unit_s
, and @pmt_unit_amtN_d
previously in the stored procedure.
msi_rem_net_inv_d
in the stored procedure and set the alias switch msi_calc_rem_net_inv_c
to 'Y,'
LeasePak calculates the remaining net investment for the lease and writes the result to the element <msi_rem_net_inv_d>
in the XML output.
msi_rem_net_inv_d
in the stored procedure. You can assign it any value--LeasePak will perform the calculation and overwrite your
assigned value with the calculated result.
msi_rem_net_inv_d
. 'Y' means calculate, while 'N' means do not calculate.select 'Y' msi_calc_rem_net_inv_c, @lse_s msi_lse_s, 0.0 msi_rem_net_inv_d(etc.) where you have assigned a value to
@lse_s
previously in the stored procedure.
msi_p_lse_stax_rate_d
in the stored procedure and set the alias switch msi_calc_lse_stax_rate_c
to 'Y,'
LeasePak calculates the sales tax rate for the lease and writes the result to the element <msi_p_lse_stax_rate_d>
in the XML output.
msi_p_lse_stax_rate_d
in the stored procedure. You can assign it any value--LeasePak will perform the calculation and overwrite your
assigned value with the calculated result.
msi_p_lse_stax_rate_d
. 'Y' means calculate, while 'N' means do not calculate.select 'Y' msi_calc_lse_stax_rate_c, @lse_s msi_lse_s, 0.0 msi_p_lse_stax_rate_d(etc.) where you have assigned a value to
@lse_s
previously in the stored procedure.
The parser processing the stored procedure writes the XML files using the XSL style sheet file name (without the .xsl extension) for both the XML file name and the parent (or root) record within the XML file. The parser writes the file to the reports\xml directory located in the user's LeasePak client software user folder. The default location for this varies by Windows version:
LeasePak client software at your site may be set up with user folders in a centralized (network) location or you may use shared folders for all or various groups of users. While the user is logged on to the LeasePak client, any generated XML files remain in the user's xml directory. However, when the user exits LeasePak, all XML files are cleaned from the directory.
If you wish to retain XML data from a user's session, you will need to copy or move the XML file from the xml directory before the user exits LeasePak.
By default, the XSL style sheets for Lease Summary are located in install_path\Report Templates, where install_path is the installed location of the LeasePak client software on each user's computer. You can instead place a single set of the contents of this directory (including subdirectories and files) in a centralized location, then specify that location in Custom General [U0712]. Refer to the LeasePak Setup section for more information.
LeasePak provides a set of XSL Style Sheets that correspond to the tabs of the traditional Lease Summary. Each "tab"
style sheet includes (using <xsl:include>
) the style sheets lsesum_fn.xsl and
lsesum_tabs.xsl:
fn_get_rpt_path
that specifies the path to the XSL style
sheet directory. Refer to the section LeasePak Setup for more information.The functions that the user accesses to include pop-up windows in templates are located in scripts_fn.xsl.
fn_http_sql_request
for each Lease Summary tab style sheet.Each Lease Summary tab style sheet (lsesum_lessee.xsl, lsesum_lease.xsl, etc.) contains a set of links to the other tabs. The following example is from the style sheet lsesum_lessee.xsl:
<div> <!-- id="v" --> <!-- ================================================================== --> <!-- TITLE FOR TABS --> <!-- ================================================================== --> <span id="c">Select View:</span> <xsl:call-template name="fn_active_tab"> <xsl:with-param name="display_value">Lessee</xsl:with-param> <xsl:with-param name="hover_value">Lessee information...</xsl:with-param> </xsl:call-template> <xsl:call-template name="fn_lsesum_tab2"/><em id="e"></em> <xsl:call-template name="fn_lsesum_tab3"/> </div>
The tag <em id="e"></em>
provides a divider between adjacent non-active tabs.
The templates that the links call (fn_lsesum_tab1
, fn_lsesum_tab2
, etc.) are in the style sheet
lsesum_tabs.xsl. Here is an example of the template for Tab 1:
<!-- ================================= --> <!-- T A B # 1 --> <!-- ================================= --> <xsl:template name="fn_lsesum_tab1"> <!-- ================================================================== --> <!-- LESSEE --> <!-- ================================================================== --> <xsl:call-template name="fn_http_sql_request"> <xsl:with-param name="xsl_file">lsesum_lessee</xsl:with-param> <xsl:with-param name="display_value">Lessee</xsl:with-param> <xsl:with-param name="hover_value">Lessee information...</xsl:with-param> <xsl:with-param name="class">k</xsl:with-param> <xsl:with-param name="stored_proc">cp_cus_lsesum</xsl:with-param> <xsl:with-param name="data0"><xsl:value-of select='lse_s'/></xsl:with-param> <xsl:with-param name="data1"> <xsl:call-template name="fn_format_date_yyyymmdd"> <xsl:with-param name="date"> <xsl:value-of select='d_today_s'/> </xsl:with-param> </xsl:call-template> </xsl:with-param> <xsl:with-param name="new_window">False</xsl:with-param> </xsl:call-template> </xsl:template>
The tab templates and lsesum_tabs.xsl contain the calls to the function templates that run stored procedures, retrieve data, access LeasePak menu items, and provide special features in the output HTML. Most of these function templates are in the style sheet scripts_fn.xsl, described in the next section.
The style sheet lsesum_fn.xsl includes the style sheet scripts_fn.xsl. In turn, scripts_fn.xsl includes the major function templates that run stored procedures, retrieve data, and access LeasePak menu items, as well as several formatting function templates.
The XML-based Lease Summary is set up to allow the user to customize most style sheets, templates, and scripts as needed. If you require changes in the way any of the function templates work, or if you need additional functions, you can use the functions provided in scripts_fn.xsl as a starting point for your customizations. However, NetSol recommends that you save a copy of the style sheets, templates, and scripts as they were installed with the client software in case you need to restore a customized template or script to its original state.
The function templates in scripts_fn.xsl fall into two main categories--those that call scripts (JavaScript and/or JScript), indicated in the following listing by Calls script(s): Yes, and those that do not call scripts, indicated in the following listing by Calls script(s): No. When customizing function templates that call scripts, you may also need to modify the scripts. For function templates that do not call scripts, you only need to consider the content of the template itself. Contact your NetSol representative for more information.
Location: scripts_fn.xsl
Calls script(s): Yes
This template, when applied to column headers in a table, makes the table sortable on any selected column.
The template takes the incoming parameters and passes them to the JavaScript function SortColumn
, which sorts the table on the selected column.
Call the template from the <th>
column header of a table:
<th width="70" rowspan="2" align="right" class="colhdr"> <xsl:call-template name="fn_sort_column"> <xsl:with-param name="column_hdr">Invoice#\nCredit Memo</xsl:with-param> <xsl:with-param name="class">colhdr</xsl:with-param> <xsl:with-param name="column">0</xsl:with-param> </xsl:call-template> </th>
Parameters:
Function template from scripts_fn.xsl:
<!-- ================================ --> <!-- Function to make column sortable --> <!-- ================================ --> <xsl:template name="fn_sort_column"> <xsl:param name="column_hdr"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="column"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> SortColumn("<xsl:value-of select="$column_hdr"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$column"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): Yes
This template calls scripts that work with LeasePak to make one of the following requests:
data
parameterdata
parameterdata
parameterdata
parameterdata
parameterThis template differs from fn_lp_menu_request
, not only with its restricted list of options, but also in that each of these options is guaranteed to bypass the initial selection criteria screens for the report, as long as you supply a valid data parameter.
The template takes the incoming parameters and passes them to the JavaScript function HTTPRequest
, which in turn calls a corresponding JScript function that processes the request.
Call the function from any part of a template used to display text:
<td> <xsl:call-template name="fn_http_request"> <xsl:with-param name="service">R0404</xsl:with-param> <xsl:with-param name="xsl_file">R0404</xsl:with-param> <xsl:with-param name="hover_value">A/R Balancing</xsl:with-param> <xsl:with-param name="display_value"><xsl:value-of select="tot_amt_d"/></xsl:with-param> <xsl:with-param name="class">dl_td_url</xsl:with-param> <xsl:with-param name="data"><xsl:value-of select='lse_s'/></xsl:with-param> <xsl:with-param name="new_window">True</xsl:with-param> </xsl:call-template> </td>
Parameters:
Function template from scripts_fn.xsl:
<!-- ============================= --> <!-- Function to make HTTP request --> <!-- ============================= --> <xsl:template name="fn_http_request"> <xsl:param name="xsl_file"></xsl:param> <xsl:param name="display_value"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="hover_value"></xsl:param> <xsl:param name="service"></xsl:param> <xsl:param name="data"></xsl:param> <xsl:param name="new_window"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> HTTPRequest("<xsl:value-of select="$service"/>", "<xsl:value-of select="$xsl_file"/>", "<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$hover_value"/>", "<xsl:value-of select="$data"/>", "<xsl:value-of select="$new_window"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): Yes
This function template calls scripts that work with LeasePak to run the specified stored procedure, transform the XML output with the specified XSL style sheet, and display the results.
The template takes the incoming parameters and passes them to the JavaScript function HTTPRequest
, which in turn calls a corresponding JScript function that processes the request.
Call the function from any part of a template used to display text:
<td colspan="1" class="dl_td" align="right"> <xsl:call-template name="fn_http_sql_request"> <xsl:with-param name="xsl_file">misc_rgc_info</xsl:with-param> <xsl:with-param name="hover_value">List of CoLessee/Guarantors/User-defined clients ...</xsl:with-param> <xsl:with-param name="display_value">Yes</xsl:with-param> <xsl:with-param name="class">dl_td_url</xsl:with-param> <xsl:with-param name="stored_proc">cp_rgc_info</xsl:with-param> <xsl:with-param name="data0"><xsl:value-of select='lse_s'/></xsl:with-param> <xsl:with-param name="new_window">True</xsl:with-param> </xsl:call-template> </td>
Parameters:
When you call fn_http_sql_request
, you can pass up to five parameters to your stored procedure
(data0
, data1
, data2
, data3
, and data4
). The stored procedures cp_col_lsesum
,
cp_cus_lsesum
, cp_mat_lsesum
, and cp_rec_lsesum
only use the first three.
If you have a set of data that you wish to appear at the top of every tab, you must either include this data in
your select statement for each tab's stored procedure or pass this data as parameters with each call to
fn_http_sql_request
.
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to make HTTP Sql Qry request --> <!-- ===================================== --> <xsl:template name="fn_http_sql_request"> <xsl:param name="xsl_file"></xsl:param> <xsl:param name="display_value"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="hover_value"></xsl:param> <xsl:param name="new_window"></xsl:param> <xsl:param name="stored_proc"></xsl:param> <xsl:param name="data0"></xsl:param> <xsl:param name="data1"></xsl:param> <xsl:param name="data2"></xsl:param> <xsl:param name="data3"></xsl:param> <xsl:param name="data4"></xsl:param> <xsl:variable name="spdata"> <xsl:value-of select="concat('<sp_name>', $stored_proc, '</sp_name>', '<param0>', $data0, '</param0>', '<param1>', $data1, '</param1>', '<param2>', $data2, '</param2>', '<param3>', $data3, '</param3>', '<param4>', $data4, '</param4>')"/> </xsl:variable> <SCRIPT LANGUAGE="JavaScript"> HTTPRequest("sql_qry", "<xsl:value-of select="$xsl_file"/>", "<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$hover_value"/>", "<xsl:value-of select="$spdata"/>", "<xsl:value-of select="$new_window"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): Yes
This function template calls scripts that work with LeasePak to take an existing specified XML data file, transform it using the specified XSL style sheet, and display the results. The template takes the incoming parameters and passes them to the JavaScript function XMLXSLTransform
, which in turn calls a corresponding JScript function that processes the request.
Since LeasePak runs the stored procedure lsesum (meaning cp_col_lsesum
, cp_cus_lsesum
, cp_mat_lsesum
, or
cp_rec_lsesum
) when the user first retrieves Lease Summary information in LeasePak, if the data you select in lsesum is sufficient to transform all the style sheet tabs, you may wish to substitute fn_xmlxsl_transform
for fn_http_sql_request
. This uses any specified existing XML data file with a specified style sheet, saving time by not making another request to the LeasePak database.
Call the function from any part of a template used to display text:
<xsl:call-template name="fn_xmlxsl_transform"> <xsl:with-param name="xml_file">xml_file</xsl:with-param> <xsl:with-param name="xsl_file">xsl_file</xsl:with-param> <xsl:with-param name="display_value">display_value</xsl:with-param> <xsl:with-param name="hover_value">hover_value</xsl:with-param> <xsl:with-param name="class">class</xsl:with-param> <xsl:with-param name="new_window">new_window</xsl:with-param> </xsl:call-template>
The template fn_xmlxsl_transform
takes the following parameters:
Function template from scripts_fn.xsl:
<!-- ============================================================================ --> <!-- Function to take an existing XML and XSL document to create an HTML document --> <!-- ============================================================================ --> <xsl:template name="fn_xmlxsl_transform"> <xsl:param name="xml_file"></xsl:param> <xsl:param name="xsl_file"></xsl:param> <xsl:param name="display_value"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="hover_value"></xsl:param> <xsl:param name="new_window"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> XMLXSLTransform("<xsl:value-of select="$xml_file"/>", "<xsl:value-of select="$xsl_file"/>", "<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$hover_value"/>", "<xsl:value-of select="$new_window"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): Yes
This function template calls scripts that work with LeasePak to access any of the LeasePak
Menu Options. Many of the style sheets that LeasePak provides feature calls to
fn_lp_menu_request
, providing links that access LeasePak reports or updates from the Lease Summary tabs.
As with the other request-type templates, fn_lp_menu_request
takes the incoming parameters and passes them to the JavaScript function
LPMenuReq
, which in turn calls a corresponding JScript function that processes the request.
This template differs from fn_http_request
in that while it provides a comprehensive list of LeasePak menu options, bypassing the initial selection criteria screens varies from option to option, even when you supply valid parameters.
Call the function from any part of a template used to display text:
<td> <xsl:call-template name="fn_lp_menu_request"> <xsl:with-param name="menu">U0210</xsl:with-param> <xsl:with-param name="display_value"><xsl:text disable-output-escaping="yes"><![CDATA[» ]]></xsl:text>Change</xsl:with-param> <xsl:with-param name="hover_value">U0210 Asset update...</xsl:with-param> <xsl:with-param name="asset"><xsl:value-of select="unit_s"/></xsl:with-param> <xsl:with-param name="class">dl_th_url</xsl:with-param> </xsl:call-template> </td>
The above example shows only a few of the parameters available when calling this template. The parameters that apply to a menu request will vary by menu item and current data available. The full list of parameters includes:
For any given menu request, you should only use the parameters appropriate to the report or update. Unlike with
fn_http_request
, supplying parameters does not guarantee you will bypass the initial selection criteria screens.
Your ability to use parameters to bypass these screens will vary from option to option.
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to make LP Menu request --> <!-- ===================================== --> <xsl:template name="fn_lp_menu_request"> <xsl:param name="menu"></xsl:param> <xsl:param name="display_value"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="hover_value"></xsl:param> <xsl:param name="application"></xsl:param> <xsl:param name="asset"></xsl:param> <xsl:param name="batchnum"></xsl:param> <xsl:param name="broker"></xsl:param> <xsl:param name="customer"></xsl:param> <xsl:param name="group"></xsl:param> <xsl:param name="guarantor"></xsl:param> <xsl:param name="investor"></xsl:param> <xsl:param name="invoice"></xsl:param> <xsl:param name="lease"></xsl:param> <xsl:param name="lender"></xsl:param> <xsl:param name="lessee"></xsl:param> <xsl:param name="misc"></xsl:param> <xsl:param name="notebook"></xsl:param> <xsl:param name="vendor"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> LPMenuReq("<xsl:value-of select="$menu"/>", "<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$hover_value"/>", "<xsl:value-of select="$application"/>", "<xsl:value-of select="$asset"/>", "<xsl:value-of select="$batchnum"/>","<xsl:value-of select="$broker"/>", "<xsl:value-of select="$customer"/>", "<xsl:value-of select="$group"/>", "<xsl:value-of select="$guarantor"/>", "<xsl:value-of select="$investor"/>", "<xsl:value-of select="$invoice"/>", "<xsl:value-of select="$lease"/>", "<xsl:value-of select="$lender"/>", "<xsl:value-of select="$lessee"/>", "<xsl:value-of select="$misc"/>", "<xsl:value-of select="$notebook"/>", "<xsl:value-of select="$vendor"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): Yes
These four function templates take the passed parameters and call their corresponding scripts (LPPopupRight
, LPPopupLeft
,
LPPopupRightTopWB
, LPPopupLeftTopWB
) to launch a popup window when the user positions the mouse pointer over the display image or text:
fn_popup_r
, except that it handles cases in which
the display image or text is near the top of the Web page, where a normal popup window might be partially hidden.fn_popup_l
, except that it handles cases in which
the display image or text is near the top of the Web page, where a normal popup window might be partially hidden.These functions work in conjunction with mouse-over and mouse-out events--that is, the popup window appears when the user positions
the mouse pointer over the display image or text and disappears when the user moves the pointer off the display item. These functions already include the
handling of the mouse-over and mouse-out events; using event attributes such as onmouseover
and onmouseout
within the tag from which
you are calling a popup function will have unexpected and erroneous results.
Call these functions from any part of a template used to display text. In this example, calling fn_popup_l_twb from the lsesum_lessee.xsl template, the Web page displays the image rfw.gif within a table cell. When the user positions the mouse pointer over the rfw.gif image, a popup window with
the title Red Flag Warning for Lessee and containing the text from les_rfw_note_s
appears. When the user moves the pointer off the rfw.gif image,
the popup window disappears:
<td colspan="4" class="dl_td" align="right"> <!-- S T A R T --> <!-- Give the user the ability to display a popup window containing the RED FLAG WARNING --> <xsl:choose> <xsl:when test="les_rfw_note_s != ''"> <xsl:call-template name="fn_popup_l_twb"> <xsl:with-param name="class">dl_td_url</xsl:with-param> <xsl:with-param name="image">rfw.gif</xsl:with-param> <xsl:with-param name="image_align">right</xsl:with-param> <xsl:with-param name="popup_title">Red Flag Warning for Lessee</xsl:with-param> <xsl:with-param name="display_value"></xsl:with-param> <xsl:with-param name="inner_html"> <xsl:text disable-output-escaping="yes"><![CDATA[<p><b>Message:</b> ]]></xsl:text> <xsl:value-of select='les_rfw_note_s'/> <xsl:text disable-output-escaping="yes"><![CDATA[</p>]]></xsl:text> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise>None</xsl:otherwise> </xsl:choose> <!-- F I N I S H --> </td>
Parameters (same for all popup functions):
<xsl:param name="display_value"><xsl:value-of select='element_name' /></xsl:param>
<xsl:param name="display_value">$previously_defined_variable</xsl:param>
<xsl:param name="display_value">Static Text</xsl:param>
align
attribute value to apply to the image parameter.
Recommended if you are using display_value and image together.class
attribute value to apply to the display_value and/or
image parameters.disable-output-escaping="yes"
with CDATA notation
to provide formatting for the inner HTML.The parameters display_value, image, image_align, class, and url all apply to the content and appearance of the display the user positions the mouse over to trigger the popup window. The parameters popup_title and inner_html apply to the content and appearance of the popup window itself.
Popup function templates from scripts_fn.xsl:
<!-- ============================================================================== --> <!-- Function to make a POPUP window display to the right of the display text/image --> <!-- ============================================================================== --> <xsl:template name="fn_popup_r"> <xsl:param name="display_value"></xsl:param> <xsl:param name="image"></xsl:param> <xsl:param name="image_align"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="url"></xsl:param> <xsl:param name="popup_title"></xsl:param> <xsl:param name="inner_html"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> LPPopupRight("<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$url"/>", "<xsl:value-of select="$image"/>", "<xsl:value-of select="$image_align"/>", "<xsl:value-of select="$popup_title"/>", "<xsl:value-of select="$inner_html"/>"); </SCRIPT> </xsl:template>
<!-- ============================================================================= --> <!-- Function to make a POPUP window display to the left of the display text/image --> <!-- ============================================================================= --> <xsl:template name="fn_popup_l"> <xsl:param name="display_value"></xsl:param> <xsl:param name="image"></xsl:param> <xsl:param name="image_align"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="url"></xsl:param> <xsl:param name="popup_title"></xsl:param> <xsl:param name="inner_html"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> LPPopupLeft("<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$url"/>", "<xsl:value-of select="$image"/>", "<xsl:value-of select="$image_align"/>", "<xsl:value-of select="$popup_title"/>", "<xsl:value-of select="$inner_html"/>"); </SCRIPT> </xsl:template>
<!-- ============================================================================== --> <!-- Function to make a POPUP window display to the right of the display text/image --> <!-- Used for items near the top of the web browser when the normal popup --> <!-- window is partially hidden. --> <!-- ============================================================================== --> <xsl:template name="fn_popup_r_twb"> <xsl:param name="display_value"></xsl:param> <xsl:param name="image"></xsl:param> <xsl:param name="image_align"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="url"></xsl:param> <xsl:param name="popup_title"></xsl:param> <xsl:param name="inner_html"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> LPPopupRightTopWB("<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$url"/>", "<xsl:value-of select="$image"/>", "<xsl:value-of select="$image_align"/>", "<xsl:value-of select="$popup_title"/>", "<xsl:value-of select="$inner_html"/>"); </SCRIPT> </xsl:template>
<!-- ============================================================================= --> <!-- Function to make a POPUP window display to the left of the display text/image --> <!-- Used for items near the top of the web browser when the normal popup --> <!-- window is partially hidden. --> <!-- ============================================================================= --> <xsl:template name="fn_popup_l_twb"> <xsl:param name="display_value"></xsl:param> <xsl:param name="image"></xsl:param> <xsl:param name="image_align"></xsl:param> <xsl:param name="class"></xsl:param> <xsl:param name="url"></xsl:param> <xsl:param name="popup_title"></xsl:param> <xsl:param name="inner_html"></xsl:param> <SCRIPT LANGUAGE="JavaScript"> LPPopupLeftTopWB("<xsl:value-of select="$display_value"/>", "<xsl:value-of select="$class"/>", "<xsl:value-of select="$url"/>", "<xsl:value-of select="$image"/>", "<xsl:value-of select="$image_align"/>", "<xsl:value-of select="$popup_title"/>", "<xsl:value-of select="$inner_html"/>"); </SCRIPT> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): No
This function template takes a parameter of a 10-digit phone number and formats it as (nnn) nnn-nnnn. If the number passed to the function is not 10 digits, the function returns the number unchanged.
Call the function from any part of a template used to display text:
<p> <xsl:call-template name="fn_format_phone_num"> <xsl:param name="phone">phone</xsl:param> </xsl:call-template> </p>
Parameters:
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to format a phone number --> <!-- ===================================== --> <xsl:template name="fn_format_phone_num"> <xsl:param name="phone"></xsl:param> <xsl:choose> <xsl:when test="string-length($phone) = 10"> (<xsl:value-of select="substring($phone,1,3)"/>) <xsl:value-of select="substring($phone,4,3)"/>-<xsl:value-of select="substring($phone,6,4)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$phone"/> </xsl:otherwise> </xsl:choose> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): No
This function template takes a parameter of a 9-digit US zip code and formats it as nnnnn-nnnn. If the postal code passed to the function is not 9 digits, the function returns the postal code unchanged.
Call the function from any part of a template used to display text:
<p> <xsl:call-template name="fn_format_zip_code"> <xsl:param name="zipcode">zipcode</xsl:param> </xsl:call-template> </p>
Parameters:
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to format a zip code --> <!-- ===================================== --> <xsl:template name="fn_format_zip_code"> <xsl:param name="zipcode"></xsl:param> <xsl:choose> <xsl:when test="string-length($zipcode) = 9"> <xsl:value-of select="substring($zipcode,1,5)"/>-<xsl:value-of select="substring($zipcode,6,4)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$zipcode"/> </xsl:otherwise> </xsl:choose> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): No
This function template takes a parameter of a 9-digit Social Security Number (SSN) and formats it as nnn-nn-nnnn. If the number passed to the function is not 9 digits, the function returns the number unchanged.
Call the function from any part of a template used to display text:
<p> <xsl:call-template name="fn_format_ssn_num"> <xsl:param name="ssn">ssn</xsl:param> </xsl:call-template> </p>
Parameters:
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to format a SSN number --> <!-- ===================================== --> <xsl:template name="fn_format_ssn_num"> <xsl:param name="ssn"></xsl:param> <xsl:choose> <xsl:when test="string-length($ssn) = 9"> <xsl:value-of select="substring($ssn,1,3)"/>-<xsl:value-of select="substring($ssn,4,2)"/>-<xsl:value-of select="substring($ssn,6,4)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$ssn"/> </xsl:otherwise> </xsl:choose> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): No
This function template takes a parameter of a number in a standard US decimal format and converts it to a US currency format, placing negative amounts in parentheses.
The incoming number can use one or more commas for thousands separators. The incoming number must use a period for the decimal separator if the number includes a cents component--that is, $150.25 must be passed in as 150.25, not 15025.
Call the function from any part of a template used to display text:
<p> <xsl:call-template name="fn_format_amount"> <xsl:param name="amount">amount</xsl:param> </xsl:call-template> </p>
Parameters:
Function template from scripts_fn.xsl:
<!-- ===================================== --> <!-- Function to format an amount --> <!-- ===================================== --> <xsl:template name="fn_format_amount"> <xsl:param name="amount"></xsl:param> <xsl:value-of select="format-number(translate($amount, ',', ''),'$###,###,###,###,##0.00;($###,###,###,###,##0.00)')"/> </xsl:template>
Location: scripts_fn.xsl
Calls script(s): No
This function template takes a parameter of a date in MM/DD/YY format and transforms the date into a YYYYMMDD format, using the logic that 2-digit years < 50 are preceded by the century 20, while 2-digit years >= 50 are preceded by 19.
Call the function from any part of a template used to display text:
<p> <xsl:call-template name="fn_format_date_yyyymmdd"> <xsl:param name="date">date</xsl:param> </xsl:call-template> </p>
Parameters:
Function template from scripts_fn.xsl:
<!-- ================================================================= --> <!-- Function to format a date in MM/DD/YY format to a YYYYMMDD format --> <!-- ================================================================= --> <xsl:template name="fn_format_date_yyyymmdd"> <xsl:param name="date"></xsl:param> <xsl:variable name="new_date"> <xsl:value-of select="translate($date, '-', '/')"/> </xsl:variable> <!-- Year --> <xsl:variable name="year"> <xsl:value-of select="substring-after(substring-after($new_date, '/'), '/')"/> </xsl:variable> <!-- Month --> <xsl:variable name="mon"> <xsl:value-of select="format-number(number(substring-before($new_date, '/')), '00')"/> </xsl:variable> <!-- Day --> <xsl:variable name="day"> <xsl:value-of select="format-number(number(substring-before(substring-after($new_date, '/'), '/')), '00')"/> </xsl:variable> <!-- Get the century based upon year --> <xsl:variable name="cent"> <xsl:choose> <xsl:when test="$year < '50'">20</xsl:when> <xsl:otherwise>19</xsl:otherwise> </xsl:choose> </xsl:variable> <!-- Now build our date in the YYYYMMDD format --> <xsl:value-of select="$cent"/><xsl:value-of select="$year"/><xsl:value-of select="$mon"/><xsl:value-of select="$day"/> </xsl:template>
LeasePak includes tools that allow you to view the Lease Summary HTML, XML, or XSL from within LeasePak and, in cases of XSL syntax errors, generates a message in place of the Lease Summary providing current conditions, as well as the standard Microsoft Internet Explorer XSL syntax error message.
The default location of LEASEPAK.INI varies by Windows version:
LeasePak client software at your site may be set up with user folders in a centralized (network) location or you may use shared folders for all or groups of users.
If needed, add the section [debug]
to your LEASEPAK.INI file, located in the user's LeasePak client software user folder. To test Lease Summary transformations in debug mode, add the switch LseSumXMLDbg=1
to the
[debug]
section of the file.
Below is an example of a LEASEPAK.INI file with debugging activated:
[login] DefaultUsername=ediel [server] TcpIpAddress=seville Environment=ediedoc Port=6000 Timeout=120 [mPower] Auth=HEADER Port=7606 ;If port is not provided the system will use LP Port + 6 by default [Miscellaneous] ReferenceGuideLocation= [window] IsMaximized=1 [debug] LseSumXMLDbg=1
To disable debugging without removing the switch, set LseSumXMLDbg=0.
After setting the switch in your LEASEPAK.INI file, log on to the LeasePak client and access Lease Summary. At the top of the screen near the center you will see the following display options:
Select a lease and one of the display options, and then click Retrieve to see one of the following:
In the HTML view, if you have links on the page that load separate style sheets or execute additional requests, select either the XML or XSL display option, then click the link to see the results in either the XML or XSL code view, respectively.
If you have syntactical errors in your XML or XSL or other error conditions exist, clicking Retrieve or a link on the page produces an error message in the Lease Summary screen:
NetSol Technologies HTTP Request Server - Version 6.0.1962 NetSol Technologies Winsock Object - Version 6.0.1962 ============================================================================================= UserName:=test1 Password:=******* Environment:=test1 IP Address:=seville Port:=6000 TimeOut:=120 Database (Name/Platform):=lpr_test1 / syb Logicals:=none ============================================================================================= Log file directory:= HTML directory:=\\Eldorado\ediel\My Documents\LeasePak\v60a\reports\html\ XML directory:=\\Eldorado\ediel\My Documents\LeasePak\v60a\reports\xml\ XSL directory:=C:\Program Files\NetSol Technologies\LeasePak\v60a\Report Templates\ ============================================================================================= MSIHTTP Current function called: ProcessHTTPRequest() vService:=sql_qry vXSLFile:=LSESUM_SUMMARY vData:=<sp_name>lsesum</sp_name><param0> 12345</param0><param1> 12345</param1><param2>5</param2> C:\Program Files\NetSol Technologies\LeasePak\v60a\Report Templates\lsesum_summary.xsl End tag 'xsl:stylesheet' does not match the start tag 'xsl:template'. line: 723 col: 3 text: </xsl:stylesheet> </table>
The first section of the message displays current login, environment, and LEASEPAK.INI information. The second section of the message displays the configured locations of transformed HTML page files, XML data files, and XSL style sheets. The next section
specifies the type of function the user attempted to execute, including parameters and style sheet. The last section of the
message displays the specific XML or XSL error (if any). In this case, an opening <xsl:template>
tag without
a matching closing tag in lsesum_summary.xsl caused the error.
LeasePak Documentation Suite
© by NetSol Technologies Inc. All rights reserved.
The information contained in this document is the property of NetSol Technologies Inc. Use of the information contained herein is restricted. Conditions of use are subject to change without notice. NetSol Technologies Inc. assumes no liability for any inaccuracy that may appear in this document; the contents of this document do not constitute a promise or warranty. The software described in this document is furnished under license and may be used or copied only in accordance with the terms of said license. Unauthorized use, alteration, or reproduction of this document without the written consent of NetSol Technologies Inc. is prohibited.
This message should disappear within 5-15 seconds, depending on the size of the document and the speed of your connection to the Documentation Suite.
If you can still see this message after 20 seconds, try clicking the Refresh or Reload button on your Web browser.
If your document still does not load, refer to Document Load Troubleshooting for instructions on how to fix possible problems with either your Documentation Suite installation or Web browser setup.
If you do not have read access to the parent docsuite directory, you will not be able to load the Document Load Troubleshooting document. In this case, contact your network administrator for assistance.