[Openroad-users] Accessing dynamically created fields
Simon Lovell
simonl at unwired.com.au
Wed Sep 5 18:43:52 EST 2007
So long as the variable was a top level variable and not attached to
another field, I'd say that would be a bug. If you care enough you can
send a test case to support.
James Higson wrote:
>Using DeclareData() did not work. When I created the field and attached it
>to the StackField, DeclareData() said that "... the field is part of a named
>field ...". When I attached the field to CurFrame.TopForm, the
>DeclareData() works but the DynExpr still fails.
>
>-----Original Message-----
>From: openroad-users-bounces at peerlessit.com
>[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Bodo Bergmann
>Sent: Wednesday, 5 September 2007 04:00
>To: International OpenROAD Users
>Subject: Re: [Openroad-users] Accessing dynamically created fields
>
>You are right.
>The dynamic expression just doesn't work as long as you didn't declare it's
>data, as there is no data item with the according name.
>
>So an option is to use:
> FieldPtr.DeclareData();
>before creating the DynExpr.
>
>I didn't do this as James mentioned, that he wanted to set the value of the
>field to an already existing object (in an array), so I'had seen no reason
>to create an object by DeclareData(), which is then released anyway.
>
>Bodo.
>
>Bodo Bergmann
>Senior Software Engineer
>OpenROAD Worldwide Development
>Ingres Corp.
>
>-----Original Message-----
>From: openroad-users-bounces at peerlessit.com
>[mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Simon Lovell
>Sent: Monday, September 03, 2007 11:29 PM
>To: International OpenROAD Users
>Subject: Re: [Openroad-users] Accessing dynamically created fields
>
>Isn't that because the declared attribute is effectively set to FALSE for
>dynamically created fields? Wouldn't another option be to use the
>.DeclareData() method? Not sure if you can map the field to an attribute of
>an array though, and that's the only way it would be useful.
>
>Bodo Bergmann wrote:
>
>
>
>>James,
>>
>>you can't reference the dynamically created fields using dynamic
>>expressions.
>>
>>But anyway you can use the FieldByFullName approach to set the value
>>of the field:
>> FieldPtr =
>>
>>
>>
>CurFrame.TopForm.FieldByFullName(FullName='r'+RIGHT('000'+VARCHAR(i),3))
>);
>
>
>> FieldPtr.SetFieldValue(value = a[i]);
>>
>>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 *James
>>
>>
>Higson
>
>
>>*Sent:* Monday, September 03, 2007 12:52 AM
>>*To:* 'International OpenROAD Users'
>>*Subject:* [Openroad-users] Accessing dynamically created fields
>>
>>Hi all,
>>
>>I am using OR4.1SP3.
>>
>>I have a StackField object which has a datatype of a userclass. I
>>have then created several instances of this StackField and grouped
>>them into a second StackField then grouped this into a ViewPort. In
>>effect, I have mimmicked a TableField. I am then dynamically
>>appending instances of the first StackField to the second StackField
>>by duplicating the first instance at runtime. I hope you are
>>following me so far. The instances are then named r001, r002, ...
>>r00n.
>>
>>I can reference the instances by using either:
>> FieldPtr =
>>
>>
>>
>CurFrame.TopForm.FieldByFullName(FullName='r'+RIGHT('000'+VARCHAR(i),3))
>),
>
>
>>or;
>> ExprPtr =
>>CurFrame.Scope.CreateDynExpr(String='r'+RIGHT('000'+VARCHAR(i),3))).
>>
>>The problem I have, is that CreateDynExpr only works for the instances
>>
>>
>
>
>
>>of the StackField that were statically created on the form. The
>>dynamically created instances return a NULL reference.
>>FieldByFullName works for the dynamically created instances. I want
>>to set the instances to a row in an array by using:
>> ExprPtr =
>>CurFrame.Scope.CreateDynExpr(String='r'+RIGHT('000'+VARCHAR(i),3)));
>> ExprPtr.SetValue(Value = a[i]);
>>
>>I would have thought that CreateDynExpr should work for dynamically
>>created instances as well. Can anyone see another way to do this?
>>
>>Thanks,
>>James
>>Melbourne, Australia
>>
>>-----------------------------------------------------------------------
>>
>>
>-
>
>
>>________________________________________________________________
>>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
>>
>>-----------------------------------------------------------------------
>>
>>
>-
>
>
>>No virus found in this incoming message.
>>Checked by AVG Free Edition.
>>Version: 7.5.484 / Virus Database: 269.13.2/985 - Release Date:
>>
>>
>2/09/2007 4:32 PM
>
>
>>
>>
>>
>>
>________________________________________________________________
>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
>
>________________________________________________________________
>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