Script: element.IsReadOnly applies to field on the wrong panel

 1 Replies
 0 Subscribed to this topic
 11 Subscribed to this forum
Sort:
Author
Messages
Kent Klein
New Member
Posts: 2
New Member
    Hi.

    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


    Problem

    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?




    Script:


    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

    Jean-Robert
    New Member
    Posts: 1
    New Member
      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.