PDM AB

Description of common usage of the _PDM_AB plug ins for PDM.

The data for procdures and methods will be extracted from comment lines in procdures and methods. There is also a external source available. Data for properties, objects, classes and files will be defined in the source file. See description.

Usable styles

This plug in enables the use of "tag" style documention for methods and procedures. The "prefix" style documentation will be kept. Both styles may be mixed. There is a flag to stop the use of "prefix" style.

Characters

The plug in will transform non HTML signs into the HTML. Transformations can be done per PDM project.
A external file may be provided. This need to be a CSV file with the following format:

"sign","HTML"

example:

"©","©"
"ü","ü"

Please note, do not enter signs & and ", they will be transformed by internal code.

Files

The plug in uses some source files (Settings, Pages "Files"). The path to this files may be relative or absolute. Relative path will be searched in the following order:

  1. Relative to default path of pdm project.
  2. Relative to storage location of PDM - project file
  3. Relative to storage location of plug in
  4. Special location for default values

Limitations

Comments in "tag" style

HTML comments <!-- --> or <!comment> <!/comment> that wrap sections, disable those sections.
Comments <!comment> <!/comment> within sections will, according to the XHTML flag, be transformed or comment.
HTML comment <!-- --> inside a section will be transformed to visible signs.

Comments in "prefix" style

It is not suggested to use comments with "prefix" stiele, this may give unexpected results.

It's not recommend to use prefixed lines within a tag and vice versa.

tags defined:

Following elements will be defined for use. They can be altered in the "Settings" form of the plug in. The "tag" is the same text as the "prefix". The "tag" is not case sensititve. ****
Element Default Remarks
Doc section <pdm>
</pdm>
This is not part of the plug in. It is used in methods and procedures to marke the parts to use with PDM plug ins. Data defined in the sourcetable will not need this!
This is the "frame" for all other sections.
On the prefix version this section will start with "<pdm>" and end with "</pdm>".
There is no tag version available.
description descr Short description, will be enclosed in CSS class "_AB_PDM_Descr"
Remarks remarks Extended remarks.
Text will be displayed in "*PDM_AB_Body" CSS Class within "*PDM_AB_Remarks" CSS class.
Changes change Display of comment of changes.
tag Syntax:
<change [date="date"]>Text</change>
Attributes of the tag (alle optional):
Attribute description
date A date or time value as a (strict) VFP date - time - constant.
The value will be transformed and displayed in "Change_Time" CSS class.
Need VFP 6.0 or higher
Changes will be listed in the following order:
  • Remarks without date attribute in order of occurenc
  • Remarks with date attribute in order of valu
Text will be displayed in "*PDM_AB_Body" CSS Class within "*PDM_AB_Changes" CSS class.

The use of this section is controled by an option of the plug in. A special feature is the ability to merge meta data from sourcecode with meta data from source table.
Example example Formatable example to the procedure / method.
The text will be in the "diamp_pdm_ab_body" CSS class within the "_PDM_AB_Example" CSS class.
See also seealso Formatable list of links to procedure / method / classe or files.
Syntax: <seealso><see ...>Text</see><see ...>Text</see>...</seealso>
The text will be in the "_PDM_AB_body" CSS class within the "_PDM_AB_seealso" CSS class.
There will be one link for each tag / Prefix.
Syntax: [File]:[Class[.Object]n]:[Member] or [File]::Procedure, followed by one Space and the text to display.
for each See tag a link will be created. Each See also tag creates a new block.
Anything else in See also tag will be ignored.
Copyright copyright Formatable coyright text.
The text will be in the "_PDM_AB_Body" CSS class within the "_PDM_AB_CopyRight" CSS class.
Footer footer A section that will be place on the end of the section (for example after sourcecode).
Text will be displayed in "*PDM_AB_Body" CSS class within the "*PDM_AB_Footer" CSS class.
Usage of links appliesto Creates a list of all seealso and see tags that point to this method. Not available in "prefix" version.
tag Syntax:
<appliestotoref="n" toalso="n" />
Attributes of the tag:
Attribute Description
toref Value = 1 Links will be added toBack refernce.
Value = 2 Links will not be added toBack refernce.
The tag see and the flag "To Backrefernce" will influence this.
Not implemented yet
toalso Value = 1 Links will be added to see also.
Value = 2 Links will not be added to see also.
The tag See and the flag "To See also" will influence this
If not declared or one of the attributes is missing, the values from plug in settings will be used.
Only the first occurence will be used.
Link pdmlink A different record of the source table should be used. Usefull on repeated methodes.
Not available in "prefix" version.
tag Syntax:
<pdmlink [loca="Word"] [class="Word"] [pem="Word"] [incl="n"] [excl="off"] />
Attributes of the tag (all optional):
Attribut Description
loca Value of column ClassLoc.
class Value of column Class.
pem Value of column Member.
incl Include curent source to output.
Standard
Current source will be excluded.
Value=1
Current source will be inserted after the link.
Value=2
Current source will be inserted in front of the link.
excl
Value=off
All chained, that are not the final target, will not be included.
Note that links may be chained. There is no check for cycling yet.
Links need a source file to work with.
Attributes not included will be replaced with the values of the current "object". Included but empty attributes will not be replaced. This will work only if at least one attribut is included.
Example:
Link for method Init of class myForm from library sample.vcx: <pdmlinkclass="OtherForm" />
Will use library sample.vcx, method Init of class OtherForm.

The elements below this line may be used within the the elements beyond this line.
 
Code code This tag enables a block of text that is formated as VFP source code.
Expression expr This tag enables an inline text that is formated as VFP source code.
Attention, those text will be in a <pre> tag. All leading spaces and tabs will be displayed!
Not formated plain This is a block of text that will be displayed as text.
All non HTML signs will be transformed, line breaks will be kept.
xhtml xhtml This tag enables a block that hold html code that will be passed in the page created.
The tag will be ignored if the "Just-XHTML" flag is on.
See see This tag enables a inline link to a other member like class / procedure etc.
<see [loca="Word"] [class="Word"] [pem="Word"] [toref="n" [toalso="n"]>[Text]</see>
Attributes of the tag:
Attribute description
loca Target file of a link.
If empty, current file will be used
class Target class/object of a link as cClass[.Object]n.
If empty, and the pem attribute is not empty, then current object/class will be used.
If empty, and the pem attribute is empty, the link will point to a file.
Special syntax for the value:
.*
An object of the current container.
@
The parent container. (@.@ means the parent of the parent)
@.*
An object of the parent container
@@
The form (or the upmost container)
@@.*
An object of the form (or the upmost container)
pem Target PEM of as link.
If empty, and the class attribute is not empty, the link point to an Object/ class.
If empty, and the class attribute is empty, the link will point to a file
toref Value = 1 the link will be added to Back refernce.
Value = 2 the link will not be added to Back refernce.
The tag Usage of links and the flag "To Back refernce" influence this.
If the attribute not set, the standards will be used.
Not implemented yet.
toalso Value = 1 the link will be added to See also.
Value = 2 the link will not be added to See also.
The tag Usage of links and the flag "To See also" influence this.
If the attribute not set, the standards will be used.
If the tag is within a "See Also" tag, this attribute will be ignored
If the tag ommits "text" then the text will be generated from the attributes in following order.
  1. Text of tag exists;
    Return is <a href="target">Text<a>.
  2. Attributes loca, class and pem exists;
    Return is <a href="target">File: Class.PEM<a>.
  3. Attributes class and pem exists;
    Return is <a href="target">Class.PEM<a>.
  4. Attribute pem exists;
    Return is <a href="target">PEM<a>.
  5. Attributes loca and class exists;
    Return is <a href="target">File: Class<a>.
  6. Attribute class exists;
    Return is <a href="target">Class<a>.
  7. Attribute loca exists;
    Return is <a href="target">File<a>.
  8. An error will be generated.
There is an old syntax: <see>[file]:[class[.object]n]:[method|property] Text</see>
This syntax will not be supported, if the "Just XHTML" flag is on.
Note note Creates a block "Note". This block may display a leading picture and special format. The blocks may be defined via a CSV file.
tag Syntax:
<note [id="cc"] [title="text"]>Text</note>
Attribute of the tag (all optional):
Attribute description
id Id of a block of note. If no Value is defined a standard will be usede, is a value not defined, a error will be displayed.
Predefined values:
E Exclamation
I Information
Q Question
S Stop
title "Tooltiptext" of the picture. If the attribute is not used, the default auf the definition file will be used.
The blocks will be defined in a external file.
This is a CSV file using following format:

"ID","CSS Class","Picture","Title of picture"

Example:

"E","_PDM_AB_nExclamation","_diamp\res\excla.gif",""
"I","_PDM_AB_nInformation","_diamp\res\info.gif","This is an information"

Picture are relative to the location of the plug in
Auto date autodate This tag will be replaced with the date of the timestamp tTimeStamp of the source file or if there is no record, no such field or the field is empty with current date. <autodate [actual="1"] />
Attributes of the tag:
Attribute description
actual I value = 1, use system date.
Item self This tag fügt inserts the name of the item described. <self [list="n"] />
Attributes of the tag:
Attribute description
list
20
Includes, if not empty, PEM.
21
Includes, if not empty, class- or objectname.
22
Includes, if not empty, the fie name.
If no value is set, the highest information will be inserted.
PEM > Class > File
Form: File:: Class[.Object]n.PEM

Every text that is not part of a prefixed line or a within the tags described above will be displayed on procedures end using "PDM_AB_Other" CSS class.


Example

Example "prefix" style:

*!* <pdm>
*!* DESCR This function emulates VFP <expr>STREXTRACT</expr> for versions below VFP 7.0
*!* DESCR The function will be disabled in Version 7 and beyond using #IF
*!* Example <code>
*!* Example TEXT lcText NOSHOW
*!* Example <short>Specify the type of controls <i>placed<i> on the search.</short>
*!* Example ENDTEXT
*!* Example lcExmaple = STREXTRACT(lcText,"<i>","</i>") &&returns placed
*!* Example </code>
*!* PARAMS tcSearchExpression ByVal IN Character Specifies the string to search.
*!* </pdm>

Example "tag" style:

*!* </pdm>
*!* <descr>
*!* This function emulates VFP <expr>STREXTRACT</expr> for versions below VFP 7.0
*!* The function will be disabled in Version 7 and beyond using #IF
*!* </descr>
*!* <example><code>
*!* TEXT lcText NOSHOW
*!* <short>Specify the type of controls <i>placed<i> on the search.</short>
*!* ENDTEXT
*!* lcExmaple = STREXTRACT(lcText,"<i>","</i>") &&returns placed
*!* </code>
*!* </example>
*!* <params name="tcSearchExpression" direction="IN" type="Character">
*!* <short>Specifies the string to search.</short>
*!* </params>
*!* </pdm>

Example mixed style:

*!* <pdm>
*!* <descr>
*!* This function emulates VFP <expr>STREXTRACT</expr> for versions below VFP 7.0</descr>
*!* DESCR The function will be disabled in Version 7 and beyond using #IF
*!* <example><code>
*!* TEXT lcText NOSHOW
*!* <short>Specify the type of controls <i>placed<i> on the search.</short>
*!* ENDTEXT
*!* lcExmaple = STREXTRACT(lcText,"<i>","</i>") &&returns placed
*!* </code></example>
*!* PARAMS tcSearchExpression ByVal IN Character Specifies the string to search.
*!* </pdm>

©2004 Agnes die Beste