20221223 - 버튼 클릭시 t-Button--hot 으로 Class 변경






버튼 클릭 Dynamic Action에서 클릭된 버튼에만 Add Class 나머지 버튼에는 Remove Class 처리


Identification - Action : Add Class

Setting - Class : t-Button--hot

Affected Elements - Selection Type : Button

Button : BTN_ALL


Identification - Action : Remove Class

Setting - Class : t-Button--hot

Affected Elements - Selection Type : Button

Button : BTN_PUB


Identification - Action : Remove Class

Setting - Class : t-Button--hot

Affected Elements - Selection Type : Button

Button : BTN_PRI







20221218 - 페이지 접근 권한관리 Authorization Scheme Dynamic Page Rights

통상 각 사용자 또는 그룹별로 페이지 접근에 대한 권한을 관리하게 되는데 여러 관리 방법 중 매번 페이지 접근할 때마다 페이지 권한 여부를 체크하여 메세지를 보여줌.


Shared Components >> Authorization Schemes >> Dynamic Page Rights



Scheme Type : PL/SQL Function Returning Boolean

PL/SQL Function Body : 

return true (or return false)

이 부분은 해당 페이지 권한 체크하는 function을 만들어서 return true(권한있음)/false(권한없음) 관리 필요



Page >> Security >> 

Authorization Scheme : Dynamic Page Rights



페이지 실행 후 권한이 없으면 아래와 같은 메세지.



20221120 - 외부경로 이미지로 버튼 이미지 변경 후 카카오내비 연계

1. 버튼 생성

Identification - 

Button Name : BTN_NAVI

Label : <img src="https://developers.kakao.com/assets/img/about/buttons/navi/kakaonavi_btn_small.png"> 


Appearance - 

Template Option : Use Template Option, Tiny, Remove UI Decoration


Dynamic Action - Execute Javascript Code 

var vCordX = parseFloat(apex.item("P632_CORDX").getValue());

var vCordY = parseFloat(apex.item("P632_CORDY").getValue());

var vNM    = apex.item("P632_CUST_NM").getValue();


Kakao.Navi.start({

    name: vNM+' 님',

    x: vCordX,

    y: vCordY,

    coordType: 'wgs84',

});



======================

사전에 별도의 Static HTML 리전을 만들어 카카오내비 API를 사용할 수 있어야 함.

<script src="https://t1.kakaocdn.net/kakao_js_sdk/2.0.1/kakao.min.js" 

    integrity="sha384-eKjgHJ9+vwU/FCSUG3nV1RKFolUXLsc6nLQ2R1tD0t4YFPCvRmkcF8saIfOZNWf/" crossorigin="anonymous">

</script>

<script>Kakao.init('{카카오 Javascript API 키}');</script>


샘플예제 by Kakao DEV


<script src="https://t1.kakaocdn.net/kakao_js_sdk/2.0.1/kakao.min.js"
  integrity="sha384-eKjgHJ9+vwU/FCSUG3nV1RKFolUXLsc6nLQ2R1tD0t4YFPCvRmkcF8saIfOZNWf/" crossorigin="anonymous"></script>
<script>
  Kakao.init('c089c8172def97eb00c07217cae17495'); // 사용하려는 앱의 JavaScript 키 입력
</script>

<a id="start-navigation" href="javascript:startNavigation()">
  <img src="https://developers.kakao.com/assets/img/about/buttons/navi/kakaonavi_btn_medium.png"
    alt="길 안내하기 버튼" />
</a>

<script>
  function startNavigation() {
    Kakao.Navi.start({
      name: '현대백화점 판교점',
      x: 127.11205203011632,
      y: 37.39279717586919,
      coordType: 'wgs84',
    });
  }
</script>



참고

https://developers.kakao.com/tool/demo/navi/start

https://developers.kakao.com/assets/img/about/buttons/navi/kakaonavi_btn_small.png

https://developers.kakao.com/assets/img/about/buttons/navi/kakaonavi_btn_medium.png


20221103 - 삭제 메세지 번역 또는 조정 DELETE_CONFIRM_MSG

 삭제 버튼 클릭시 기본적으로 영문 메세지가 확인 됨



이 메세지를 번역 또는 조정하기 위해서는

Shared Component >> Shortcuts : DELETE_CONFIRM_MSG 수정





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.

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