# **[출하] 출하 내용 검색 프로그램**

## 1. 프로그램 개요

| 항목         | 내용                                                               |
| ---------- | ---------------------------------------------------------------- |
| **프로그램 명** | `OrderPackingViewer`                         |
| **실행 파일 명** | `SalePacking_Search_Data.exe`                         |
| **설치 위치**  | 4층 포장 구역 오른쪽 컴퓨터                                            |
| **용도**     | 출하를 진행한 내용 확인 및 출하 예정 제품 검색                |

---

## 2. 프로그램 UI

| 메인 화면                    | 실행 화면                       |  날짜 변경 화면                       |
| ------------------------ | --------------------------- |--------------------------- |
| ![메인 화면](docs/view_main.png) | ![실행 화면](docs/view_start.png) | ![실행 화면](docs/view_set.png) |

---

## 3. 데이터베이스별 SELECT 정보 표

### (1) 사용되는 데이터베이스 및 테이블

| 변수명 | 실제 테이블명 | 용도/조회 정보 예시 |
| --- | --- | --- |
| order_table | jomtOrderDB.jomtOrderTbl | 주문 정보(고객, 주문코드 등) |
| sales_table | jomtTesterDB.jomtSalesPackingTbl | 판매 패킹 정보(패킹번호, 날짜 등) |
| order_test | jomtOrderTestDB.jomtOrderTbl | 주문 정보(테스트용) |
| sales_test | jomtTesterServerDB.jomtSalesPackingTbl | 판매 패킹 정보(테스트용) |
| PData_table | jomtTesterDB.jomtProdList | 제품 리스트(제품명, 타입 등) |
| CData_table | jomtTesterDB.jomtComponentTbl | 구성품 리스트(구성품명 등) |

### (2) 주요 SELECT(조회) 정보

| 테이블명 | SELECT로 조회하는 주요 정보(컬럼) 예시 | 비고 |
| --- | --- | --- |
| **jomtOrderDB.jomtOrderTbl** | 주문코드, 고객명, 주문일자, 제품명 등 | 주문 관련 정보 |
| **jomtTesterDB.jomtSalesPackingTbl** | 패킹번호, 패킹날짜, 세트 Serial, 세트 수량, 각 제품별 수량 등 | 판매 패킹(출고) 관련 정보 |
| **jomtTesterServerDB.jomtSalesPackingTbl** | 판매 패킹 정보 |  |
| **jomtTesterDB.jomtProdList** | 제품명, 제품타입, 제품군 등 | 제품 정보 관리 |
| **jomtTesterDB.jomtComponentTbl** | 구성품명, 구성품타입 등 | 구성품 정보 관리 |

---

## 4. 실행 흐름

```
1. 프로그램 실행
    - MainForm 로드 → 변수/콤보박스 초기화 → 오늘 날짜 세팅
2. 사용자 입력 대기
    - 콤보박스에서 제품군/타입/색상/제품명 등 선택
    - 검색 조건 및 기간 설정
3. 검색 버튼 클릭
    - 선택한 조건에 따라 where절 등 쿼리문 생성
    - 해당 DB/테이블에서 SELECT 실행
    - 결과를 DataGridView 등으로 화면에 표시
4. 종료 버튼 클릭
    - 종료 메시지 확인 후 프로그램 종료

```

---

## 📎 기타 참고 자료 (흐름도)

```mermaid
flowchart TD
    Start([프로그램 실행])
    MainFormLoad["MainForm_Load (폼 로드)"]
    VariableSet["Veriable_Set (Enum, 배열 값 세팅)"]
    ComboRelease["cbo_Release (콤보박스 초기화)"]
    WaitInput{{사용자 입력 대기}}
    ComboModel["제품군 콤보박스 선택"]
    ComboType["제품타입 콤보박스 선택"]
    ComboColor["색상 콤보박스 선택"]
    ComboProd["제품명 콤보박스 선택"]
    DatePick["날짜 선택"]
    BarcodeInput["바코드(Serial) 입력"]
    SearchBtn["검색 버튼 클릭"]
    QueryBuild["조건에 맞는 쿼리문 생성"]
    DBSelect["DB에서 데이터 SELECT"]
    ShowResult["DataGridView 등으로 결과 표시"]
    ExitBtn["종료 버튼 클릭"]
    ExitConfirm["종료 확인 메시지"]
    End([프로그램 종료])

    Start --> MainFormLoad
    MainFormLoad --> VariableSet
    VariableSet --> ComboRelease
    ComboRelease --> WaitInput

    WaitInput -->|제품군 선택| ComboModel
    WaitInput -->|제품타입 선택| ComboType
    WaitInput -->|색상 선택| ComboColor
    WaitInput -->|제품명 선택| ComboProd
    WaitInput -->|날짜 선택| DatePick
    WaitInput -->|바코드 입력| BarcodeInput
    ComboModel --> WaitInput
    ComboType --> WaitInput
    ComboColor --> WaitInput
    ComboProd --> WaitInput
    DatePick --> WaitInput
    BarcodeInput --> WaitInput

    WaitInput -->|검색 버튼 클릭| SearchBtn
    SearchBtn --> QueryBuild
    QueryBuild --> DBSelect
    DBSelect --> ShowResult
    ShowResult --> WaitInput

    WaitInput -->|종료 버튼 클릭| ExitBtn
    ExitBtn --> ExitConfirm
    ExitConfirm -->|예| End
    ExitConfirm -->|아니오| WaitInput
```

