|
Tip of the Day List
The Tip of the Day displays on the splash screen when you start PBL Peeper. However, if it goes
by too fast for you to read (you can control the minimum time it shows in the Preferences
window), you can come here to read it again.
• From the PBLs Page, select the set of PBLs you want to work against from the list of
available PBLs on the left. To select, use drag and drop, double click or press Enter. You
can select individual PBLs, entire PBL sets from applications, directory subtrees or drives.
The selected PBLs will appear in the right listview.
• To change some of the behaviours of PBL Peeper, go to the Tools / Preferences menu
item. The most significant settings in this window relate to the Resolve settings. The
Resolve level changes significantly both the performance of the tool and the ways in
which it can be used.
• Resolve Level: None
Setting the Resolve Level to None will mean that the browser will only show portions
that are contained in the export of the object being viewed. This may cause ambiguity, as
sometimes the context of a script (ie. the control which it relates to) has to be derived
from its ancestor.
• Resolve Level: Orphans
Setting the Resolve Level to Orphans will create “ghosts” of controls required to identify
the true context of a script. For example, a ghost of a command button may be generated
to clarify the context of a Clicked script.
• Resolve Level: Controls
Setting the Resolve Level to Controls will create “ghosts” for all controls inherited from
ancestors that weren't modified in the current object and would otherwise be not
recognized as present. This Resolve Level requires that all ancestors be indexed.
• Resolve Level: Scripts
Setting the Resolve Level to Scripts will create “ghosts” for all controls and scripts
inherited from ancestors that weren't modified in the current object and would otherwise
be not recognized as present. This Resolve Level requires that all ancestors be indexed.
• Resolve DataWindows: DW Tables
Turning this option on will create “ghosts” of the table definition for controls that have a
default DataWindow object defined, such as DataWindow controls, datastores, drop
down DataWindow columns and nested reports. This is helpful when developing or
troubleshooting on an object, to see what columns are available.
• Resolve DataWindows: DW Controls
Turning this option on will create “ghosts” of the user interface controls, grouped by
band, for controls that have a default DataWindow object defined, such as DataWindow
controls, datastores, drop down DataWindow columns and nested reports. This is helpful
visualizing the real user interface.
• If scripts or portions don't look parsed properly (e.g. starts in the middle), odds are the
object has changed. Since PBL Peeper caches the object indexing, it is now grabbing the
wrong substring. Select File / Refresh App from the menu.
• On the Browse Page, use the menu item View / Expand to expand the entire sub-tree
beneath the currently selected item. This is particularly useful for DataWindows and
objects with embedded classes, like windows with tabs.
• On the Browse Page, use the menu item View / Collapse to close all expanded treeview
items.
• Copy is available from more than just script / portion viewer panes and output richtext
windows. The Lists Pages all support copying. Treeviews and listviews will copy the
current item's label to the clipboard.
This can help while working in the development environment, copying scripts or object
names into PowerBuilder
• Watch for the changing enabled status of menu items and toolbar buttons. These are
enabled or disabled as focus moves from control to control, indicating which functions
are supported.
• To identify which line an application is GPFing on, run with PowerBuilder's PBDebug
option. In the PBDebug Trace Page, select the View / Last menu item to move to the last
line.
• To build custom reports based on data collected in the Lists Pages, use the File / Save
Syntax menu item so that you can see the definition of the data set. Then use the File /
Save As menu item to save the data (DBF recommended). In PowerBuilder, import the
saved syntax or build an external DataWindow based on the saved syntax's data set, and
import the data.
Using this approach, you can add headers, footers, dates and page numbers to any
DataWindow report.
• To customize any rich text report, simply use the File / Save As menu item to save the
report to a file. Then, load the RTF file into a word processor.
Using this approach, you can add headers, footers, dates and page numbers to any rich
text report with most standard word processors.
• To customize any DataWindow report or list, simply do one of the following:
• Use File / Save As to save the DataWindow as a Powersoft Report (PSR). If you
have InfoMaker loaded on your system, double-clicking the PSR file in Explorer
should launch InfoMaker load the PSR in preview mode. Go to design mode to
make any modifications such as headers, footers, page numbers, etc....
• Use File / Save Syntax and File / Save As to save the DataWindow's syntax and
data (preferable data format is DBF). In PowerBuilder, import the SRD file, open
the resultant DataWindow, customize in design mode and, in preview mode,
import the data.
• Watch microhelp for hints on what the control with current focus is for.
• There is a small field on the microhelp line between the clock and the meter. This
displays a number that indicates:
• line number in script / portion viewers
• row number in DataWindows
• page number in rich text output windows
• There is an icon on the toolbar which corresponds to the icon on the Browse tabpage.
This will switch you back to the Browse Page from anywhere. On pages where a current
object, portion, control or script can be identified, the browser will be switched to that
item.
• If you want to manipulate objects yourself, you can use the Mass Export subpage on the
Exports Page. After manipulating the resultant export files, the Mass Import subpage will
produce a new set of PBLs.
• On all grid style lists, the columns will automatically adjust their width so that data will
not be truncated, nor will they show extra space. Lists are ready to print without concern
for ambiguous, truncated data. This behaviour can be controlled on the Preferences
window, defining the type of autosizing algorithm to use, or turning off the service
completely.
• On all lists, counts are shown at the bottom. The main count counts the number of items
in the list. The object count, on all Lists but the Object List, shows the number of distinct
objects represented in the list. The counts reflect the current state of the list, including
filter.
• The Go To Line, available in script / portion viewers as well as in DataWindows, uses the
same shortcut as the PowerBuilder development environment: Ctrl-Shift-G.
• When defining a PBL set for PBL Peeper to work on, you can select any set of PBLs, not
just a set that defines a PowerBuilder application. However, not selecting a set of PBLs
that matches a single PowerBuilder application could result in problems with the
following:
• identifying the type of control
• identifying the ancestor
• resolving and ghosting controls (this may leave orphaned scripts, e.g. a clicked
script that in an ancestor belongs to a command button, but PBL Peeper has no
way of identifying that)
• the Process page will be unavailable
• To speed finds, get only the output you need. In descending priority of performance:
• object name
• script name/entire script
• context lines = 0
• context lines > 0
• To speed finds, get only the detail of match you need. Don't use case insensitive if you
don't have to. When using Match() expressions, context lines will slow down the process
significantly.
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
Ancestor information: Shows additional columns of information about the objects that
can only be derived by determining the ancestors
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
Duplicates only: Show objects with duplicate names
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
Autoinstantiate: Derives and displays whether custom class objects are autoinstantiate
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
Object Line Count: Counts the number of lines in the export of the object.
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
DataWindow Attributes: Shows the data source type and presentation type for
DataWindows.
• From the Lists / Objects page, use the View / Show menu item (or the plus window icon)
to show:
Attributes: Select any additional PB attributes to display (e.g. backcolor)
• From the Lists / Scripts page, use the View / Show menu item (or the plus window icon)
to show:
Extended: Indicator whether, if the script has an ancestor, whether it is extended or
overridden
• From the Lists / Scripts page, use the View / Show menu item (or the plus window icon)
to show:
Line Count: The number of physical lines in the script
• From the Lists / Scripts page, use the View / Show menu item (or the plus window icon)
to show:
Argument Count: The number of arguments in the function or event prototype
• From the Lists / Controls page, use the View / Show menu item (or the plus window
icon) to show:
Ancestor information: Shows additional columns of information about the controls that
can only be derived by determing the ancestors
• From the Lists / Controls page, use the View / Show menu item (or the plus window
icon) to show:
Attributes: Select any additional PB attributes to display (e.g. fontfamily)
• From the Lists / DW Controls page, use the View / Show menu item (or the plus window
icon) to show:
Data set column name: The name of the data set's column that corresponds to column
objects
• From the Lists / DW Controls page, use the View / Show menu item (or the plus window
icon) to show:
Column data type: The data type of the data set's column that corresponds to column
objects
• From the Lists / DW Controls page, use the View / Show menu item (or the plus window
icon) to show:
SELECT column: The SQL expression associated with the data set's column that
corresponds to column objects
• From the Lists / DW Controls page, use the View / Show menu item (or the plus window
icon) to show:
Attributes: Select any additional PB attributes to display (e.g. font.face)
• From the Lists / DW Columns page, use the View / Show menu (or the plus window
icon) to show:
SELECT column: Shows the SQL expression associated with a column, as well as the
owner, table and column associated if only one is used
• From the Lists / DW Columns page, use the View / Show menu (or the plus window
icon) to show:
Attributes: Select any additional PB attributes to display
• To search within a specific object, on the Browse page, right click on the object and
select Find / Find in this Object. You will be presented with a user interface to enter one
or more search terms. The output will follow the options set on the Find page.
• The Browse page lets you
• view the contents of objects
• view whether a script has an ancestor and whether it is extended or overridden
• jump back to ancestor scripts and return
• print object contents or subportions of objects
• All Lists subpages let you
• sort
• filter
• find
• jump to the Browse page to see the selected item's contents
• The Objects List subpage shows all classes in your application. This is equivalent to what
you'd see in a PBL in the Library Painter. Fields listed include:
• object name
• PBL
• object comments
• object size (source and binary)
• object source size (size of export)
• last compiled date
• The Scripts List subpage shows all events and functions. Fields listed include:
• script name
• owner (object or control which this script belongs to)
• object
• PBL
• definition or prototype (includes list of parameters and their types, and the return
value)
• size (bytes)
• type (event or function)
• scope (public, private or protected)
• ghost indicator (shows whether or not code is implemented for this script in this
object, or if it is just being shown because of inheritance)
• The Controls List subpage shows all subclasses in your application. This includes all
controls on visual objects, and also all embedded non-visual objects in PB7 or greater.
Fields listed include:
• control name
• containers (e.g. if a DataWindow is hosted inside a tab object and tabpage)
• object
• PBL
• immediate ancestor
• ghost indicator (shows whether or not attributes are declared for this control in
this object, or if it is just being shown because of inheritance)
• The DW Controls List subpage shows all the user interface objects declared on your
DataWindows, such as text, columns, bitmaps, etc.... Fields listed include:
• DataWindow control name
• object (the DataWindow)
• PBL
• object type (e.g. column, text, line...)
• style (e.g. dropdownlistbox, radiobutton...)
• The DW Columns List subpage shows all the DataWindows' data set columns for all
DataWindows. This can be used to compare data sets for functions that share data sets
across DataWindows, such as ShareData() and RowsCopy(). Fields listed include:
• column name
• object (DataWindow)
• PBL
• column number
• the “DB Name” assigned to the column by PB
• column's data type
• some of the DataWindow's Update properties, including
• updateable flag
• inclusion in WHERE clause flag
• key column flag
• The Find page searches your source code for you. It can:
• search for multiple strings in one pass of the code, merging the results into a
single output
• search for normal strings (character by character) or regular-type expressions (as
defined by PB's Match() function)
• choose to include or ignore matches found in comments or quotes
• include various levels of detail when a match is found, from just an object name
to an entire script to just the line of code where it was found
• Application Print Report:
Prints all the objects in the application, using the same routines as Browser's object print.
Options are the same as the object print as well. If you run the output to a rich text
window, it can be imported to a word processor later for addition of page numbers, screen
prints, etc....
• Comments Extract Report:
Extracts comments from all scripts. This can provide an overview of all scripts if they are
documented inline.
• DataWindow SQL Report:
Lists SQL in all DataWindows. This will also show if they are procedures or external
DataWindows. The data set's data types are shown as well. A connection to the database
is required for this report.
• Database Column Usage Report:
Identifies where database columns are used. Both DataWindow SQL and embedded SQL
are evaluated. When found in DataWindow SQL, the dataobject is listed. When found in
embedded SQL, the script is listed.
• DataWindow Object Usage Report:
Indicates where identifiable usages of DataWindow objects exist. Only dataobject
attributes for DataWindows and datastores, and explicit hard coded data object
assignments in scripts are included.
• Embedded SQL Extract Report:
Extracts all embedded SQL in scripts.
• Inheritance Report:
Inheritance report on objects. When generated at the object level, this produces the same
result as PowerBuilder's Object Browser. When generated at the control level, it will
additionally show the inheritance of controls. This will give you a full picture of where
user objects are used.
• MultiTable Registry Statements Report:
Generates of_Register () statements for the PFC Multi-Table update service. This simply
creates one statement for each table involved in the SQL statement, listing its columns.
Key columns have to be added manually.
• PBR Builder Plus Report:
Builds PBR contents and other components for building a single EXE. The PBR elements
(for graphics, DataWindows) and script inserts (for windows, user objects) ensures that
all objects are included in the executable. This is the single EXE equivalent of marking
all PBLs for PBD generation to make sure all objects are included in the distribution.
• Verify DW SQL Report:
Verifies DataWindow SQL against the database by executing a PREPARE statement with
the SQL. This will spot any DataWindow errors due to changes in the database. This will
not prompt for parameters, as other DataWindow SQL verifiers will. This report requires
a transaction object.
• The Trace page lets you view a PBDEBUG trace file in a treeview format, side by side
with the related code. This lets you:
• find where an application is fatally ending
• view the call stack for any given point
• find where certain functions are called, including optionally viewing all calls and
their call stacks in a single view
• Searching and replacing with the Universal option checked is highly dangerous,
especially if you aren't familiar with the structure and contents of object exports.
Accidentally replacing a keyword or attribute name will make the object unusable.
• Searching and replacing on DataWindow SQL means that the original text being used is
the SQL as you'd see it in the syntax preview in the DataWindow painter. You will not be
operating against the SQL the way it is stored in the DataWindow (e.g.
...table(customer)...). Any changed results are stored in syntax mode, not graphic mode.
• The Remove processor is ideal to get rid of debugging function calls before releasing to
production.
• If Show Names Only is checked, Compare will only list the portion names that are
identified as different. If unchecked, FC (DOS File Compare) will be used to compare the
two versions.
• Comparing objects takes a significant amount of time, especially if options to ignore
elements are checked. To avoid comparing objects that are likely the same, use the
options Ignore Object when Modified Date/Times Match and Ignore Object When Sizes
Match.
• The Object Filter allows you to filter which objects are acted upon. The Object Filter is
defined by a filter expression that is evaluated against an internal object list. Filters
cannot be given criteria below the object level (e.g. script = 'clicked' cannot be used).
Changing the columns available in the Lists / Objects page with View / Show... doesn't
impact the columns available to the Object Filter.
• When the Object Filter is set, the menu item is checked and the toolbar item appears
depressed. This gives you a visual indicator that a filter is set.
• When QuickFind starts searching, it will look for:
• an exact match for the entered string
• a match of the substring of the first characters of the string
• a match for any substring
• System Documentation:
The first stop for system documentation should be the Application Print on the Reports
page. It will print everything in the application. Suppressing details like contents of
scripts will make the volume more manageable. The options available in this report are
the same as with the Print from the Browse page.
• System Documentation:
One element of system documentation could be a print of the system tree from the
Browse page. Use View / Expand at the PBL level for each PBL. Then File / Print / Print
Entire Tree. The resolve level will significant change the nature of this report.
• System Documentation:
Lists in some form can be used in system documentation. If not used as is, the syntax and
data can be exported and used with a custom DataWindow.
• System Documentation:
Various reports on the Report page have differing value for system documentation. The
Inheritance report is basic information that should be included in all documentation.
Including controls in the inheritance structure is helpful by showing where user objects
are used (or not used).
• In most DataWindows or treeviews, you can use the View / Back and View / Forward
toolbar buttons to move through the history of movements between rows/treeview items.
• If you see a 3D raised header on a display only grid DataWindow, odds are that it has
click/sort capability.
|