I keep going in circles with this. If I don't use the ClassFactory I
can get the calculations to work but I can't figure out how to send
the value back to the dataProvider. If I try to use the ClassFactory
and set my properties through the ClassFactory properties  nothing is
being passed into the itemRenderer. 

This is driving me nuts.

My DataGrid has 3 Fields Case_Weight, Cases_Claimed and Net_Lbs. 
Net_Lbs uses the item renderer which is a "Text" Custom Component.

When the dataProvider is populated only Case Weight has a value. The
other 2 fields are blank. Cases_Claimed is editable and based on what
is entered in there it multiplies Case_Weight and Cases_Claimed and
sets Net_Lbs to the total amount. Should I be using something other
than a "Text" component?

Thanks,
Ben

--- In flexcoders@yahoogroups.com, "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> An item renderer will certianly work and there are a lot of examples
> available.  The process will be exactly the same as for the checkbox
> renderer yo have worked with, so it will be much easier this time
> (assuming you got the checkbox renderer working correctly! If not, I
> have an example on cflex.net.
> 
>  
> 
> But actually what I was suggesting was a bit different.  I think it was
> Anatole who mentioned using this technique as well, but what you would
> do is use the raw result data to build an arrayCollection of new custom
> objects. The custom class would have the caluclated properties built in,
> and you would use this ArrayCollection as the dataProvider.
> 
>  
> 
> Since clearly your raw dataProvider does not have the calculated
> property/field in it, you would have to somehow add this property to the
> dataProvider anyway, to be able to set it from your renderer.
> 
>  
> 
> If you build the custom objects up front, you would not need the
> renderer, and the class could be optimized to simplify building the
> structure you are going to send back to the server.  
> 
>  
> 
> This technique leaves labelFunction and even custom renderers available
> to modify the presentation, without mucking with the base data.
> 
>  
> 
> This may sound inefficient, but I have been doing it on my apps a lot,
> and have found that for this kind of non-visual stuff, even Flash Player
> 7 was blazingly fast.  The improvements in 8, 9 make it even faster.
> 
>  
> 
> Tracy
> 
>  
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
> Behalf Of bsdensmore
> Sent: Thursday, November 30, 2006 8:32 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Can't get value after labelfunction
> 
>  
> 
> Thanks Ben and Tracy,
> I was thinking that I might need to use an item renderer but was
> hoping to not have to. I just struggled with using them to implement a
> checkbox into the DataGrid. I still don't get how to write them
> effectively. I need to do some more reading to try and get a better
> grip.
> 
> What type of component should be used for this? Just a Text or Label?
> 
> Thanks,
> Ben
> 
> --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> , "ben.clinkinbeard"
> <ben.clinkinbeard@> wrote:
> >
> > Tracy is right, you should use an itemRenderer for this.
> > calculatedValueRenderer should override the data method (like all good
> > little renderers do :)) and in the method retrieve the values to be
> > calculated as well as updating the calculated value in the
> > dataProvider. Using the ClassFactory approach that we've discussed,
> > apossible properties property may look something like this:
> > 
> > myCalcFactory.properties = {sourceFieldA: "quantity", sourceFieldB:
> > "price", totalField: "totalItemPrice"};
> > 
> > HTH,
> > Ben
> > 
> > 
> > --- In flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> , "Tracy Spratt" <tspratt@> wrote:
> > >
> > > I don't think labelFunction is intended to update the dataProvider.
> I
> > > don't see how it possibly could, since it can use multiple columns
> and
> > > does not even have to have a dataProvider property associated with
> it.
> > > 
> > > 
> > > 
> > > If you want this, I heard of a technique that uses a custom item
> object,
> > > with calculated properties like that built in, and when result data
> is
> > > received, one loops over the raw data creating custom objects for
> each,
> > > and assigning them to the dataProvider. This also lets you use
> > > labelFunction to change the way the data is displayed, without
> messing
> > > up the underlying data. Currency formatting, for example.
> > > 
> > > 
> > > 
> > > Just brainstorming.
> > > 
> > > 
> > > 
> > > Tracy
> > > 
> > > 
> > > 
> > > ________________________________
> > > 
> > > From: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> ] On
> > > Behalf Of bsdensmore
> > > Sent: Wednesday, November 29, 2006 5:23 PM
> > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> 
> > > Subject: [flexcoders] Can't get value after labelfunction
> > > 
> > > 
> > > 
> > > I have 2 DataGridColumns that use a labelfunction to multiply a
> couple
> > > of fields and display the value in another column. For some reason
> > > after the field is updated with the total I can't get at that value.
> 
> > > 
> > > The dataProvider that the DataGrid is bound to is a query result
> that
> > > is converted to an ArrayCollection. When the ArrayCollection is
> > > initially populated this field is blank. So, I'm guessing that after
> > > the labelfunction executes it doesn't update the ArrayCollection to
> > > hold the newly calculated value? 
> > > 
> > > How can I go about updating the ArrayCollection so I can save it to
> a
> > > database table. I swear I had this working.
> > > 
> > > Thanks,
> > > Ben
> > >
> >
>


Reply via email to