(※ Chrome, Edge 사용 권장, IE에서는 i-AUD팝업으로 띄울 때 메인 보고서 뒤에 나옵니다.)
i-Portal은 WebPortal가 PORTAL은 Web Portal가 다르게 동작합니다. i-Portal은 PORTAL은 밑에 링크를 확인하시기 바랍니다.
메인 보고서 → 팝업 보고서
1. ProcessBot 하이퍼링크 팝업
<팝업 보고서 i-MATRIX> <팝업 보고서 i-AUD>
보고서타입 : Report, URL 선택 가능
보고서 : 다이얼로그 창을 통해 i-AUD, i-MATRIX 보고서 선택
팝업 사이즈 : 첫번째 값 : Width 두번째 값 : Height, Width X Height
(※ 입력하지 않을 경우 Width = 1000, height = 800)
변수이름 : 전달할 변수의 명(※ 현재 입력콤보로 나타나지만 텍스트박스로 변경될 예정, 사용자가 직접입력 해야 함)
변수값 : 전달할 변수의 값(매트릭스 이름정의 또는 셀주소)
Open 후 자동조회 : 팝업 창을 띄울 때 자동 조회 (※ i-MATRIX 보고서만 가능)
Close 후 결과수신 : 결과수신 셀에 결과가 리턴됨. (※ i-AUD 보고서만 가능)
결과수신셀 : 결과를 수신받을 매트릭스 이름정의 또는 셀주소
(※ Close 후 결과수신 설정시, 출력되는 창은 Modal로 출력 되어 Excel 작업이 불가능합니다.)
보고서 제목 : 보고서 제목부분과 버튼 부분을 Visible 처리
2. XAPI 하이퍼링크 팝업
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
Sub hyperlink() Dim mxmodule As Object Set mxmodule = Application.COMAddIns.Item("iMATRIX6.ExcelModule").Object Dim param1 As String '보고서코드 Dim param2 As String '시트명 Dim param3 As Integer 'LEFT Dim param4 As Integer 'TOP Dim param5 As Integer 'WIDTH Dim param6 As Integer 'HEIGHT Dim param7 As Integer '보고서종류 (0:Report, 1:URL) Dim param8 As String '변수 전달할변수명1=전달할변수값1&전달할변수명2=전달할변수값2&전달할변수명3=전달할변수값3 Dim param9 As Boolean '자동조회여부 true / false Dim param10 As Boolean '결과수신여부 true / false Dim param11 As String '결과수신셀주소 or 이름정의 param1 = "REP03DAA4E72D1C47CB9367F6723F45C782" param2 = "" param3 = 0 ' Left, Top 설정값이 0인경우 팝업위치는 중앙에 위치 param4 = 0 ' Left, Top 설정값이 0인경우 팝업위치는 중앙에 위치 param5 = 300 param6 = 500 param7 = 0 param8 = "VS_PARAM1=param&VS_PARAM2=0123&VS_PARAM3=123&VS_PARAM4=123.123&VS_PARAM5=0123.123&VS_PARAM6=PARAM" param9 = False param10 = True param11 = "VS_RTN" ret = mxmodule.xapi.ExecuteAction("HyperLink", param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) '결과처리 If ret = False Then mxmodule.xapi.MessageBox "Error " & mxmodule.xapi.LastErrorMessage, 0, "i-MATRIX" Else mxmodule.xapi.MessageBox "정상", 0, "i-MATRIX" End If End Sub |
3. messageSend 팝업
Parameters
code |
---|
Type: int
메세지 전달 코드
ex) 30 : 레포트 팝업, 31 : 부모창으로 값 리턴
message |
---|
Type: String
메세지 전달 코드에 대한 Message
ex) REPCODE=REPFC247F8717D04BDFB8A44D388141D983<@c@>VS_1=111<@c@>VS_2=222
Returns
Type: void
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
Sub messageSend() Dim md As Object Set md = Application.COMAddIns("iMATRIX6.ExcelModule").Object Dim param1 As String, param2 As String Dim param As String param1 = Range("VS_PARAMS1").Value param2 = Range("VS_PARAMS2").Value param = "REPCODE=REPBF51BFA10A9A460492DDA50853E88B0E" If param1 <> "" Then param = param & "<@c@>VS_PARAM1=" & param1 End If If param2 <> "" Then param = param & "<@c@>VS_PARAM2=" & param2 End If md.xapi.messageSend 30, param End Sub |
팝업 보고서 → 메인 보고서
1. 팝업 보고서(i-MATRIX)
파라미터를 받는 경우 : 메인보고서에서 넘긴 변수 이름이 팝업 보고서에 이름 정의로 있어야 함.
ex) VS_PARAMS1, VS_PARAMS2를 하이퍼링크로 넘길 경우
메인 보고서로 값을 보낼 경우 : VBA messageSend을 통해서 전달
ex)
VS_RESPONSE1 = 부모에서 받을 이름정의로 설정
VS_SEND_VALUE1 = 팝업 보고서에서 보낼 값
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
'<@c@> 파라미터 분리 Sub messageSend() Dim md As Object Set md = Application.COMAddIns("iMATRIX6.ExcelModule").Object Dim param1 As String, param2 As String Dim param As String param1 = Range("VS_SEND_VALUE1").Value param2 = Range("VS_SEND_VALUE2").Value param = "" param = param & "VS_RESPONSE1=" & param1 param = param & "<@c@>VS_RESPONSE2=" & param2 md.xapi.messageSend 31, param End Sub |
2. 팝업 보고서(i-AUD)
파라미터를 받는 경우 : i-AUD보고서 스크립트에서 설정
ex)
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
var OnDocumentLoadComplete = function(sender, args) { var params = Matrix.GetDialogRequestParams(); var lbl = Matrix.getObject("Label"); lbl.Text = params['VS_PARAMS1'].VALUE; }; |
메인 보고서로 값을 보낼 경우 : i-AUD보고서 스크립트에서 설정
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
var OnButtonClick = function(sender, args) { if(args.Id == "Button") { var p1 = Matrix.getObject("h1_result"); //i-MATRIX 하이퍼링크 결과 수신 셀로 반환 var p2 = Matrix.getObject("VS_RESPONSE1"); var p3 = Matrix.getObject("VS_RESPONSE2"); var params ={}; params[p1.Name] = { 'VALUE': p1.Text }; params[p2.Name] = { 'VALUE': p2.Text }; params[p3.Name] = { 'VALUE': p3.Text }; params[p1.Name] = p1.Text; params[p2.Name] = p2.Text; params[p3.Name] = p3.Text; Matrix.ReportDialogResult(params, true); } }; |