ABAP--如何實現合計欄位分單位合計
1、增加一個參量 在你所要合計的FIELD 中新增一個 CFIELDNAME或者qfieldname = 你的單位的FIELD
2、Here is a simple example.
1) Add a unit field "UNIT" for PCS and TON
2) Refer to the unit measure field to the number field
REPORT ztest NO STANDARD PAGE HEADING LINE-SIZE 170.
* ALV
TYPE-POOLS: slis.
TYPES: BEGIN OF typ_data,
key(10),
num TYPE i,
unit TYPE lvc_quan,
END OF typ_data.
*--------------------------------------------------------------------
* g l o b a l d a t a
*--------------------------------------------------------------------
DATA gt_outtab TYPE TABLE OF typ_data WITH HEADER LINE.
DATA gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA gt_sort TYPE slis_t_sortinfo_alv.
DATA gs_variant TYPE disvariant.
*--------------------------------------------------------------------
* Program constructor.
*--------------------------------------------------------------------
LOAD-OF-PROGRAM.
** For Display Variant
gs_variant-report = sy-repid.
PERFORM layout_sort_build CHANGING gt_sort.
PERFORM prepare_field_catalog changing gt_fieldcat.
*--------------------------------------------------------------------
* s t a r t - o f - s e l e c t i o n.
*--------------------------------------------------------------------
START-OF-SELECTION.
PERFORM selection.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = gs_variant-report
it_fieldcat = gt_fieldcat[]
it_sort = gt_sort[]
is_variant = gs_variant
TABLES
t_outtab = gt_outtab[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form prepare_field_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM prepare_field_catalog changing lt_fieldcat TYPE slis_t_fieldcat_alv..
DATA ls_fieldcat TYPE slis_fieldcat_alv.
* Key
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KEY'. "#EC *
ls_fieldcat-tabname = 'gt_outtab'.
ls_fieldcat-reptext_ddic = 'Key'(020). "#EC *
ls_fieldcat-outputlen = 10.
ls_fieldcat-no_sum = 'X'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
* Num
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'NUM'. "#EC *
ls_fieldcat-tabname = 'gt_outtab'.
ls_fieldcat-reptext_ddic = 'Field Num'(021). "#EC *
* QFIELDNAME - unit measure field
ls_fieldcat-qfieldname = 'UNIT'. "關鍵所在
ls_fieldcat-outputlen = 10.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
* UNIT
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'UNIT'. "#EC *
ls_fieldcat-tabname = 'gt_outtab'.
ls_fieldcat-reptext_ddic = 'Field Unit'(022). "#EC *
ls_fieldcat-outputlen = 10.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
ENDFORM. "prepare_field_catalog
*---------------------------------------------------------------------*
* FORM LAYOUT_SORT_BUILD *
*---------------------------------------------------------------------*
* Sorting *
*---------------------------------------------------------------------*
* --> LT_SORT *
*---------------------------------------------------------------------*
FORM layout_sort_build CHANGING lt_sort TYPE slis_t_sortinfo_alv.
DATA ls_sort TYPE slis_sortinfo_alv.
* Key
CLEAR ls_sort.
ls_sort-fieldname = 'KEY'. "#EC *
ls_sort-spos = 1.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
APPEND ls_sort TO lt_sort.
ENDFORM. " LAYOUT_sort_build
*&---------------------------------------------------------------------*
*& Form selection
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM selection .
* load the testing data
gt_outtab-key = 'Group 1'. gt_outtab-num = 10. gt_outtab-unit = 'PCS'.
APPEND gt_outtab.
gt_outtab-key = 'Group 1'. gt_outtab-num = 10. gt_outtab-unit = 'TON'.
APPEND gt_outtab.
gt_outtab-key = 'Group 1'. gt_outtab-num = 20. gt_outtab-unit = 'PCS'.
APPEND gt_outtab.
gt_outtab-key = 'Group 2'. gt_outtab-num = 20. gt_outtab-unit = 'TON'.
APPEND gt_outtab.
gt_outtab-key = 'Group 2'. gt_outtab-num = 40. gt_outtab-unit = 'PCS'.
APPEND gt_outtab.
gt_outtab-key = 'Group 2'. gt_outtab-num = 10. gt_outtab-unit = 'TON'.
APPEND gt_outtab.
ENDFORM. " selection
相關推薦
ABAP--如何實現合計欄位分單位合計
1、增加一個參量 在你所要合計的FIELD 中新增一個 CFIELDNAME或者qfieldname = 你的單位的FIELD2、Here is a simple example. 1) Add a unit field "UNIT" for PCS and TON 2) R
在DataGrid中新增一個合計欄位
上面所用到的螢幕圖片中的 DataGrid 是一個非常典型的 DataGrid 。有許多控制 DataGrid 外觀的屬性,它使用兩個 BoundColumns 來操作資料,但這並不是最重要的。做好這項工作真正重要的是使用 DataGrid.OnItemDataBound 事
LINQ使用Orderby、ThenBy實現多欄位的排序
LINQ中的排序操作符,包括:OrderBy、OrderByDescending、ThenBy、ThenByDescending、Reverse,提供了升序或者降序排序。 OrderBy:按升序對序列的元素進行排序。 OrderByDescending:按降序對序列的元素排序。 ThenBy:按
key+value實現動態欄位的儲存設計
一般我們在儲存例如使用者資訊的時候,使用者資訊的各屬性是固定的,這時我們可以通過如下方式設計表: user(user_id, name, age, sex) 但是,如果某天呢,產品說使用者資訊需要加幾個屬性:height、weight。 此時,如果表沒什麼資料當
bootstrapTable 實現指定欄位行內編輯,無彈窗,自動儲存
最近做一個專案時,使用bootstrapTable 作為表格進行資料展示,客戶要求對數量欄位更直觀的行內編輯,研究了一下網上的方案並參考了下面的文章 bootstrapTable行內動態編輯行中某列欄位資料(優化版:無需彈框,直接在行內更新) ,對文中的程式碼進行改
python sort搭配lambda實現多欄位排序
sort的常用方法你一定都會了,但是如果要排序的物件的每個元素又含有多個元素,要按指定的內部某個元素排序該怎麼實現呢?正常是這樣來做的: >>> def return_item(item): ... return item[1] >>> pairs
easyui 實現表格欄位排序
首先注意:排序的欄位不能是字串的型別,就是所說的中文吧,如果中文排序也沒什麼意義 html程式碼 $('#myTable').treegrid({ url:'/category/position/Test', idField:'id',
MySQL 實現一個欄位賦值給另一個欄位
1.將同一個表中的一個欄位的值複製給另一個欄位 UPDATE t_user SET signed_time = create_time 12 2.將同一個表中兩個型別一樣的欄位的值互換 UPDATE t_user u1, t_user u2 SET u1.signed_time =
mysql,實現某個欄位從特定數字開始自增編碼
mysql資料庫使用Navicat工具新建更新SQL,實現某個欄位從特定數字開始自增編碼 set @rownum=10004243; update webdata set AR_ID=( select @rownum := @rownum +1 as nid); set @r
abap取某欄位最大值的方法
1.在表中降序/升序後取出第一行,如SELECT MATNR INTO TABLE @DATA(LT_MAKT) FROM MAKT UP TO 1 ROWS ORDER BY MA
資料脫敏——基於Java自定義註解實現日誌欄位脫敏
上文說了資料過敏主要有兩個思路:第一個就是在序列化實體之前先把需要脫敏的欄位進行處理,之後正常序列化;第二個就是在實體序列化的時候,對要脫敏的欄位進行處理。 脫敏實現思路 這裡探討第一種方法,用基於自定義註解的方式實現日誌脫敏。 要對
mysql中實現按欄位部分升序,部分降序的方法
mysql order排序時可以通過asc引數實現升序,desc引數實現降序。 例如: 升序排序:select * from 表名 order by 欄位 asc (mysql預設是升序排列) 降序排序:select * from 表名 order by
ABAP:BAPI_ACC_DOCUMENT_POST擴充套件欄位
READ TABLE lt_alv INDEX 1. IF sy-subrc = 0. documentheader-comp_code = lt_alv-bukrs. documentheader-fisc_year = lv_endda+0(4).. docum
Oracle case when 實現資料欄位資料的判斷過濾
需求 現在有一份管線資料,表中含有欄位buildTime說明了管線的建設日期,我們需要按時間段統計管線的資料 這是,我們需要對管線表中建設日期所對應的欄位進行分類 實現如下: 實現 對現有的資料進行分類判斷過濾,使用到了 case when ca
開發筆記:基於EntityFramework.Extended用EF實現指定欄位的更新
今天在將一個專案中使用儲存過程的遺留程式碼遷移至新的架構時,遇到了一個問題——如何用EF實現資料庫中指定欄位的更新(根據UserId更新Users表中的FaceUrl與AvatarUrl欄位)? 原先呼叫儲存過程的程式碼: public bool UpdateAvatar(Guid userId, s
CI框架實現某欄位自加數值
在CI框架中怎麼實現給某欄位自加某個值呢,很簡單框架中有自帶的方法:$this->db->set('欄位名', '欄位名+你要增加的數值', FALSE); 示例:$this->db-
使用astype實現dataframe欄位型別轉換
在有些情況下,我們需要在DataFrame型別的資料中通過切片獲得我們所需要的資料,然後轉換為我們所需要的型別。Dataframe資料型別的轉換需要用到astype函式。 # encoding: utf-8 import pandas as pd df
關於ABAP輸入螢幕欄位只讀問題
客戶提出輸入螢幕欄位,強制設定為只允許讀,不允許輸入的要求 找了下資料,網上都沒有類似的資料查詢,雖然這功能確實不怎麼包含技術含量,但這裡還是寫一下吧 有兩種方式: 方法一: ABAP程式碼控制螢幕欄位為只讀,程式碼如下 務必將程式碼放在程式最後執行 方法二: 通過屏編譯
python streaming 實現某個欄位排序
一,hadoop streaming預設情況1,在hadoop streaming的預設情況下,是以\t作為分隔符的,標準輸入時,每行的第一個\t之前的內容作為key,第一個\t之後的內容作為value。注意,如果一個\t字元都沒有,那麼整行作為key。2,streaming
c# Datagridview控制元件實現指定欄位查詢功能【未解決】
當一個Datagridview控制元件中資料特別多時(多到離譜),我們無法去用肉眼去識別我們需要刪除或者修改的資料,那麼,就需要找苦逼的程式設計師來實現這個功能了。 這裡我將以一個產品BOM清單為例: 在這個產品BOM清單中,查詢條件有三個,分別是:貨品名稱