| Subject |
Save the datalinks |
| From |
Tom <IHaveNoEmail@ddress> |
| Date |
Sat, 29 Aug 2020 14:19:31 -0400 |
| Newsgroups |
dbase.getting-started |
Hi all,
Been fooling with this for a while and cannot get the syntax straight.
Maybe you can help.
Basic idea:
// Now: save all 4 object datalinks and then remove them so
// objects are no longer datalinked ...
form.aLinks = new array()
form.aLinks.add(form.CDATA.GETRECORDID.dataLink)
form.aLinks.add(form.CDATA.GETUSERID.dataLink)
form.aLinks.add(form.CDATA.GETGROUPNAME.dataLink)
form.aLinks.add(form.CDATA.GETSUBGROUPVALUE.dataLink)
*
form.CDATA.GETRECORDID.dataLink = null
form.CDATA.GETUSERID.dataLink = null
form.CDATA.GETGROUPNAME.dataLink = null
form.CDATA.GETSUBGROUPVALUE.dataLink = null
*
// Later: return all object datalinks so all objects are again
datalinked ...
form.CDATA.GETRECORDID.dataLink = form.aLinks[1]
form.CDATA.GETUSERID.dataLink = form.aLinks[2]
form.CDATA.GETGROUPNAME.dataLink = form.aLinks[3]
form.CDATA.GETSUBGROUPVALUE.dataLink = form.aLinks[4]
*
The above works as expected but entails a lot of typing.
*
Been trying to use Mervyn's getObject function (see below). Obtaining
form.objects array works to perfection. However, I cannot generate the
form.aLinks array as above.
Your help would be appreciated. So will Akshat I would venture to say.
Tom
function getObjects
//The routine will start with the object
//passed as a parameter. If no parameter
//is passed it will start with the form
parameters xObject
private oRef
local oParent
if type('form.objects') = "U"
form.objects = new array()
endif
oParent = iif( type( "xObject" ) == "O", xObject, form )
oRef = oParent.first
do
// form and container
if type( "oRef.first" ) == "O"
class::getObjects( oRef )
endif
// recurse up the tree and get each parents name
if not oRef.baseClassName == "FORM"
o = oRef
cName = oRef.name
do while true
if type("o.Parent")=="U"
exit
endif
try
cName = o.Parent.name + "." + cName
catch(exception e)
endtry
o = o.Parent
enddo
form.objects.add(oRef)
endif
// next object
if type("oRef.before") # "U"
oRef = oRef.before
else
return
endif
until oRef == oParent.first
return form.objects
function form_onOpen()
clear
form.alinks = new array()
***** Alternative code which can handle containers
class::getObjects()
for n = 1 to form.objects.size
if "GET" $ form.objects[n].name
form.alinks.add( ??? ) // how do I obtain the datalink value ???
endif
*** if form.objects[n].classname = 'PUSHBUTTON'
*** form.objects[n].onClick := class::Pushbutton_onClick
*** endif
next
return
|
|