There is some internal functions that would be a great deal of help if they were added, and some others that would be nice to have docs for.
Existing - The rt_dbg_* functions in pbvm*.dll are a powerful debugging tool when /pbdebug is too slow to use. Is there any way we can get some basic documentation for this group of functions?
Desirable:
- Being able to turn off the rt_dbg console window. Right now, once you turn it on in the dev env, closing it kills the PB dev environment with no prompts. Same happens with a running EXE, app closes with no events firing. Even being able to get the handle of the console would allow us to change it's visible state with WINAPI calls
- Make PB forget where a DW came from. When dealing with nested datawindows, if you need to modify one (sort order, additional objects, removing objects), there's no way to load it from your exe/pbd into a string, change it, then save it back out someplace for use because PB now remembers where the DW was originally and won't load the modified version that's now in a .pbl, even if it's earlier in the library list. We've managed to work around this issue by creating a separate report modifier exe, and using it to save the modified object into a pbl that the main app knows about, but it's difficult to set up and "teach" the report modifier what it needs to do based on a simple command line.
Anyone else have ideas or requests for access to PB internals? I'm sure there are other ideas out there that would make PB development more flexible, or debugging easier.
For years, "__get_attribute()" has been an undocumented function of datawindow objects. It's very useful to dynamically create a dwo from a string with the column name.
Could this undocumented function become a "documented" one, with gaurantee it won't be deprecated in a future?
This is (as an example) what I do to see if a columnName really exists on a dw:
function f_create_dw_object:
parameters:
datawindow adw
string as_colname
dwobject adwo_created
////////////////////////////////// code //////////////////////
if not isvalid(adw.object) then
return false // assigned dataobject is a non existing datawindow
end if
try
adwo_created = adw.object.__get_attribute(as_colname, false)
catch (DWRuntimeError rte)
return FALSE
end try
if isvalid(adwo_created) then
return TRUE
end if
return FALSE
Thank you!
Miguel Leeuwe