[Openroad-users] Accessing dynamically created fields

Simon Lovell simonl at unwired.com.au
Tue Sep 4 07:28:40 EST 2007


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
>  
>


More information about the Openroad-users mailing list