ibm-doors - 批量新建布局DXL列+图片导出
问题描述
我有一个打算批量运行的 DXL 脚本。在这个脚本中,我们读入一个 XML 文件并根据 XML 内容为引用的模块创建新列。有时,我们需要为特定列创建布局 DXL,该列创建在画布上绘制的位图,然后调用exportPicture()
它来创建本地 PNG。
我面临的问题是,当此exportPicture()
方法批量运行时,它只会创建一个空白的 1KB 图像,但如果在通过 GUI 运行时调用相同的方法,它就可以正常工作。
我无法提供有关代码的太多详细信息,但这是我可以分享的。
创建列:
insert(column columnIndex)
dxl(column columnIndex, dxlScript)
setColumnTitle(columnIndex, columnTitle)
导出图像:
if (hasDXLCanvas(thisColumn))
{
exportPicture //-
( //-
thisColumn, //-
thisObject, //-
tempStringOf( longPictName ), //-
formatPNG_ //-
)
}
这是 DXL 布局脚本
int height = 0
int width = 0
string pictName
DBE canvas
Bitmap bitmap
pictName = getPictName( obj )
if( !null( pictName ) )
{
canvas = getCanvas()
if( !null( canvas ) )
{
bitmap = loadBitmap( canvas, pictName, true, width, height )
if( !null( bitmap ) )
{
drawBitmap( canvas, bitmap, 0, 0 )
}
destroyBitmap( canvas, bitmap )
}
}
我假设这个问题与以批处理模式在画布上绘图有关,但我可能是错的。任何方向将不胜感激。
提前致谢!
解决方案
在批处理模式下,很多 GUI 功能不可用。有些事情有一些变通方法,(例如,不允许加载视图,但您可以修改视图的属性,使要修改的视图为默认视图,然后保存并重新打开模块),但不要期望一切正常。您可能希望尝试使用交互模式和命令行开关 -dxl (-D),而不是使用批处理模式
推荐阅读
- python - 用下一个唯一值替换值
- matlab - 确定一个值是否在另一个值的某个百分比范围内
- python - 嵌套列表-Python
- javascript - 使用搜索/过滤器下拉更改值变量
- autohotkey - 自动热键 3 次点击 = 静音
- mysql - 需要帮助我的查询选择加入 where 条件
- java - 如何在 ListView 中对 TextViews 中的值进行求和和相乘并将它们显示在 toast 中?
- javascript - 如何为 Owl Carousel 2 中的选项定义回调函数?
- python-3.x - 将值从一个数组映射到另一个数组
- android - 低功耗蓝牙 (BLE) 停止响应请求。德尔福 10.2 / 安卓