Delphi, C++ Builder & .NET sgcUI에 포함

sgcPivotGrid, Delphi, C++ Builder & .NET용 피벗 테이블 그리드

원시 행을 답으로 바꾸세요. 필드를 행, 열, 값에 놓고, 날짜를 연, 분기, 월로 그룹화하고, 사용자가 드래그 앤 드롭 필드 목록으로 직접 레이아웃을 만들게 하세요. 형식이 지정된 열 저장소는 백만 행을 눈 깜짝할 사이에 다시 계산하며, 더블 클릭하면 어떤 셀이든 그 바탕이 되는 원본 행을 보여 줍니다.

VCL, FireMonkey, WinForms, WPF, Avalonia1,000,000행: Win64에서 재계산 예산 100 ms무료 .NET Community 에디션sgcUI Enterprise에 포함
SalesPivot 데모: 필터, 열, 행, 값 영역이 있는 필드 목록과 그것이 만드는 피벗

피벗 테이블에 필요한 모든 것

다섯 개 그룹의 열세 가지 기능입니다. Registered로 표시된 기능은 무료 .NET Community 에디션에 포함되지 않습니다.

속도와 데이터

한 번 로드하고 한 번 재계산합니다. 창이 있든 없든 마찬가지입니다.

1,000,000행을 피벗한 뒤 출력된 소요 시간 레이블이 있는 MillionRows 데모

속도와 데이터

백만 행을 눈 깜짝할 사이에 피벗

주문 이력과 센서 로그는 금세 스프레드시트의 한계를 넘습니다. sgcPivotGrid는 모든 열을 형식이 지정된 열 저장소에 보관하고, 원본 행을 한 번 훑어 셀을 집계하며, 결과 중 보이는 부분만 그립니다. 1,000,000행을 재계산하는 QA 예산은 Win64에서 100 ms이며, MillionRows 데모는 백만 행을 로드하고 피벗한 뒤 자체 소요 시간을 출력합니다.

  • TsgcPivotEngine은 엔진이며 그리드에 Pivot으로 게시되고 단독으로도 사용할 수 있습니다
  • BeginLoad, DefineColumn, AppendRow, EndLoad는 마지막에 한 번만 재계산하며 행을 로드합니다
  • BeginUpdate와 EndUpdate는 레이아웃 변경을 한 번의 패스로 묶습니다
  • 텍스트 열은 사전 인코딩되며, 합계는 평균의 평균이 아닌 원본 값에서 계산됩니다
도움말 항목 읽기
DataSetPivot 데모: 편집 내용을 따라가는 피벗 위의 주문 테이블

속도와 데이터

TDataSet, 그리드, 직접 작성한 코드에서 데이터 공급

이미 가진 데이터에 피벗을 연결하세요. 데이터 세트 소스는 모든 TDataSet을 엔진으로 복사하고, 실시간 업데이트를 켜면 게시할 때마다 다시 로드하므로 사용자가 폼에서 편집한 내용을 피벗이 따라갑니다. 테이블 소스는 sgcGrid 같은 모든 IsgcUITable을 읽고 테이블이 바뀔 때만 다시 로드합니다. 행을 이미 메모리에 가진 코드는 그냥 추가하면 됩니다. 피벗은 데이터에 다시 쓰지 않습니다.

  • DataSet, Active, Columns, LiveUpdates를 갖춘 TsgcPivotSource_DataSet
  • 소스가 TDataLink를 통해 읽으므로 모든 TDataSet 하위 클래스가 동작합니다
  • TsgcPivotSource_Table은 sgcGrid나 다른 IsgcUITable을 읽고 TableVersion이 바뀌면 다시 로드합니다
  • .NET에서는 같은 엔진이 DataTable을 읽습니다
도움말 항목 읽기

분석

영업 관리자가 묻는 질문에 속성으로 답합니다.

2025는 분기와 월로 펼치고 2024는 접은 피벗

분석

사람들이 생각하는 방식대로 그룹화한 날짜

매출 보고서를 하루씩 읽는 사람은 없습니다. 같은 날짜 필드를 서로 다른 그룹화로 열에 여러 번 추가하면 sgcPivotGrid가 그로부터 연, 분기, 월 수준을 만들고 각각 자체 소계를 갖습니다. 사용자는 더하기와 빼기 버튼으로 수준을 열고 닫으며, 코드에서는 한 수준 전체를 한 번에 펼칠 수 있습니다. 펼치거나 접으면 데이터를 다시 집계하지 않고 새 스냅샷을 만듭니다. 주와 일 그룹화는 필요한 운영 보고서를 위해 제공됩니다.

  • TsgcPivotDateGrouping: pvdYear, pvdQuarter, pvdMonth, pvdWeek, pvdDay
  • AddField('Date', pvaColumn, pvdQuarter)는 호출마다 수준 하나를 추가합니다
  • 각 축의 ExpandAll, CollapseAll, ExpandLevel
  • 위치와 캡션을 직접 지정할 수 있는 소계와 총계
도움말 항목 읽기
나란히 놓인 세 측정값: 금액 합계, 고유 고객 수, 평균 마진

분석

고유 개수를 포함한 여덟 가지 집계

매출은 합계이고 주문 수는 개수이지만, 3월에 서로 다른 고객이 몇 명 구매했는지는 고유 개수이며 재무팀이 묻는 수치입니다. 각 데이터 필드가 자체 집계를 선택하므로 하나의 레이아웃에서 매출 합계, 고유 고객 수, 평균 마진을 나란히 보여 줄 수 있습니다. 필드 목록에서는 값 칩의 버튼으로 클릭 한 번에 집계를 바꿉니다. 합계는 항상 원본 값에서 계산됩니다.

  • TsgcPivotAggregation: pvfSum, pvfCount, pvfAverage, pvfMin, pvfMax
  • 통계를 위한 pvfCountDistinct, pvfStdDev, pvfVar
  • AddDataField('Sales', pvfSum)은 측정값을 추가하며, 각 열 멤버 아래에 여러 측정값이 놓입니다
  • 여덟 가지 모두 무료 Community 에디션에 들어 있습니다
도움말 항목 읽기
멤버 체크리스트가 열려 있는, 매출 상위 5개 제품과 기타 행

분석 Registered 에디션 전용

중요한 것만 필터링하고 상위 N개를 유지

큰 레이아웃은 사용자가 범위를 좁힐 수 있어야 쓸모가 있습니다. 멤버, 레이블, 값 필터가 같음부터 사이, 포함까지 13개의 연산자로 결과를 줄입니다. Top N은 각 상위 항목 안에서 합계가 가장 큰 멤버를 유지하고 나머지를 하나의 기타 행으로 묶을 수 있으므로 합계가 계속 맞습니다. 기타 행의 드릴다운은 그것이 담고 있는 모든 멤버의 원본 행을 반환합니다.

  • TsgcPivotFilterOperator: pvcEqual, pvcGreater, pvcBetween, pvcContains, pvcBeginsWith 등
  • 멤버 체크리스트를 위한 FilterValues와 FilterExclude, 필드 목록에서도 사용할 수 있습니다
  • Top N 보기를 위한 TopN, TopNOthers, OthersCaption
  • SortBy pvsValue와 pvoDescending은 가장 큰 값부터 나열합니다

멤버, 레이블, 값 필터와 정렬은 Community 에디션에 있습니다. 기타 행이 있는 Top N은 Registered 에디션 기능입니다.

도움말 항목 읽기
계산된 마진 필드와 열 합계 대비 백분율이 있는 AdvancedPivot 데모

분석 Registered 에디션 전용

계산 필드와 총합 대비 백분율

마진, 이익, 비중은 관리자가 논의하는 숫자이지만 데이터베이스에 열로 존재하는 경우는 드뭅니다. 계산 필드는 IF, ROUND, MIN, MAX, ISNULL, 날짜 함수를 사용한 식으로 모든 원본 행의 값을 계산하며, 이후 다른 열과 똑같이 집계됩니다. 값 표시 형식은 측정값을 행, 열, 총계 대비 백분율, 누계, 기준 항목과의 차이, 순위로 바꿉니다.

  • CalculatedFields.Add는 Name과 Expression을 가진 TsgcPivotCalculatedField를 반환합니다
  • 행 수준 평가: 계산된 이익의 합계는 이익의 합계입니다
  • ShowAs: pvwPercentOfRow, pvwPercentOfColumn, pvwPercentOfGrandTotal, pvwRunningTotal, pvwDifferenceFrom, pvwRank
  • ShowAsBaseItem은 차이를 측정하는 기준 멤버를 선택합니다

Community 에디션에는 없습니다. 이 멤버들은 SGC_PIVOTGRID_ADVANCED 아래에서 컴파일됩니다.

도움말 항목 읽기

상호작용

사용자가 직접 답을 찾게 하세요.

상호작용

드래그 앤 드롭으로 직접 보고서 만들기

새로운 질문 때문에 새 릴리스가 필요해서는 안 됩니다. 그리드 옆에 필드 목록을 놓고 속성 하나를 설정하면 사용자가 원본 열을 필터, 열, 행, 값으로 끌어다 놓습니다. 값에 놓은 텍스트 열은 개수를, 숫자 열은 합계를 구하며 칩 버튼으로 집계를 바꿉니다. 각 칩은 검색 상자가 있는 멤버 체크리스트를 열고, 지연 모드는 사용자가 적용할 때까지 변경을 보류하므로 매우 큰 데이터에서 도움이 됩니다. 같은 필드 목록이 FireMonkey에서도 동작합니다.

  • PivotGrid를 통해 바인딩되는 TsgcVCLPivotFieldList와 TsgcFMXPivotFieldList
  • 네 개의 영역: pvaFilter, pvaColumn, pvaRow, pvaData
  • DeferUpdate와 ApplyChanges는 사용자가 끝낸 뒤 한 번만 재계산합니다
  • .NET의 WinForms, WPF, Avalonia 필드 목록
  • 아랍어와 히브리어를 위한 오른쪽에서 왼쪽 지원: 행 머리글 영역, 열 순서, 화살표 표시, 필드 목록이 미러링되고, XLSX 내보내기는 오른쪽에서 왼쪽 시트를 만듭니다
도움말 항목 읽기
매출 값에 녹색 색상 스케일을 적용한 국가별 월별 피벗

상호작용

색상 스케일로 핫스팟을 즉시 파악

숫자 격자는 누군가 색을 입히기 전까지 이야기를 숨깁니다. 서식 규칙은 값에 따라 데이터 셀에 색을 입힙니다. 색상 스케일은 측정값의 최솟값과 최댓값 사이에서 각 셀의 위치에 따라 두 색 사이로 음영을 주고, 값 규칙은 조건에 맞는 셀의 색을 바꾸거나 굵게 표시합니다. 같은 렌더러가 그리므로 같은 규칙이 화면과 PNG 및 SVG 이미지에 똑같이 적용됩니다. 사용자 지정 그리기 코드는 필요 없습니다.

  • FormatRules 컬렉션의 TsgcPivotFormatRule, 오브젝트 인스펙터에서 편집할 수 있습니다
  • MinColor와 MaxColor를 가진 pvrColorScale
  • 연산자, BackColor, ForeColor, Bold를 가진 pvrValue 규칙
  • Measure는 데이터 필드를 선택하고 Theme은 라이트와 다크를 전환합니다
도움말 항목 읽기
그리드 옆에 피벗 셀 하나의 바탕이 되는 주문이 나열된 DataSetPivot 데모

상호작용

모든 숫자 뒤의 행으로 드릴다운

합계가 이상해 보일 때 가장 먼저 드는 의문은 어떤 주문이 그 합계를 이루는가입니다. 셀을 더블 클릭하거나 키보드에서 Enter를 누르면 드릴다운되며, 엔진은 그 값으로 집계된 원본 행을 행 번호나 저장소의 모든 열(레이아웃에 없는 열 포함)이 있는 테이블로 반환합니다. DataSetPivot 데모는 셀 뒤에 있는 주문을 측면 패널에 나열합니다.

  • 그리드의 OnDrillDown, 코드에서 실행하려면 DrillDownCell
  • DrillDown은 원본 행을 IsgcUITable로 반환합니다
  • GetSourceRows는 행 번호를 제공하고 SourceValue는 값을 읽습니다
  • Top N의 기타 행에 대한 드릴다운은 그것이 담고 있는 모든 멤버의 행을 반환합니다
도움말 항목 읽기

상호작용

일상 언어로 레이아웃 요청

사용자는 분기별 매출 상위 3개 국가처럼 질문을 AI 쿼리 바나 코드에서 입력하고, TsgcPivotGridAI가 AI 공급자에게 레이아웃을 요청합니다. 어떤 LLM이든 쓸 수 있습니다. TsgcUIAIEventProvider는 각 요청을 사용자 코드에 넘기고, TsgcUIAIChatProvider는 sgcWebSockets의 TsgcAIChat 컴포넌트를 사용합니다. 애플리케이션 밖으로 나가는 것은 질문과 필드 카탈로그뿐이며, 필드의 이름, 캡션, 형식, 필드당 최대 5개의 샘플 값이고 행은 절대 나가지 않습니다. 답은 실제 필드와 대조해 확인한 뒤 한 번의 재계산으로 적용되며, 실행 취소로 이전 레이아웃을 복원합니다.

  • Provider와 PivotGrid를 가진 TsgcPivotGridAI, VCL, FireMonkey, WinForms, WPF, Avalonia에서 사용
  • Ask는 답을 기다리고 AskAsync는 작업자 스레드에서 실행되며 Cancel이 중지합니다
  • OnBeforeAsk는 요청을 수정하거나 취소할 수 있고 OnLayout은 답을 거부할 수 있습니다
  • MaxSampleValues가 샘플을 제한하며, 알 수 없는 필드는 제거되고 답은 64 KB로 제한됩니다
  • sgcPivotGridWS 브리지의 TsgcPivotGridAIQuery도 Chat과 함께 계속 동작하며, 지정한 Provider가 Chat보다 우선합니다

무료 Community 에디션을 포함한 모든 에디션과 모든 플랫폼에서 사용할 수 있으며, AI 레이아웃의 실행 취소는 Community 에디션에 없습니다. sgcWebSockets 공급자에는 Registered 에디션과 등록된 sgcWebSockets가 필요합니다: Delphi와 C++ Builder에서는 sgcUICoreWS, .NET에서는 esegece.sgcUICore.sgcWebSockets 패키지.

도움말 항목 읽기

출력

파일, 브라우저, 차트, 서버 작업.

세 개의 패널에 그리드 행, 피벗, sgcCharts 차트가 있는 GridToPivotToChart 데모

출력

보이는 대로 내보내거나 차트로 만들기

피벗은 보고서의 끝이 아니라 시작인 경우가 많습니다. 모든 내보내기는 사용자가 배치한 대로, 펼친 수준과 필터를 포함해 보기를 씁니다. 스프레드시트용 CSV, 다른 시스템용 JSON, 브라우저나 이메일용 HTML, 문서용 PNG와 SVG가 있습니다. 결과는 sgcCharts가 직접 읽을 수 있는 테이블이기도 하므로 GridToPivotToChart 데모는 데이터를 복사하지 않고 그리드 행에서 피벗, 차트로 이어집니다. 파일뿐 아니라 스트림에서도 동작합니다.

  • 파일이나 스트림으로 SaveToCSV, SaveToJSON, SaveToHTML
  • 선택적 크기를 지정하는 SaveToPNG와 SaveToSVG
  • TsgcPivotGridRenderer는 서버나 Linux64에서 창 없이 그립니다
  • ResultTable은 보이는 결과를 sgcCharts용 IsgcUITable로 제공합니다
도움말 항목 읽기
지역별 매출과 제품별 마진 저장된 보기가 있는 레이아웃 목록

출력 Registered 에디션 전용

레이아웃을 저장하고 호출 한 번으로 복원

숙련된 사용자는 같은 보기를 반복해서 만듭니다. 월요일에는 지역별 매출, 월말에는 제품별 마진입니다. 레이아웃 영속성은 필드, 영역, 그룹화, 집계, 정렬, 필터, 합계를 포함한 레이아웃 전체를 JSON으로 쓰고 한 번의 재계산으로 다시 불러옵니다. 파일, 데이터베이스 필드, 사용자 프로필에 보관하고, 이름 있는 보기 목록을 제공하거나, 한 그리드의 레이아웃을 다른 그리드로 복사하세요.

  • 그리드와 엔진의 SaveLayoutToFile과 LoadLayoutFromFile
  • 데이터베이스나 설정 저장소를 위한 SaveLayoutToString과 LoadLayoutFromString
  • 그리드 버전은 사용자가 바꾼 열 너비도 함께 보관합니다
  • LoadLayoutFromString(SaveLayoutToString)으로 그리드 간에 레이아웃을 복사합니다

Community 에디션에는 없습니다.

도움말 항목 읽기

접근성

UI Automation을 통한 화면 읽기 프로그램, 키보드, 고대비 지원, 별도 설정이 필요 없습니다.

접근성

머리글과 함께 노출되는 피벗 테이블

sgcPivotGrid는 펼치고 접을 수 있는 행 및 열 머리글, 데이터 셀, 합계가 있는 표로 내용을 Microsoft UI Automation에 노출합니다. 필드 목록은 영역별 필드 목록 하나로 노출되므로, 화면 읽기 프로그램 사용자도 피벗을 구성할 수 있습니다.

  • 화살표, Home, End, Page Up, Page Down은 포커스된 셀을 이동하고, Left와 Right(또는 더하기와 빼기 키)는 머리글을 접고 펼칩니다
  • 필드 목록에서 Up과 Down은 필드 포커스를 이동하고, Ctrl+1부터 Ctrl+4는 필드를 행, 열, 값, 필터로 옮기며, Ctrl+Up과 Ctrl+Down은 순서를 바꾸고, Space는 전환하며, Del은 제거합니다
  • 필드 목록 키는 마우스로 필드를 끌어다 놓는 동작을 대신합니다
  • 눈에 보이는 포커스 링을 제공하며, Windows 고대비 테마에서는 피벗 그리드가 시스템 색으로 그려집니다

접근성은 무료 Community 에디션을 포함한 모든 에디션에서 기본으로 켜져 있으며, Delphi 7부터 Delphi 13까지 모든 Delphi 및 C++Builder 버전의 VCL, Windows의 FireMonkey, 그리고 WinForms, WPF, Avalonia에서 지원됩니다. Delphi와 C++Builder에서는 AccessibleName과 AccessibleDescription이 UI Automation에 노출되는 이름과 설명을 설정하고, .NET에서는 각 프레임워크의 표준 접근성 이름과 도움말 텍스트가 같은 역할을 합니다. 접근성 적합성 보고서를 참조하세요.

도움말 항목 읽기

sgcPivotGrid 동작 보기

sgcUI 제품군 데모 속의 sgcPivotGrid: 내장 시뮬레이션 데이터로 오프라인에서 실행되는 완전한 애플리케이션입니다.

예산 대비 측정값

QA 성능 그룹은 고정된 데이터에서 다섯 번 실행한 중앙값으로 릴리스 빌드에서 이 시나리오를 실행합니다. 수치는 각 시나리오가 지켜야 하는 예산이며 도움말에 게시되어 있습니다.

측정 항목결과조건
1,000,000행 재계산(행 필드 2개, 열 필드 1개, 합계 1개)100 msWin64 릴리스 빌드, QA 예산
1,000,000행 재계산(행 필드 2개, 열 필드 1개, 합계 1개)160 msWin32 릴리스 빌드, QA 예산
1,000,000행 AppendRow(텍스트 3개, 실수 1개, 날짜 값 1개)900 msWin64 릴리스 빌드, QA 예산
1,000,000행 AppendRow(텍스트 3개, 실수 1개, 날짜 값 1개)1,400 msWin32 릴리스 빌드, QA 예산

출처: 이 수치를 설명하는 도움말 항목.

sgcPivotGrid로 개발하는 사람들

ERP 및 업무용 애플리케이션 개발자

ERP 안의 영업 및 재무 분석

스프레드시트로 내보내지 않고도 회계 및 영업 담당자에게 주문 테이블에 대한 피벗을 제공하세요. 데이터 세트 소스가 폼이 사용하는 것과 같은 TDataSet에 피벗을 바인딩하고 게시된 모든 편집을 따라갑니다. 날짜는 연, 분기, 월로 그룹화되고, 색상 스케일이 부진한 지역을 표시하며, 더블 클릭하면 의심스러운 합계의 바탕이 되는 청구서를 나열하므로 애플리케이션 안에서 질문에 답할 수 있습니다.

  • 실시간 업데이트가 있는 데이터 세트 소스
  • 날짜 그룹화
  • 색상 스케일
  • 드릴다운
DataSetPivot 데모 실행

분석가와 컨트롤러

숙련된 사용자를 위한 셀프 서비스 분석

숙련된 사용자는 변경 요청서를 제출하기보다 직접 탐색하고 싶어 합니다. 필드 목록으로 행, 열, 필터, 값 사이에서 필드를 끌어다 놓고, 멤버 체크리스트로 데이터 범위를 좁히며, 저장된 레이아웃으로 즐겨 쓰는 보기를 불러옵니다. AI 브리지를 사용하면 질문을 입력해 레이아웃을 만들어 낼 수도 있으며, 답이 의도와 다르면 한 번의 클릭으로 실행 취소할 수 있습니다.

  • 필드 목록
  • 기타 행이 있는 Top N
  • 레이아웃 영속성
  • AI 레이아웃
AdvancedPivot 데모 실행

백오피스 및 보고 서비스

서버의 예약 보고서

야간 요약에는 화면이 필요 없습니다. 엔진과 헤드리스 렌더러는 서비스나 콘솔 애플리케이션에서, Windows나 Delphi 10.2 이상의 Linux64에서 실행됩니다. 하루치 행을 로드하고 저장된 레이아웃을 적용한 다음 이메일에 첨부하거나 인트라넷 페이지에 게시할 수 있는 PNG, SVG, HTML, CSV로 피벗을 쓰세요.

  • 창 없는 TsgcPivotEngine
  • TsgcPivotGridRenderer
  • HTML 및 CSV 내보내기
  • Linux64
HeadlessReport 데모 실행

A Pivot Table in a Few Lines

The same API in Delphi, C++ Builder and C#: load 100,000 rows once, then lay out regions by quarter with the largest region first.

A VCL form with a pivot grid and a field list: 100,000 rows loaded with one recalculation, regions by quarter, largest region first.

unit frmSales;

interface

uses
  Classes, Controls, Forms, SysUtils,
  sgcUICore_Theme, sgcPivotGrid_Types, sgcPivotGrid_Fields, sgcPivotGrid_VCL,
  sgcPivotGrid_FieldList_VCL;

type
  TFormSales = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;

implementation

procedure TFormSales.FormCreate(Sender: TObject);
const
  Regions: array[0..3] of string = ('North', 'South', 'East', 'West');
var
  vGrid: TsgcVCLPivotGrid;
  vList: TsgcVCLPivotFieldList;
  vField: TsgcPivotField;
  i: Integer;
begin
  vGrid := TsgcVCLPivotGrid.Create(Self);
  vGrid.Parent := Self;
  vGrid.Align := alClient;
  vGrid.Theme := utDark;
  vList := TsgcVCLPivotFieldList.Create(Self);
  vList.Parent := Self;
  vList.Align := alRight;
  vList.PivotGrid := vGrid;
  // load 100,000 rows, one recalculation at EndLoad
  vGrid.Pivot.BeginLoad(True);
  try
    vGrid.Pivot.DefineColumn('Region', pvtText);
    vGrid.Pivot.DefineColumn('Date', pvtDateTime);
    vGrid.Pivot.DefineColumn('Sales', pvtFloat);
    for i := 1 to 100000 do
      vGrid.Pivot.AppendRow([Regions[i mod 4], EncodeDate(2025, 1, 1) + i mod 365,
        10 + (i mod 97) * 1.5]);
  finally
    vGrid.Pivot.EndLoad;
  end;
  // layout: regions by quarter, the largest region first, shown as % of total
  vGrid.Pivot.BeginUpdate;
  try
    vField := vGrid.Pivot.AddField('Region', pvaRow);
    vField.SortBy := pvsValue;
    vField.SortOrder := pvoDescending;
    vGrid.Pivot.AddField('Date', pvaColumn, pvdQuarter).Caption := 'Quarter';
    vField := vGrid.Pivot.AddDataField('Sales', pvfSum);
    vField.ShowAs := pvwPercentOfGrandTotal;
  finally
    vGrid.Pivot.EndUpdate;
  end;
  vGrid.SaveToHTML(ExtractFilePath(ParamStr(0)) + 'sales.html');
end;

end.

도움말 항목 읽기 →

The same pivot in C++ Builder, with the headers that the packages generate.

#include <vcl.h>
#pragma hdrstop
#include "sgcUICore_Theme.hpp"
#include "sgcPivotGrid_Types.hpp"
#include "sgcPivotGrid_Fields.hpp"
#include "sgcPivotGrid_VCL.hpp"
#include "sgcPivotGrid_FieldList_VCL.hpp"

void __fastcall BuildSalesPivot(TForm *Form)
{
	TsgcVCLPivotGrid *vGrid = new TsgcVCLPivotGrid(Form);
	vGrid->Parent = Form;
	vGrid->Align = alClient;
	vGrid->Theme = utDark;
	TsgcVCLPivotFieldList *vList = new TsgcVCLPivotFieldList(Form);
	vList->Parent = Form;
	vList->Align = alRight;
	vList->PivotGrid = vGrid;
	// load 100,000 rows, one recalculation at EndLoad
	static const String Regions[4] = {"North", "South", "East", "West"};
	Variant vValues[3];
	vGrid->Pivot->BeginLoad(true);
	try {
		vGrid->Pivot->DefineColumn("Region", pvtText);
		vGrid->Pivot->DefineColumn("Date", pvtDateTime);
		vGrid->Pivot->DefineColumn("Sales", pvtFloat);
		for (int i = 1; i <= 100000; i++) {
			vValues[0] = Regions[i % 4];
			vValues[1] = TDateTime((double)EncodeDate(2025, 1, 1) + i % 365);
			vValues[2] = 10 + (i % 97) * 1.5;
			vGrid->Pivot->AppendRow(vValues, 2);
		}
	}
	__finally {
		vGrid->Pivot->EndLoad();
	}
	// layout: regions by quarter, the largest region first, shown as % of total
	vGrid->Pivot->BeginUpdate();
	try {
		TsgcPivotField *vField = vGrid->Pivot->AddField("Region", pvaRow);
		vField->SortBy = pvsValue;
		vField->SortOrder = pvoDescending;
		vGrid->Pivot->AddField("Date", pvaColumn, pvdQuarter)->Caption = "Quarter";
		vField = vGrid->Pivot->AddDataField("Sales", pvfSum);
		vField->ShowAs = pvwPercentOfGrandTotal;
	}
	__finally {
		vGrid->Pivot->EndUpdate();
	}
	vGrid->SaveToHTML(ExtractFilePath(ParamStr(0)) + "sales.html");
}

도움말 항목 읽기 →

The C# version for WinForms. It uses only features of the free Community edition.

using System;
using System.Windows.Forms;
using esegece.sgcPivotGrid;
using esegece.sgcUICore;

namespace SalesPivot
{
    internal class MainForm : Form
    {
        private static readonly string[] Regions = { "North", "South", "East", "West" };

        public MainForm()
        {
            Text = "Sales pivot";
            var grid = new TsgcWinFormsPivotGrid { Dock = DockStyle.Fill, Theme = TsgcUITheme.utDark };
            var list = new TsgcWinFormsPivotFieldList { Dock = DockStyle.Right, Width = 260, PivotGrid = grid, Theme = TsgcUITheme.utDark };
            Controls.Add(grid);
            Controls.Add(list);

            // load 100,000 rows, one recalculation at EndLoad
            grid.Pivot.BeginLoad();
            try
            {
                grid.Pivot.DefineColumn("Region", TsgcPivotDataType.pvtText);
                grid.Pivot.DefineColumn("Date", TsgcPivotDataType.pvtDateTime);
                grid.Pivot.DefineColumn("Sales", TsgcPivotDataType.pvtFloat);
                for (int i = 1; i <= 100000; i++)
                    grid.Pivot.AppendRow(Regions[i % 4], new DateTime(2025, 1, 1).AddDays(i % 365), 10 + (i % 97) * 1.5);
            }
            finally { grid.Pivot.EndLoad(); }

            // layout: regions by quarter, the largest region first
            grid.Pivot.BeginUpdate();
            try
            {
                var region = grid.Pivot.AddField("Region", TsgcPivotArea.pvaRow);
                region.SortBy = TsgcPivotSortBy.pvsValue;
                region.SortOrder = TsgcPivotSortOrder.pvoDescending;
                grid.Pivot.AddField("Date", TsgcPivotArea.pvaColumn, TsgcPivotDateGrouping.pvdQuarter).Caption = "Quarter";
                grid.Pivot.AddDataField("Sales", TsgcPivotAggregation.pvfSum).DisplayFormat = "#,##0";
            }
            finally { grid.Pivot.EndUpdate(); }
            grid.SaveToHTML("sales.html");
        }

        [STAThread]
        static void Main() { Application.EnableVisualStyles(); Application.Run(new MainForm()); }
    }
}
dotnet add package esegece.sgcPivotGrid.WinForms

도움말 항목 읽기 →

The Delphi and C++ Builder samples show values as percent of grand total (ShowAs), a Registered edition feature. The C# sample uses only features of the free Community edition.

sgcPivotGrid 데모 실행하기

컴파일된 데모 실행 파일은 sgcUI_bin.zip에 있으며 설치가 필요 없습니다. 모든 데모의 소스는 Delphi, C++ Builder, .NET용으로 패키지에 포함되어 있습니다.

SalesPivot

SalesPivot

날짜 그룹화, 색상 스케일, 필드 목록, 내보내기가 있는 100,000개의 영업 행. SalesPivotFMX는 FireMonkey 짝입니다.

DataSetPivot

DataSetPivot

주문의 TClientDataSet: 행을 편집하면 피벗이 따라오고, 셀을 더블 클릭하면 해당 주문이 나열됩니다.

MillionRows

MillionRows

생성된 1,000,000행을 로드하고 피벗한 다음 걸린 시간을 출력합니다.

AdvancedPivot

Registered 에디션 전용 AdvancedPivot

계산 필드, 값 표시 형식, 기타 행이 있는 Top N, 레이아웃 저장 및 불러오기.

GridToPivotToChart

GridToPivotToChart

sgcGrid의 행이 피벗에 데이터를 공급하고, 피벗 결과가 데이터 복사 없이 sgcCharts 차트에 데이터를 공급합니다.

HeadlessReport

창 없이 피벗을 만들고 PNG 파일로 렌더링합니다.

Registered 에디션 전용 AskYourPivot

AI 쿼리 바에 질문을 입력하면 레이아웃을 받습니다. 준비된 공급자 또는 sgcWebSockets의 TsgcAIChat을 쓰는 TsgcPivotGridAI를 통하며, 실행 취소도 가능합니다.

컴파일된 데모

sgcUI 제품 전체의 실행 파일을 제공하며, 설치가 필요 없습니다.

sgcUI_bin.zip 다운로드 →

sgcPivotGrid가 포함된 곳

sgcPivotGrid는 sgcUI Enterprise에 포함되며 단독으로도 판매됩니다. 또한 All-Access 번들에도 포함되어 있습니다.

sgcPivotGrid 단일 패키지

€249 / 개발자, 전체 소스 코드, 1년 업데이트.

sgcPivotGrid 구매 → 가격 보기 →

sgcUI Enterprise

sgcUI 제품 14개 전체, €699부터.

Enterprise 보기 →

.NET

.NET 에디션도 가격이 같습니다. 무료 Community 에디션은 NuGet에 esegece.sgcPivotGrid.Community로 제공됩니다.

가격 보기 →

무료 Community 에디션은 NuGet의 esegece.sgcPivotGrid.Community입니다. 포함된 내용은 표에서 확인하세요.

기능Community (무료)Registered 에디션
피벗 그리드와 필드 목록(VCL, FireMonkey, WinForms, WPF, Avalonia)✓✓
CountDistinct, StdDev, Var를 포함한 여덟 가지 집계✓✓
날짜 그룹화, 소계, 총계✓✓
필터, 정렬, 드릴다운✓✓
조건부 서식과 색상 스케일✓✓
CSV, JSON, HTML 내보내기, 헤드리스 PNG 및 SVG✓✓
모든 LLM과 AI 쿼리 바를 쓰는 AI 피벗 레이아웃✓✓
계산 필드−✓
값 표시 형식−✓
기타 행이 있는 Top N−✓
레이아웃 영속성−✓
AI 레이아웃의 실행 취소, sgcPivotGridWS 브리지, sgcWebSockets AI 공급자−✓

지원 프레임워크 및 플랫폼

sgcPivotGrid의 컴포넌트

컴포넌트설명
TsgcVCLPivotGrid, TsgcFMXPivotGridVCL과 FireMonkey용 피벗 테이블 컨트롤(FMX는 XE6부터).
TsgcVCLPivotFieldList, TsgcFMXPivotFieldList사용자가 레이아웃을 바꿀 수 있는 드래그 앤 드롭 필드 목록.
TsgcPivotEngineGrid.Pivot으로 접근할 수 있고 창 없이도 사용할 수 있는 계산 엔진.
TsgcPivotSource_DataSet, TsgcPivotSource_TableTDataSet 또는 sgcUI 테이블 인터페이스를 구현하는 모든 테이블을 피벗합니다.
TsgcPivotGridRenderer서버와 보고서를 위한 헤드리스 PNG 및 SVG 출력.
TsgcPivotFormatRule색상 스케일 같은 조건부 서식 규칙.
TsgcPivotGridAI일상 언어 질문을 어떤 AI 공급자로든 피벗 레이아웃으로 바꾸며, 모든 에디션과 모든 플랫폼에서 사용할 수 있습니다.
TsgcVCLAIQueryBar, TsgcFMXAIQueryBarsgcUICore의 AI 쿼리 바: 질문을 입력하고, 적용된 내용을 확인하고, 취소와 실행 취소를 할 수 있습니다.
TsgcUIAIEventProvider, TsgcUIAIChatProvider (sgcUICoreWS)AI 공급자: 하나의 이벤트로 연결하는 모든 LLM, 또는 sgcWebSockets의 TsgcAIChat (Registered 에디션 전용).
TsgcPivotGridAIQuery (sgcPivotGridWS)sgcWebSockets의 TsgcAIChat을 위한 Chat 속성을 가진 TsgcPivotGridAI. Registered 에디션 전용.
대상컴포넌트플랫폼
Delphi 7부터 13, VCLTsgcVCLPivotGridWin32 및 Win64
Delphi XE6부터 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS, Android
C++ Builder 2007부터 13VCL 및 FMX 피벗 그리드생성된 .hpp 헤더와 정적 라이브러리
Delphi 10.2부터 13, 프레임워크 중립엔진, 소스, 내보내기, 레이아웃 JSON, 헤드리스 렌더러Linux64, 예를 들어 서버에서 피벗 보고서 생성
.NET Framework 4.7.2, .NET 8, 9, 10TsgcWinFormsPivotGrid, TsgcWpfPivotGrid, TsgcAvaloniaPivotGridWinForms, WPF, Avalonia, 헤드리스 PNG 및 SVG

자주 묻는 질문

엔진은 대용량 데이터를 위해 만들어졌습니다. 형식이 지정된 열 저장소, 재계산당 한 번의 패스, 가상 그리기를 사용합니다. Win64의 QA 예산은 1,000,000행 재계산에 100 ms, 추가에 900 ms입니다. 레이아웃의 크기도 중요합니다. 기본값이 5,000,000셀인 MaxCells를 넘는 레이아웃은 오류를 발생시키므로 날짜를 그룹화하거나 Top N을 사용하세요.

예. TsgcPivotSource_DataSet은 모든 TDataSet을 엔진으로 복사하고, LiveUpdates가 True인 동안 게시할 때마다 다시 로드합니다. 편집을 일괄 처리할 때는 이를 끄고 마지막에 Load를 호출하세요. DataSetPivot 데모는 실시간 업데이트와 드릴다운이 있는 TClientDataSet을 보여 줍니다.

아니요. sgcPivotGrid는 애플리케이션 안의 메모리 내 엔진입니다. 데이터 세트, 테이블, 직접 작성한 코드에서 행을 읽고 스스로 집계하므로 데이터베이스 서버도 큐브 설계도 필요 없습니다.

네 가지 고급 기능인 계산 필드, 값 표시 형식, 기타 행이 있는 Top N, 레이아웃 영속성과 함께 sgcPivotGridWS 브리지, sgcWebSockets AI 공급자, AI 레이아웃의 실행 취소입니다. 자체 공급자를 쓰는 AI 피벗 레이아웃, 모든 집계, 날짜 그룹화, 필터, 정렬, 드릴다운, 서식 규칙, 내보내기, 필드 목록, 헤드리스 PNG 및 SVG 출력은 Community에 있습니다.

질문과 필드 카탈로그만 보냅니다. 필드 이름, 캡션, 형식, 필드당 최대 5개의 샘플 값이며 행은 절대 보내지 않습니다. 답은 실제 필드와 대조해 검증되고, 알 수 없는 필드와 값은 제거되며, 사용할 수 있는 레이아웃이 남지 않으면 아무것도 바뀌지 않습니다. TsgcUIAIEventProvider에 연결하는 어떤 공급자로든 모든 에디션에서 동작하며, 준비된 TsgcUIAIChatProvider에는 Registered 에디션과 등록된 sgcWebSockets가 필요합니다.

예. 그리드와 엔진은 보이는 결과를 ResultTable을 통해 IsgcUITable로 제공합니다. sgcCharts 테이블 데이터 소스의 Table 속성을 피벗 그리드로 설정하면 차트가 사용자가 배치한 내용을 그립니다. GridToPivotToChart 데모는 sgcGrid, sgcPivotGrid, sgcCharts를 연결합니다.

예. TsgcPivotGridRenderer는 창 없이 결과를 PNG 또는 SVG로 그리고, 엔진은 CSV, JSON, HTML을 내보냅니다. Linux64에서는 Delphi 10.2부터 프레임워크 중립 유닛인 엔진, 소스, 내보내기, 레이아웃 JSON, 렌더러가 컴파일됩니다.

sgcPivotGrid 도움말

3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

지금 sgcPivotGrid를 체험해 보세요

sgcUI 체험판에는 sgcPivotGrid와 다른 모든 sgcUI 제품이 포함되어 있습니다.