⭐ TROIA-help (기능 모르겠을 때)

Hamm1n·2026년 9월 29일

Canias/TROIA

목록 보기
16/31

SELECTEDROWCOUNT()

💡 핵심 요약
기능: 테이블 변수 내에서 SELECTED = 1로 설정되거나 사용자가 UI 테이블에서 선택한 행(Row)의 총 개수를 반환합니다

구문: SELECTEDROWCOUNT({테이블명})

장점: 전체 테이블을 LOOP문으로 순회하지 않고 한 줄로 선택 수량을 파악할 수 있어 코드가 간결해지고 성능이 향상됩니다

-- 여러개 썼는지 확인하고 싶을 때
IF SELECTEDROWCOUNT(TMPLIST) > 1 THEN
	MESSAGE SYS E998 WITH '하나의 그룹코드만 선택하세요.';
	RETURN;
ENDIF;

BEGINTRAN;

트랜잭션 시작:
데이터베이스 트랜잭션의 시작을 선언합니다

이 명령어 이후에 실행되는 데이터 변경 작업(INSERT, UPDATE, DELETE 등)은 하나의 트랜잭션 단위로 묶입니다

COMMITTRAN;

트랜잭션 확정:
BEGINTRAN 실행 이후 작업한 모든 데이터베이스 변경 사항을 최종적으로 DB에 영구 반영(Commit)하고 트랜잭션을 정상 종료합니다

ROLLBACKTRAN;

트랜잭션 취소:
로직 수행 중 에러가 발생했거나 조건에 맞지 않을 때, BEGINTRAN 시점 이후에 변경된 모든 데이터베이스 작업을 취소하고 이전 상태로 되돌립니다(Rollback)

APPEND ROW TO

💻 코드 작성 예시

/* 1. 메모리 테이블에 새 행 추가 */
APPEND ROW TO TMPCOMCODEMASTER;

/* 2. 추가된 새 행(Active Row)의 각 컬럼에 값 세팅 */
TMPCOMCODEMASTER_COMPANY = SYS_COMPANY;
TMPCOMCODEMASTER_COMCODE = 'C001';
TMPCOMCODEMASTER_COMNAME = '공통코드명';

APPEND COLUMN/APPEND DOMAINCOLUMN

APPEND DOMAINCOLUMN {컬럼명}, {도메인명} TO {가상 테이블};
가상 테이블(Virtual Table)에 새로운 컬럼을 추가하는 것,
새 컬럼을 만들면서 지정한 도메인의 타입과 길이 정보를 사용하는 것

APPEND COLUMN과 APPEND DOMAINCOLUMN의 차이점

구분APPEND COLUMNAPPEND DOMAINCOLUMN
컬럼명직접 지정직접 지정
데이터 타입직접 지정도메인에서 가져옴
컬럼 길이직접 지정도메인에서 가져옴
예시STRING, 50STEXT
사용 목적타입과 길이를 직접 설정하여 컬럼 생성기존 도메인의 정의를 활용하여 컬럼 생성

예시 코드

APPEND COLUMN은 데이터 타입과 길이를 직접 지정합니다.

APPEND COLUMN NEWNAME, STRING, 50 TO TABLEX;

APPEND DOMAINCOLUMN은 지정한 도메인에 정의된 타입과 길이를 사용합니다.

APPEND DOMAINCOLUMN NEWNAME, STEXT TO TABLEX;
  • 실제 DB에 컬럼 추가할 때는 INSERT

SYS_INDBTRANSACTION

현재 활성화된 데이터베이스 상에서 트랜잭션이 진행 중인지 여부(Boolean: 1 또는 0)를 반환하는 시스템 변수

메서드에 parameter 넣는 법

PARAMETERS : 
 INTEGER COLUMNORDER;
 
 -- 그리고 사용법
 THIS.METHODNAME(1);

SELECTED

💡 기본 속성
데이터 타입: INTEGER (선택됨: 1, 선택 안 됨: 0)
동작 방식: 사용자가 UI 테이블 화면에서 체크박스나 클릭으로 행을 선택하면 시스템이 자동으로 1로 세팅되며, 개발자가 TROIA 코드로 직접 1 또는 0을 대입하여 제어할 수도 있습니다

  1. 주요 코드 작성 예시
    현재 행(Active Row) 선택 처리:
    TMPTABLE_SELECTED = 1; / 현재 활성 행을 선택 상태로 변경 /
    특정 행(Index) 선택 처리:
    TMPTABLE[1]_SELECTED = 1; / 3번째 행을 선택 상태로 변경 /
-- 선택되지 않았다면 RETURN
IF TMPCOMCODEMASTER_SELECTED == 0 THEN
	RETURN;
ENDIF;

SYSCOMMONNK (아마도)

공통 줌(Zoom) 처리 및 시스템 공통 로직을 담당하는 클래스 인스턴스(표준 SYSCOMMON을 NK 구분을 붙여 커스터마이징한 클래스)입니다.

ZOOMLISTING

SYSCOMMONNK.ZOOMLISTING(SCCOMPANY,STRBIZCOMPID);
특정 비즈니스 컴포넌트의 Zoom(검색 팝업 / F4 돋보기) 목록 다이얼로그를 실행하는 핵심 메소드

💡 주요 역할 및 작동 방식

검색 팝업 창(Zoom Dialog) 실행:
자재, 거래처, 사원, 부서 등 지정된 비즈니스 컴포넌트(STRBIZCOMPID) 에 연결된 데이터 검색/선택 팝업 다이얼로그를 화면에 모달(Modal) 형태로 호출합니다

회사 및 조건별 데이터 목록 제공:
첫 번째 파라미터인 회사 코드(SCCOMPANY) 조건에 맞춰 해당 회사의 가용 기준 데이터 목록을 팝업창에 조회합니다

선택한 데이터 리턴:
사용자가 팝업창에서 원하는 행(Row)을 클릭하여 선택하면, 해당 코드 값(예: 자재코드, 거래처코드)이 호출한 원본 화면의 입력 필드로 전달됩니다

🔍 연관 이벤트 (Zoom Events)
ZOOMBEFORE:
Zoom 팝업창이 열리기 바로 직전에 실행되는 이벤트
팝업이 열리기 전 특정 검색 파라미터나 Zoom Filter 조건을 동적으로 전달할 때 작성합니다

ZOOMAFTER:
사용자가 Zoom 팝업에서 선택을 완료하고 데이터가 리턴된 직후 실행되는 이벤트
리턴된 코드값으로 관련 명칭, 규격, 단가 등을 자동 재조회하여 화면을 갱신할 때 작성합니다

MOVE TO

변수에 값을 복사할 때 사용하는 대입 명령어

MOVE 'Hello World' TO STRINGVAR1;  /* 문자열 대입 */
MOVE STRINGVAR1 TO STRINGVAR2;     /* 변수 대입 */
MOVE 3 TO INTEGERVAR1;             /* 숫자 대입 */

MOVE-CORRESPONDING

테이블 간 데이터 복사
두 테이블의 구조가 완전히 일치하지 않아도, 이름이 같은 컬럼들만 자동으로 매핑하여 활성화된 행(ACTIVEROW)의 데이터를 채워줌

MOVE-CORRESPONDING SOURCETABLE TO TARGETTABLE;

CRITERIA COLUMNS

테이블 반복문(LOOP) 돌릴 때,
조건에 맞는 특정 컬럼만 빠르게 필터링 순회

LOOP AT [테이블명] CRITERIA COLUMNS [컬럼1, 컬럼2] VALUES [값1, 값2] [NOTCASESENSITIVE]
BEGIN
    /* 조건에 맞는 행에서만 실행될 로직 */
ENDLOOP;

WHERE 대신 CRITERIA COLUMNS 쓰는 이유
1. 속도 빠름: 직접 일치하는 행만 검사 (JAVA 엔진 레이어에서)
2. 행 상태 플래그(Row Flag) 조건 지정 가능:
ex) LOOP AT IASMATBASICLIST CRITERIA COLUMNS SELECTED VALUES 1

RUNFILE

RUNFILE {filepathonclient};
경로 지정해주면,
default application 프로그램 자동 실행 (ex. Chrome, Excel 등)

CALL DIALOG/SCREEN/REPORT

원본 링크

0개의 댓글