2017-07-15 113 views
0

我想創建一個通用程序,即.i,我可以從a.w調用,並根據我的條件改變瀏覽器的顏色。我如何通過.i更改瀏覽器顏色?如何更改正在瀏覽的瀏覽器顏色4gl?

+0

嗨!如果你在代碼堆棧中創建一個最小,完整和可驗證的例子(http://stackoverflow.com/help/mcve),以便將來可以在Stack溢出時使用,那將會更好。 - 謝謝 – Momin

回答

1

我想你想改變瀏覽線的顏色。但我不相信你能夠爲此做出包容,因爲你必須單獨命名這些字段以簡單的方式來完成這個任務。因此,讓我們假設您有一個名爲br-cust的瀏覽器,顯示您在其中顯示客戶編號,名稱和信用額度的客戶表。

你需要一個行顯示事件添加到瀏覽,在其中你會說

ON ROW-DISPLAY OF BROWSE br-cust DO: 
    DEFINE VARIABLE iBgColor AS INTEGER NO-UNDO. 

    ASSIGN iBgColor = IF customer.credit-limit < 2000 THEN 9 ELSE 15 
      customer.cust-num :bgcolor in browse br-cust = iBgColor 
      customer.name  :bgcolor in browse br-cust = iBgColor 
      customer.credit-limit:bgcolor in browse br-cust = iBgColor. 

END. 

這將通過更改瀏覽背景色爲紅色工作,如果授信額度爲低(< 2000)或者白色,如果沒關係。如果您想更改字體顏色,請使用:color代替。

現在,如果你想給它任何給定的瀏覽能力,根據條件改變顏色,這也是可能的,但需要更多的代碼。我會盡快發佈解決方案,因爲我現在無法訪問進度。

但我希望這有助於。

1

如果您需要在包含中使用着色邏輯,您可以使用預處理器來完成。創建像這樣的包含(例如colorbrs.i):

ON ROW-DISPLAY OF {&Brs} 
DO: 
    ASSIGN 
     {&Tbl}.{&Fld1}:FGCOLOR IN BROWSE {&Brs} = 12 
     {&Tbl}.{&Fld1}:BGCOLOR IN BROWSE {&Brs} = 9. 
END. 

花括號是預處理器。他們在編譯時填寫。您在.W定義它們是這樣的:

{colorbrs.i &Brs=brsCust &Tbl=Customer &Fld1=Cust-Num} 

當您編譯.W,編譯器會從包括陳述的值,並將其填充到包含文件中的預處理器。

+0

而不是使用表名稱我可以使用瀏覽器顏色的句柄?因爲我沒有瀏覽器中的靜態表。 – Nidhi

+0

表名預處理器不一定是數據庫表。只需將其設置爲您在瀏覽器查詢中使用的任何表。 – TheDrooper