2017-01-18 8 views
0

Мое приложение предназначено для создания таблицы, которая позже редактируется пользователем. После этого мне нужно приложение для отправки содержимого страницы по электронной почте.Можно ли отправлять содержимое страницы по электронной почте с помощью UI5?

Я использовал URL-адрес триггера URLHelper(), но через это я могу запустить электронное письмо с телом, куском, объектом, текстом, но мое приложение ui5 не может вставить таблицу в электронное письмо.

Может кто-нибудь что-нибудь предложить? или это даже возможно? Я не против использовать простой javascript, Point. Мне нужно сделать это, не используя бэкэнд.

ответ

0

Мы делаем что-то подобное в одном из наших приложений. Я добавил кнопку на экран, который при нажатии вызывает «mailto» и заполняет почтовый клиент темой, телом и телом. Тело создается как часть скрипта. Мы в основном читаем содержимое таблицы в массиве, а затем перебираем записи, используя 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"); 
    }, 

Вам, очевидно, потребуется обновить код, чтобы указать на данные таблицы. В этом конкретном случае у нас есть объектная страница с несколькими разделами. Каждый раздел содержит таблицу, которая загружает список сущностей, связанных с пользователем. Поскольку данные уже загружены и существуют в модели, это может работать не так, как то, что вы пытаетесь сделать (если я правильно понимаю), так как вам нужно отправить электронное письмо после ввода/изменения данных?

Надеюсь, это поможет хотя бы начать!

Cheers!