20220730 - 컨펌 Confirm 메세지 활용하기

배송 예정일에 값이 없을 경우에 한번 더 확인하는 컨펌 메세지를 보여줌.


1. DA 설정 (기본)

- Identification - Action : Confirm

- Setting - Message :

{if !P54_PDATE/}

입력된 날짜가 없는 것 맞습니까? 기존 데이터에 예정일이 있으면 지워집니다.

{endif/}

- Style : Warning





2. DA 설정 (추가)

만약에 P54_PDATE 에 데이터가 있어도 Confirm DA를 수행하고 빈 메세지가 보이게 되므로 Confirm 메세지는 P54_PDATE에 값이 없을 경우만 수행하도록 조치

- Client-side Condition - Type : Item is null

- Item : P54_PDATE




참고

https://blogs.oracle.com/apex/post/alert-and-confirm-dialogs-in-oracle-apex-212#:~:text=As%20of%20APEX%2021.2%2C%20you,from%20the%20main%20button%20label.

20220601 - APEX JSON을 활용한 AJAX Return

1. PL/SQL with cursor


DECLARE
  l_cursor SYS_REFCURSOR;
BEGIN
  OPEN l_cursor FOR
    select po_mst.cust_nm
         , po_mst.cust_addr
         , po_mst.delivery_req
         , po_mst.memo
      from po_mst
     where rownum <= 2;

  APEX_JSON.initialize_clob_output;
  APEX_JSON.open_object;
  APEX_JSON.write('targetlist', l_cursor);
  APEX_JSON.close_object;
  DBMS_OUTPUT.put_line(APEX_JSON.get_clob_output);

  APEX_JSON.free_output;
END;


2. 결과

{
"targetlist":[
{
"CUST_NM":"OOOO"
,"CUST_ADDR":"주소는 XXXX"
,"DELIVERY_REQ":"감사합니다"
}
,{
"CUST_NM":"OOO"
,"CUST_ADDR":"주소는 OOOOO"
,"DELIVERY_REQ":"네. 감사합니다."
}
]
}



참고

https://oracle-base.com/articles/misc/apex_json-package-generate-and-parse-json-documents-in-oracle


20220601 - 스피너 spinner 보이기/감추기

1. dynamic action for JavaScript

  //execute spinner

  var spinner = apex.util.showSpinner();


2. dynamic action for plsql code

  your plsql code

    

3. dynamic action for JavaScript

  //remove spinner

  $("#apex_wait_overlay").remove();

  $(".u-Processing").remove();



참고

https://parthiban037.wordpress.com/2020/01/03/show-spinner-in-oracle-apex-dynamic-action/

20220524 - IG 항목 column 화면에는 안 보이고 다운로드할 때만 보이도록

1. 기본 설정은 다른 항목과 동일하게

Identification - Type : Text Field

Heading : 우편번호

Export / Printing - Include In Export / Print : YES


2. Server-side Condition

Type : Function body

Language : PL/SQL

PL/SQL Function Body : 

RETURN NVL(:REQUEST,'EMPTY') NOT IN ('CSV','XLS','RTF','HTMLD');


이렇게 하면 다운로드 할 때만 해당 항목이 나타납니다.



참고

https://doyensys.com/blogs/include-or-exclude-column-in-apex-interactive-report-download/

https://www.talkapex.com/2010/06/how-to-only-display-column-when/


20220510 - IG 컬럼 숫자 포맷 0을 공란 blank 로 구현

몇 가지 방법이 있을 수 있겠으나 여기에서는 두 가지 방법을 안내합니다.


1. 포맷 마스크 사용

Identification - Type : Number
Appearance - Format Mask : FMB999G999G999G999G999G999G999



2. SQL에서 포맷팅하여 HTML로 표현

, decode(delivery_fee_pre, 0, '<span></span>', '<span class="css-red">'||to_char(delivery_fee_pre,'999,999,999,999')||'</span>') delivery_fee_pre_css
, decode(delivery_fee,     0, '<span></span>', '<span>'||to_char(delivery_fee,'999,999,999,999')||'</span>')                     delivery_fee_css







참고
https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Format-Models.html#GUID-096CA64F-1DA3-4C49-A18B-ECC7518EE56C

20220425 - 읽기 전용 항목 Display Only Item 에 정렬, 진하게 CSS 적용

페이지 아이템 Type을 Display Only 로 지정하게 되면 문자든 숫자든 기존에 설정한 정렬 값들은 무시되고 점선 박스에 좌측 정렬로 변경이 됨.

Theme에서 제공하는 스타일을 적용하여 우측, 진하게, 밑줄강조를 할 수 있음


1. Layout - Column CSS Classes : u-bold

2. Advanced - CSS Classes : u-textEnd u-bold u-underline



그 외 여러가지 Theme에서 제공하는 것들 활용 가능

u-color-1

u-color-1-text

u-color-1-bg

u-color-1-border


  • 페이지를 submit(refresh) 해야하는 상황이 발생을 했는데 display only 항목을 변경해서 세션 상태 보호 위반으로 apex.submit(); 을 처리하지 못함, 하여 Display Only 항목을 아래와 같이 변경하면 submit 처리 시 에러가 발생하지 않음

Identification - Type : Text Field

Settings - Disabled : Yes

Send On Page Submit : No







참고

https://apex.oracle.com/pls/apex/r/apex_pm/ut/content-modifiers

https://apex.oracle.com/pls/apex/r/apex_pm/ut/color-and-status-modifiers


20220419 - 카카오 지도 API 사용하기

1. API KEY 받기 (https://apis.map.kakao.com/web/guide/)

1일 300,000회 무료로 사용 가능하므로 개인이나 소규모 비지니스처럼 대량으로 API 호출이 일어나지 않는 경우는 무료라고 봐도 무방하겠습니다.





- 등록한 도메인에서의 호출만 가능하므로 도메인 확인 후 등록

- JavaScript 키 사용




2. 예제 코드로 생성 - 여러개 마커 제어하기

코드 부분 복사, Static 리전 생성 후 붙여넣기




HTML 내부의 버튼 대신(코드 삭제) 별도 버튼 생성 후 이벤트 실행


<p>
    <button onclick="hideMarkers()">마커 감추기</button>
    <button onclick="showMarkers()">마커 보이기</button>
</p>




결과 화면




참고

https://apis.map.kakao.com/

https://apis.map.kakao.com/web/guide/

https://apis.map.kakao.com/web/sample/

https://juahnpop.tistory.com/254

20250315 - 글로벌 변수 Global Variables

G_USER Specifies the currently logged in user. G_FLOW_ID Specifies the ID of the currently running application. G_FLOW_STEP_ID Specifi...