# **[입고] Tranducer 서버 등록 프로그램**

## 1. 프로그램 개요

| 항목 | 내용 |
| --- | --- |
| **프로그램 명** | TDReportUploader |
| **실행 파일 명** | db_test1.exe |
| **설치 위치** | 9층 입구 정면 |
| **용도** | 동일기연 / 켐스티 업체에서 전달받은Transducer 성적서를 데이터베이스에 등록 |

## 2. 프로그램 UI

| 메인 화면 | 
| --- | 
| ![메인 화면](docs/main.png)  | 

---

## 📘 3. 프로그램 버튼 기능 분기

| 버튼 이름        | 함수명                               | 주요 기능 요약                                                  | DB 연관 여부   | 비고                         |
| ------------ | --------------------------------- | --------------------------------------------------------- | ---------- | -------------------------- |
| 📂 **DB 열기** | `Button3_Click` → `loadExcelDB()` | 엑셀 파일에서 데이터를 읽어 DataGridView에 표시                          | ❌          | 파일 다중 선택 불가                |
| 💾 **DB 전송** | `Button5_Click`                   | DataGridView 내 데이터를 DB 테이블에 **일괄 등록** <br>중복 SN은 제외하고 등록됨 | ✅ (INSERT) | `TestStep = "1"`로 고정되어 등록됨 |
| 🔍 **읽기**    | `btnReadDB_Click`                 | 입력된 SN 기준으로 DB에서 정보를 읽어 TextBox에 표시                       | ✅ (SELECT) | SN 없으면 `"N/A"` 표시          |
| ✏️ **수정**    | `btnUpdateDB_Click`               | 입력된 SN 기준으로 DB 정보 수정                                      | ✅ (UPDATE) | TextBox 값 기반으로 수정          |
| ➕ **삽입**     | `btnInsrtDB_Click`                | 입력된 TextBox 값으로 신규 레코드 삽입                                 | ✅ (INSERT) | 수동 등록용                     |
| ❌ **삭제**     | `btnDeleteDB_Click`               | 입력된 SN 기준으로 DB에서 삭제                                       | ✅ (DELETE) | MessageBox로 확인창 표시         |

---

### 🧩 참고: TestStep = "1" 고정 등록

* `DB 전송(Button5)` 버튼을 통해 등록된 모든 데이터는 `TestStep` 컬럼에 **"1"로 고정**되어 저장됩니다.
* 이 값은 추후 단계별 테스트 구분을 위한 필드로 사용될 수 있으며, 현재는 모든 등록에 `"1"`이 자동 적용됩니다.

```vbnet
TestStep = "1"
cmd = "insert jomtCartridgeTbl(TestStep, PV_Date, PV_SN, ...) value('" + TestStep + "', ...);"
```

