버전 정보
i-MATRIX : 6.2.200.215, i-AUD : 3.2.200.18-202202151858
(※ Chrome, Edge 사용 권장, IE에서는 i-AUD팝업으로 띄울 때 메인 보고서 뒤에 나옵니다.)
i-PORTAL은 Web Portal가 다르게 동작합니다. i-PORTAL은 밑에 링크를 확인하시기 바랍니다.
메인 보고서 → 팝업 보고서
1. ProcessBot 하이퍼링크 팝업
<팝업 보고서 설정 i-MATRIX>
<팝업 보고서 설정 i-AUD>
속성 | 그림 | 설명 |
---|---|---|
보고서타입 | Report, URL 선택 가능 |
보고서 | 다이얼로그 창을 통해 i-AUD, i-MATRIX 보고서 선택 | |
팝업 사이즈 |
첫번째 값 : Width 두번째 값 : Height, Width X Height ( |
기본 값 : Width = 1000, |
Height = 800) |
변수이름 |
전달할 변수의 명 |
변수값 | 전달할 변수의 값 ( |
※ Excel 이름정의 또는 셀주소) |
Open 후 |
자동조회 | 팝업 창을 띄울 때 자동 조회 (※ i-MATRIX 보고서만 가능) | |
Close 후 결과수신 | 결과수신 |
셀에 결과가 |
리턴 (※ i-AUD 보고서만 가능) |
결과수신셀 | 결과 수신받을 Excel 이름정의 또는 셀주소 |
(※ 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. XAPI 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);
}
}; |