如何删除对话框中 dialogFieldValue 中的自动完成字符串?
How to delete AutoComplete string in dialogFieldValue in my Dialog?
我创建了一个对话框我有这个代码:
dialog dialog;
DialogText dialogText ;
DialogButton dialogButton;
DialogField dialogFieldI, dialogFieldII;
str fieldDel, confirm;
MyTableDelete tabledelete;
dialog = new Dialog("Dialog name");
dialog.addText("Write to confirm");
dialog.addText("DELETE");
dialogFieldI = dialog.addFieldValue(extendedTypeStr(String30), fieldDel , "Insert value");
dialogFieldII = dialog.addFieldValue(extendedTypeStr(String30), confirm, "Confirm delete");
dialog.run();
confirm = dialogFieldIi.value();
fieldDel = dialogFieldI.value();
if(dialog.closedOk() )
{
if(confirm == "DELETE")
{
ttsBegin;
select forUpdate tableDelete
where tableDelete.field == fieldDel;
tableDelete.delete();
ttsCommit;
}
}
我第一次启动时遇到问题,在 dialog.addFieldValue
什么都没有,但是如果我第二次启动 Dialog,在 dialogField 中会自动出现文本 "DELETE".[=12 的建议=]
存在点击后清理(cacheclean)的方法。
我的重点不是让插入 Confimr 文本变得容易 ("DELETE")。
如果我也能知道如何与 if() 语句中的大写字母进行比较,那将是一件好事。
我加了一张图片,我要删除自动合成句:
谢谢你的时间,
尽情享受吧!
您编写的代码将无法运行。 Dialog
未初始化,我看不到它以任何方式将 "Delete" 放入 dialogField。我猜我们遗漏了一些代码,但您需要禁用从 SysLastValue.
加载
编辑 添加 Jan 的评论: 考虑使用 addField
而不是 addFieldValue
,看看是否是这个原因。
如果您的代码是来自控制器的 运行,您可以:
controller.parmLoadFromSysLastValue(false);
这实际上比我最初想象的要复杂,除非我错过了更简单的方法。我能够重现你的问题,我解决它的方法是使用 formRun()
上存在的方法 delAutoCompleteString()
,它是在你调用 dialog.run()
时创建的,或者它可以预先-通过调用 dialog.doInit()
.
创建
解决这个问题很有趣,所以希望这对遇到同样问题的其他人有所帮助。这是在表单控件上禁用自动完成。
// Added these three lines in code block below
dialog.doInit();
dialog.formRun().delAutoCompleteString(dialogFieldI.control());
dialog.formRun().delAutoCompleteString(dialogFieldII.control());
查看我添加这 3 行的调整后的代码。:
dialog dialog;
DialogText dialogText ;
DialogButton dialogButton;
DialogField dialogFieldI, dialogFieldII;
str fieldDel, confirm;
MyTableDelete tabledelete;
dialog = new Dialog("Dialog name");
dialog.addText("Write to confirm");
dialog.addText("DELETE");
dialogFieldI = dialog.addFieldValue(extendedTypeStr(String30), fieldDel , "Insert value");
dialogFieldII = dialog.addFieldValue(extendedTypeStr(String30), confirm, "Confirm delete");
// AlexOnDAX (06/08/2015)
// Added these lines
//-->
dialog.doInit();
dialog.formRun().delAutoCompleteString(dialogFieldI.control());
dialog.formRun().delAutoCompleteString(dialogFieldII.control());
//<--
dialog.run();
confirm = dialogFieldIi.value();
fieldDel = dialogFieldI.value();
if(dialog.closedOk() )
{
if(confirm == "DELETE")
{
ttsBegin;
select forUpdate tableDelete
where tableDelete.field == fieldDel;
tableDelete.delete();
ttsCommit;
}
}
我创建了一个对话框我有这个代码:
dialog dialog;
DialogText dialogText ;
DialogButton dialogButton;
DialogField dialogFieldI, dialogFieldII;
str fieldDel, confirm;
MyTableDelete tabledelete;
dialog = new Dialog("Dialog name");
dialog.addText("Write to confirm");
dialog.addText("DELETE");
dialogFieldI = dialog.addFieldValue(extendedTypeStr(String30), fieldDel , "Insert value");
dialogFieldII = dialog.addFieldValue(extendedTypeStr(String30), confirm, "Confirm delete");
dialog.run();
confirm = dialogFieldIi.value();
fieldDel = dialogFieldI.value();
if(dialog.closedOk() )
{
if(confirm == "DELETE")
{
ttsBegin;
select forUpdate tableDelete
where tableDelete.field == fieldDel;
tableDelete.delete();
ttsCommit;
}
}
我第一次启动时遇到问题,在 dialog.addFieldValue 什么都没有,但是如果我第二次启动 Dialog,在 dialogField 中会自动出现文本 "DELETE".[=12 的建议=]
存在点击后清理(cacheclean)的方法。
我的重点不是让插入 Confimr 文本变得容易 ("DELETE")。
如果我也能知道如何与 if() 语句中的大写字母进行比较,那将是一件好事。
我加了一张图片,我要删除自动合成句:
谢谢你的时间,
尽情享受吧!
您编写的代码将无法运行。 Dialog
未初始化,我看不到它以任何方式将 "Delete" 放入 dialogField。我猜我们遗漏了一些代码,但您需要禁用从 SysLastValue.
编辑 添加 Jan 的评论: 考虑使用 addField
而不是 addFieldValue
,看看是否是这个原因。
如果您的代码是来自控制器的 运行,您可以:
controller.parmLoadFromSysLastValue(false);
这实际上比我最初想象的要复杂,除非我错过了更简单的方法。我能够重现你的问题,我解决它的方法是使用 formRun()
上存在的方法 delAutoCompleteString()
,它是在你调用 dialog.run()
时创建的,或者它可以预先-通过调用 dialog.doInit()
.
解决这个问题很有趣,所以希望这对遇到同样问题的其他人有所帮助。这是在表单控件上禁用自动完成。
// Added these three lines in code block below
dialog.doInit();
dialog.formRun().delAutoCompleteString(dialogFieldI.control());
dialog.formRun().delAutoCompleteString(dialogFieldII.control());
查看我添加这 3 行的调整后的代码。:
dialog dialog;
DialogText dialogText ;
DialogButton dialogButton;
DialogField dialogFieldI, dialogFieldII;
str fieldDel, confirm;
MyTableDelete tabledelete;
dialog = new Dialog("Dialog name");
dialog.addText("Write to confirm");
dialog.addText("DELETE");
dialogFieldI = dialog.addFieldValue(extendedTypeStr(String30), fieldDel , "Insert value");
dialogFieldII = dialog.addFieldValue(extendedTypeStr(String30), confirm, "Confirm delete");
// AlexOnDAX (06/08/2015)
// Added these lines
//-->
dialog.doInit();
dialog.formRun().delAutoCompleteString(dialogFieldI.control());
dialog.formRun().delAutoCompleteString(dialogFieldII.control());
//<--
dialog.run();
confirm = dialogFieldIi.value();
fieldDel = dialogFieldI.value();
if(dialog.closedOk() )
{
if(confirm == "DELETE")
{
ttsBegin;
select forUpdate tableDelete
where tableDelete.field == fieldDel;
tableDelete.delete();
ttsCommit;
}
}