问题标签 [alv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
types - 抑制 ALV 中 DDIC 类型 CURR 和 QUAN 的符号
最终,我发现了一个令人惊讶的事实,即货币和数量的内部 ABAP 字典类型(基于它们的数据元素)隐式保存符号信息,无论在数据元素域中设置了什么设置。
即使使用上述域,数据元素也会保留 ALV 中的符号。我们可以防止 ALV(或 ABAP)出现这种行为吗?
我彻底阅读了有关CURR和QUAN的文档,但没有找到任何关于符号的词。有人可以解释一下吗?
我结束的唯一解决方案是使用基于 DEC 的 DEC 类型和数据元素。
补充:检查所描述问题的简单测试
1. 创建三个变量类型BNOMS
(域BWHR
)、MATQUAN
(域MENG10
)和MENGEP
(域MENGEP
)。所有这些类型都是标准 DDIC 类型,在域中具有未选中的符号字段。
2. 为它们分配一个负值
3. 将它们输出到 ALV
由于BNOMS
和MATQUAN
类型是 CURR 和 QUAN 类型,它们无论如何都会输出符号,而不会输出符号MENGEP
,因为它具有 DEC 类型。在运行时,它们保留的所有符号都在 ALV DEC 类型的域限制中得到尊重,所以我倾向于认为这是更多与 ALV 相关的问题。
abap - cl_salv_table 的应用程序工具栏中的自定义按钮?
我正在使用 制作报告cl_salv_table
,并且我想在 ALV 网格的工具栏上制作一个按钮,该按钮将显示一个预定义的弹出窗口。
我能够在工具栏上创建一个按钮并将“功能代码”设置为详细信息,并且我在调试模式下看到单击按钮时“sy-ucomm”设置为详细信息,但它没有进入案例循环.
任何帮助或建议将不胜感激。
abap - RTTS 创建的带有 itab 的任何 ALV 细节?
我通过两个步骤创建内部表,都参考了 RTTS 技术。第一步将一个制表符分隔的文件加载并解析到一个表中。第二步通过 RTTI 读取该表,然后进行硬编码,在文件中的旧列前面添加一些其他列,最后再次添加旧字段,该表现在有大约 12 个新的硬编码列,在那些前面从文件中。RTTS 帮助创建最终表,然后将其作为数据源传递给 ALV 网格。
我之前的要求没有考虑到最终用户将永远需要 ALV-grid-toolbar-functions,但是,与往常一样,这已经改变了。我启用了工具栏功能,默认功能,没有任何自定义按钮。
因此,现在用户可以从显示中删除一些列或重新添加它们,她/他也可以更改它们的顺序。一切都很好,但我从未遇到过在运行时创建的表的这种情况。
是否有我需要注意的特殊罪魁祸首?
abap - 如何在弹出窗口中调用事务?
我在 ALV 中的呼叫事务有问题。现在我想在我的弹出窗口中双击行时调用事务。它可能与否?
感谢您的回答,我使用 user_command '&IC1' -双击调用带有数据的弹出窗口:
表格弹出:
它在我的顶部的实现和定义:lcl_handle_events
这在 ALV 中包括:
abap - 按数据类型动态隐藏 ALV 列
背景:我正在使用cl_salv_table
该类来生成和修改 ALV。此 ALV 显示一个类型的表zpm_et_qual_notif_s
,其中每个偶数行都是一个CHAR
长度类型的分隔符字段,1
其中包含名称DELIM1
等DELIM2
。由于没有理由在 ALV 中显示分隔符列,我想删除它们。
注意:我在标题中留下了“ABAP 字典/内部结构”的通用名称,因为我是否从 ABAP 字典结构或我定义的内部表中确定列数对我来说并不重要。
对我来说,简单的解决方案是拥有这 15 个语句,因为目前有 15 个分隔符字段:
这样做的问题是,如果将新字段添加到表中,我的程序也必须更新。出于这个原因,并且这种方法需要许多几乎重复的行,我发现这是一个草率的解决方案。
我认为更清洁的解决方案是以如下方式动态设置所有分隔符列的可见性:
这很好,因为它是一个简单的解决方案并且引入了最小的开销。但是,我仍然有必须对分隔符列的数量进行硬编码的问题。一个理想的解决方案可以让我这样做:
……当然,这不是一回事。
如何动态获取我的内部表或它所基于的 ABAP 字典结构的列数?当然,对此有一些动态的解决方案。试图自己解决这个问题导致我玩弄cl_abap_structdescr
and cl_abap_tabledescr
,但没有任何实质性的结果。如果我的整个方法不好,我很乐意改变它以遵循良好的做法。
abap - 如何在同一系统中的客户端之间复制 ALV 布局?
我将 ALV 布局保存在存在数据的系统中,但无法从测试系统(存在测试数据的系统)传输这些变体。所以我必须在开发系统中创建相同的布局变体,由于缺乏测试数据,这是不可能的。请提供一种方法来实现这一点。
reference - 在 ABAP 中可以对 cl_gui_alv_grid 对象进行脏分配吗?
需要验证通过主题中提到的技巧可以轻松解决的新需求。
除了顾问所说的肮脏的认识之外,他还允许我们使用肮脏的分配。
所以我开始,在一个 BADI 方法中,让两个脏分配正常工作。
一种是分配一个不引用 GUI 对象的对象,另一种是仅分配一个数据表。两者都驻留在同一个其他程序中。
现在我想从同一个程序的 ALV 网格之一中分配一个字段符号。
SY-SUBRC
返回0
,但后面的字段符号指向INITIAL
。我可以想象,就安全性而言,这是不允许的。
无论如何,我只是在这里要求对我的假设进行确认或更正。
abap - 将报告显示从 ALV Grid 更改为 ALV List Viewer
我被要求将 ALV 网格报告更改为 ALV 列表查看器。到目前为止,我发现我唯一需要的是替换REUSE_ALV_GRID_DISPLAY
函数REUSE_ALV_LIST_DISPLAY
(如果我错了,请纠正我)。
但是,我需要更改的报告正在使用cl_gui_alv_grid
不使用上述功能的类。
我可以做些什么来更改报告使用cl_gui_alv_grid
?还是没有办法,我必须重写代码并使用REUSE_ALV_LIST_DISPLAY
?
abap - 在内部表 ALV 上添加/更改列名
我需要为这两列添加标题(以黄色突出显示),我不知道该怎么做。