개체 변환 세부 정보
마지막 업데이트: 2026. 10. 14.QV2QS는 변환 과정에서 다양한 QlikView 고유 기능을 처리합니다.
표현식
QV2QS는 QlikView 표현식을 최소한의 변환으로 Qlik Sense에 전달합니다.표현 언어는 QlikView와 Qlik Sense 간에 대부분 공유되므로, 대부분의 표현식은 수정 없이 작동합니다.
QV2QS는 다음 변환을 적용합니다:
- 등호 접두사 — Qlik Sense는 측정값 표현식 및 특정 속성 표현식에 선행하는
=가 필요합니다.QV2QS는 원래 QlikView 표현식에 접두사가 포함되어 있지 않은 경우 필요한 곳에 접두사를 추가합니다. - 주석 제거 —
//,#, 또는REM로 시작하는 전체 줄 주석은 인라인 표현식에서 제거됩니다.Qlik Sense 속성 표현식은 주석 구문을 일관되게 지원하지 않으므로, 제거하면 평가 오류를 방지합니다.블록 주석(/* */)은(는) 제거되지 않습니다.인라인//코드 라인 내 주석 또한 제거되지 않습니다.
다음 표현 기능은 그대로 전달되며 Qlik Sense에서 수정 없이 작동합니다.
- 세트 분석 표현식 (예를 들어,
{<Year={2024}>}) - 달러 기호 확장 및 변수 참조 (예:
$(vMyVar)) - 중첩된
Aggr()표현식 If()식, 조건부 서식 식 포함Pick(),Match(), 그리고Dual()패턴- 계산 차원
세트 분석 인용 설정
QlikView (2017년 11월 이전)는 세트 수정자에서 작은따옴표로 묶인 값을 대/소문자 구분 없는 검색으로 처리했으며, 이는 큰따옴표로 묶인 값과 동일합니다.Qlik Sense는 작은따옴표로 묶인 값을 대소문자를 구분하는 리터럴로 처리합니다.이러한 차이로 인해 와일드카드, 비교 연산자 또는 작은따옴표 내의 숫자 일치에 의존하는 표현식이 손상될 수 있습니다.
QV2QS는 Qlik Sense에서 다르게 동작하는 세트 분석 인용 패턴을 찾기 위해 모든 개체 표현식과 변수 정의를 스캔합니다.감지된 패턴에는 작은따옴표로 묶인 와일드카드('*US*'), 작은따옴표로 묶인 비교 연산자('>=5'), 숫자 필드의 작은따옴표로 묶인 값 및 따옴표 없는 일반 문자열 값이 포함됩니다.결과는 Excel 보고서의 Expression_Findings 워크시트에 나타납니다.
QV2QS는 변환 중에 작은따옴표로 묶인 검색 값을 자동으로 수정합니다.인용되지 않은 일반 문자열 값에 대한 실험적 수정도 사용할 수 있지만 기본적으로 비활성화되어 있습니다.
- 단일 인용 부호 검색 값 (기본적으로 활성화됨)은 이중 인용 부호로 변환됩니다:
{<Country={'*US*'}>}는{<Country={"*US*"}>}로 변환됩니다.감지된 검색 패턴에는 와일드카드 (*,?,^), 비교 연산자, 퍼지 검색 (~), 표현식 검색 (=), 검색 수정자 (+,-) 및 복합 검색이 포함됩니다.검색 구문을 포함하지 않는 숫자 필드의 단일 인용 부호로 묶인 값은 수동 검토를 위해 플래그가 지정되지만 자동으로 수정되지는 않습니다. - 인용되지 않은 일반 문자열 값 (실험적, 기본적으로 비활성화됨)은(는) 작은따옴표로 묶입니다:
{<Country={USA}>}은(는){<Country={'USA'}>}이(가) 됩니다.활성화하려면--fixUnquotedSetValues을(를) 전달하세요.
수정 사항은 설정된 수정자 값 목록 내에서만 위치 기반 교체를 사용하여 적용됩니다.필드 이름, 함수 이름 및 기타 표현식 텍스트는 절대 수정되지 않습니다.두 가지 수정 사항은 독립적으로 제어됩니다.--noFixSingleQuotedSearch를 전달하여 작은따옴표 수정 기능을 비활성화합니다.지원되지 않는 함수 발견 항목은 수정되지 않습니다.
Expression_Findings 워크시트와 임원 요약 대시보드에는 각 발견이 변수 정의에서 시작되는지 또는 차트 개체 표현식에서 시작되는지 여부를 나타내는 Source 열이 포함되어 있습니다.상태 열은 찾은 항목이 자동 수정되었는지, 수동 검토가 필요한지, 또는 자동 수정이 불가능한지 보여줍니다.
감지된 패턴의 전체 목록은 분석을(를) 참조하십시오.세트 분석 구문 참조는 Qlik Cloud 도움말의 세트 분석을(를) 참조하십시오.
QV2QS는 모든 표현식 필드(차원, 측정값, 표시 조건, 색상 표현식, 제목, 계산 조건 및 기타)와 변수 정의 및 로드 스크립트에서 지원되지 않는 함수를 스캔합니다.감지된 인스턴스는 분석 보고서에 나열됩니다.
다음 QlikView 전용 함수는 Qlik Sense에서 사용할 수 없습니다.
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
감지된 로드 스크립트 패턴 목록은 분석을(를) 참조하십시오.
숫자 서식
QV2QS는 QlikView 숫자 형식 정의를 Qlik Sense 숫자 형식 유형으로 변환합니다.형식 유형은 Qlik Sense에 해당하는 값에 매핑되며, 사용자 지정 형식 문자열(Fmt), 소수점 구분 기호, 천 단위 구분 기호 및 소수점 정밀도는 모두 그대로 유지됩니다.사용자 지정 형식 문자열(예: #,##0.00;(#,##0.00) 또는 '$'#,##0)은 qFmt 필드에 있는 그대로 전달됩니다.
다음 QlikView 형식 유형이 매핑됩니다.
| QlikView 유형 | Qlik Sense 유형 |
|---|---|
| 고정, 실수, 정수 | 고정됨 (F) |
| MONEY | 돈 (M) |
| DATE | 날짜 (D) |
| TIME | 시간 (T) |
| TIMESTAMP | 타임스탬프 (TS) |
| INTERVAL | 간격 (IV) |
정렬
QV2QS는 모든 QlikView 정렬 기준을 Qlik Sense에 해당하는 항목으로 변환합니다.다음 정렬 설정은 일대일로 매핑됩니다: 상태별 정렬, 빈도별 정렬, 숫자 값별 정렬, 알파벳순 정렬, 로드 순서별 정렬, 표현식별 정렬(표현식 텍스트 포함), 및 회색도별 정렬.
목록 상자 필드의 경우, QV2QS는 날짜와 유사한 필드에서 상태 기반 정렬을 억제하기 위한 추가적인 휴리스틱을 적용합니다.자세한 내용은 인수 참조를 참조하세요.
시각적 단서 및 조건부 색상 지정
QlikView 시각적 신호(측정값에 대한 임계값 기반 조건부 색상)는 테이블 및 피벗 테이블 시각화를 위한 Qlik Sense 색상 표현식으로 변환됩니다.QV2QS는 원래의 낮음/보통/높음 임계값 동작을 복제하는 RGB() 또는 ARGB() 색상 함수를 포함하는 중첩된 If() 표현식을 생성합니다.텍스트 색상과 배경 색상 신호 모두 변환됩니다.차트 시각화(막대형 차트, 꺾은선형 차트, 콤보 차트 등)의 시각적 단서는 변환되지 않습니다.
표현식 기반 색상 지정
QV2QS는 차원별 및 측정값별 색상 표현식(배경색 및 텍스트 색상)을 Qlik Sense 특성 표현식으로 변환합니다.테이블 및 피벗 테이블 시각화의 경우, 배경색 및 텍스트 색상 표현식 모두 유지됩니다(cellBackgroundColor 및 cellForegroundColor).차트 시각화의 경우, 측정 배경색 표현식은 colorByExpression 모드로 변환됩니다.차원 색상 표현식 및 측정값 텍스트 색상 표현식은 Qlik Sense 차트가 차원별 색상 속성 표현식 또는 측정값별 텍스트 색상 속성을 지원하지 않으므로 차트 유형에 대해 변환되지 않습니다.
테이블 및 피벗 테이블 시각화의 경우, 측정에 명시적인 색상 표현식이 없지만 시각적 신호가 정의된 경우, QV2QS는 시각적 신호 임계값에서 색상 표현식을 자동으로 생성합니다.
추세선
QlikView 차트 측정값의 추세선은 Qlik Sense 추세선으로 변환됩니다.다음 추세선 유형이 지원됩니다:
- 평균, 선형, 지수, 로그, 거듭제곱
- 다항식 (2차, 3차, 4차)
참조선
QlikView 차트 축의 참조선은 Qlik Sense 참조선으로 변환됩니다.레이블, 값 식, 색상, 선 스타일 및 표시 조건(조건부 가시성 식)이(가) 보존됩니다.참조선에 표시 조건이 없으면, 기본 가시성은 항상 표시됩니다.콤보 차트는 기본 축과 보조 축 모두에 참조선을 지원합니다.
콤보 차트 축 할당
QV2QS는 QlikView 콤보 차트의 축 할당을 유지합니다.각 측정값은 원래 QlikView 차트의 기본 또는 보조 축 바인딩을 유지합니다.측정 계열 유형(막대, 선, 마커) 또한 보존됩니다.
차원 그룹
QV2QS는 QlikView 순환 그룹 및 드릴다운 그룹을 Qlik Sense 마스터 차원으로 변환합니다.순환 그룹은 순환 마스터 차원이 됩니다.드릴다운 그룹은 드릴다운 마스터 차원이 됩니다.그룹 차원을 참조하는 차트는 변환된 앱에서 해당 마스터 차원에 연결됩니다.
글꼴 처리
Qlik Sense는 고정된 웹 안전 글꼴 세트를 지원합니다.QV2QS는 QlikView 글꼴을 사용 가능한 가장 가까운 Qlik Sense 글꼴에 매핑합니다.매핑할 수 없는 글꼴은 대체 글꼴(Source Sans Pro)을 사용합니다.
다음 QlikView 글꼴에는 명시적 매핑이 있습니다.
| QlikView 글꼴 | Qlik Sense 글꼴 |
|---|---|
| Arial, Helvetica, Tahoma, Calibri | Source Sans Pro |
| Segoe UI | 인터 |
| 베르다나 | Open Sans |
| 타임스 뉴 로먼, 타임스, 조지아 | PT Serif |
| Courier New, Consolas | Source Sans Pro |
Qlik Sense 글꼴 라이브러리에 없는 사용자 지정 글꼴은 Source Sans Pro로 매핑됩니다.
고정폭 글꼴(Courier New, Consolas)은 비례 글꼴 Source Sans Pro에 매핑됩니다.고정폭 문자 맞춤은 유지되지 않습니다.
시스템 변수
QV2QS는 변환된 변수 목록에서 시스템 변수를 제외합니다.이 변수들은 Qlik 엔진에 의해 관리되며 variables.json에 포함될 필요가 없습니다.예시로는 DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode, 그리고 NullDisplay 등이 있습니다.
로드 스크립트에서 명시적으로 설정된 시스템 변수는(예: SET DateFormat='YYYY-MM-DD';) 로드 스크립트에 보존되며 새로 고침 중에 적용됩니다.제외는 변환된 앱 내 변수 정의에만 적용되며, 로드 스크립트 내 SET 또는 LET 문에는 적용되지 않습니다.
사용자 정의 변수가 변환됩니다.
트렐리스 모드
트렐리스 모드가 활성화된 QlikView 차트(EnablePrimaryDimension)는 첫 번째 차원을 패싯 필드로 사용하여 미니 차트 그리드를 표시합니다.Qlik Sense는 표준 차트에서 기본 트렐리스 모드를 제공하지 않습니다.QV2QS는 Visualization Bundle의 Qlik Sense 트렐리스 컨테이너 확장(qlik-trellis-container)을(를) 사용하여 트렐리스 차트를 자동으로 변환합니다.
변환하는 동안 QV2QS는 다음 단계를 수행합니다:
- 마스터 시각화를 생성합니다 — 원본 차트는 트렐리스 차원 없이 변환됩니다.기본 전용 트렐리스의 경우, 차원 0이 제거됩니다.보조 트렐리스도 활성화되면, 차원 0과 1이 모두 제거됩니다.남은 차트는 앱에 마스터 시각화로 저장됩니다.
- 트렐리스 컨테이너 생성 —
qlik-trellis-container객체가 시트의 원래 차트 위치에 배치됩니다.컨테이너는 마스터 시각화를 참조하고 제거된 차원을 데이터 정의의 패싯 필드로 사용합니다.기본 및 보조 트렐리스가 모두 활성화되면, 컨테이너 데이터 정의에는 두 개의 패싯 차원이 포함됩니다. - 그리드를 구성합니다 — QlikView 열 및 행 설정은 트렐리스 컨테이너 열 개수 및 최대 차트 개수에 매핑됩니다.최대 차트 수는 열 수에 행 수를 곱한 값으로 계산됩니다.패싯 차원의 카디널리티가 그리드 크기를 초과하면, QV2QS는 모든 차원 값을 수용하기 위해 최대 차트 수를 늘립니다.보조 트렐리스의 경우, 총 카디널리티는 기본 및 보조 차원 카디널리티의 곱입니다.값은 열 수의 가장 가까운 배수로 올림되어 그리드가 균등하게 채워집니다.이 확장은 차트 조정으로 기록됩니다.
트렐리스 컨테이너는 원본 차트와 동일한 qv_id 매핑을 사용하므로 시트에서 동일한 위치를 차지합니다.
기본 전용 트렐리스는 최소 두 개의 차원(하나는 트렐리스 패싯팅용이고 다른 하나는 마스터 차트용입니다)을 필요로 합니다.기본 및 보조 트렐리스는 최소 세 개의 차원(트렐리스 패싯팅에 두 개, 그리고 마스터 차트에 하나)을 필요로 합니다.필요한 것보다 차원 수가 적은 차트는 건너뜁니다.
누적 측정
QlikView 측정값 누적(누계)은 Qlik Sense 누적 한정자로 전환됩니다.다음 누적 모드가 지원됩니다:
- 전체 누적 — 측정 표현식은
RangeSum()를(을)Above()및RowNo()와(과) 함께 사용하여 모든 행에 걸쳐 누계를 생성하도록 다시 작성됩니다.수정자fullAccumulation플래그가true로 설정되었으며,steps값은 6입니다. - 단계 누적 — QlikView 누적 단계 수가 1보다 큰 경우, 측정값 표현식은
RangeSum()를Above()와 지정된 단계 수와 함께 사용합니다.수정자fullAccumulation플래그가false로 설정되었습니다.
생성된 누적 표현식은 차원 필드 유형에 맞춰 조정됩니다:
- 숫자 차원 — 설정된 분석 경계는 필드에
Min()및Max()을(를) 사용합니다. - 텍스트 치수 — 분석 경계를 설정할 때 필드에
MinString()및MaxString()을(를) 사용합니다. - 2차원 차트 —
Aggr()래퍼가 생성되어 외부 차원 컨텍스트 내에 누적을 중첩시킵니다.
누적을 적용하면, QV2QS는 연속 축 모드(preferContinuousAxis=false)를 비활성화하고 nullMode를 connect로 설정하여 올바른 시각적 렌더링을 보장합니다.원본 측정 표현식과 레이블은 수정자 base 속성에서 보존됩니다.
탭 컨테이너
QV2QS는 컨테이너 구성 및 컨텍스트에 따라 세 가지 전략을 사용하여 QlikView 탭 컨테이너를 변환합니다.모든 경우에, 하위 개체는 컨테이너와 동일한 Qlik Sense 시트에 유지됩니다.
- 탭형 컨테이너 — 다른 개체와 겹치지 않는 독립형 다중 탭 컨테이너는 기본 Qlik Sense 탭형 컨테이너로 변환됩니다 (
sn-tabbed-container).각 탭 멤버는 컨테이너 내에서 탭이 됩니다.탭 순서는 원래의 QlikView 멤버 순서를 따릅니다. - 가상 탭 — 다중 탭 컨테이너가 다른 개체와 겹치거나 다른 컨테이너 안에 중첩될 때, QV2QS는 탭을 레이아웃 컨테이너로 평면화합니다.버튼 스트립은 탭당 하나의
action-button로 생성됩니다.각 버튼은SetVariable작업을 사용하여 탐색 변수를 설정합니다.하위 개체에 대한 표시 조건(예:=If('$(vCT01Tab)'='1',1,0))은 어떤 탭 콘텐츠가 표시되는지 제어합니다.한 번에 하나의 탭만 표시됩니다.버튼 스트립은 원래의 QlikView 컨테이너의 탭 전환 동작을 재현합니다. - 레이아웃 컨테이너 — 그리드 모드의 컨테이너는 레이아웃 컨테이너로 변환됩니다(
sn-layout-container).
단일 객체 컨테이너가 간소화되었습니다.탭 스트립 또는 변수가 생성되지 않습니다.단일 자식 개체는 컨테이너 표시 조건이 적용된 상태로 컨테이너 위치에 직접 배치됩니다.
중첩 컨테이너는 최대 8단계 깊이까지 지원됩니다.QV2QS는 순환을 감지하고, 컨테이너가 순환 참조를 생성하는 경우 재귀를 중지합니다.
컨테이너 및 개별 하위 개체에 대한 표시 조건은 논리적 AND를 사용하여 구성됩니다.자식 개체는 컨테이너 조건, 탭 변수 조건, 그리고 자식 개체 조건이 모두 참으로 평가될 때만 표시됩니다.
조건 표시
QlikView 개별 개체에 대한 표시 조건은 유지됩니다.Qlik Sense는 시각화 개체에 표시 조건을 직접적으로 지원하지 않습니다.QV2QS는 표시 조건을 가진 객체를 단일 자식 레이아웃 컨테이너에 래핑하고, 해당 조건을 컨테이너의 condition 항목으로 적용합니다.이미 레이아웃 컨테이너 안에 있는 객체는 (겹침으로 인해) 컨테이너 진입 시 직접 조건을 받습니다.
표시 조건이 거짓으로 평가되면, 레이아웃 컨테이너는 그리드 위치에 유지되지만 콘텐츠를 표시하지 않습니다.숨겨진 컨테이너는 축소되지 않으며 인접한 객체의 리플로우를 유발하지 않습니다.동적 그리드 및 고정 캔버스 모드 모두에서, 숨겨진 개체는 원래 위치에 빈 공간을 남깁니다.빈 공간 동작은 QlikView와 일치하며, 숨겨진 개체도 빈 공간을 남깁니다.
대체 상태
QV2QS는 대체 상태 할당을 보존합니다.QlikView에서 대체 상태에 바인딩된 개체는 Qlik Sense에서 동일한 상태 바인딩을 유지합니다.주 이름은 정확히 보존됩니다.QV2QS는 배포 중에 Qlik Cloud 앱에서 필요한 대체 상태를 생성합니다.세트 분석 표현식 내의 대체 상태 참조(예를 들어, {[State2]<Year={2024}>})는 그대로 전달되며 Qlik Sense에서 수정 없이 작동합니다.
로컬 전용 모드(--unbuildOnly)에서 대체 상태 이름은 프로젝트 하위 폴더의 cloud/alternate_states.json에 기록됩니다(예: <outputDir>/Sales/cloud/alternate_states.json).상태는 수동으로 생성하거나 qlik app build 도구를 사용하여 Qlik Cloud 테넌트에 출력을 배포할 때 생성해야 합니다.
객체 작업
QV2QS는 버튼(BU, BT) 및 텍스트 개체(TX)의 동작을 변환합니다.작업을 포함하는 텍스트 개체는 작업 버튼으로 승격됩니다(action-button).지원되는 작업 유형에는 탐색, SetVariable, SelectField, 그리고 전환 결과에 문서화된 기타 유형이 포함됩니다.
다른 개체 유형(차트, 목록 상자, 슬라이더 및 컨테이너)에 대한 작업은 변환되지 않습니다.QlikView는 OnActivate 모든 개체 유형에 대한 작업을 지원하지만, QV2QS는 버튼 및 텍스트 개체 XML에서만 작업을 구문 분석합니다.차트, 목록 상자 또는 기타 버튼이 아닌 개체에 연결된 매크로가 아닌 작업(SetVariable, SelectField, 탐색)은 변환 중에 삭제되며 변환 보고서에 나타나지 않습니다.누락된 작업을 찾으려면 PRJ XML 파일에서 <Actions> 요소를 버튼이 아닌 개체 정의에서 검색하십시오.
갭 스캐너는 보고 목적으로 모든 개체 유형에서 매크로 호출을 탐지합니다.분석 워크시트의 매크로 상호 참조는 버튼뿐만 아니라 모든 개체를 반영합니다.버튼이 아닌 개체에서 매크로가 아닌 동작 유형은 보고되지 않습니다.
계산 조건
계산 조건은 다음 시각화 유형에 대해 유지됩니다: 막대형 차트, 상자 그림, 콤보 차트, 게이지, 꺾은선형 차트, 메코 차트, 원형 차트, 산점도, 그리드형 차트, 피벗 테이블, 테이블, 트리맵 및 폭포형 차트.
조건식과 사용자 지정 오류 메시지(조건이 충족되지 않을 때 사용자에게 표시되는 텍스트)는 모두 하이퍼큐브 정의에 적용됩니다.원본 QlikView 개체에 사용자 지정 메시지가 없는 경우, Qlik Sense는 기본 계산 조건 메시지를 표시합니다.
위 목록에 없는 시각화 유형(깔때기형 차트, 방사형 차트, KPI 포함)에는 계산 조건이 적용되지 않습니다.QlikView 개체에 계산 조건이 있고 대상 시각화 유형이 해당 기능을 지원하지 않는 경우, 조건과 메시지 모두 자동으로 무시됩니다.