4

私のカスタマイズでは、WEBUI の同じウィンドウ/テーブルに2 つの CreateLineFromフォームを作成したいと考えています。

通常、Zkwebui の WCreateFromFactory で WClass ファイルを呼び出します (tableID とクラス名を指定して静的)。

私の質問は、同じウィンドウで別の「CreateLineFrom」フォームを使用する方法ですか?

4

2 に答える 2

0

設定変更のみで [ Create Line From ] ボタン機能がもう 1 つ必要な場合は、次のポイントに従う必要があります。

  1. AD_Field テーブルのAD_FIELD_COLUMNインデックスを削除し、
  2. Window, Tab And field windowの Field タブにレコードをもう 1 つ作成します。

例 :- フィールド名 as Crate Lines From2
Column AS CrateFrom レコードを保存します。
ここで、フィールド シーケンス タブを使用して、2 番目の Crate Lines From2 ボタンを整列させることができます。

これは、コードを変更せずに実行できます。


コードを変更する準備ができている場合は、AbstractADWindowPanel.javaクラスを変更します。

actionButtonメソッドでは、

    else if (col.equals("CreateFrom")) code 

このコードを次のように更新するだけです

 else if (col.equals("CreateFrom") || col.equals("newFieldName"))

これで、次のテーブルの目的の列の上に追加できます。列は newFieldName (Java コードで記述したもの) C_Invoice、M_InOut、M_Movement、C_BankStatement にする必要があります。

フォームにフィールドを表示する手順:-

  1. テーブルと列ウィンドウを開き、任意のテーブルの上を選択します
  2. newFieldName を使用して System 要素を作成し、保存します
  3. データベース列の名前と名前を同じように入力します
  4. 長さを1で選ぶ
  5. ボタンとして参照し、レコードを保存します
  6. 次に、列の同期ボタンをクリックします
  7. それぞれのウィンドウ、タブフィールドを開き、タブタブを選択します
  8. フィールドの作成ボタンをクリックすると、新しく作成されたボタンが表示されます
  9. [フィールド] タブと[フィールドシーケンス] タブを使用して、フィールドを整列できます。

1 つのタブに 2 つの同じフィールドが必要な理由を教えてください。これはセキュリティに関連していますか? もしそうなら、私たちは非常に簡単な方法を達成することができます

于 2013-11-19T07:05:03.697 に答える
0

ハッシュマップが最後に指定された値を格納しているため、Adempiere 機能では同じウィンドウに 2 つの CLF フォームを作成できません。つまり、実行時に「WCreateFrom2UI.class」を呼び出します。

private static HashMap<Integer, Class<? extends ICreateFrom>> registeredClasses = null;

static
{       
    s_registeredClasses.put(I_C_Order.Table_ID, WCreateFrom1UI.class);   
    s_registeredClasses.put(I_C_Order.Table_ID, WCreateFrom2UI.class);  
}

「CreateFromIM」という名前の新しいボタンを作成し、AbstractADwindowPanel にアクションを追加し、WCreateFromFactory のコピーである新しいクラス WCreateFromIMFactory を作成しました。

    if (col.equals("CreateFrom")  ) {
        ICreateFrom cf = WCreateFromFactory.create(curTab);

    } 
    else if (col.equals("CreateFromIM") )  
        ICreateFrom cf = WCreateFromIMFactory.createIM(curTab);

        } 
于 2013-12-13T10:07:57.840 に答える