AgentSkillsCN

iaud-report-structure

i-AUD 报表(程序)结构指南。本指南将详细解析 .aud.json、.mtsd 文件的结构,以及程序中的各项构成要素。“报表结构”“程序构成”“.aud.json”“.mtsd”“文件夹结构”“数据源”“服务”等相关内容,均可参考本指南。

SKILL.md
--- frontmatter
name: iaud-report-structure
description: i-AUD 보고서(프로그램) 구조 가이드. .aud.json, .mtsd 파일 구조와 프로그램 구성 요소를 설명합니다. "보고서 구조", "프로그램 구성", ".aud.json", ".mtsd", "폴더 구조", "데이터소스", "서비스" 등을 물어볼 때 사용하세요.

i-AUD 보고서(프로그램) 구조 가이드

1. 개요

i-AUD의 보고서(프로그램)는 하나의 폴더로 구성되며, UI 배치, 데이터소스, 서버 스크립트, 클라이언트 스크립트 등이 포함됩니다.


2. 보고서 폴더 구조

code
[보고서명]/
├── .aud.json                        # 프로그램 메타 정보
├── [ReportCode].mtsd                # 화면 정의 (JSON)
├── [보고서명].script.ts             # 클라이언트 스크립트 (TypeScript)
├── [보고서명].script.js             # 클라이언트 스크립트 (JavaScript)
├── DataSource/                      # 데이터 조회 SQL
│   ├── DataSource1.sql
│   └── DataSource2.sql
└── ServerScript/                    # 서버 스크립트
    ├── Service1.ts                  # 일반 서비스
    ├── @CommonModule.ts             # 공통 모듈 (@로 시작)
    └── Service2.sql                 # SQL 서비스

3. .aud.json 파일

프로그램의 메타 정보를 저장하는 파일입니다.

json
{
  "ReportCode": "DYNAMIC_SQL",
  "ReportName": "DYNAMIC_SQL 샘플",
  "FolderCode": "FLD72470E8B43AE41C796541322C57190D2",
  "ModuleCode": "SD",
  "DocumentVersion": "3.0.0.0",
  "ModifyDate": "2025-06-12 17:10:04",
  "Modifier": "yglee"
}
필드설명
ReportCode프로그램 고유 코드
ReportName프로그램 표시명
FolderCode서버상 폴더 코드
ModuleCode모듈 코드
DocumentVersion문서 버전
ModifyDate최종 수정일시
Modifier최종 수정자

4. .mtsd 파일 구조

화면 UI 배치, 데이터소스, 서비스가 정의된 JSON 문서입니다.

4.1 전체 구조

json
{
  "ReportInfo": { ... },           // 보고서 기본 정보
  "DataSources": { ... },          // 데이터소스 정의
  "ScriptText": "...",             // 클라이언트 스크립트
  "ServerScriptText": [ ... ],     // 서버 스크립트 목록
  "Forms": [ ... ],                // 폼 및 컨트롤 정의
  "MetaDataSources": { ... },      // 메타 데이터소스
  "EXECUTION_PLANS": [ ... ],      // 실행 계획
  "Variables": [ ... ],            // 변수 정의
  "Modules": [ ... ],              // 모듈
  "ResponsiveLayout": [ ... ],     // 반응형 레이아웃
  "Langs": [ ... ],                // 다국어
  "PersonalConditions": { ... }    // 개인 조건
}

4.2 ReportInfo (보고서 정보)

json
{
  "ReportInfo": {
    "ReportCode": "DYNAMIC_SQL",
    "FolderCode": "FLD72470E8B43AE41C796541322C57190D2",
    "SavePath": "FLD.../DYNAMIC_SQL.mtsd",
    "ReportName": "DYNAMIC_SQL 샘플",
    "Writer": "yglee",
    "WriteDate": "2025-06-12 17:10:04",
    "Editor": "yglee",
    "EditDate": "2025-06-12 17:10:04",
    "TabPosition": 0,
    "UsePersonalConditions": true,
    "DocumentVersion": "3.0.0.0",
    "RefreshType": 0
  }
}

4.3 DataSources (데이터소스)

json
{
  "DataSources": {
    "Datas": [
      {
        "Id": "DS6CBDBEC3A3D74BC587F53426065035EF",
        "Name": "SAMPLE",
        "UseMeta": false,
        "UseCache": false,
        "ConnectionCode": "MTXRPTY",
        "Encrypted": "True",
        "DSType": 2,
        "SQL": "암호화된 SQL...",
        "Params": [],
        "Columns": []
      }
    ]
  }
}
필드설명
Id데이터소스 고유 ID
Name데이터소스 이름
ConnectionCodeDB 연결 코드
DSType데이터소스 유형 (0: SQL, 1: 서비스, 2: 스크립트)
SQL쿼리 (암호화됨)
Params파라미터 목록

4.4 ServerScriptText (서버 스크립트)

json
{
  "ServerScriptText": [
    {
      "Name": "@DATA_MASTER",
      "Key": "DATA_MASTER",
      "Encrypted": true,
      "ScriptText": "암호화된 스크립트..."
    }
  ]
}
필드설명
Name스크립트 이름 (@로 시작하면 공통 모듈)
Key스크립트 키
Encrypted암호화 여부
ScriptText스크립트 내용

4.5 Forms (폼 및 컨트롤)

json
{
  "Forms": [
    {
      "Id": "FormC0C2A82A6DBFD5A92D650788A672B3BA",
      "Name": "Form1",
      "Activated": true,
      "Visible": true,
      "Style": { ... },
      "Elements": [
        {
          "Type": "DataGrid",
          "Id": "DataGridF116CE7C4A9D3F1E3ED369B80D0F7D69",
          "Name": "DataGrid",
          "Visible": true,
          "Position": {
            "Left": 10,
            "Top": 10,
            "Width": 2421,
            "Height": 924,
            "ZIndex": 0,
            "Docking": { ... }
          },
          "Style": { ... },
          "DataSource": "DS6CBDBEC3A3D74BC587F53426065035EF",
          "AutoRefresh": true
        }
      ]
    }
  ]
}

컨트롤 공통 속성:

필드설명
Type컨트롤 유형 (DataGrid, Button, TextBox 등)
Id컨트롤 고유 ID
Name컨트롤 이름 (스크립트에서 참조)
Visible표시 여부
Position위치 및 크기
Style스타일 정의
DataSource바인딩된 데이터소스 ID

5. 주요 컨트롤 유형

Type설명주요 속성
DataGrid데이터 그리드Columns, UsePaging, PageSize
iGridExcel 형식 그리드WorkSheets, Formulas
OlapGridOLAP 피벗 그리드Dimensions, Measures
Chart차트ChartType, Series
Button버튼Text, OnClick
TextBox텍스트 입력Text, MaxLength
ComboBox콤보박스Items, SelectedValue
CheckBox체크박스Checked
Calendar날짜 선택Value, Format
Label라벨Text
Image이미지Source
Group그룹 컨테이너Elements
Tab탭 컨트롤TabItems

6. DataSource 폴더

DataSource/ 폴더에는 데이터 조회용 SQL 파일들이 저장됩니다.

파일명: DataSource/[DataSourceName].sql

sql
SELECT
    T1.D1 AS 제품명,
    T1.D2 AS 지점명,
    SUM(T1.M1) AS 판매수량
FROM MEX_USER_FILE_DATA T1
WHERE 1=1
    AND T1.META_FILE_CODE = 'RPT3048F89487B44C768239763DAC46B288'
    /* #[VS_KEYWORD]# */
GROUP BY T1.D1, T1.D2

파라미터 바인딩:

  • #[파라미터명]# - 문자열 파라미터
  • ##[파라미터명]## - 숫자 파라미터

7. ServerScript 폴더

ServerScript/ 폴더에는 서버 스크립트 파일들이 저장됩니다.

7.1 일반 서비스

파일명: ServerScript/[ServiceName].ts

각 파일이 하나의 서비스로 동작합니다.

7.2 공통 모듈

파일명: ServerScript/@[ModuleName].ts

@로 시작하는 파일은 공통 모듈로, 다른 스크립트에서 import하여 사용할 수 있습니다.

typescript
// 다른 스크립트에서 사용
import { QueryRepository } from "../ServerScript/@DATA_MASTER";
//<%@include file="/REPORT_CODE/DATA_MASTER.jsx"%>

8. 클라이언트 스크립트 파일

파일명: [보고서명].script.ts 또는 [보고서명].script.js

  • .ts 파일이 우선 탐색됩니다
  • TypeScript로 작성 시 .ts 확장자 사용

9. 파일 간 관계

code
┌─────────────────────────────────────────────────────────────┐
│                      .mtsd (메인 문서)                       │
│  ┌─────────────────┐  ┌─────────────────┐                   │
│  │   DataSources   │  │ ServerScriptText │                  │
│  │   (데이터소스)   │  │   (서버스크립트)  │                  │
│  └────────┬────────┘  └────────┬────────┘                   │
│           │                    │                            │
│           ▼                    ▼                            │
│  ┌─────────────────┐  ┌─────────────────┐                   │
│  │ DataSource/*.sql │  │ServerScript/*.ts│                  │
│  └─────────────────┘  └─────────────────┘                   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                  Forms (화면 정의)                    │   │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐             │   │
│  │  │ DataGrid │ │  Button  │ │ ComboBox │ ...         │   │
│  │  │(DataSource│ │(OnClick) │ │(Items)   │             │   │
│  │  │  바인딩)  │ │          │ │          │             │   │
│  │  └──────────┘ └──────────┘ └──────────┘             │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              클라이언트 스크립트 참조                   │   │
│  │              [보고서명].script.ts                      │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

┌─────────────────┐
│   .aud.json     │ ◄─── 메타 정보 (서버 동기화용)
└─────────────────┘

10. 개발 워크플로우

  1. i-AUD Designer에서 보고서 생성/편집
  2. VS Code에서 AUD: Download Report로 다운로드
  3. 로컬에서 스크립트 수정 (.ts 파일)
  4. AUD: Save Script로 스크립트만 배포
  5. AUD: Upload Report로 전체 배포 (디자인 포함)

11. 주의사항

.mtsd 파일

  • 직접 수정하지 말고 i-AUD Designer 사용
  • SQL, 스크립트는 암호화되어 저장됨
  • 버전 관리 시 충돌 주의

스크립트 파일

  • DataSource/, ServerScript/ 폴더의 파일은 직접 편집 가능
  • AUD: Save Script로 서버에 배포

.aud.json

  • VS Code 확장에서 자동 관리
  • 직접 수정 불필요

12. 샘플 프로그램 위치

code
src/reports/samples/
├── MX_GRID/                    # Excel 형식 그리드 샘플
│   ├── (MX_GRID) Layout/
│   ├── (MX_GRID) Excel Import/
│   └── ...
├── OLAP/                       # OLAP 피벗 그리드 샘플
│   ├── (OlapGrid) 필터 제어하기/
│   └── ...
└── ETC/                        # 기타 샘플
    ├── AUD_Dynamic-SQL/
    ├── FTP Client/
    └── ...