Do.

[Source] Select Option -> SQL String으로 변환 본문

SAP/ABAP

[Source] Select Option -> SQL String으로 변환

성공보다는 가치를.. 2016. 9. 8. 16:47
728x90

ADBC 사용 시 Select-option을 String으로 변환 

 

사용예제 ) CP는 현재 제외됨(LIKE)

  DATA:
    lv_field   TYPE fieldname,
    lv_oper    TYPE char10,
    lv_value_l TYPE char100,
    lv_value_h TYPE char100,
    lv_blcode  TYPE char100,
    lv_cucode  TYPE char100.

  " Set Condition
  $_set_conditionso_blcod lv_blcode 'A.BLCODE',
                   so_cucod lv_cucode 'A.CUSTCODE'.
 
  DEFINE $_set_condition.
    LOOP AT &1.
      " 최초 라인에 괄호를 열고 조건을 세팅한다.
      IF sy-tabix 1.
        " Set Operation
        IF &1-option 'BT'.
          lv_oper 'BETWEEN'.
        ELSE.
          IF &1-sign 'I'.
            lv_oper 'IN'.
          ELSE.
            lv_oper 'NOT IN'.
          ENDIF.
          lv_value_l '('.
        ENDIF.
        lv_field &3.
      ENDIF.

      " 값이 존재할 경우 해당 값에 추가를 한다.
      IF &1-option 'BT'.
        lv_value_h lv_value_h && | '{ &1-high }' |.
      ELSE.
        IF lv_value_l IS NOT INITIAL AND strlenlv_value_l 1.
          lv_value_l lv_value_l && ','.
        ENDIF.
      ENDIF.

      lv_value_l lv_value_l && | '{ &1-low }' |.

      " 최종라인에 괄호를 닫는다.
      IF sy-tabix lines&1 ).
        IF &1-option NE 'BT'.
          lv_value_l lv_value_l && ')'.
          CONCATENATE ' AND ' lv_field lv_oper lv_value_l INTO &2 SEPARATED BY space.
        ELSE.
          CONCATENATE ' AND ' lv_field lv_oper lv_value_l 'AND' lv_value_h INTO &2 SEPARATED BY space.
        ENDIF.
      ENDIF.

    ENDLOOP.

    CLEARlv_operlv_value_llv_value_h.

  END-OF-DEFINITION.

 

728x90

'SAP > ABAP' 카테고리의 다른 글

[ABAP] 740이상에서 지원하는 새로운 문법  (0) 2016.10.26
[ALV] 통화등록 및 Cell Color  (0) 2016.09.12
[ABAP] WRITE CURRENCY  (0) 2016.09.05
[ABAP] 750 Query  (0) 2016.09.05
[FUNCTION] 호출된 데이터 Variant로 저장  (0) 2016.09.05