========== [OZ Software] ========== OZ 소프트웨어 기능을 수행하기 위한 필수 API 를 정의 --------- OZ Software API --------- FORCS OZ 제품에 대한 연동 기능을 제공한다. .. note:: FORCS에서 제공하는 OZ VIEWER API 명세서는 아래 링크를 통해, 확인 할 수 있습니다. * `FORCS OZ VIEWER API 바로가기 `_ .. _statusType: status Type ------------ ============ =================== Type Description ============ =================== PROCESSING 진행 중 SUCCESS 정상 처리됨 FAIL 처리 중 문제가 발생함 ============ =================== .. _Listener_Function: Listener function --------------------- ============================== ================================================================================================================== Command 내용 ============================== ================================================================================================================== OZPostCommand 보고서를 뷰어 창에 미리보기한 후 또는 미리보기 없이 바로 저장하거나 인쇄한 후 발생하는 이벤트입니다. OZPrintCommand 보고서 인쇄 또는 인쇄 취소 시 발생하는 이벤트입니다. OZExportCommand 보고서 저장 시 발생하는 이벤트입니다. OZProgressCommand 보고서 생성 단계별로 발생하는 이벤트입니다. OZErrorCommand 에러 발생 시 발생하는 이벤트입니다. OZCommnad 오즈 뷰어 이벤트 실행 시 발생되는 이벤트입니다. OZExitCommand 오즈 뷰어가 종료된 후 발생하는 이벤트입니다. OZMailCommand 보고서를 오즈 메일로 전송 시 발생하는 이벤트입니다. OZUserActionCommand 인쇄, 저장, 컴포넌트 속성 변경 등 사용자가 뷰어의 기능을 실행할 때 발생하는 이벤트입니다. OZBankBookPrintCommand 통장 프린터 인쇄 아이콘이 클릭된 후 발생하는 이벤트입니다. OZReportChangeCommand 화면에 표시되는 보고서가 변경된 후 발생하는 이벤트입니다. OZWillChangeIndex_Paging 미리보기 시 다음 페이지 넘길때 남길지 여부를 확인 체크하는 이벤트 OZPageChangeCommand 화면에 표시되는 페이지가 변경된 후 발생하는 이벤트입니다. OZPageBindCommand viewer.pagebindcommandinterval 패러미터에서 설정한 주기별로 페이지가 바인딩된 후 발생하는 이벤트입니다. OZEFormInputEventCommand 사용자가 입력 컴포넌트를 클릭하거나 값을 변경하여 OnClick/OnFocus/OnKillFocus/OnValueChanged 이벤트가 실행된 경우 발생되는 이벤트입니다. OZExportMemoryStreamCallBack Script, ScriptEx 함수의 명령어를 "save_memorystream"로 설정하여 실행한 경우 발생하는 이벤트입니다. ============================== ================================================================================================================== 뷰어 생성 -------------- .. js:function:: M.plugin("ozviewer").createViewer( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.param: 바인딩 할 패러미터 정보 :param Object setting.option: 옵션 정보 :param Object setting.option.margin: 화면 margin :param String setting.option.delimiter: param 의 구분자값 :param String setting.option.close: 종료버튼 선언 (Only IOS) :param Object setting.listener: 리스너 정보(:ref:`Listener_Function`) :param Function setting.callback: 검증 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 생성 결과 * 뷰어 생성 및 보고서 바인딩. .. note:: listener command 관련 OZ VIEWER API 명세서는 아래 링크를 통해 확인 할 수 있습니다. * `FORCS OZReportCommandListener API `_ Example 1: .. code-block:: javascript var params = "connection.openfile=http://oz.sample.com/www/oz/param1.ozd"; M.plugin("ozviewer").createViewer({ 'param': params, callback:function(status, result){ alert(JSON.stringify(result)); } }); Example 2: .. code-block:: javascript var margin_t = 100; if ( M.navigator.device("ios") == true ) { margin_t = 150; } var deli = "\n"; var params = "connection.openfile=res://mop3.ozd"; params += deli + "connection.pcount=1"; params += deli + "connection.args1=FormTitle=Create Test"; var option = {}; var margin = {}; margin.left = 0; margin.top = margin_t; margin.right = 0; margin.bottom = 0; option.margin = margin; option.delimiter = deli; M.plugin("ozviewer").createViewer({ param: params, option: option, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); }, listener : { OZPostCommand : function(result){ console.log("OZPostCommand"); }, OZCommand : function(result){ console.log("OZCommand"); }, OZUserEvent : function(result){ console.log("OZUserEvent"); }, OZUserActionCommand : function(result){ console.log("OZUserActionCommand"); alert("OZUserActionCommand"); }, } }); ReBind -------------- .. js:function:: M.plugin('ozviewer').rebind( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param int setting.docIndex: 보고서 인덱스(0부터시작) :param String setting.type: 보고서의 바인딩 타입 :param String setting.param: Rebind할 패러미터 정보 :param Object setting.option: option 정보 :param String setting.option.delimiter: delimiter :param String setting.option.keepEditing: 미리보기 화면에서 추가/변경한 내용 유지 여부("TRUE","FALSE" / 기본 값 : "TRUE") :param Function setting.callback: rebind 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 보고서에 패러미터를 적용하여 다시 바인딩합니다. Example: .. code-block:: javascript var deli = "\n"; var params = ""; params += deli + "comment.all=true"; params += deli + "eform.imagepicker_camera_show_choose_button=true"; params += deli + "eform.inputeventcommand=true"; params += deli + "eform.show_prev_next_input=true"; params += deli + "eform.radiobutton_type=dialog"; params += deli + "eform.checkbox_type=dialog_at_prev_next"; params += deli + "viewer.useractioncommand=true"; params += deli + "eform.imagepicker_camera_show_choose_button=true"; params += deli + "connection.pcount=1"; params += deli + "connection.args1=FormTitle=Rebind Test"; params += deli + "export.confirmsave=false"; var option = {}; option.delimiter = deli; option.keepEditing = "TRUE"; M.plugin("ozviewer").rebind({ param: params, option: option, docIndex : 0, type : "data", callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); CreateReport -------------- .. js:function:: M.plugin('ozviewer').createReport( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.param: 바인딩 할 패러미터 정보 :param String setting.delimiter: delimiter :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 설정한 뷰어 패러미터를 기준으로 뷰어에 새로운 보고서를 바인딩합니다. Example: .. code-block:: javascript var deli = "$"; var params = "connection.openfile=res://mop3.ozd"; params += deli + "comment.all=true"; params += deli + "eform.imagepicker_camera_show_choose_button=true"; params += deli + "eform.inputeventcommand=true"; params += deli + "eform.show_prev_next_input=true"; params += deli + "eform.radiobutton_type=dialog"; params += deli + "eform.checkbox_type=dialog_at_prev_next"; params += deli + "viewer.useractioncommand=true"; params += deli + "eform.imagepicker_camera_show_choose_button=true"; M.plugin("ozviewer").createReport({ param: params, delimiter: deli, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); GetInformation -------------- .. js:function:: M.plugin('ozviewer').getInformation( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.command: 오즈 뷰어의 정보를 가져오는 명령어 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 오즈 뷰어의 정보를 가져옵니다. Example: .. code-block:: javascript M.plugin("ozviewer").getInformation({ 'command': "INPUT_JSON", callback:function(status, result){ alert(JSON.stringify(result)); } }); Script -------------- .. js:function:: M.plugin('ozviewer').script( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.command: 오즈 뷰어 툴바 아이콘의 기능을 제어하는 명령어 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 오즈 뷰어 툴바 아이콘의 기능을 제어합니다. Example: .. code-block:: javascript M.plugin("ozviewer").script({ command: "close", callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); ScriptEx -------------- .. js:function:: M.plugin('ozviewer').scriptEx( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.command: 오즈 뷰어 툴바 아이콘의 기능을 제어하는 명령어 :param String setting.param: 툴바 기능의 패러미터 정보 :param String setting.delimiter: delimiter 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * Script 함수가 명령어만 설정하는 것과 달리 이 함수는 명령어뿐만 아니라 패러미터와 패러미터 구분자도 설정할 수 있습니다. 오즈 뷰어 툴바 아이콘의 기능을 제어하는 명령어는 Script 함수를 참고하시기 바랍니다. Example: .. code-block:: javascript var deli = "#"; var params = ""; params += deli + "export.format=pdf"; params += deli + "export.filename=mypdf"; if ( M.navigator.device("ios") != true ) { params += deli + "export.path=/sdcard"; } params += deli + "export.mode=silent"; params += deli + "export.confirmsave=false"; M.plugin("ozviewer").scriptEx({ command: "save_memorystream", param : params, delimiter : deli, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); SetHelpURL -------------- .. js:function:: M.plugin('ozviewer').setHelpURL( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.url: 도움말 url 설정 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 도움말 url 설정 Example: .. code-block:: javascript M.plugin("ozviewer").setHelpURL({ url: "https://www.google.com", callback:function(status, result){ M.pop.instance(JSON.stringify(result)); console.log(JSON.stringify(result)); } }); PingOZServer -------------- .. js:function:: M.plugin('ozviewer').pingOZServer( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.url: 서블릿 타입 서버의 URL or 데몬 타입 서버의 IP :param Object setting.option: option 정보 객체 :param int setting.option.port: 데몬 타입 서버의 포트 번호 (포트를 기입하면 데몬서버로 동작) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 오즈 서버의 동작 여부를 확인합니다. Example: .. code-block:: javascript M.plugin("ozviewer").pingOZServer({ 'url': "192.168.0.12", callback:function(status, result){ alert(JSON.stringify(result)); } }); .. code-block:: javascript var option = {}; option.port = 8082; M.plugin("ozviewer").pingOZServer({ 'url': "192.168.0.12", 'option': option, callback:function(status, result){ alert(JSON.stringify(result)); } }); GetGlobal -------------- .. js:function:: M.plugin('ozviewer').getGlobal( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.key: 전역 변수 Key :param Object setting.option: option 정보 객체 :param int setting.option.docIndex: 보고서 인덱스. Zero-based index. 생략 가능 (기본 값 : 0) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 전역 변수 값을 가져옵니다. Example: .. code-block:: javascript M.plugin("ozviewer").getGlobal({ 'key': "id_03", callback:function(status, result){ alert(JSON.stringify(result)); } }); .. code-block:: javascript var key = "data"; var option = {}; option.docIndex = 0 M.plugin("ozviewer").getGlobal({ key: key, option: option, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); SetGlobal -------------- .. js:function:: M.plugin('ozviewer').setGlobal( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.key: 전역 변수 Key :param String setting.value: 전역 변수 값 :param Object setting.option: option 정보 객체 :param int setting.option.docIndex: 보고서 인덱스. Zero-based index. 생략 가능 (기본 값 : 0) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 전역 변수 값을 설정합니다. Example: .. code-block:: javascript M.plugin("ozviewer").setGlobal({ 'key': "id_03", 'value': "이미지 입력", callback:function(status, result){ alert(JSON.stringify(result)); } }); .. code-block:: javascript var option = {}; option.docIndex = 0; M.plugin("ozviewer").setGlobal({ key: "data", value : "value01", option : option, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); SetChartStyle -------------- .. js:function:: M.plugin('ozviewer').setChartStyle( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.style: 차트 타입 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 차트 타입을 변경합니다. Example: .. code-block:: javascript M.plugin("ozviewer").setChartStyle({ style: "Pie", callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); GetTitle -------------- .. js:function:: M.plugin('ozviewer').getTitle( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리결과 * 리포트 템플릿의 제목 즉, 보고서의 제목을 가져옵니다. Example: .. code-block:: javascript M.plugin("ozviewer").getTitle({ callback:function(status, result){ alert(JSON.stringify(result)); } }); GetPaperWidth -------------- .. js:function:: M.plugin('ozviewer').getPaperWidth( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 리포트의 페이지 너비를 가져옵니다. Example: .. code-block:: javascript M.plugin("ozviewer").getPaperWidth({ callback:function(status, result){ alert(JSON.stringify(result)); } }); GetPaperHeight -------------- .. js:function:: M.plugin('ozviewer').getPaperHeight( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 리포트의 페이지 높이를 가져옵니다. Example: .. code-block:: javascript M.plugin("ozviewer").getPaperHeight({ callback:function(status, result){ alert(JSON.stringify(result)); } }); Show -------------- .. js:function:: M.plugin('ozviewer').show( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 문서 보이기. Example: .. code-block:: javascript M.plugin("ozviewer").show({ callback:function(status, result){ alert(JSON.stringify(result)); } }); Hide -------------- .. js:function:: M.plugin('ozviewer').hide( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 문서 감추기. Example: .. code-block:: javascript M.plugin("ozviewer").show({ callback:function(status, result){ alert(JSON.stringify(result)); } }); Dispose -------------- .. js:function:: M.plugin('ozviewer').dispose( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 열려있는 보고서를 모두 닫고, 뷰어를 제거합니다. Example: .. code-block:: javascript M.plugin("ozviewer").dispose({ callback:function(status, result){ alert(JSON.stringify(result)); } }); TriggerExternalEvent -------------- .. js:function:: M.plugin('ozviewer').triggerExternalEvent( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Object setting.option: OnExternalEvent로 전달할 값이며, array 로 4개까지 가능, 각 index에 해당하는 값은 생략 가능 (기본 값 : "") :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 현재 보고서의 OnExternalEvent 이벤트를 실행. Example: .. code-block:: javascript var option = ["test1", "test2", "", ""]; M.plugin("ozviewer").triggerExternalEvent({ option: option, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); TriggerExternalEventByDocIndex -------------- .. js:function:: M.plugin('ozviewer').triggerExternalEventByDocIndex( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Object setting.option: OnExternalEvent로 전달할 값이며, array 로 4개까지 가능, 각 index에 해당하는 값은 생략 가능 (기본 값 : "") :param int setting.docIndex: 보고서 index (zero base) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 지정한 보고서의 OnExternalEvent 이벤트를 실행. Example: .. code-block:: javascript var option = ["test1", "test2", "", ""]; M.plugin("ozviewer").triggerExternalEventByDocIndex({ docIndex: 1, option: option, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); .. _LocationInfo: Location Info ------------ ============ =================== =================== Key Data Type Description ============ =================== =================== accuracy double 위치 추적 정확도 latitude double 위도 longitude double 경도 altitude double 고도 heading double 방위각, 방향 speed double 속도 timestamp double 위치 정보를 가져온 시간 ============ =================== =================== .. _AddressInfo: Address Info ------------ ============ ============= =================== Key Data Type Description ============ ============= =================== fullAddress String 주소 country String 국가 이름 countryCode String 국가 코드 adminArea String 관리 지역 locality String 소재지 sublocality String 하위 소재지 street String 도로 streetNumber String 도로 번호 또는 번지 ============ ============= =================== TriggerLocationUpdated -------------- .. js:function:: M.plugin('ozviewer').triggerLocationUpdated( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Object setting.location: Location 객체에 전달할 위치 정보 ( :ref:`LocationInfo` ) :param Object setting.address: Address 객체에 전달할 주소 정보 ( :ref:`AddressInfo` ) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 현재 보고서의 OnLocationUpdated 이벤트를 실행하고, OnLocationUpdated 이벤트에서 전달한 값을 리턴받음. Example: .. code-block:: javascript var locationInfo = {}; var addressInfo = {}; M.plugin("ozviewer").triggerLocationUpdated({ location: locationInfo, address: addressInfo, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); TriggerLocationUpdatedByDocIndex -------------- .. js:function:: M.plugin('ozviewer').triggerLocationUpdatedIndex( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param Object setting.location: Location 객체에 전달할 위치 정보 ( :ref:`LocationInfo` ) :param Object setting.address: Address 객체에 전달할 주소 정보 ( :ref:`AddressInfo` ) :param int setting.index: 보고서 index (zero base) :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 지정한 보고서의 OnLocationUpdated 이벤트를 실행하고, OnLocationUpdated 이벤트에서 전달한 값을 리턴받음. Example: .. code-block:: javascript var locationInfo = {}; var addressInfo = {}; M.plugin("ozviewer").triggerLocationUpdatedIndex({ location: locationInfo, address: addressInfo, index: 0, callback:function(status, result){ M.pop.instance(JSON.stringify(result)); } }); 디바이스 권한 획득 -------------- .. js:function:: M.plugin('ozviewer').permission( setting ) .. versionchanged:: 2.0.0 / Android ONLY :param Object setting: 설정 정보 :param Object setting.permission: 획득할 권한을 StringArry로 선언 :param Function setting.callback: 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: 상태 ( :ref:`statusType` ) :param Object result: 처리 결과 * 문서에 필요한 권한을 획득한다. Example: .. code-block:: javascript M.plugin("ozviewer").permission({ permissions : ["android.permission.WRITE_EXTERNAL_STORAGE","android.permission.CAMERA", "android.permission.RECORD_AUDIO"], callback : function(status, result){ alert(JSON.stringify(result)); } }); .. warning:: Android 전용이며, AndroidManifest.xml 에 획득하고자 하는 권한이 선언되어 있어야 함 permission 에 사용되는 값들은 아래 url 을 참고(카메라 권한 획득)하여, Constant Value 값을 적용 (예시 : 카메라) https://developer.android.com/reference/android/Manifest.permission.html#CAMERA