스마트메이커는 DB처리 작업에 있어서 코딩없이 개발할 수 있는 최적화된 도구 입니다.
비즈니스용 앱을 기획하시는 분들에게 도움이 될 만한 내용이라,
이전에 게시되었던 내용을, 좀더 자세하게 단계별로 기술해 보겠습니다.
약간의 DB경험이 있으신 분들은 쉽게 이해하시라 봅니다.
구현해 볼 내용은 간단한 거래내역을 저장하는 기능인데, 응용하시면 매입매출 프로그램으로 확장 하실수 있습니다.
거래내역을 저장하기 전에 기준정보 데이터 구축을 위해 거래처정보 및 상품정보 테이블을 생성하고
데이터를 저장 할 수 있도록 합니다.
실제 비즈니스 현장에서 거래처정보에는 사업자번호, 대표자, 전화번호등 수 많은 관리항목이 존재하지만, 간단하게 거래처코드 및 거래처명만 정의할수 있도록 하겠습니다.
응용 하셔서 확장해 보시기 바랍니다.
먼저 스마트메이커 맛집 동영상 강의 처럼 DB저장을 위한 화면을 디자인 하고,
DB저장 동작을 위해 기본키가 되는 등록번호 입력란에만
F5동작에 의해 자동으로 검색옵션에 (기본검색키 + 자동검색 + 자동증가) 가 설정 될 수 있도록 합니다.

F10 동작으로 자동 테이블 생성작업을 진행하시면 아래와 같은 거래처정보 테이블이 생성되고,

셈플데이터를 저장할 수 있도록 합니다.

위 과정과 동일하게 상품정보 테이블을 디자인하고,

F10 동작으로 상품정보 테이블을 생성 시킬수 있도록 합니다.

간단하게 상품정보 데이터를 구축할 수 있도록 합니다.

이번에는 거래내역이 저장될 수 있도록 화면을 구성해 봅니다.
현재 구현 방법은 거래내역 단일 테이블에 저장하는 방식입니다.
(만약 2개 테이블 : Master-Detail (Heder-Item) 에 저장한 방식이라면 추후 다시 예제를 들어 작업할 수 있도록 하겠습니다.)
아래와 같은 화면을 구성할 텐데요,
노란색으로 설정된 입력란의 내용이 실제 거래내역 테이블에 저장될 항목입니다.
거래내역 테이블에는 (매출번호, 일련번호, 거래처코드, 상품코드, 수량) 항목만 저장됩니다.
나머지 입력란 항목은 저장되는 항목이 아니기 때문에 저장안함 속성이 설정되어 있습니다.

스크롤묶기를 이용한 단일 테이블에 저장하는 방식이기 때문에
매출번호에 해당하는 필드에는 검색을 위해 기본검색키로 설정이 되어 있지만, 저장옵션은 저장안함 속성으로 설정합니다. 왜냐하면 스크롤에 묶여 있는 행단위로 거래내역 테이블에 저장 동작을 하기 때문입니다.

이 거래내역 화면에는 팝업묶기 아톰이 사용이 되는데요, 일반적으로 팝업묶기 아톰이 잘 활용되지 않는듯 합니다.
팝업묶기 아톰은 이미 저장되어 있는 거래처정보나 상품정보를 쉽게 조회하고 키보드 타이핑 없이 선택만으로 입력하는 방식이기 때문에, 비즈니스용 앱 개발에 있어서 활용하시면 많은 도움이 됩니다.
거래처코드 및 거래처명은 거래처정보에서 읽어올 항목이기 때문에 거래처코드, 거래처명 아톰을 선택후,
팝업묶기 아톰을 선택하시면, 아래와 같이 파랑색 영역에 묶이게 됩니다.
팝업묶기 아톰의 데이터속성에는 거래처정보 테이블에서 읽어 올수 있도록 각각 항목을 추가 합니다.

마찬가지로 상품코드, 상품명, 단가도 상품정보 테이블에서 읽어 올수 있도록 팝업묶기 아톰으로 묶을수 있도록 합니다.

합계 입력란은 (단가 x 수량)을 계산한 값이기 때문에 연산식에 설정 할수 있도록 합니다.

일련번호는 행번호 아톰입니다.
팝업묶기 아톰을 스크롤묶기 할때는 팝업에 묶인 입력란을 스크롤에 묶는게 아니고, 팝업묶기 아톰만 스크롤에 묶일수 있도록 합니다.
스크롤묶기 아톰의 데이터속성에는 일련번호 필드를 설정하고, 기본검색키를 설정할수 있도록 합니다.
거래내역 단일 테이블에 저장하는 방식이기 때문에 하나의 매출번호 기본키에 중복으로 저장되는것을 방지하기 위해 일련번호 필드가 기본검색키가 추가 될수 있도록 합니다.
즉, 거래내역 테이블은 (매출번호 + 일련번호) 2개의 Primary Key 로 생성되어야 합니다.

스크롤묶기 아톰에 있어서 가장 중요한 속성인,
테이블 연결기능을 이용해 스크롤에 묶이지 않은 매출번호를 스크롤 항목에 조건이 설정될 수 있도록
매출번호 항목을 설정합니다.

이 상태까지 진행이 되면 거래내역 DB 저장까지는 진행이 된 상태입니다.
F10 동작후 테이블 생성이 진행되면 아래와 같이 테이블이 생성이 됩니다.

기본키 즉, Primary Key 가 매출번호 + 일련번호 로 생성이 됩니다.

그런데, 의문이 생깁니다.
거래내역 테이블에 거래처코드 및 상품코드만 저장이 되는데, 검색시 다른 테이블에 저장되어 있는 거래처명 및 상품명은 어디서 불러올까요?
스마트메이커에서는 테이블 연결조건 (JOIN 문) 이라 해서 검색동작시, 다른 테이블에서 읽을 수 있는 동작이 존재합니다.
거래내역 테이블의 거래처코드 필드와 동일한 값인 거래처청보의 거래처코드 항목을 연결조건에 추가 합니다.
거래내역.거래처코드 = 거래처정보.거래처코드
의 조건을 가지도록 설정이 되는 방식입니다.

동일하게 상품코드 입력란의 테이블연결조건에 상품정보의 상품코드 필드를 조건에 추가합니다.
거래내역.상품코드 = 거래처정보.상품코드

이렇게 설정이 되면, 스크롤묶기 항목인 거래내역_찾아오기1 DB처리객체가 생성이 됩니다.

여기에 보면 관계설정 항목을 보시면 위에서 설정한 조건이 확인이 됩니다.
거래내역.거래처코드 = 거래처정보.거래처코드
거래내역.상품코드 = 거래처정보.상품코드

LEFT OUTER JOIN DEV_DB.거래처정보 b ON a.거래처코드 = b.거래처코드
LEFT OUTER JOIN DEV_DB.상품정보 c ON a.상품코드 = c.상품코드
이 화면을 실행하게 되면 거래처정보 및 상품정보를 팝업묶기 아톰을 이용해 입력이 되고,
관계설정을 통해 검색되는것을 확인 하실 수 있습니다.


'셈플자료실' 카테고리의 다른 글
| 스마트메이커 OpenAPI 기능을 이용하여 ChatGPT 사용하기 (0) | 2025.01.23 |
|---|---|
| 스마트메이커로 문자인식(OCR) 기능 처리하기 (1) | 2025.01.22 |
| 스마트메이커에 웹 위젯 삽입하기 (0) | 2025.01.21 |
| 스마트메이커 버튼아톰의 갤러리 기능 활용하기 (0) | 2025.01.20 |
| 스마트메이커 콤보박스 기본값없음 속성 활용하기 (0) | 2025.01.17 |