0

有人知道如何在 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 line 0”(在信息日志中)然后我输入 B 它应该显示“AB line 0”(在信息中)。一旦我按下回车,回车“Q”显示应该是“AB Line 0”(第一行)“Q Line 1”(第二行)等等。我遇到了 "\n"(Enter) 的问题,所以我需要通过 ASCII 值来实现这一点。谢谢。

4

3 回答 3

2

在 AX 表单中存储击键的唯一方法是使用表单上的task()方法。

但是不要为了您评论的目的而这样做!

而是使用枚举值或提供相关值的组合框来获得所需的行为。

更新: 您可以在此处找到有关此主题的一些有用信息: http://www.axaptapedia.com/FormComboBoxControl 和此处:http : //blogs.msdn.com/b/palle_agermark/archive/2005/06/30/434146 .aspx

于 2011-03-24T12:42:41.600 回答
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()- 那将是一个黑客,我没有尝试过。

于 2011-03-25T11:35:06.760 回答
0

试试SearchMode字符串控件的属性。为了有用,字符串值必须映射到索引表字段。

于 2011-03-28T09:17:59.133 回答