在報表上使用維度控制

2021-05-22 08:15:18 字數 782 閱讀 3890

原文:aku's blog

在文章 "anzeige von lagerdimensionen auf masken" 中已經介紹了如何在form中動態控制維度顯示.

類似的功能有時候也會在列印報表是需要,也即在列印報表是動態控制維度的現實。

在ax標準系統中,已經有標準的方法來實現這一需求,我們需要做的就是一些小的修改。

為了演示,我們首先建立乙個表 aku_demotable:

然後,我們建立乙個報表,該報表包含我們新建立的表,其結構如下:

和在form中一樣,必須向report中新增乙個inventdim表。並且該資料來源的屬性 「fetchmode「 要被設定為 1:1, 屬性 relations要被設定為yes.

接下來,就像在form中一樣,需要在design下新增「inventorydimensions"欄位組,在我們的例子中,該組被新增在body下:

現在,需要對report中的方法做一些修改就可以實現我們希望的功能了。

為了動態控制維度顯示,下面這些方法必須被重寫: classdeclaration, run, dialog, getfromdialog.

也可以重寫pack和unpack方法,重寫他們不是為了實現動態控制維度,而是為了儲存使用資料,也就是讓report擁有記憶功能。

現在,開啟報表,可以看到我們可以選擇需要列印的維度:

根據我們的選項,列印結果如下:

aku_demo_inventdimrep.rar (1,99 kb)

aku_demo_inventdimrep.rar (1.99 kb)

在UI上使用BackgroundWorker

凡是winform的應用程式,如果他執行了乙個的非常冗長的處理操作 比如檔案查詢 它在執行時會鎖定使用者介面,雖然主活動視窗一直在執行,但使用者無法與程式互動,無法移動窗體或改變窗體大小,所以使用者感覺很不爽。如何做才能使得這個程式有響應。答案就是在後台執行緒中執行這個操作。在這裡已經有了多種方法來...

ACE在AIX上使用

ace在windows下的使用無疑是最簡單的,把include和lib的路徑設好後,直接編譯就可以了,所以一般拿到ace,在windows下應該沒有問題。那麼下面說的是ace在aix和sunos下的移植心得,這二者基本上沒有什麼太大分別,所以放在一起來說。工欲善其事,必先利其器。那麼主要要準備些什麼...

在Ubantu上使用Chrome

一 安裝shadowsocks 我是根據 5 進行安裝 apt get install python pip pip install git 然後在 etc下新建shadowsocks conf.json檔案,內容如下 sudo sslocal c etc shadowsocks conf.json...