2017-01-18 42 views
0

我的應用程序旨在創建一個表格,稍後由用戶編輯。在此之後,我需要我的應用程序通過電子郵件發送頁面內容。是否可以使用UI5通過電子郵件發送頁面內容?

我用URLHelper的觸發電子郵件(),但通過這個我能與收件人,抄送,主題,正文觸發電子郵件,但我UI5應用程序不能表中插入電子郵件。

有人可以提出建議嗎?或者甚至有可能? 我不介意使用普通的JavaScript,點是我需要這樣做,而不使用後端。

回答

0

我們在其中一個應用上做了類似的事情。我在屏幕上添加了一個按鈕,當點擊時調用一個'mailto',並用to,subject和body填充電子郵件客戶端。正文是作爲腳本的一部分創建的。我們基本上將表內容讀入數組,然後使用forEach循環遍歷條目。請牢記使用mailto,甚至URLHelper都不允許您在電子郵件的「正文」中使用HTML格式的文本。所以,如果你正在尋找漂亮的東西,你可能會倒黴。

onNotifyUserPress: function(oEvent) { 
     var oItem = oEvent.getSource(); 
     var oBinding = oItem.getBindingContext(); 
     // Set some vars for the email package 
     var sEmpEmail = oBinding.getProperty("Smtp"); 
     var sEmpName = oBinding.getProperty("STEXT_2"); 
     var sEmailSubject = "Your Subject " + sEmpName; 
     // Create DateFormat Object 
     var oDateFormat = DateFormat.getDateTimeInstance({pattern: "dd/MM/yyyy"}); 

     // Retrieve Table Data 
     var oTable = this.getView().byId("yourTable"); 
     var aTableData = oTable.getBinding("items").getContexts(); 
     // Build the email body 
     var sBody = sEmpName + " - Some Body Text\n\n"; 
     sBody += "Field 1 | " + "Field 2 | " + "Field 3 | " + "Field 4" + "\n"; 
     // Loop through table data and build the output for the rest of the email body 
     aTableData.forEach(function(oModel) { 
      var oModelData = oModel.getObject(); 
      var sEndDate = oDateFormat.format(oModelData.Vendd); 
      var sStatus = this._formatStatus(oModelData.ZQ_STAT); 
      sBody += (oModelData.Essential === "X" ? "Yes" : "No") + " | " + oModelData.Ttext + " | " + sEndDate + " | " + sStatus + "\n"; 
     }.bind(this)); 
     // Open email client window and prepopulate with info 
     window.open("mailto:" + sEmpEmail + "&subject=" + sEmailSubject + "&body=" + encodeURIComponent(sBody), "_self"); 
    }, 

您顯然需要更新代碼以指向表格數據。在這個特定的實例中,我們有一個包含幾個部分的對象頁面。每個部分都包含一個表格,用於加載與用戶關聯的實體列表。由於數據已經被加載並存在於模型,這可能不是相同的方式工作,因爲你正在試圖做什麼(如果我理解正確的話),因爲你需要發送電子郵件時輸入的數據後/修改?

希望這至少可以讓你開始!

乾杯!

相關問題