[Openroad-users] Tabpages
Simon Lovell
simonl at unwired.com.au
Thu Oct 25 20:13:21 EST 2007
Isn't the problem that declare data only works on top level fields? The
tab page is a child of the tab folder, so unless the tab folder is
nameless the .DeclareData() route cannot work, unless I am mistaken.
FRANK BARRATT wrote:
> Bodo/All,
>
> That works fine for loading pages into the tabfolder at runtime, but I
> am looking to use a button so that the user can add their own tabpages
> (up to 8), using the code below under the button I get a trace error
> saying that field1 has already been declared, if I undeclare it I lose
> the data in the first tab and if I don't declare it I get a NULL error
> on the cust1 userclass.
>
> Thanks again
>
> Frank.
>
> ----- Original Message -----
> *From:* Bodo Bergmann <mailto:Bodo.Bergmann at ingres.com>
> *To:* International OpenROAD Users
> <mailto:openroad-users at peerlessit.com>
> *Sent:* Tuesday, October 23, 2007 5:45 PM
> *Subject:* Re: [Openroad-users] Tabpages
>
> Frank,
>
> when adding Tabpages dynamically using "AddTabPage" and the
> page is mapped to a userclass object
> then you have to use the DeclareData() method on the TabFolder
> (not the Tabpage) to assign the value.
> The TabFolder should have the "Declared" attribute set to FALSE
> before.
>
> In the example below the subform "cust" (mapped to "customer"
> userclas)
> is used as a "template" to create a new tabpage:
>
> initialize()=
> declare
> i=INTEGER NOT NULL;
> cust1 = customer DEFAULT NULL;
> sf = Subform DEFAULT NULL;
> enddeclare
> {
> i=FIELD(field1).tabpagearray.lastrow + 1;
> sf = FIELD(cust).Duplicate();
> sf.Name = 'page'+varchar(i);
> sf.AllBias = FB_CHANGEABLE;
> FIELD(field1).AddTabPage(subform = sf, tabtext = 'Page
> '+varchar(i), pagenum = i);
> FIELD(field1).DeclareData();
> }
>
> ON CLICK check_btn =
> {
> FIELD(field1).CurTabPage.GetFieldValue(value=BYREF(cust1));
> // Now check attributes using cust1 reference, e.g. "cust1.Name"
> }
>
> Hope this helps,
> Bodo.
>
> Bodo Bergmann
> Senior Software Engineer
> OpenROAD Worldwide Development
> Ingres Corp.
>
>
> ------------------------------------------------------------------------
> *From:* openroad-users-bounces at peerlessit.com
> [mailto:openroad-users-bounces at peerlessit.com] *On Behalf Of
> *FRANK BARRATT
> *Sent:* Tuesday, October 23, 2007 3:45 PM
> *To:* International OpenROAD Users
> *Subject:* Re: [Openroad-users] Tabpages
>
> Bodo,
>
> I cannot find a way to map a tabpage to a userclass only the
> tabfolder or subform.
>
> So when i call curtab = FIELD(my_tab).CurTabPage method,
>
> I try to access the attribute values of curtab but it only has the
> childfields attribute as it does not know about my userclass object.
>
> For my default page 1 can access the field values with
> mytab.page1.mysub.myfield.
>
> For subsequent pages i need mytab.page1._curtab_.myfield.
>
> Now amount of casting and using the mysub userclass has resulted
> in obtaining the myfield values, thats why i have used the
> curtab.childfileds array.
>
> Is there a way to create a tabpage from a userclass, or am i
> having a stupid day.
>
> Regards
>
> Frank.
>
>
> */Bodo Bergmann <Bodo.Bergmann at ingres.com>/* wrote:
>
> Hi Frank,
>
> as your TabPage is mapped to a userclass object anyway,
> why don't you just validate the according attribute values of
> this object
> (or the objects, if each tabpage is mapped to a different
> userclass object) ?
>
> Bodo.
>
> Bodo Bergmann
> Senior Software Engineer
> OpenROAD Worldwide Development
> Ingres Corp.
>
>
> ------------------------------------------------------------------------
> *From:* openroad-users-bounces at peerlessit.com
> [mailto:openroad-users-bounces at peerlessit.com] *On Behalf Of
> *FRANK BARRATT
> *Sent:* Tuesday, October 23, 2007 2:19 PM
> *To:* openroad-users at peerlessit.com
> *Subject:* [Openroad-users] Tabpages
>
> Hi,
>
> I am dynamically creating tab pages on a tabfolder using this
>
> FIELD(my_tab).AddTabPage(subform = FIELD(mysub),tabtext =
> 'Page ' + varchar(FIELD(my_tab).tabpagearray.lastrow +
> 1),pagenum = FIELD(mytab).tabpagearray.lastrow + 1);
>
> mysub is a hidden subform based on a userclass containing lots
> of fields and is the same for each tabpage.
>
> At the moment i get the current field values for validation by
> the
>
> curtab = FIELD(my_tab).CurTabPage method.
>
> I then loop through the curtab.childfields to get my field values.
>
> My question is there an easier way of accessing the field
> values from my dynamic tabs without looping through the
> childfields array as this is getting a bit messy.
>
> Thanks in advance.
>
> Frank.
>
> ________________________________________________________________
> OpenROAD-Users mailing list
>
> You can maintain your subscription here:
> http://www.peerlessit.com/mailman/listinfo/openroad-users
>
> To unsubscribe click on this link
> mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
>
> To subscribe click on this link
> mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
>
>------------------------------------------------------------------------
>
>________________________________________________________________
>OpenROAD-Users mailing list
>
>You can maintain your subscription here:
>http://www.peerlessit.com/mailman/listinfo/openroad-users
>
>To unsubscribe click on this link
>mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
>
>To subscribe click on this link
>mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
>
More information about the Openroad-users
mailing list