如何在 SysLastValue 中找到用户上次使用的打印机
How do you find a user's last used printer in SysLastValue
我一直在尝试查找用户上次使用的打印机的存储位置,以便我可以清除此使用数据(因为一些用户有一个问题,即尽管我们有KB981681 已安装并且打印机可用;只是在某些 AX 表单上没有默认设置。
我知道这个数据在使用数据中的某处,我可以通过 AX 浏览它:
Microsoft Dynamics AX
> Tools
> Development Tools
> Application Objects
> Usage Data
AOT
> System Documentation
> Tables
> SysLastValue
>(右击)> Add-Ins
> Table Browser
或通过SQL:
use AXDB
go
select *
from SysLastValue
where userid in
(
select id
from userinfo
where networkalias in ('userid1','userid2')
)
and elementname like '%print%'
and iskernel = 1
但是到目前为止,我还无法猜出哪个设置包含上次使用的打印机信息。由于 value
字段是图像类型(即 blob),我也无法根据值进行搜索。
有关如何找到此设置的任何建议都会有所帮助。
不幸的是,实际上没有 "last used printer" 存储,因为每个进程都打包并存储了上次使用的打印设置。这是一个示例,说明如何在从销售表单发布取货单后提取上次使用的打印设置。
static void JobGetPrinterSettingsPickList(Args _args)
{
container lastValues;
SalesFormLetter_PickingList pickList = new SalesFormLetter_PickingList();
SRSPrintDestinationSettings printSettings;
lastValues = xSysLastValue::getValue(curext(), curUserId(), UtilElementType::Class, classStr(SalesFormLetter_PickingList), formStr(SalesTable));
pickList.unpack(lastValues);
printSettings = new SRSPrintDestinationSettings(pickList.printerSettingsFormletter());
info(strFmt("%1", printSettings.printerName()));
info(strFmt("%1", printSettings.printerType()));
}
编辑: 啊,我看到你有一个具体的问题。检查出现问题的任何对象的 pack/unpack 和版本。这可能是问题所在。或者,如果它在几件事上,请检查它们是否都已扩展 classes 并且您需要查看父 class.
我一直在尝试查找用户上次使用的打印机的存储位置,以便我可以清除此使用数据(因为一些用户有一个问题,即尽管我们有KB981681 已安装并且打印机可用;只是在某些 AX 表单上没有默认设置。
我知道这个数据在使用数据中的某处,我可以通过 AX 浏览它:
Microsoft Dynamics AX
> Tools
> Development Tools
> Application Objects
> Usage Data
AOT
> System Documentation
> Tables
> SysLastValue
>(右击)> Add-Ins
> Table Browser
或通过SQL:
use AXDB
go
select *
from SysLastValue
where userid in
(
select id
from userinfo
where networkalias in ('userid1','userid2')
)
and elementname like '%print%'
and iskernel = 1
但是到目前为止,我还无法猜出哪个设置包含上次使用的打印机信息。由于 value
字段是图像类型(即 blob),我也无法根据值进行搜索。
有关如何找到此设置的任何建议都会有所帮助。
不幸的是,实际上没有 "last used printer" 存储,因为每个进程都打包并存储了上次使用的打印设置。这是一个示例,说明如何在从销售表单发布取货单后提取上次使用的打印设置。
static void JobGetPrinterSettingsPickList(Args _args)
{
container lastValues;
SalesFormLetter_PickingList pickList = new SalesFormLetter_PickingList();
SRSPrintDestinationSettings printSettings;
lastValues = xSysLastValue::getValue(curext(), curUserId(), UtilElementType::Class, classStr(SalesFormLetter_PickingList), formStr(SalesTable));
pickList.unpack(lastValues);
printSettings = new SRSPrintDestinationSettings(pickList.printerSettingsFormletter());
info(strFmt("%1", printSettings.printerName()));
info(strFmt("%1", printSettings.printerType()));
}
编辑: 啊,我看到你有一个具体的问题。检查出现问题的任何对象的 pack/unpack 和版本。这可能是问题所在。或者,如果它在几件事上,请检查它们是否都已扩展 classes 并且您需要查看父 class.