文章目录

  • 1 .通过权限来隐藏某些字段(frm_auth_check).
  • 2.damo .

1 .通过权限来隐藏某些字段(frm_auth_check).

不过要通过校色管理来控制(PFCG).

2.damo .

*&---------------------------------------------------------------------*
*& Report  ZMM051
*&
*&---------------------------------------------------------------------*
*&产销存报表
*&
*&---------------------------------------------------------------------*REPORT zmm051.
TYPE-POOLS: slis.
TABLES:mkol,mbew,marc,t024,agr_users, mseg.
*数据声明
DATA: BEGIN OF item OCCURS 0,meins      LIKE mara-meins,matnr      LIKE mseg-matnr,maktx      LIKE makt-maktx,werks      LIKE mseg-werks,bwart      LIKE mseg-bwart,       "移动类型lgort      LIKE mseg-lgort,budat_mkpf LIKE mseg-budat_mkpf,menge      LIKE mseg-menge,"数量zrkl       TYPE p DECIMALS 3,     "当前库存"总入库量zckl       TYPE p DECIMALS 3,     "当前库存"总出库量zbyrk      TYPE p DECIMALS 3,"     "到最小日期期初库存中本月入库数量zbyrk1     TYPE p DECIMALS 3,"    "到最大日期期初库存中本月入库数量zsyjy      TYPE p DECIMALS 3,"    "上月结余库存za         TYPE p DECIMALS 3,"   LIKE mard-labst,"当前库存"期初库存zb         TYPE p DECIMALS 3,"   LIKE mard-labst,"当前库存期末库存"zb         LIKE mseg-menge,"期末库存shkzg      LIKE mseg-shkzg,peinh      LIKE mbew-peinh,"价格单位stprs      LIKE mbew-stprs,"标准价格bzdj       LIKE mbew-stprs,"标准单价zajz       TYPE p DECIMALS 3,"    LIKE mbew-stprs,"期初库存价值zbjz       TYPE p DECIMALS 3,"   LIKE mbew-stprs,"期末库存价值zrkjz      TYPE p DECIMALS 3,"   LIKE mbew-stprs,"总入库价值zckjz      TYPE p DECIMALS 3,"   LIKE mbew-stprs,"总出库价值ekgrp      LIKE marc-ekgrp,"采购组eknam      LIKE t024-eknam,"采购组描述labst      LIKE mard-labst,"当前库存zzqt       LIKE mard-labst,"清退数量zcrk       TYPE i,         "总装整车入库数量zcxs       TYPE i,         "整车销售数量zeile      TYPE mseg-zeile,         "整车销售数量slabs      TYPE mkol-slabs,         "寄售当前库存"  klabs      TYPE mard-klabs,         "寄售当前库存lifnr      LIKE mseg-lifnr,sobkz      LIKE mseg-sobkz,END OF item.DATA: gd_repid LIKE sy-repid.
DATA: i_grid_settings TYPE lvc_s_glay.
DATA: item1 LIKE TABLE OF item WITH HEADER LINE.
DATA: ita LIKE TABLE OF item WITH HEADER LINE.
DATA: itb LIKE TABLE OF item WITH HEADER LINE.
DATA: itc LIKE TABLE OF item WITH HEADER LINE.               "输出到sf 的抬头数据
DATA: lft_i LIKE TABLE OF item WITH HEADER LINE.               "输出到sf 的项目数据
DATA: is_i LIKE TABLE OF item  WITH HEADER LINE.
DATA: lt_ztpp015 LIKE TABLE OF ztpp015 WITH HEADER LINE.
DATA: l_zdbls   LIKE zjlst-zdbls,l_con(30),"过度变量l_num     TYPE numc4.
DATA: p_zjlst LIKE TABLE OF zjlst  WITH HEADER LINE.
DATA: l_ztsycs LIKE TABLE OF ztsycs WITH HEADER LINE.
DATA: afield TYPE slis_fieldcat_alv.
DATA: fieldcat TYPE TABLE OF slis_fieldcat_alv WITH HEADER LINE.
DATA: layout TYPE slis_layout_alv.
DATA: l_pos TYPE i VALUE 1.
DATA: s_i TYPE i .
DATA: l_erdat LIKE sy-datum.
DATA: l_a LIKE sy-datum,l_b LIKE sy-datum."年度月度控制
DATA: wa_i LIKE item.
DATA: zbz(1).
DATA: BEGIN OF itd OCCURS 0 ,mblnr LIKE mseg-mblnr,mjahr LIKE mseg-mjahr,END OF itd.
*宏的定义
DEFINE fill.afield-col_pos = l_pos.afield-fieldname = &1.afield-seltext_l = &2.afield-no_zero   = &3.afield-key       = &4.afield-qfieldname    = &5.   "  去掉小数点后边0      = &5.*  IF afield-fieldname = 'ZA'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
*  IF afield-fieldname = 'ZCKL'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
* IF afield-fieldname = 'ZZQT'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
* IF afield-fieldname = 'ZRKL'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
* IF afield-fieldname = 'ZB'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
* IF afield-fieldname = 'ZCRK'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.
* IF afield-fieldname = 'ZCXS'.
*    afield-DECIMALS_OUT = '0'.         "去掉小数点后边0
* ENDIF.append afield to fieldcat.clear afield.l_pos = l_pos + 1.
END-OF-DEFINITION.
*筛选界面
SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
PARAMETERS:         p_werks  LIKE mseg-werks OBLIGATORY DEFAULT '2100',p_lgort  LIKE mseg-lgort OBLIGATORY.
SELECT-OPTIONS      p_matnr  FOR mseg-matnr .
SELECT-OPTIONS     p_lifnr  FOR mkol-lifnr .
SELECT-OPTIONS      p_ekgrp  FOR marc-ekgrp .
SELECT-OPTIONS      p_erdat  FOR mseg-budat_mkpf OBLIGATORY .
SELECTION-SCREEN END OF BLOCK blc.INITIALIZATION.p_erdat-option = 'BT'.p_erdat-sign = 'I'.p_erdat-low = sy-datum.p_erdat-low+6(2) = '01'.p_erdat-high = sy-datum.APPEND p_erdat.
*取数
START-OF-SELECTION.PERFORM frm_auth_check.PERFORM frm_get_data.                 "获取数据IF item[] IS NOT INITIAL.PERFORM frm_modify.PERFORM frm_show_data.ELSE.MESSAGE s001(00) WITH '没有查询到数据'.ENDIF.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .CLEAR:l_a,l_b.l_a = p_erdat-low.l_b = sy-datum."取当前所有物料抬头数据
*  SELECT MARD~matnr MARD~lgort MARD~werks MARD~labst  MARD~klabs  INTO CORRESPONDING FIELDS OF TABLE item
*    FROM mard
*    WHERE MARD~werks = p_werks
*    AND MARD~lgort = p_lgort
*    AND MARD~matnr IN p_matnr.SELECT mard~matnr mard~lgort mard~werks mard~labst    INTO CORRESPONDING FIELDS OF TABLE itemFROM mardWHERE mard~werks = p_werksAND mard~lgort = p_lgortAND mard~matnr IN p_matnr.DELETE item WHERE labst = 0.SELECT mkol~matnr mkol~lgort mkol~werks  mkol~slabs mkol~lifnr  INTO CORRESPONDING FIELDS OF TABLE item1                  "add it by jingguilin 20210415FROM mkolWHERE mkol~werks = p_werksAND mkol~lgort = p_lgortAND mkol~matnr IN p_matnr.DELETE item1 WHERE slabs = 0.LOOP AT item1.MOVE-CORRESPONDING item1 TO item.APPEND item.CLEAR item.ENDLOOP.*  SELECT mblnr mjahr INTO CORRESPONDING FIELDS OF TABLE itd
*  FROM mkpf CLIENT SPECIFIED
*  WHERE budat BETWEEN l_a AND l_b
*  AND mandt = sy-mandt.
*  "取一段时间内总入库量
*  IF itd[] IS NOT INITIAL .
*    SELECT zeile matnr lgort budat_mkpf bwart menge shkzg INTO CORRESPONDING FIELDS OF TABLE ita
*    FROM mseg
*    CLIENT SPECIFIED "取出物料、库存地点、物料金额、移动类型、数量、借贷标识
*    FOR ALL ENTRIES IN itd
*    WHERE
*    mandt = sy-mandt
*    AND mjahr = itd-mjahr
*    AND mblnr = itd-mblnr
*    AND matnr IN p_matnr
*    AND werks = p_werks
*    AND lgort = p_lgort.
*  ENDIF.*  add by wanghc 20191224 将上述逻辑重构SELECT zeile matnr lgort budat_mkpf bwart menge shkzg  sobkz INTO CORRESPONDING FIELDS OF TABLE ita FROM msegWHERE werks  = p_werksAND lgort = p_lgortAND matnr IN p_matnr
*    AND lifnr IN P_LIFNRAND budat_mkpf BETWEEN l_a AND l_bAND shkzg <> ''.LOOP AT item.LOOP AT ita WHERE matnr = item-matnr AND lgort = item-lgort AND budat_mkpf <= p_erdat-high ."总入库量取值IF ita-shkzg = 'S'.item-zrkl = item-zrkl + ita-menge.ELSE.item-zckl = item-zckl + ita-menge.ENDIF.ENDLOOP.
*    if ita-lifnr is not INITIAL and ( Ita-sobkz = 'K' ) .
*    item-lifnr = ita-lifnr.                                     " add it by jingguilin 20210330
*    ENDIF.MODIFY item.CLEAR  item.ENDLOOP."屏幕小日期到今日入库数量取值LOOP AT ita.IF ita-shkzg = 'H'.ita-menge =  - ita-menge.ENDIF.MODIFY  ita.ENDLOOP.LOOP AT item.LOOP AT ita WHERE matnr = item-matnr AND lgort = item-lgort. "AND budat_mkpf < l_erdat.item-zbyrk = item-zbyrk + ita-menge.ENDLOOP.MODIFY item.CLEAR  item.ENDLOOP.""""""最大日期到今日入库数量取值LOOP AT item.LOOP AT ita WHERE matnr = item-matnr AND lgort = item-lgort AND budat_mkpf > p_erdat-high .item-zbyrk1 = item-zbyrk1 + ita-menge.ENDLOOP.MODIFY item.CLEAR  item.ENDLOOP.""""""""""""""""""DATA: l_n LIKE mardh-lfgja,l_m LIKE mardh-lfmon.DATA: l_c LIKE mseg-menge,l_d LIKE mseg-menge.LOOP AT item.CLEAR:l_a,l_b.
*    LOOP AT itb.
*      SELECT SUM( menge ) INTO l_c FROM mseg
*           INNER JOIN mara ON mseg~matnr = mara~matnr WHERE mtart ='FERT'                 " commenit by jingguilin 20210414
*        AND bwart IN ('411')
*        AND budat_mkpf IN p_erdat
*        AND mseg~matnr = item-matnr
*        AND lgort IN ( '1001','1004' )"= '1001' OR lgort = '1005'
*        AND werks = p_werks.
*      SELECT SUM( menge ) INTO l_d FROM mseg
*             INNER JOIN mara ON mseg~matnr = mara~matnr WHERE mtart ='FERT'
*          AND bwart IN ('412')
*          AND budat_mkpf IN p_erdat
*          AND mseg~matnr = item-matnr
*          AND lgort IN ( '1001','1004' )
*          AND werks = p_werks.
*      itb-zcrk = l_c - l_d.
*      MODIFY itb.
*    ENDLOOP.SELECT SINGLE maktx INTO item-maktx FROM makt WHERE matnr = item-matnr AND spras = '1'.SELECT SINGLE ekgrp INTO item-ekgrp FROM marc WHERE matnr = item-matnr.SELECT SINGLE eknam INTO item-eknam FROM t024 WHERE ekgrp = item-ekgrp.SELECT SINGLE stprs peinh INTO (item-stprs,item-peinh) FROM mbew WHERE matnr = item-matnr AND bwkey = p_werks."标准价格SELECT SINGLE meins INTO item-meins FROM mara WHERE matnr = item-matnr.
*    item-za = item-klabs + item-labst  - item-zbyrk.
*    item-zb = item-klabs + item-labst  - item-zbyrk1.item-za =   item-labst  - item-zbyrk.item-zb =  item-labst  - item-zbyrk1."item-bzdj = item-stprs / item-peinh."标准单价item-zajz = item-za * item-stprs / item-peinh."期初库存价值item-zbjz = item-zb * item-stprs / item-peinh."期末库存价值item-zrkjz = item-zrkl * item-stprs / item-peinh."总入库价值item-zckjz = item-zckl * item-stprs / item-peinh."总出库价值item-zzqt = item-za - item-zckl.MODIFY item.ENDLOOP.DELETE item WHERE za = 0 AND zb = 0 AND zrkl = 0 AND zckl = 0.IF p_ekgrp IS NOT INITIAL.DELETE item WHERE ekgrp NOT IN p_ekgrp.ENDIF.
ENDFORM.                    " FRM_GET_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_SHOW_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_show_data .i_grid_settings-edt_cll_cb  = 'X' .            "显示界面可编辑字段上修改了数据,回车后就会立即将内表的数据也修改layout-colwidth_optimize    = 'X'.                "设置字段列宽自适应layout-zebra             = 'X'.CLEAR afield.REFRESH fieldcat.fill  'MATNR'      '物料编号'             '' '' ''.fill  'MAKTX'      '物料描述'             '' '' ''.fill  'EKGRP'      '采购组'               '' '' ''.fill  'EKNAM'      '采购组描述'           '' '' ''.fill  'LGORT'      '仓储地点'             '' '' ''.fill  'ZA'         '期初库存'             'X' '' 'MEINS'.IF zbz = 'X'.fill  'ZAJZ'       '期初库存价值'         'X' '' ''.ENDIF.fill  'ZCKL'       '总出库量'             'X' '' 'MEINS'.IF zbz = 'X'.fill  'ZCKJZ'      '总出库价值'           'X' '' ''.ENDIF.IF p_lgort = '5001'.fill  'ZZQT'     '清退数量'               'X' '' 'MEINS'.ENDIF.fill  'ZRKL'      '总入库量'              'X' '' 'MEINS'.IF zbz = 'X'.fill  'ZRKJZ'     '总入库价值'            'X' '' ''.ENDIF.fill  'ZB'        '期末库存'              'X' '' 'MEINS'.IF zbz = 'X'.fill  'ZBJZ'      '期末库存价值'          'X' '' ''.ENDIF.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_grid_settings         = i_grid_settings                 "显示界面可编辑字段上修改了数据,回车后就会立即将内表的数据也修改i_callback_program      = sy-cprog "sy-repid                        "标记当前程序it_fieldcat             = fieldcat[]is_layout               = layouti_callback_user_command = 'USER_COMMAND'"i_callback_pf_status_set = 'SET_STATUS'TABLESt_outtab                = item.
ENDFORM.                    " FRM_SHOW_DATAFORM user_command USING rf_ucomm  LIKE sy-ucommrs        TYPE slis_selfield .rs-refresh = 'X'.CASE rf_ucomm.WHEN '&IC1'.READ TABLE item INTO wa_i INDEX rs-tabindex.IF  rs-fieldname = 'MATNR'.SUBMIT rm07docs USING SELECTION-SCREEN 1000WITH matnr = wa_i-matnrWITH lgort = wa_i-lgortWITH budat IN p_erdatAND RETURN.ENDIF.ENDCASE.ENDFORM.                    "user_command1
*&---------------------------------------------------------------------*
*&      Form  FRM_MODIFY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_modify .l_ztsycs-tcode2_mkpf = sy-tcode.l_ztsycs-zname =  sy-uname.l_ztsycs-zerdat = sy-datum.l_ztsycs-cputm = sy-uzeit.APPEND l_ztsycs.LOOP AT l_ztsycs.SELECT SINGLE zsycs INTO l_ztsycs-zsycs FROM ztsycs WHERE tcode2_mkpf = l_ztsycs-tcode2_mkpf.l_ztsycs-zsycs = l_ztsycs-zsycs + 1.MODIFY l_ztsycs.ENDLOOP.MODIFY ztsycs FROM TABLE l_ztsycs[].
ENDFORM.                    " FRM_MODIFY
*&---------------------------------------------------------------------*
*&      Form  FRM_AUTH_CHECK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_auth_check .CLEAR:zbz.SELECT SINGLE *  FROM agr_users WHERE uname = sy-uname AND agr_name = 'Z_AU_ZRMM051'."用户是否拥有此角色判断是否可查看价格IF sy-subrc = 0.zbz = 'X'.ENDIF.
ENDFORM.                    " FRM_AUTH_CHECK

如何通过角色管理来重隐藏ALV某些字段相关推荐

  1. 会话管理技术(隐藏表单字段和URL重写)

    URL重写 URL重写:在客户端禁用cookie的情况下,通过访问地址后加上jsessionid=id确保会话属于同一个会话,可理解为在使用爬虫的时候在那个url后面加上的后缀(关键字查找) 使用UR ...

  2. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)- ...

  3. java 角色管理代码_后台管理系统-角色管理模块

    1 角色管理设计说明 1.1 业务设计说明 本模块主要实现的是企业内部角色(岗位)的管理,可以在添加角色时,为角色分配资源访问权限,最后将角色再分配给用户,图所示: 基于对表的设计,其数据逻辑关系的展 ...

  4. 有关Oracle角色管理

    一. 系统权限 1.授予系统权利 Sql>connect / as sysdba Sql>grant create session to user1: Sql>grant creat ...

  5. ztree 默认选中节点_用户管理、角色管理、模块管理、zTree的使用

    全部都是增删改查 修改mapper,service,controller,jsp 给角色分配权限 1.1 跳转分配权限页面 1.1.1 jsp //实现权限 function toModule() { ...

  6. 权限管理----角色管理

    下面示图为角色管理介面.在数据表[Role]中,最少需要两个字段[RoleId]和[RoleName].Project中所有角色在此介面进行管理. 下面为表[Role]结构,直接拷贝在sql Serv ...

  7. SpringMvc 集成 shiro 实现权限角色管理-maven

    2019独角兽企业重金招聘Python工程师标准>>> SpringMvc 集成 shiro 实现权限角色管理 1.项目清单展示 2.项目源码解析  1)spring-context ...

  8. 2.3.5 mysql角色管理

    --04.用户角色管理 mysql5.7:proxies_priv(模拟角色),可以实现用户組的管理 角色(roLe)可以批量管理用户,同一个角色下面的数据都有相同的权限 mysql 5.7是通过 m ...

  9. orale用户角色管理

    Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的).   二.系 ...

最新文章

  1. Iptables架构
  2. 使用LDA(Linear Discriminant Analysis)进行降维(dimention reduction)详解和实战
  3. Java设计模式(十二):状态设计模式
  4. PHP操作mongoDB:conn crud
  5. 拿专属内推码!一汽-大众专场直播招聘来了
  6. 顺时针小球圆周运动Java编程_如何使用CSS实现圆周运动小球的实例
  7. 手机快充芯片及其技术标准和设计原理详解
  8. Android 数据库加密
  9. 拓端tecdat|R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
  10. 计算机软件企业所属行业性质,最新企业所属行业类别、分类及行业代码查询表.doc...
  11. Inspinia Admin 2.5 All_Full_Version
  12. 不通过App Store实现ios应用分发下载安装
  13. 从应用工程师的角度再谈车载 Android 系统
  14. java dbutils_Java学习之DBUtils
  15. 常用的网络上的 webservice 地址
  16. Cocos2d-x 3.x 如何编译成安卓程序
  17. python绘制人物关系图_文本分析之制作网络关系图——Python
  18. 为什么局域网 IP 通常以 192.168 开头而不是 1.2 或者 193.169 ?
  19. IDEA编译输出/控制台改为英文,运行信息报错信息改为英文
  20. 前端面试题总结(HTML+CSS部分)

热门文章

  1. imp-00403 oracle,12.2 以上版本的IMP-00403问题
  2. 关于STC8A8K64D4芯片PCA_PWM功能的一些见解(输出1kHz sin波形)
  3. Release notes for VPP 22.10
  4. QPaint旋转错位问题
  5. python 小说下载工具_下载输入python之小说下载器version2.0
  6. 云POS连锁版收银系统免费试用 超市连锁收银软件免费注册
  7. Hive--时间函数大全
  8. qq有哪些引流方法?2020最新QQ引流方法汇总
  9. ✗ Flutter plugin not installed; this adds Flutter specific functionality Mac使用flutter doctor检查报错解决方案
  10. Android调用跳转百度地图、高德地图、腾讯地图进行目的地导航