在这里,我尝试构建一系列提示和警报来发送短信。通过这个我输入两个变量的值(1)手机号码和(2)预付款的截止日期。
以下是其来源:
function PromptPrepaymentReminder() {
var ui = SpreadsheetApp.getUi();
/* Шаг № 1: ввод мобильного телефона гостя */
var step1 = ui.prompt("Напоминание о внесении страхового депозита: шаг 1 из 3", "Введите номер мобильного телефона гостя. Например, +79522294179.", ui.ButtonSet.OK);
var step1_button = step1.getSelectedButton();
var recipient = step1.getResponseText();
if (step1_button == ui.Button.OK) {
/* Когда пользователь нажимает «Ок» на шаге № 1 */
var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.ButtonSet.OK_CANCEL);
var step2_button = step2.getSelectedButton();
var prepaymentReferenceLink = "berdyanskaya56.ru/info/prepayment";
var prepaymentDeadline = step2.getResponseText();
var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentReferenceLink + ". Внести необходимо до " + prepaymentDeadline + " по московскому времени.";
if (step2_button == ui.Button.OK) {
/* Когда пользователь нажимает «Ок» на шаге № 2 */
var step3 = ui.alert("Напоминание о внесении страхового депозита: шаг 3 из 3", "Пожалуйста, проверьте детали СМС-напоминания перед отправкой гостю:" + "\n" + "\nНомер получателя: " + recipient + "\n" + "\nТекст оповещения: " + message, ui.ButtonSet.YES_NO);
var step3_button = step3.getSelectedButton();
if (step3_button == ui.Button.YES) {
Logger.log("Нажал на YES на третьем шаге.");
/* Когда пользователь нажимает «Да» на шаге № 3. Здесь же отправляем и СМС-уведомление. */
try {
TwilioTextMessenger(recipient, message);
ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + ".");
}
catch (err) {
ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова.");
}
} else {
/* Когда пользователь нажимает «Нет» на шаге № 3 */
var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.ButtonSet.OK_CANCEL);
var step2_button = step2.getSelectedButton();
var prepaymentDeadline = step2.getResponseText();
var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentReferenceLink + ". Внести необходимо до " + prepaymentDeadline + " по московскому времени.";
}
} else if (step2_button == ui.Button.CANCEL) {
/* Когда пользователь нажимает «Отмена» на шаге № 2 */
var step1 = ui.prompt("Напоминание о внесении страхового депозита: шаг 1 из 3", "Введите номер мобильного телефона гостя. Например, +79522294179.", ui.ButtonSet.OK_CANCEL);
var step1_button = step1.getSelectedButton();
var recipient = step1.getResponseText();
} else if (step2_button == ui.Button.CLOSE) {
/* Когда пользователь нажимает «Закрыть» на шаге № 2 */
ui.alert("Отправка СМС-оповещения была прервана пользователем на шаге № 2. Чтобы отправить напоминание, попробуйте повторить снова.");
}
} else if (step1_button == ui.Button.CLOSE) {
/* Когда пользователь нажимает на «Закрыть» на шаге № 1 */
ui.alert("Отправка СМС-оповещения была прервана пользователем на шаге № 1. Чтобы отправить напоминание, попробуйте повторить снова.");
}
}
但是你应该更加注意以下部分:
/* Когда пользователь нажимает «Ок» на шаге № 2 */
var step3 = ui.alert("Напоминание о внесении страхового депозита: шаг 3 из 3", "Пожалуйста, проверьте детали СМС-напоминания перед отправкой гостю:" + "\n" + "\nНомер получателя: " + recipient + "\n" + "\nТекст оповещения: " + message, ui.ButtonSet.YES_NO);
var step3_button = step3.getSelectedButton();
if (step3_button == ui.Button.YES) {
Logger.log("Нажал на YES на третьем шаге.");
/* Когда пользователь нажимает «Да» на шаге № 3. Здесь же отправляем и СМС-уведомление. */
try {
TwilioTextMessenger(recipient, message);
ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + ".");
}
catch (err) {
ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова.");
}
} else {
/* Когда пользователь нажимает «Нет» на шаге № 3 */
var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.ButtonSet.OK_CANCEL);
var step2_button = step2.getSelectedButton();
var prepaymentDeadline = step2.getResponseText();
var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentReferenceLink + ". Внести необходимо до " + prepaymentDeadline + " по московскому времени.";
}
上面你可以看到第三步(你会看到俄语中的шаг 3 из 3
)ui.alert
ui.ButtonSet.YES_NO
与Yes
不起作用的效果不会No
1}}也不ui.alert
。当我声明在每种情况下显示两种类型的ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + ".");
}
catch (err) {
ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова.");
}
时,它们都没有发生任何事情。
这里简称:
ui.prompt
以下是关于如何使用ui.alert
和ui.alert
的小课程,但它对我没有多大帮助:-( https://developers.google.com/apps-script/reference/base/ui。
拜托,你能检查我在这里是否遗漏了什么?当用户按下Yes
或No
时,如何修复它以使其显示为#include<stdio.h>
int main()
{
float hours[30];
float total;
int day;
int i ;
float avg;
int j;
printf("The program calculates the total hours worked during \na specific period and the average length of a day.\n\n");
printf("How many days:");
scanf("%d",&day);
for(i=0; i<day; i++){
printf("Enter the working hours for day %d:",i+1);
scanf("%f",&hours[i]);
total += hours[i];
}
avg = total/day;
printf("Total hours worked: %.1f\n", total);
printf("Average length of day: %.1f\n", avg);
printf("Hours entered:");
for( j = 0; j < day; j++){
printf("%.1f\t", hours[j]);
}
}
?
答案 0 :(得分:0)
检查您的执行记录:您应该收到来自...的错误
var step3_button = step3.getSelectedButton();
...因为step3
是一个Button枚举,它没有任何方法属性。
那个错误:
执行失败:TypeError:无法在对象YES中找到函数getSelectedButton。
将Ui.alert()
与Ui.prompt()
进行比较,您会看到他们有不同的退货类型。如果您使用后者,则需要PromptResponse.getselectedButton()
才能获得Button
。
只需删除该问题行并将step3_button
的引用替换为step3
即可,您应该没问题。