Custom property problem (I think).


Author
Message
Peter Jones
Peter Jones
Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)
Group: Forum Members
Posts: 386, Visits: 2.1K
Hi Guys,

I wonder if you can throw a bit of light into this problem which I believe has something to do with custom fields in a BO. I have the following error in business object "boPUN_New" when I open up the form in the IDE that contains the BO. I can close the form and generally mess around until the form opens and I can see it the designer. boPUN_New is the datasource in a grid and I can see all the fields except my custom fields. I've used custom fields before so I have a template to follow and, as best as I can see, I've created them in this BO in the same manner as I've created them in other BO's. I've been messing around with this all day now and I'm getting no where - hopefully you can offer an insight that will help me make some progress...

TIA - Peter

Object reference not set to an instance of an object.
Hide    

at MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor..ctor(String PropertyName, Type PropertyOwner)
at BOInventory.boPUN_New.GetCustomBindablePropertyDescriptors() in C:\TMSRedevelopment\TMS\BOInventory\boPUN_New.vb:line 202
at MicroFour.StrataFrame.Business.BusinessLayer.InternalGetAdditionalPropertyDescriptors()
at MicroFour.StrataFrame.Business.BusinessLayer..ctor()

The variable 'BoPUN_New1' is either undeclared or was never assigned.

Hide    Edit

at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)

Replies
Peter Jones
Peter Jones
Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)Advanced StrataFrame User (718 reputation)
Group: Forum Members
Posts: 386, Visits: 2.1K
Hi Trent,

Thanks for the response but I don't think that's the case. However would you mind casting your eyes over the code - maybe you can spot an error that I can't see. My set of Imports wasn't exactly the same as your example but I added in those I was missing (just in case) but that didn't make any difference.

Cheers, Peter


#Region "Custom Fields"

    ''' <summary>
    ''' OperatorName
    ''' </summary>
    ''' <remarks></remarks>
    <Browsable(False), _
     BusinessFieldDisplayInEditor(), _
     Description("OperatorName"), _
     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public ReadOnly Property [Product]() As System.String
        Get
            Dim loValue As Object
            loValue = Me.CurrentRow.Item("OperatorName")
            If loValue Is DBNull.Value Then
                Return String.Empty
            Else
                Return CType(loValue, System.String)
            End If
        End Get
    End Property

    ''' <summary>
    ''' INIDescription
    ''' </summary>
    ''' <remarks></remarks>
    <Browsable(False), _
     BusinessFieldDisplayInEditor(), _
     Description("INIDescription"), _
     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public ReadOnly Property [INIDescription]() As System.String
        Get
            Dim loValue As Object
            loValue = Me.CurrentRow.Item("INIDescription")
            If loValue Is DBNull.Value Then
                Return String.Empty
            Else
                Return CType(loValue, System.String)
            End If
        End Get
    End Property

    ''' <summary>
    ''' INIMaxHides
    ''' </summary>
    ''' <remarks></remarks>
    <Browsable(False), _
     BusinessFieldDisplayInEditor(), _
     Description("INIMaxHides"), _
     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public ReadOnly Property [INIMaxHides]() As Nullable(Of System.Int32)
        Get
            Dim loValue As Object
            loValue = Me.CurrentRow.Item("INIMaxHides")
            If loValue Is DBNull.Value Then
                Return CType(Nothing, Nullable(Of System.Int32))
            Else
                Return New Nullable(Of System.Int32)(CType(loValue, System.Int32))
            End If
        End Get
    End Property

    ''' <summary>
    ''' INIMaxWeight
    ''' </summary>
    ''' <remarks></remarks>
    <Browsable(False), _
     BusinessFieldDisplayInEditor(), _
     Description("INIMaxWeight"), _
     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public ReadOnly Property [INIMaxWeight]() As Nullable(Of System.Int32)
        Get
            Dim loValue As Object
            loValue = Me.CurrentRow.Item("INIMaxWeight")
            If loValue Is DBNull.Value Then
                Return CType(Nothing, Nullable(Of System.Int32))
            Else
                Return New Nullable(Of System.Int32)(CType(loValue, System.Int32))
            End If
        End Get
    End Property

    ''' <summary>
    ''' INIMaxArea
    ''' </summary>
    ''' <remarks></remarks>
    <Browsable(False), _
     BusinessFieldDisplayInEditor(), _
     Description("INIMaxArea"), _
     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public ReadOnly Property [INIMaxArea]() As Nullable(Of System.Int32)
        Get
            Dim loValue As Object
            loValue = Me.CurrentRow.Item("INIMaxArea")
            If loValue Is DBNull.Value Then
                Return CType(Nothing, Nullable(Of System.Int32))
            Else
                Return New Nullable(Of System.Int32)(CType(loValue, System.Int32))
            End If
        End Get
    End Property


    Protected Overrides Function GetCustomBindablePropertyDescriptors() As MicroFour.StrataFrame.Business.FieldPropertyDescriptor()
        Return New MicroFour.StrataFrame.Business.FieldPropertyDescriptor() { _
             New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _
            "OperatorName", GetType(boPUN_New)), _
             New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _
            "INIDescription", GetType(boPUN_New)), _
             New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _
            "INIMaxHides", GetType(boPUN_New)), _
             New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _
            "INIMaxWeight", GetType(boPUN_New)), _
             New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _
            "INIMaxArea", GetType(boPUN_New))}
    End Function

#End Region


 

Trent Taylor
Trent Taylor
StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 7K
Peter,

There is not a "bug" in this particular instance otherwise none of the other fields would appear.  I did not look at your code in depth yet.  Standard mapped fields work on this very same principal and through the very same attributes, etc.  So if you setup your custom property correctly it will appear just like any other field....I will look at your code in more depth when I get a chance.  Just wanted to let you know that the standard properties work the very same as a custom property when setup correctly. Smile

Greg McGuffey
Greg McGuffey
Strategic Support Team Member (4.8K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
Peter,



Your OperatorName property is actually called Product. Since your property descriptors are using OperatorName, this might be causing problems.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search