2017-07-27 703 views
0

我對Acumatica開發非常陌生,但作爲一個基本的開始,我們希望能夠在電話號碼文本框之後添加一個按鈕,以使用TEL協議TEL: +1-###-###-####從Skype for Business撥號。我有按鈕插入正確,和我重寫NavigateURL,和它完美的作品,如果我直接在網址放了電話號碼。不過,我正在尋找一種方式來放置,保持實際電話號碼值,而不是..喜歡的東西TEL: [Contact.Phone1]使用TEL協議撥打電話號碼

這可能嗎?

回答

1

我不認爲NavigateURL,就是要使用像變量模板引擎。我要做的是在Action事件處理程序中格式化URL,並使用PXRedirectToUrlException打開鏈接。

[PXUIField(DisplayName = "Skype")] 
[PXButton] 
public virtual IEnumerable SkypeButton(PXAdapter adapter) 
{ 
    Contact contact = base.Caches[typeof(Contact)].Current as Contact; 

    if (contact != null) 
    { 
     throw new PXRedirectToUrlException(string.Format("tel:{0}", contact.Phone1.Trim()), 
              PXBaseRedirectException.WindowMode.NewWindow, 
              string.Empty); 
    } 

    return adapter.Get(); 
} 
+0

我有一點麻煩與此有關。我有它的工作,但我有一個問題。點擊從通用查詢屏幕打開的記錄上的「呼叫」按鈕會導致錯誤。我跟蹤的日誌,它的傳遞'電話:17173978880 PopupPanel = Inline'和'電話:?17173624476 7678772635 = 465463'如果我刷新當前記錄的頁面,然後它工作正常。你知道爲什麼要加入演員嗎? – beardedmogul

+0

第一個可能與PXBaseRedirectException.WindowMode有關,第二個我不知道它來自哪裏。查詢屏幕在他們可以做的事情上相當有限,我不確定你的錯誤是否可以修復。 –

+0

我試過你的重定向方法。我也試過'拋出新的異常(「Redirect0:電話:{0} .....)。同樣的事情 – beardedmogul