tish1234 Ответов: 1

Пожалуйста, помогите мне с кодированием M3 lawson jscript


Я попробовал нижеприведенный jscript для настройки M3 lawson ERP. мне нужно, чтобы он вызывался только в точке выхода или щелчка текстового поля "lotref 1".

но ниже скрипт вызывает, когда я открываю панель в моей программе "pms050" в M3 lawson erp.

Пожалуйста, помогите мне разобраться
Спасибо и с уважением
Тиш

Что я уже пробовал:

import System;
import System.Windows;
import System.Windows.Controls;
import MForms;
import Mango.UI;
import Mango.UI.Core;
import Mango.UI.Core.Util;
import Mango.UI.Services;
import System.Collections.Generic;
import System.Collections;

package MForms.JScript {
    class ValidateField {
    var controller;
    var debug;
    var value;
    var textBoxlotref1Element;
    var max;
    var min;

    public function Init(element : Object, args : Object, controller : Object, debug : Object) {
    var content : Object = controller.RenderEngine.Content;
    textBoxlotref1Element =ScriptUtil.FindChild(content, "WLBREF").Text;
  
     debug.WriteLine(textBoxlotref1Element);
     this.debug=debug;
     GetValue(textBoxlotref1Element);}

 public function GetValue(textBoxlotref1Element) {
  
       //value.content = (textBoxlotref1Element.content.parseInt("WLBREF"));
       //value=001118;
       value=textBoxlotref1Element     
       
      if (value != null && value >= 001117 && value <= 365925 )
      {
      
       debug.WriteLine("ok");
      
      }
      else
      {
      debug.WriteLine("different" + textBoxlotref1Element+ " on the current panel");

      var message = "Invalid Batch Number";
      ConfirmDialog.ShowWarningDialog(message);
        return value;
      }
    }
 
      }

Richard MacCutchan

Это поможет, если вы правильно отформатируете свой код. И, что более важно, если вы объясните, в чем ваша проблема.

1 Ответов

Рейтинг:
0

jseanm1

Возможно, вы захотите попробовать что-то в этом роде

public function Init(element : Object, args : Object, controller : Object, debug : Object) {
  var content : Object = controller.RenderEngine.Content;

  // Instead of accessing the text in the element, get a reference to the element
  textBoxlotref1Element =ScriptUtil.FindChild(content, "WLBREF");

  // No point writing this output. Info method is invoked only once at the     beginning 
  //debug.WriteLine(textBoxlotref1Element);

  this.debug=debug;

  // Don't call GetValue here. If you do, it will be executed only once when the Init method is invoked
  // GetValue(textBoxlotref1Element);

  // Instead, add an event handler for the click event of the element
  // getValue() will be called each time it's clicked
  textBoxlotrefElement.add_Click(getValue);
}

function getValue(sender, e : EventArgs) {
  // Move the logic of your GetValue function in here

}


tish1234

Здравствуйте, большое спасибо за ваш ответ..но проблема в том, что есть ошибка времени выполнения в "textBoxlotref1Element.add_Click(getValue);".

tish1234

это ошибка, которую я получаю, когда выполняю программу
Система.Отражение.TargetInvocationException: исключение вызвано адресат вызова. --- > Microsoft.язык JScript.JScriptException: ожидаемая функция
в Microsoft.язык JScript.LateBinding.Вызов(Биндер Биндер, объект[] аргументы, объект parametermodifier[] модификаторы, свойство CultureInfo культуры, строка[] namedParameters, логические построения, логическое скобки, VsaEngine двигателя)
в Microsoft.язык JScript.LateBinding.Вызов(объект[] аргументы, логические построения, логическое скобки, VsaEngine двигателя)
--- Конец внутренней трассировки стека исключений ---
в системе.RuntimeMethodHandle.InvokeMethod(Object target, Object [] arguments, Signature sig, Boolean constructor)
в системе.Отражение.RuntimeMethodInfo.UnsafeInvokeInternal(объект obj, объект[] параметров объекта[] аргументы)
в системе.Отражение.RuntimeMethodInfo.Вызов(объект obj, флаг bindingflags параметр invokeattr, связующее, связующего, объект[] параметров, свойство CultureInfo культуры)
в System. RuntimeType.Метод invokemember(имя строки, флаг bindingflags флаг bindingflags, связующее, связующего, цель, объект[] providedArgs, объект parametermodifier[] модификаторы, свойство CultureInfo культуры, строка[] namedParams)
в MForms.ScriptManagerM3. RunScript(тип scriptType, ControlScript controlScript, Object runContext, IScriptDebugOutput scriptDebugOutput)
в Mango.Пользовательского интерфейса.Сценарий.ScriptToolControl.Запустить()

спасибо

jseanm1

Хорошо. Глядя на это (http://stackoverflow.com/questions/8681700/microsoft-jscript-runtime-error-function-expected), похоже, что в коде есть ошибка именования. Не могли бы вы перередактировать свой вопрос, чтобы добавить полный код (после внесения изменений, которые я предложил) к вашему вопросу?