Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.49 KB | None | 0 0
  1.   METHOD encode_checkboxes.
  2. ***********************************************************
  3. **    Przykład wejścia: 0X0XX ( zaznaczenie checkboxów dla wartości B, D i E )
  4. **    Przykład wyścia: 26
  5. **    Legenda dla 5 wartości:
  6. **      A - 1
  7. **      B - 2
  8. **      C - 4
  9. **      D - 8
  10. **      E - 16
  11. ***********************************************************
  12.  
  13.     DATA: lv_digit TYPE i,
  14.           lv_iter  TYPE i.
  15.  
  16.     DATA(lv_str_val) = iv_checkboxes.
  17.  
  18.     WHILE strlen( lv_str_val ) > 0.
  19.  
  20.       lv_iter = sy-index - 1.
  21.  
  22.       DATA(lv_char) = iv_checkboxes+lv_iter(1).
  23.       IF lv_char = 'X'.
  24.         lv_digit = lv_digit + 2 ** lv_iter.
  25.       ENDIF.
  26.       lv_str_val = iv_checkboxes+sy-index.
  27.  
  28.     ENDWHILE.
  29.  
  30.     rv_result = lv_digit.
  31.  
  32.  
  33.   ENDMETHOD.
  34.  
  35.   METHOD decode_checkboxes.
  36. ***********************************************************
  37. **    Przykład wyścia: 26
  38. **    Przykład wejścia: 0X0XX ( zaznaczenie checkboxów dla wartości B, D i E )
  39. **    Legenda dla 5 wartości:
  40. **      A - 1
  41. **      B - 2
  42. **      C - 4
  43. **      D - 8
  44. **      E - 16
  45. ***********************************************************
  46.  
  47.  
  48.     DATA: lv_digit     TYPE i.
  49.  
  50.     lv_digit = iv_code.
  51.  
  52.     WHILE lv_digit > 0.
  53.  
  54.       DATA(lv_mod) = lv_digit MOD 2.
  55.       IF lv_mod = 1.
  56.         rv_checkboxes = rv_checkboxes && 'X'.
  57.         lv_digit = lv_digit - 1.
  58.       ELSE.
  59.         rv_checkboxes = rv_checkboxes && '0'.
  60.       ENDIF.
  61.       lv_digit = lv_digit / 2.
  62.  
  63.     ENDWHILE.
  64.  
  65.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement