20221017 - 로고 위치 및 설정

1. 로고

User Interface - Logo




<img src='#APP_FILES#android-chrome-192x192.png'></img>
<span style='font-family: "Hahmlet";font-size: 20px;'>&nbsp;&nbsp;발주배송 시스템 DEV -
<font color='orange'>&nbsp;&G_COMPNM.</font></span>









참고


20221016 - IG Validation

사용자 관리 테이블의 로그인 ID를 중복되지 않도록 하기 위해 일단 해당 컬럼에 Unique 제약을 걸어 두었고 실제 입력할 때도 Server Validation 으로 체크하였음.



    login_id                       varchar2(50 char)
                                   constraint login_id_unq unique,







참고 설명
1) 역할이 없는 것 OK
2) biz_role 배송이고 선택한 :ROLE 이 HQ%아 아닌(not) 경우 OK


:ROLE is null or
not ((select biz_role from comp_mstx where comp_id = :P402_COMPID) = '배송'
and :ROLE like 'HQ%')


아래 John의 데모 앱을 설치하면 여러가지 확인 가능




참고

https://hardlikesoftware.com/weblog/2022/04/25/interactive-grid-validation/

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

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...