OO SALV的欄位功能

SALV的欄位功能主要是通過CL_SALV_COLUMN_TABLE和CL_SALV_COLUMNS_TABLE這兩個類的實現的。
SALV的欄位屬性的詳細功能包括異常狀態圖標、圖標、符號、復選框、按鈕、熱點、超鏈接、單元格類型、單元格顏色、某一欄位顏色、某一行顏色,欄位隱藏等。

關于顏色等樣式屬性,可以單獨設置,也可以通過單元格(cell)style去設置。可以查看接口IF_SALV_C_CELL_TYPE,如下:

具體實現方法如下:
在SALV的輸入參數內表中定義一個保存style的字段,字段類型為salv_t_int4_column,是個表類型,表類型中的結構(structure)定義如下,由一個列名和對應值組成。當不指定列名,只對value賦值,意味著整行的單元格都應用同一個style,如果指定列名,則對指定的與列名相同的應用style。設置好后要保存到內表中。

關于事件的實現,其中要能讀到內表,所以要將內表放到能調取到的地方。具體各種事件參見類,代碼以熱點及雙擊事件作為代表。

REPORT  ZSALV02.
TABLES:VBAK.
TYPE-POOLS: ICON, SLIS,SYM.
CLASS SALV_DISPLAY DEFINITION.PUBLIC SECTION.METHODS:DATA_DISPLAY.PRIVATE SECTION.TYPES:BEGIN OF TY_DATA,CHECKBOX   TYPE CHAR1,T_COLOR    TYPE LVC_T_SCOL,T_CELLTYPE TYPE SALV_T_INT4_COLUMN,VBELN      TYPE VBAK-VBELN,ERDAT      TYPE VBAK-ERDAT,ERZET      TYPE VBAK-ERZET,ERNAM      TYPE VBAK-ERNAM,AUART      TYPE VBAK-AUART,NETWR      TYPE VBAK-NETWR,END OF TY_DATA.DATA:LT_DATA TYPE STANDARD TABLE OF TY_DATA,WA_DATA TYPE TY_DATA.DATA:S_ALV TYPE REF TO CL_SALV_TABLE.DATA:LR_FUNCTIONS           TYPE REF TO CL_SALV_FUNCTIONS,LR_EVENTS              TYPE REF TO CL_SALV_EVENTS_TABLE,LR_COLUMNS             TYPE REF TO CL_SALV_COLUMNS_TABLE,LR_COLUMN              TYPE REF TO CL_SALV_COLUMN_TABLE,LR_FUNCTIONAL_SETTINGS TYPE REF TO CL_SALV_FUNCTIONAL_SETTINGS.DATA: G_COLOR  TYPE LVC_S_COLO, "列顏色LS_COLOR TYPE LVC_S_SCOL,LT_COLOR TYPE LVC_T_SCOL. "行顏色及單元格顏色DATA: LT_CELLTYPE TYPE SALV_T_INT4_COLUMN.DATA: LS_CELLTYPE LIKE LINE OF LT_CELLTYPE.METHODS:COLUMN_SET CHANGING P_ALV TYPE REF TO CL_SALV_TABLE,ON_LINK_CLICK FOR EVENT LINK_CLICK OF CL_SALV_EVENTS_TABLE IMPORTINGROW"事件觸發所在的行號COLUMN,"事件觸發所在的列名HOTPOT_CLICK FOR EVENT LINK_CLICK OF CL_SALV_EVENTS_TABLE IMPORTINGROW "事件觸發所在的行號COLUMN,"事件觸發所在的列名DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_SALV_EVENTS_TABLE IMPORTINGROW "事件觸發所在的行號COLUMN."事件觸發所在的列名
ENDCLASS.CLASS SALV_DISPLAY IMPLEMENTATION.METHOD DATA_DISPLAY.DEFINE ADD_COLOR.CLEAR LS_COLOR.LS_COLOR-FNAME = &1.LS_COLOR-COLOR-COL = &2.LS_COLOR-COLOR-INT = 1.LS_COLOR-COLOR-INV = 0.LS_COLOR-NOKEYCOL = 'X'.APPEND LS_COLOR TO LT_COLOR.END-OF-DEFINITION.SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE LT_DATA  UP TO 20 ROWS.WA_DATA-NETWR = 2222222222.APPEND WA_DATA TO LT_DATA.CLEAR:WA_DATA.LOOP AT LT_DATA INTO WA_DATA.IF WA_DATA-NETWR > 1000."單元格顏色條件LS_COLOR-FNAME = 'NETWR'.LS_COLOR-COLOR-COL = '5'.LS_COLOR-COLOR-INT = '0'."加深LS_COLOR-COLOR-INV = '0'."前景背景顏色反轉APPEND LS_COLOR TO  LT_COLOR.WA_DATA-T_COLOR = LT_COLOR.MODIFY LT_DATA FROM WA_DATA.CLEAR:LS_COLOR,LT_COLOR."注意每次刷新內表及工作區ENDIF.IF WA_DATA-AUART = 'ZCQ'.
*        ADD_COLOR 'VBELN' 4."行顏色可以使用宏對每個單元格定義
*        ADD_COLOR 'ERDAT' 4.
*        ADD_COLOR 'ERZET' 4.
*        ADD_COLOR 'ERNAM' 4.
*        ADD_COLOR 'AUART' 4.
*        ADD_COLOR 'NETWR' 4.LS_COLOR-COLOR-COL = COL_NEGATIVE."行顏色也可以不指定列名就是整行LS_COLOR-COLOR-INT = '0'."加深LS_COLOR-COLOR-INV = '0'."前景背景顏色反轉APPEND LS_COLOR TO  LT_COLOR.WA_DATA-T_COLOR = LT_COLOR.MODIFY LT_DATA FROM WA_DATA.CLEAR:LS_COLOR,LT_COLOR."注意每次刷新內表及工作區ENDIF.
*     ZZK的訂單類型單元格設定成按鈕IF WA_DATA-AUART = 'ZZK'.LS_CELLTYPE-COLUMNNAME = 'AUART'.LS_CELLTYPE-VALUE      = IF_SALV_C_CELL_TYPE=>BUTTON.APPEND LS_CELLTYPE TO LT_CELLTYPE.WA_DATA-T_CELLTYPE = LT_CELLTYPE.MODIFY LT_DATA FROM WA_DATA.CLEAR:LS_COLOR,LT_COLOR,LS_CELLTYPE,LT_CELLTYPE."注意每次刷新內表及工作區ENDIF.
*     只有用戶名為80181007 ERNAM列設定hotspotIF WA_DATA-ERNAM = '80181007'.LS_CELLTYPE-COLUMNNAME = 'ERNAM'.LS_CELLTYPE-VALUE      = IF_SALV_C_CELL_TYPE=>HOTSPOT.APPEND LS_CELLTYPE TO LT_CELLTYPE.WA_DATA-T_CELLTYPE = LT_CELLTYPE.MODIFY LT_DATA FROM WA_DATA.CLEAR:WA_DATA,LS_COLOR,LT_COLOR,LS_CELLTYPE,LT_CELLTYPE."注意每次刷新內表及工作區ENDIF.ENDLOOP.TRY  .CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = S_ALV CHANGING T_TABLE = LT_DATA ).CATCH  CX_SALV_MSG.ENDTRY."顯示ALV的標準功能LR_FUNCTIONS = S_ALV->GET_FUNCTIONS( ).LR_FUNCTIONS->SET_ALL( 'X' ).ME->COLUMN_SET( CHANGING P_ALV = S_ALV )."=====事件注冊
*    DATA:HANDLER TYPE REF TO LCL_HANDLE_EVENTS.LR_EVENTS = S_ALV->GET_EVENT( )."注冊事件至類
*    CREATE OBJECT HANDLER.SET HANDLER ME->HOTPOT_CLICK FOR LR_EVENTS.SET HANDLER ME->DOUBLE_CLICK FOR LR_EVENTS.SET HANDLER ME->ON_LINK_CLICK FOR LR_EVENTS.S_ALV->DISPLAY( ).ENDMETHOD.METHOD COLUMN_SET.LR_COLUMNS = P_ALV->GET_COLUMNS( ).
*    LR_COLUMNS->SET_OPTIMIZE( 'X' )."設置全局列寬優化LR_COLUMNS->SET_HEADERS_VISIBLE( 'X' ).   "設置標題欄是否可見LR_FUNCTIONAL_SETTINGS = S_ALV->GET_FUNCTIONAL_SETTINGS( ).TRY .LR_COLUMNS->SET_CELL_TYPE_COLUMN( 'T_CELLTYPE' ).LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'VBELN' ).LR_COLUMN->SET_MEDIUM_TEXT( '銷售訂單號2')."修改列名LR_COLUMN->SET_VISIBLE( 'X' )."可以設置列不可見LR_COLUMN->SET_OPTIMIZED( 'X' )."單獨設置列寬自適應LR_COLUMN->SET_CELL_TYPE( IF_SALV_C_CELL_TYPE=>HOTSPOT ).LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'ERDAT' ).G_COLOR-COL = '6'.G_COLOR-INT = '1'.G_COLOR-INV = '0'.LR_COLUMN->SET_COLOR( G_COLOR )."設置列顏色LR_COLUMNS->SET_COLOR_COLUMN( 'T_COLOR' )."設置行顏色及單元格顏色"設置復選框欄位LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'CHECKBOX' ).LR_COLUMN->SET_CELL_TYPE( IF_SALV_C_CELL_TYPE=>CHECKBOX_HOTSPOT ).LR_COLUMN->SET_LONG_TEXT( '選擇' )."設置熱點LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'VBELN' ).LR_COLUMN->SET_CELL_TYPE( IF_SALV_C_CELL_TYPE=>HOTSPOT ).CATCH CX_SALV_NOT_FOUND.CATCH CX_SALV_DATA_ERROR.CATCH CX_SALV_EXISTING.ENDTRY.ENDMETHOD.METHOD HOTPOT_CLICK.
*    MESSAGE '你單擊了我' TYPE 'I'.READ TABLE ME->LT_DATA INTO WA_DATA INDEX ROW."讀當前行CASE COLUMN."取列名WHEN 'VBELN'.SET PARAMETER ID 'AUN'  FIELD WA_DATA-VBELN.CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.ENDCASE.ENDMETHOD.METHOD DOUBLE_CLICK.
*    MESSAGE '你雙擊了我' TYPE 'I'.READ TABLE ME->LT_DATA INTO WA_DATA INDEX ROW."讀當前行CASE COLUMN."取列名WHEN 'ERNAM'.SET PARAMETER ID 'XUS'  FIELD WA_DATA-ERNAM.CALL TRANSACTION 'ZSD053' AND SKIP FIRST SCREEN.ENDCASE.ENDMETHOD.METHOD ON_LINK_CLICK."復選框選中操作READ TABLE ME->LT_DATA ASSIGNING FIELD-SYMBOL(<FS_DATA>) INDEX ROW."讀當前行IF <FS_DATA>-CHECKBOX EQ ''.<FS_DATA>-CHECKBOX = 'X'.ELSE.<FS_DATA>-CHECKBOX = ''.ENDIF.ME->S_ALV->REFRESH( ).ENDMETHOD.
ENDCLASS.START-OF-SELECTION.DATA:LR_DISPLAY TYPE REF TO SALV_DISPLAY.CREATE OBJECT LR_DISPLAY.LR_DISPLAY->DATA_DISPLAY( ).

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92279.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92279.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第2章:建模篇——第1節:點線面的選擇與控制

目錄 1.模式的切換 &#xff08;1&#xff09;編輯模式的切換 &#xff08;2&#xff09;點線面的切換 2.點線面的選擇 &#xff08;1&#xff09;選擇的設置 &#xff08;2&#xff09;循環選擇 3.點線面的控制 4.總結 1.模式的切換 &#xff08;1&#xff09;編輯模…

深入解析嵌套事務:原理與應用

嵌套事務是指在事務執行過程中啟動另一個事務形成的層級調用結構&#xff0c;主要用于處理跨服務或復雜業務場景的事務一致性控制。其核心是通過事務傳播機制管理多個操作的原子性&#xff0c;具體原理和應用如下&#xff1a;一、核心概念與工作原理層級結構 嵌套事務由頂層事務…

[激光原理與應用-168]:測量儀器 - 對光學指標進行測量的儀器

一、基礎光學參數測量儀器 - 頻率/波長/功率光學顯微鏡用途&#xff1a;觀察微小物體的顯微圖像&#xff0c;用于材料科學、生物學等領域。特點&#xff1a;高放大倍數和分辨率&#xff0c;可清晰顯示微觀結構。光譜分析儀用途&#xff1a;測量發光體的輻射光譜&#xff0c;分析…

MPC-in-the-Head 轉換入門指南

1. 引言 本文將探討構建零知識證明&#xff08;ZKP&#xff09;的一種非常有趣的方法&#xff1a; MPC-in-the-Head Transformation&#xff08;轉換&#xff09;。 該方法最早由 2007 年的論文 Zero-knowledge from secure multiparty computation 提出&#xff0c;通常被稱…

SpringBoot的優缺點

題目詳細答案優點快速開發&#xff1a;Spring Boot 通過自動配置和大量的開箱即用功能&#xff0c;使得開發者可以快速啟動和運行一個應用程序&#xff0c;無需進行繁瑣的配置工作。簡化配置&#xff1a;Spring Boot 提供了自動配置和 "starter" 依賴&#xff0c;簡化…

[激光原理與應用-171]:測量儀器 - 能量型 - 激光能量計(單脈沖能量測量)

一、工作原理激光能量計通過光電效應或光熱效應將激光脈沖能量轉換為可測量的物理信號&#xff0c;核心原理可分為兩類&#xff1a;光電型原理光電效應&#xff1a;激光照射光電材料&#xff08;如硅、硒化鋅&#xff09;時&#xff0c;光子激發電子產生光電流或光電壓。通過測…

四、應急響應

一、linux入侵排查 思路: 1、查看帳號 查看/etc/passwd文件中使用 /bin/bash 作為默認 shell 的用戶。 查詢特權用戶特權用戶(uid 為0) 查詢可以遠程登錄的帳號信息 除root帳號外&#xff0c;其他帳號是否存在sudo權限。 禁用或刪除多余及可疑的帳號 用find命令查看擁有…

類和對象(中):類的默認成員函數、構造函數、析構函數

&#x1f525;個人主頁&#xff1a;胡蘿卜3.0 &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》《數據結構》 《C干貨分享》 ??人生格言&#xff1a;不試試怎么知道自己行不行 目錄 一、類的默認成員函數 二、構造函數 三…

如何優雅地刷力扣 LeetCode - Easy

Source 力扣LeetCode題庫 App > LeetCode > 題庫 > 題解 Notes 仔細審題&#xff0c;明確輸入輸出&#xff0c;通過測試用例。先特殊&#xff0c;后尋常。逆向思維。 在條件語句中用!代替&#xff0c;提前終止循環&#xff0c;減少嵌套層級&#xff08;else&#…

AI繪畫:生成唐初程咬金全身像提示詞

根據唐代歷史記載和藝術形象特征&#xff0c;以下是優化后的中文Midjourney 提示詞&#xff0c;突出程咬金的猛將氣質與唐初甲胄細節&#xff1a; 核心提示詞&#xff08;戰場形象&#xff09; 中年猛將程咬金&#xff0c;全身甲胄像&#xff0c;唐初光要甲制式&#xff1a;身…

【實時Linux實戰系列】實時數據流處理框架分析

背景與重要性在當今數字化時代&#xff0c;數據的實時處理變得至關重要。無論是金融交易、工業自動化還是物聯網&#xff08;IoT&#xff09;設備&#xff0c;都需要能夠快速處理和響應數據流&#xff0c;以確保系統的高效運行和決策的及時性。實時Linux操作系統因其低延遲和高…

一周學會Matplotlib3 Python 數據可視化-Hello World編寫

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili Matplotlib3簡介 Matplotlib 是 Python 最流行的數據可視化庫之一&#xff0c;廣泛應用于科學計算、數據分析、科研繪…

中國MCP市場:騰訊、阿里、百度的本土化實踐

中國MCP市場&#xff1a;騰訊、阿里、百度的本土化實踐 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是我放飛的…

房產證識別在房產行業的技術實現及應用原理

技術實現1. 圖像采集與預處理圖像獲取&#xff1a;通過高分辨率掃描儀或手機攝像頭獲取房產證圖像預處理技術&#xff1a;去噪處理&#xff08;消除掃描噪聲&#xff09;圖像增強&#xff08;提高對比度&#xff09;傾斜校正&#xff08;自動旋轉至正確角度&#xff09;二值化處…

決策樹技術詳解:從理論到Python實戰

?決策樹像人類的思考過程&#xff0c;用一系列“是/否”問題層層逼近答案?一、決策樹的核心本質決策樹是一種模仿人類決策過程的樹形結構分類/回歸模型。它通過節點&#xff08;問題&#xff09;?? 和 ?邊&#xff08;答案&#xff09;?? 構建路徑&#xff0c;最終在葉節…

Herd-proof thinking

Let’s dive into “herd-proof thinking” — the mindset and tactics that help you stay sharp, independent, and immune to manipulative systems.&#x1f9e0; Part 1: The Foundation of Herd-Proof Thinking 1. Recognize Incentives“If you don’t know who the pr…

day068-DevOps基本知識與搭建遠程倉庫

文章目錄0. 老男孩思想-傳統文化1. 運維人員對網站集群的關注項2. CI、CD3. DevOps4. 環境5. Git5.1 **為什么叫 “Git”&#xff1f;**5.2 Git的核心設計理念5.3 Git工作空間5.4 分支 branch5.5 命令5.5.1 配置git用戶信息5.5.2 初始化git倉庫5.5.3 將文件放入暫存區5.5.4 提交…

分布式文件系統07-小文件系統的請求異步化高并發性能優化

小文件系統的請求異步化高并發性能優化222_分布式圖片存儲系統中的高性能指的到底是什么&#xff1f;重構系統架構&#xff0c;來實現一個高性能。然后就要做非常完善的一個測試&#xff0c;最后對這個系統做一個總結&#xff0c;說說后續我們還要做一些什么東西。另外&#xf…

【C#補全計劃:類和對象(十)】密封

一、密封類1. 關鍵字&#xff1a;sealed2. 作用&#xff1a;使類無法再被繼承&#xff1b;在面向對象設計中&#xff0c;密封類的主要作用是不允許最底層子類被繼承&#xff0c;可以保證程序的規范性、安全性3. 使用&#xff1a;using System;namespace Sealed {// 使用sealed關…

【視覺識別】Ubuntu 22.04 上安裝和配置 TigerVNC 魯班貓V5

系列文章目錄 文章目錄系列文章目錄前言一、問題現象二、安裝和配置步驟1.引入庫2.安裝完整組件3.修改 ~/.vnc/xstartup4. 設置權限5. 設置開機自啟&#xff08;Systemd 服務&#xff09;總結前言 開發平臺&#xff1a;魯班貓V5 RK3588 系統版本&#xff1a;Ubuntu 22.04 一、…