在ALV开发中有两个重要的对象:LAYOUT和FIELDCAT。LAYOUT主要用于设置ALV的输出格式,如输出字段的颜色、表格中的线条等;而FIELDCAT主要用于ALV结构定义,包括具体字段的名称、类型、格式等属性,它们同属于类型池SLIS,在ALV开发中必须导入类型池SLIS。
[For Example]
*ALV使用到的类型池
TYPE-POOLS:SLIS.
DATA wa_alv_field TYPE SLIS_FIELDCAT_ALV.
*列表字段 (綁定FIELD)无HEADLER LINE
DATA wa_alv_fieldcat TYPE SLIS_T_FIELDCAT_ALV.
*DATA wa_alv_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE. "有HEADLINE LINE定义的FIELDCAT
*定义数据內表
DATA wa_spfli LIKE TABLE OF SPFLI WITH HEADER LINE.
*內表賦值
SELECT * INTO TABLE wa_spfli FROM SPFLI.
*定義四FIELDCAT信息
wa_alv_field-COL_POS = 1. *ALV列索引
wa_alv_field-FIELDNAME = 'CARRID'.*ALV绑定字段
wa_alv_field-SELTEXT_M = '航班承運人'.*ALV表头显示的文字
APPEND wa_alv_field TO wa_alv_fieldcat.*內表賦值,无HEADER LINE只能APPEND...TO...
*有HEADER LINE 的FIELDCAT可以直接用对象赋值给对象
*wa_alv_fieldcat-COL_POS = 1.
*wa_alv_fieldcat-FIELDNAME = 'CARRID'.
*wa_alv_fieldcat-SELTEXT_M = '航班承運人'.
*APPEND wa_alv_fieldcat.
wa_alv_field-COL_POS = 2.
wa_alv_field-FIELDNAME = 'CONNID'.
wa_alv_field-SELTEXT_M = '航班數量'.
APPEND wa_alv_field TO wa_alv_fieldcat.
wa_alv_field-COL_POS = 3.
wa_alv_field-FIELDNAME = 'CITYFROM'.
wa_alv_field-SELTEXT_M = '起飛城市'.
APPEND wa_alv_field TO wa_alv_fieldcat.
wa_alv_field-COL_POS = 4.
wa_alv_field-FIELDNAME = 'CITYTO'.
wa_alv_field-SELTEXT_M = '目標城市'.
APPEND wa_alv_field TO wa_alv_fieldcat.
wa_alv_field-COL_POS = 5.
wa_alv_field-FIELDNAME = 'AIRPFROM'.
wa_alv_field-SELTEXT_M = '部門機場'.
APPEND wa_alv_field TO wa_alv_fieldcat.
wa_alv_field-COL_POS = 6.
wa_alv_field-FIELDNAME = 'AIRPTO'.
wa_alv_field-SELTEXT_M = '目地機場'.
APPEND wa_alv_field TO wa_alv_fieldcat.
*調用ALV顯示表單
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "'REUSE_ALV_LIST_DISPLAY' 樣式風格有點迥異
EXPORTING
IT_FIELDCAT = wa_alv_fieldcat *设置ALV显示风格 对于无HEADER LINE 也可以用wa_alv_fieldcat[],然而有HEADER LINE的只能用后者,否则程序将报错,有无HEADER LINE的FIELDCAT加上[]取回的都是表身吧。
TABLES
T_OUTTAB = wa_spfli.
程序运行界面如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端