我的应用程序旨在创建一个表,稍后由用户编辑。在此之后,我需要我的应用程序通过电子邮件发送页面内容。
我使用了URLHelper的触发器电子邮件()但是通过这个我能够触发带有to,cc,subject,text body的电子邮件,但是我的ui5应用程序无法将表格插入到电子邮件中。
有人可以建议吗?或甚至可能吗? 我也不介意使用普通的javascript,Point是我需要在不使用后端的情况下执行此操作。
答案 0 :(得分:0)
我们在其中一个应用上做了类似的事情。我在屏幕上添加了一个按钮,当点击该按钮时会调用“mailto”,并使用to,subject和body填充电子邮件客户端。正文是作为脚本的一部分创建的。我们基本上将表内容读入一个数组,然后使用forEach遍历这些条目。请记住使用mailto甚至URLHelper都不允许您在' body'中使用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");
},
您显然需要更新代码以指向您的表格数据。在这个特定的实例中,我们有一个包含几个部分的对象页面。每个部分都包含一个表,该表加载与用户关联的实体列表。由于数据已经加载并存在于模型中,这可能与您尝试执行的操作(如果我理解正确)的工作方式不同,因为您需要在输入数据后发送电子邮件/改性?
希望这至少可以让你开始!
干杯!