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行0」(情報ログ)が表示され、Bを入力すると、「AB行0」(情報)が表示されます。Enterキーを押して、Enterキーを押すと、「AB Line 0」(1行目)「QLine 1」(2行目)のように表示されます。「\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 に答える