2

2 つの列を持つルックアップを作成しました。最初の列には整数が含まれていますが、2 番目の列には長い名前があり、ここで問題が発生します。ユーザーは、文字列全体を確認するために水平方向にスクロールする必要があります。その場合でも、列の幅はデータ全体を表示するのに十分な大きさではありません。

私はこれを見つけました:

フォーム コントロール ルックアップで列幅を調整する

しかし、どこに何を追加すればよいのか正確にはわかりません。

よくわかりませんが、パラメーター セクションで、SSRS レポートを指すメニュー項目でこのルックアップが使用されているという事実を追加する必要があるかもしれません。

更新 1:

次のようなルックアップフォームで動作するようになりました:

Args args;
FormRun formRun;
;

args = new Args();

args.name(formstr(LookupOMOperatingUnit));
args.caller(_control);
formRun = classfactory.formRunClass(args);
formRun.init();
_control.performFormLookup(formRun);

そして、このフォームのinitメソッドに次を追加しました:

public void init()
{
    super();
    element.selectMode(OMOperatingUnit_OMOperatingUnitNumber);
}

私が本当に必要とするフィールドを意味します。

ここに画像の説明を入力

メカニズムを完全に理解しているかどうかはわかりませんが、この正確なフィールドを実際に開始した場所から DialogField に戻す方法を知っているようです。

ルックアップのように見せるために、デザインのスタイルを Auto のままにしましたが、WindowTypePopupに、HideToolBarYesに、FrameBorderに変更しました。

4

2 に答える 2

4

おそらく最善の方法は、カスタム ルックアップを実行し、それを反映するようにキー フィールドの拡張データ型を変更することです。このように、変更はすべての場所に反映されます。その例として、フォームFiscalCalendarYearLookupと EDTを参照してください。FiscalYearName

1 つの場所だけを変更する必要がある場合、簡単なオプションはperformFormLookup、呼び出しフォームでオーバーライドすることです。DisplayLengthlong フィールドの拡張データ型のプロパティもオーバーライドする必要があります。

public void performFormLookup(FormRun _form, FormStringControl _formControl)
{
    FormGridControl grid = _form.control(_form.controlId('grid'));
    grid.autoSizeColumns(false);
    super(_form,_formControl);
}

これは、このレポート シナリオには当てはまらない可能性があるフォームがない限り役に立ちません。

AX 2009 以降、カーネルは既定で、実際のレコード コンテンツに基づいてコントロール サイズを自動更新します。レコードがなく、これらのサイズが保存されていたときにサイズが小さかったため、これは多くのフラストレーションの原因でした! また、自動更新のパフォーマンスは、最初は状況によっては悪いものでした。後付けとして、グリッド コントロールautoSizeColumnsメソッドが提供されましたが、残念ながらプロパティとして公開されることはありませんでした。

于 2015-12-23T11:59:50.183 に答える