2017-03-02 15 views
0

我有一個簡單查看查詢,我的自定義查詢動態範圍如何基於具有動態範圍的查詢來刷新/同步視圖?

在課堂SysQueryRangeUtil我已經把我的自定義公共靜態方法,並將其複製到我的自定義查詢中。 這個範圍,工作很好。但我有一個問題,當範圍條件改變,如果我想看到新的視圖(與新的選定的記錄),我必須同步,在AOT我的視圖。

但這種操作不能做一個簡單的SystemUser。

有沒有辦法在查看使用動態範圍,而不是經常同步?

我的動態範圍,涉及到curUserId()變化時,誰打開窗體用戶/查看視圖具有更改記錄中顯示。如果我想看到差異,我必須每次同步,但對我而言,這不是一個可用的解決方案。

DynamicRangeOnQuery

MyView的enter image description here

謝謝大家!

回答

1

不要在查詢中使用範圍,在表單級別移動這樣的邏輯。

在你的表格的classDeclaration方法中聲明瞭一個QueryBuildRange類型的變量。

覆蓋init方法對您的形式的數據源:

public void init() 
{ 
    ; 

    super(); 

    queryRange = Table1_ds.query().addRange(MyView_ds.queryBuildDataSource(), AccountNum); 
    queryRange.status(RangeStatus::Hidden); 
} 

覆蓋executeQuery方法對您的形式的數據源:

public void executeQuery() 
{ 
    ; 

    queryRange.value(filterBycurUserId()); 

    super(); 
} 
+0

謝謝@Aliaksandr Maksimau。但我需要用ctrl + G過濾值。用這種方法我不能這樣做,但如果我使用RangeStatus :: Locked或Open,我允許在窗體上執行一個免費的查詢。 – ulisses

+1

使用'Table1_ds.query()。addQueryFilter()'而不是'addRange'。所有用戶ctrl-G都是過濾器,而不是範圍。 –

+0

謝謝@Aliaksandr Maksimau。 – ulisses