Axapta 将击键存储在X++;

Axapta 将击键存储在X++;,axapta,x++,Axapta,X++,有人知道如何在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(seF

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

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

但不要为了你评论的目的而这样做

而是使用一个枚举值或一个包含相关值的组合框来获得想要的行为

更新: 您可以在此处找到有关此主题的一些有用信息:

这里:

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

但不要为了你评论的目的而这样做

而是使用一个枚举值或一个包含相关值的组合框来获得想要的行为

更新: 您可以在此处找到有关此主题的一些有用信息:
这里:

我看不出
task()
对你有什么帮助

似乎当
StringEdit
控件包含回车时,
StringEdit.text()
textChange()
方法中检查时总是给出错误的结果。可能是斧头虫。您可以使用
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
AOT版本1.0或更高版本的导出文件 格式版本:1 ***元素:FRM ; Microsoft Dynamics AX窗体已卸载 ; -------------------------------------------------------------------------------- FRM版本5 表格#测试表格1 性质 名称#TestForm1 端属性 方法 版本:3 源#更新输出 #void updateOutput() #{ #容器c=str2con(Input.text(),'\n'); #int i; #strs; # ; # #对于(i=1;i我看不出
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
AOT版本1.0或更高版本的导出文件 格式版本:1 ***元素:FRM ;已卸载Microsoft Dynamics AX表单 ; -------------------------------------------------------------------------------- FRM版本5 表格#测试表格1 性质 名称#TestForm1 端属性 方法 版本:3 源#更新输出 #void updateOutput() #{ #容器c=str2con(Input.text(),'\n'); #int i; #strs; # ; #
#为了(i=1;i尝试字符串控件的
SearchMode
属性。要有用,字符串值必须映射到索引表字段。

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

您对特定的击键感兴趣吗,您有一个specific任务?不,没有特定的击键。实际上,我正在尝试实现类似的东西-在stringEdit的textChange方法中,当我输入“a”(或任何值)时,它应该显示“a行0”(在信息日志中),然后我输入B,它应该显示“AB行0”(在信息中)。一旦我按下enter键,输入“Q”显示应该类似于“AB行0”(第1行)“Q行1”(第2行)等等。我面临“\n”(回车)的问题,所以我需要通过ASCII值来实现这一点(您还可以告诉我如何存储/显示击键)。非常感谢。您对特定的击键感兴趣吗?您有特定的任务吗?不,没有特定的击键。实际上,我正在尝试实现类似的功能-在stringEdit的textChange方法中,当我输入“a”(或任何值)时,它应该显示“a行0”(在信息日志中),然后我输入B它应该显示“AB行0”(在信息中)。一旦我按enter键,enter“Q”显示应该类似于“AB行0”(第1行)“Q行1”(第2行)等等。我面临“\n”(enter)的问题,因此我需要通过ASCII值来实现这一点(以及您能否告诉我如何存储/显示击键)。提前非常感谢。感谢Jan的响应。通过任务()我可以存储ASCII值吗?你能举个例子吗?好的,我将尝试combobox以你建议的方式实现它。我将代码放在线程中,请看一看。再次感谢。为什么ASCII、AX使用Unicode?搜索方法名称“任务“在表单中。好的,再次感谢您提供的信息..是的,我找到了该方法,正在寻找如何使用它的示例。您找到您要找的内容了吗?嗨,Jan,我正在寻找方法任务()的示例我在和中发现,使用combobox,如您所说,我必须提前为所需的行为提供全部值。我不能使用上面的代码(在我的线程中)获取所需的行为,这是在textChange()中当然是StringEdit。如果你运行我的代码,你就会清楚我要做什么。我想我必须利用宏任务、按键等。我正在尝试。再次感谢!感谢Jan的回复。通过任务()我可以存储ASCII值吗?你能举个例子吗?好的,我将尝试combobox以你建议的方式实现它。我将代码放在线程中,请看一看。再次感谢。为什么ASCII、AX使用Unicode?搜索方法名称“task”好的,再次感谢你提供的信息。是的,我找到了这个方法,正在寻找一个如何使用它的例子。你找到你要找的东西了吗?嗨,简,我