30-11-2012 04:59 PM
Hi,
In a MetaClass (we have) several customized MetaAttributes which are opened to a user to be filled except if the instance of this Metaclass is linked with a "reference" then these several MetaAttributes won't be available yet to be editing ...
The MetaAttributes will be virtual ones associated to a macro ..
In this macro can we change "on the fly" the editing properties of a field in a Property Page (to be triggered from 0x2 to 0x207) ?
It is sure that this property is defined on the MetaAtrtibute and compiled but otherwise can we change it ?
Thanks
Solved! Go to Solution.
05-12-2012 08:41 PM
Hello Lionel,
I thought about it, but did not figure out how to do that.
I think you should create a new topic for that question (as this one is already marked as "solved") to see if someone else has an idea 🙂
Lionel
05-12-2012 09:56 AM
Hello Lionel
Yes it was the first case "enable link between two objects according to specific conditions".
I want to deactivate the connect/disconnect if a condition is satisfied.
I have seen several MetaAssociationEnd to connect a macro to a MetaAssociation or a MetaAssociationEn it's why i was wondering if it is possible ... i
Thanks
Regards,
04-12-2012 09:20 PM
Hello Lionel,
I do not understand your need.
Do you want to enable link between two objects according to specific conditions, or do you want to enable (or not) metaAttribute modification depending on if the object is linked or not to another one ?
In the second case, you simply have to write your condition in the "AttCtl_GetDefaultKind" function :
If myObject.getCollection("myMetaAssocitionEnd").count > 0 Then
In the first case... well I do not know. Tell me if it is what you need and I will see if something is possible.
Lionel
<script id="F5_watermark" type="text/javascript"></script> <script type="text/javascript">//
try{F5_flush(document);}catch(e){} //</script> <script id="F5_watermark" type="text/javascript"></script>
04-12-2012 06:27 PM
Tried: yes it is piloting "on the fly" if the field is available to be written or "read only".
Last question: what is the equivalent of MetaAttributeUpdateTool for a MetaAssociation ?
Thanks
Regards,
04-12-2012 02:03 PM
Hi Lionel,
I have found in a macro this synthaxe :
Function AttCtl_GetDefaultKind() As String
AttCtl_GetDefaultKind = "CheckBox"
End Function
Function AttCtl_GetKind(oContext As MegaUpdateToolContext) As String
if oContext.MegaObject.GetProp("~ekbhT6B2DDQM[DestroyColl.Status]") = "P" Then
AttCtl_GetKind = "Static:ReadOnly"
Else
AttCtl_GetKind = "CheckBox"
End If
End Function
I have to try it in my case but it seems to control if an Edit field or a ComboBox can be used or is read only ! ?
Thanks
Regards,
03-12-2012 06:19 PM
Hello Lionel,
Yes indeed, I can check the compliancy and integrate an update in it.
Thanks
Regards
01-12-2012 12:38 AM
Hello Lionel,
I'm not sure that modifying edition option "on the fly" is possible.
But instead of using virtual metaAttributes, you could use standard (i.e. "Intrisic") metaAttributes with a MetaAttributeUpdateTool macro.
You would then write your macro as follow :
Function AttCtl_GetDefaultKind() As String AttCtl_GetDefaultKind = "Edit" End Function Function AttCtl_Update(Context, Status, ErrorMessage) Dim myObject Set myObject = Context.megaobject if <condition if linked to a reference> Then if Context.EditText <> myObject.getProp("<your metaAttribute>") then 'the attribute has been modified ErrorMessage = "You are not allowed to modify this Attribute because..." Context.EditText = myObject.getProp("<your metaAttribute>") 'to go back to the "previous" value end if end if End Function
I'm not sure if that answers your question, but I hope so 🙂
Lionel