arron99

saper

  博客中心 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  515 随笔 :: 0 文章 :: 235 评论 :: 0 Trackbacks
Cached @ 2025/4/26 20:24:01Control ASP.skins_cogitation_controls_blogstats_ascx
<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

留言簿(2)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/26 20:24:01Control ASP.skins_cogitation_controls_singlecolumn_ascx

REPORT zusrak07.

TABLES: usr01, usr03, usr04, usr02, rfcdes,
usr05, usr10, usr11, usr12, usr13, ust10c, ust10s, ust12.


SELECT-OPTIONS: usrprof FOR usr11-profn.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN SKIP.

PARAMETERS: yes_auth RADIOBUTTON GROUP grp1,
no_auth RADIOBUTTON GROUP grp1.

DATA: counter TYPE i,
count_auth TYPE i,
coun TYPE i,
counttmp TYPE i,
proftmp LIKE usr12-auth,
authtmp LIKE usr12-auth,
auth LIKE usr12-auth OCCURS 10 WITH HEADER LINE.

DATA: BEGIN OF itab_profchk OCCURS 0,
profchk LIKE usr10-profn.
DATA: END OF itab_profchk.

SELECT * FROM usr11 WHERE profn IN usrprof.
  MOVE usr11-profn TO itab_profchk-profchk.
  APPEND itab_profchk.
ENDSELECT.

WRITE : / 'Legend :', '1st level profile'.
WRITE AT /10 '2nd level profile' COLOR 5.
WRITE AT /10 '3rd level profile' COLOR 4.
WRITE AT /10 '4th level profile' COLOR 3.
WRITE AT /10 'authorizations' COLOR 7.

SORT itab_profchk.
DELETE ADJACENT DUPLICATES FROM itab_profchk.
PERFORM profchk.

*---------------------------------------------------------------------*
* FORM PROFCHK *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM profchk.
  LOOP AT itab_profchk.

    SELECT SINGLE * FROM usr10 WHERE profn = itab_profchk.
    SELECT SINGLE * FROM usr11 WHERE profn = itab_profchk.
    ULINE.
    WRITE:/ 'Root profile : ' COLOR 6.
    WRITE:/ itab_profchk-profchk, usr11-ptext.

    IF usr10-typ = 'C'.
      counter = 0.
      PERFORM recursive USING itab_profchk-profchk 5.
    ENDIF.

    IF NOT yes_auth IS INITIAL.
      IF usr10-typ = 'S'.
        SELECT * FROM ust10s WHERE profn = itab_profchk.
          SELECT SINGLE * FROM usr13 WHERE auth = ust10s-auth.
          WRITE AT /5 ust10s-auth COLOR 7.
          counttmp = coun + 15.
          WRITE AT 30 usr13-atext COLOR 7.
        ENDSELECT.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    "profchk

*---------------------------------------------------------------------*
* FORM RECURSIVE *
*---------------------------------------------------------------------*
* --> PROFILE *
* --> COUNTERA *
*---------------------------------------------------------------------*
FORM recursive USING profile LIKE usr12-auth countera TYPE i.
  counter = counter + countera.

  SELECT * FROM ust10c WHERE profn = profile.
    CASE counter.
      WHEN 5.
        WRITE AT /counter ust10c-subprof COLOR 5.
      WHEN 10.
        WRITE AT /counter ust10c-subprof COLOR 4.
      WHEN 15.
        WRITE AT /counter ust10c-subprof COLOR 3.
    ENDCASE.
    MOVE ust10c-subprof TO proftmp.
    SELECT SINGLE * FROM usr10 WHERE profn = proftmp.
    IF usr10-typ = 'C'.
      PERFORM recursive USING proftmp 5.
    ENDIF.

    IF NOT yes_auth IS INITIAL.
      IF usr10-typ = 'S'.
        SELECT * FROM ust10s WHERE profn = proftmp.
          SELECT SINGLE * FROM usr13 WHERE auth = ust10s-auth.
          coun = counter + 5.
          WRITE AT /coun ust10s-auth COLOR 7.
          counttmp = coun + 15.
          WRITE AT counttmp usr13-atext COLOR 7.
        ENDSELECT.
        coun = 0.
      ENDIF.
    ENDIF.
  ENDSELECT.
  counter = 5.
ENDFORM.          

分享按钮发布于: 2006-11-21 21:39 arron99 阅读(990) 评论(0)  编辑 收藏

评论

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]