PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 04/19/2013 7:17 AM by  Jean-Robert
Script: element.IsReadOnly applies to field on the wrong panel
 1 Replies
You are not authorized to post a reply.
Author Messages
Kent Klein
IT Consultant
AO Johansen
New Member
(2 points)
New Member

Send Message:

03/20/2013 11:23 AM

    I have a problem with some of my scripts i hope someone could help me with.

    In order to get rid of a modification I have made a script i Smart Office (Version 10.05038) that saves the users department (WWDEPT from MNS150) i the field OAFRE1 on my orders i OIS100/G.

    We use this information for statistic purposes.

    My script does the following:
    Write DEPT to field FRE1 if the field is empty
    Make the field Readonly


    When I move to the next panel it seems that "Readonly" applies to a field on that panel to. For instance OAORNO on OIS100/A or OBPONR on OIS101/B. It does not seem occour every time I run the script, but i'm not sure.

    What do I do wrong? Do I have to remove the rule before i exit the script the same way i do when i have an eventhandlet. Like: controller.remove_Requested(OnRequested). If so. How do I do that?


    import System;
    import System.Windows;
    import System.Windows.Controls;
    import MForms;
    import Mango.Services;
    import Mango.UI.Services;

    package MForms.JScript {
       class AO_OIS100V_FRE1 {
          public function Init(element: Object, args: Object, controller : Object, debug : Object) {
             debug.WriteLine("Script Initializing.");
              if(element != null) {
                debug.WriteLine("Connected element: " + element.Name);

             var content : Object = controller.RenderEngine.Content;
             var user = ApplicationServices.UserContext;
             var profile = ApplicationServices.SystemProfile;

             if(element.Text == ""){
                 element.Text = UserContext.Department;
              element.IsReadOnly = true;          
              element.Background = ScriptUtil.FindChild(content, 'OACUNO').Background;
              element.Foreground = ScriptUtil.FindChild(content, 'OACUNO').Foreground;

    I hope someone outthere can help me with my problem.

    Kind regards
     - Kent Klein

    Teknor Apex
    New Member
    (3 points)
    New Member

    Send Message:

    04/19/2013 7:17 AM
    Hi Kent,
    One suggestion I have for you is to try checking for the program name first and only have it execute when your in the right program.
    program = controller.RenderEngine.PanelHeader;
    I hope that helps.
    You are not authorized to post a reply.