-->

在X商店击键++(Store Keystrokes in X++)

2019-10-28 19:48发布

有谁知道如何击键存储为X ++字符串?

而且如果我想隐蔽他们ASCII和反之亦然。

而下面的作业不显示预期的行为。

public void textChange() 
{ 
       int i, j; 
       int L = 12; 
       int h = 4; 
       int t = 54; 
       str tmpStr; 
   ;  

  i =  strLen(strKeep(seField.text(), '\n')); 
  info(seField.text() + ' Lines: ' + int2str(i)); 
  super(); 
  if (i >= H) 
 { 
  error(strFmt("max lines = %1", h));  
 } 
} 

   Actually i am trying to implement something like- 

在stringEdit的textChange方法当我输入“A”(或任何值)它应该显示“A线0”(在信息记录),那么我输入乙它应该显示“AB线0”(在信息)。 一旦我按下输入和输入“Q”显示768,16像“AB 0行”(第一线)等“Q 1号线”(第二行)和。 我面对为“\ n”(回车)问题,所以我需要通过ASCII值来实现这一目标。 谢谢。

Answer 1:

我不知道怎样task()会帮助你的。

看来,当StringEdit控制包含回车, StringEdit.text()总是给当你检查它在一个错误的结果textChange()方法。 可能是一个AX错误。 您可以使用modified()方法来得到正确的结果,至少以后。

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: FRM

; Microsoft Dynamics AX Forms unloaded
; --------------------------------------------------------------------------------
FRMVERSION 5

FORM #TestForm1
  PROPERTIES
    Name                #TestForm1
  ENDPROPERTIES

  METHODS
    Version: 3
    SOURCE #updateOutput
      #void updateOutput()
      #{
      #    container c = str2con(Input.text(), '\n');
      #    int i;
      #    str s;
      #    ;
      #
      #    for (i = 1; i <= conlen(c); i++)
      #        s += strfmt("Line %1: %2\n", i, conpeek(c, i));
      #
      #    Output.text(s);
      #}
    ENDSOURCE
    SOURCE #classDeclaration
      #public class FormRun extends ObjectRun
      #{
      #
      #}
    ENDSOURCE
  ENDMETHODS
  OBJECTBANK
    PROPERTIES
    ENDPROPERTIES

  ENDOBJECTBANK

  JOINS
  ENDJOINS

  DESIGN
    PROPERTIES
    ENDPROPERTIES

    CONTAINER
      CONTROL STRINGEDIT
        PROPERTIES
          Name                #Input
          AutoDeclaration     #Yes
          Width               #Column width
          Height              #Column height
          MultiLine           #Yes
        ENDPROPERTIES

        METHODS
          Version: 3
          SOURCE #modified
            #public boolean modified()
            #{
            #    boolean ret = super();
            #    ;
            #
            #    element.updateOutput();
            #
            #    return ret;
            #}
          ENDSOURCE
          SOURCE #textChange
            #public void textChange()
            #{
            #    super();
            #
            #    element.updateOutput();
            #}
          ENDSOURCE
        ENDMETHODS
      ENDCONTROL

      CONTROL STRINGEDIT
        PROPERTIES
          Name                #Output
          AutoDeclaration     #Yes
          AllowEdit           #No
          Width               #Column width
          MultiLine           #Yes
        ENDPROPERTIES

      ENDCONTROL

    ENDCONTAINER

  ENDDESIGN

ENDFORM

***Element: END

更新。 你也许可以触发modified()从法textChange() -这将是一个黑客,我没有尝试。



Answer 2:

存储按键在AX形式的唯一方式是使用task()方法的形式。

但是,不要对你发表了评论的目的,做到这一点!

而是使用与相关值feeded一个枚举值或组合框来获取想要的行为。

更新:您可以在这里找到关于这个问题的一些有用的信息: http://www.axaptapedia.com/FormComboBoxControl
在这里: http://blogs.msdn.com/b/palle_agermark/archive/2005/06/30/434146.aspx



Answer 3:

尝试SearchMode字符串控制的属性。 是有用的字符串值必须被映射到的索引表字段。



文章来源: Store Keystrokes in X++
标签: axapta x++