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 Send Private Message
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 Send Private Message
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.