在表格打开时突出显示网格中的记录
Highlight a record in a grid on form open
我目前 运行 遇到以下情况的问题:
我有一个执行静态方法的右键单击事件"inventTransferOrder"。因为我有以下代码:
select firstOnly invTransLine
where invTransLine.TransferId == invTrans.TransferId
&& invTransLine.LineNum == invTransLineNum;
args.record(invTransLine);
new MenuFunction(menuitemDisplayStr(InventTransferOrder), MenuItemType::Display).run(args);
在表单的(InventTransferOrders 菜单项 InventTransferOrder 后面)初始化方法中,我正在执行以下代码:
InventTransferLine invTransLine;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
;
invTransLine = element.args().record();
qbds = InventTransferLine_Q.dataSourceTable(tableNum(InventTransferLine));
qbr = qbds.addRange(fieldNum(InventTransferLine, LineNum));
qbr.value(strFmt('%1', invTransLine.LineNum));
这 完全 它应该做的事情:它使用数据源 'InventTransferLine' 过滤网格到具有匹配 LineNum 的一条记录。
与此相反,我需要显示 所有 条记录(InventTransferLine 被预过滤为仅显示所选 InventTransfer 记录的行)BUT 具有匹配 LineNum 的一条记录应该 突出显示 以便用户可以立即开始使用该行。
谁能帮我解决这个问题?
我使用了以下代码,但它(在视觉上)没有做任何事情:
InventTransferLine_DS.findRecord(invTransLine);
InventTransferLine_DS.mark(true);
如有任何帮助,我将不胜感激。
非常感谢和亲切的问候
这是一个时间问题。覆盖InventTransferLine
数据源的executeQuery
方法,并在此处打断点。还要在您编写修改的 init
方法中放置一个断点。您会看到 init
中的断点首先被命中,然后是 executeQuery
中的断点。这意味着 executeQuery
会删除您之前所做的所有选择和标记。
如果您在 super()
调用之后将您的修改放在 executeQuery
方法中,您的选择和标记应该保留。当然你不希望每次 executeQuery
被调用时都执行这个修改,所以你将不得不添加一些额外的逻辑。
我目前 运行 遇到以下情况的问题:
我有一个执行静态方法的右键单击事件"inventTransferOrder"。因为我有以下代码:
select firstOnly invTransLine
where invTransLine.TransferId == invTrans.TransferId
&& invTransLine.LineNum == invTransLineNum;
args.record(invTransLine);
new MenuFunction(menuitemDisplayStr(InventTransferOrder), MenuItemType::Display).run(args);
在表单的(InventTransferOrders 菜单项 InventTransferOrder 后面)初始化方法中,我正在执行以下代码:
InventTransferLine invTransLine;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
;
invTransLine = element.args().record();
qbds = InventTransferLine_Q.dataSourceTable(tableNum(InventTransferLine));
qbr = qbds.addRange(fieldNum(InventTransferLine, LineNum));
qbr.value(strFmt('%1', invTransLine.LineNum));
这 完全 它应该做的事情:它使用数据源 'InventTransferLine' 过滤网格到具有匹配 LineNum 的一条记录。
与此相反,我需要显示 所有 条记录(InventTransferLine 被预过滤为仅显示所选 InventTransfer 记录的行)BUT 具有匹配 LineNum 的一条记录应该 突出显示 以便用户可以立即开始使用该行。
谁能帮我解决这个问题?
我使用了以下代码,但它(在视觉上)没有做任何事情:
InventTransferLine_DS.findRecord(invTransLine);
InventTransferLine_DS.mark(true);
如有任何帮助,我将不胜感激。
非常感谢和亲切的问候
这是一个时间问题。覆盖InventTransferLine
数据源的executeQuery
方法,并在此处打断点。还要在您编写修改的 init
方法中放置一个断点。您会看到 init
中的断点首先被命中,然后是 executeQuery
中的断点。这意味着 executeQuery
会删除您之前所做的所有选择和标记。
如果您在 super()
调用之后将您的修改放在 executeQuery
方法中,您的选择和标记应该保留。当然你不希望每次 executeQuery
被调用时都执行这个修改,所以你将不得不添加一些额外的逻辑。