feat(stmate-test): REA MCP(Ghidra) 기성·준공 재검증 — 회차 등록([2→3_KANJUB] · TCOST 이월 · K_ORD) · 누계수량 제한해제 설정 · 금회 단가 = 계약 칸
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+59
-6
@@ -57,7 +57,7 @@
|
||||
| QTY2(누계) | QTY1×QTY2 > 0 이고 설정 바이트([+0x1068]+0x69) 0 이고 \|QTY2\| > \|QTY1\| 이면 QTY2 = QTY1 → QTY4 = QTY2 − QTY3 | 0x4f4aa4~0x4f4ba0 |
|
||||
| QTY4(금회) | QTY1×QTY4 > 0 이고 설정 바이트 0 이고 \|QTY3+QTY4\| > \|QTY1\| 이면 QTY4 = QTY1 − QTY3 → QTY2 = QTY3 + QTY4 | 0x4f4bad~0x4f4ceb |
|
||||
|
||||
- 설정 바이트 +0x69 의 화면 이름 미확인(「초과 입력 허용」 성격으로 보이나 이름 근거 없음).
|
||||
- 설정 = TwBoq 필드 +0x1068 `Act_Enabl_OVR6`(TAction · 보기/설정 · AutoCheck) 「누계수량 제한해제 (계약수량 〈 누계수량)」 · 메뉴 N229 · DFM 에 Checked 없음(처음 꺼짐) — §10 참고.
|
||||
- 편집 뒤 행 금액 다시 셈 0x4fc498 호출(0x4f4cf3).
|
||||
|
||||
## 5. 기성 행 금액 — ST_Boq 0x4fc498 (신뢰도 중)
|
||||
@@ -170,11 +170,11 @@ MROUNDUD 선택값 0 = 버림(08·13번 작업자료).
|
||||
|
||||
| 항목 | 상태 |
|
||||
|---|---|
|
||||
| 금회 칸(4) 단가 원천 | 미확인 — 회차 등록 복사는 1→2·3 만 |
|
||||
| ST_Boq 0x456504 칸 인자 뜻 | 미확인 |
|
||||
| [3_KANJUB] 전회 제잡비 이관 | 미확인 |
|
||||
| 설정 바이트 +0x69(수량 상한 해제) 이름 | 미확인 |
|
||||
| 0633~0638 · 0646·0647 열 산식 · 준공금액 원천 | 미확인 |
|
||||
| 금회 칸(4) 단가 원천 | §10.2 — 단가 칸 = 1(계약) 관찰(중) |
|
||||
| ST_Boq 0x456504 칸 인자 뜻 | §10.2 — 수량 칸·단가 칸 인자 대응(중) |
|
||||
| [3_KANJUB] 전회 제잡비 이관 | §10.3 — 회차 등록 때 2→3 복사 · 4 지움(상) |
|
||||
| 수량 상한 해제 설정 이름 | §10.1 — Act_Enabl_OVR6(상) |
|
||||
| 0633~0638 · 0646·0647 열 산식 · 준공금액 원천 | §10.4 — 열 = 인쇄 대화 상자가 고른 칸 금액 · 비율·사정·기성고·잔량·준공금액 산식 미발견 |
|
||||
| 도서할증 행 밑수 PRJLST.LCOST2 의 업무 뜻 | 관찰만(칸 2 노무비 자리) |
|
||||
| 원본 실행 수치 일치 | 미검증 |
|
||||
|
||||
@@ -182,3 +182,56 @@ MROUNDUD 선택값 0 = 버림(08·13번 작업자료).
|
||||
|
||||
- evidence/ — 구간별 역어셈블(주석: 가져오기 이름·문자열·상수) · DFM 해독(TWM_KANJUB_K.json · TPM_JAB_K.json)
|
||||
- scripts/ — pe.py(섹션 대응) · dz.py(주석 역어셈블) · inv.py(VMT·메서드·내보내기) · rsrc.py(RCDATA) · litref.py · strfind.py(문자열·참조) · parse_dfm.py(DFM)
|
||||
|
||||
## 10. REA MCP 보강 (rea-agents 6.7.0 + Ghidra 12.1.4, 2026-11-14)
|
||||
|
||||
- 방법: Ghidra 헤드리스 자동 분석 + 디컴파일(`procedure_pseudo_code` · `batch_decompile`) · 원본 바이트 쓰기 없음 · 실행 없음.
|
||||
- Ghidra 함수 경계 한계: Delphi published 메서드(VMT 메서드표로만 닿는 것)는 함수로 잡히지 않음 — ST_KanJub 0x4cdec0 · ST_Boq 0x4fc498 · 0x456504 · 0x4f4a2f 「not_in_procedure」(rea_mcp/*not_*.json). 이 구간은 §1~§7 capstone 판독 유지.
|
||||
- 대조 결과(일치):
|
||||
|
||||
| 대상 | Ghidra 근거 | 결과 |
|
||||
|---|---|---|
|
||||
| 행 다시 셈 0x4ce2c8 | rea_mcp/KanJub_0x4ce2c8_row_recalc.ghidra.json | §6.4 와 같음 — 종류 2 누적 · 도서할증 LCOST2 × 율 ÷ 100 · 이윤 − 조정량 · 부가세 1/2/3 · 누계 = 전회 + 금회 |
|
||||
| 끝전 0x4ce55c | KanJub_0x4ce55c_cut.ghidra.json | 같음 — 공급가액 절사 우선 · 아니면 총공사비 · 총공사비 절사 + 부가세 1택이면 ÷ 상수 후 버림(상수 1.1 은 capstone 0x4ce6b8) |
|
||||
| 총공사비 계산 0x4ce6c4 | KanJub_0x4ce6c4_calc_jab.ghidra.json | 같음 — `if (9 < ROUND(d) − 1U) break` = 1~10원 남으면 이윤 1 빼고 소계 다음부터 다시 셈 |
|
||||
| 저장 0x4ca5ac · 0x4cac0c · 0x4caa48 | KanJub_batch_*.ghidra.json | 같음 — COSTW4 ← 열 6 마지막 행 · COSTW3 ← 열 8 · PXXNM · 섹션 지움(vt+0x4c) · FUN_004caa48(4, 금회) · (2, 누계) |
|
||||
| 회차 등록 0x55a640 | Main_0x55a640_MkBoq.ghidra.c.txt | 같음 — 목표 6(기성) 분기 k_ord 대입 · 원본 PCLASS 4/6/7 갈래 |
|
||||
|
||||
### 10.1 수량 상한 해제 설정 (상)
|
||||
|
||||
- ST_Boq TwBoq 필드표: +0x1068 = `Act_Enabl_OVR6`. DFM TWBOQ: TAction Category 「보기/설정」 · Caption 「누계수량 제한해제 (계약수량 〈 누계수량)」 · AutoCheck · OnExecute `Act_Enabl_OVR6Execute` · 메뉴 N229 연결.
|
||||
- 0x4f4af5 · 0x4f4c02 의 `[+0x1068]+0x69` = 이 액션의 체크 상태 바이트(TAction 내부 오프셋 — 이름은 필드표, 바이트 뜻은 AutoCheck 와 맞춰 읽음 · 중).
|
||||
- 같은 DFM: 메뉴 「계약수량 ⇒ 기성누계수량(100%)」(mQty6All) · 「전체수량 ⇒ 금회수량(전체수량 적용)」(mQtyDevd, 숨김).
|
||||
|
||||
### 10.2 금회 칸 단가 (중)
|
||||
|
||||
- ST_Boq 0x4e4967~0x4e4a59: 열기 때 전역 [0x541898] = 1 · [0x541894] = 1 · [0x54189c] = 1 → PCLASS 3 이면 [0x541898] = [0x541894] = 2 · PCLASS 6 이면 [0x541894] = 4 만 바꿈([0x541898] = 1 유지) · PCLASS 7 이면 [0x541894] = IIF(K_ORD−1 < 4, K_ORD+1, 2).
|
||||
- 행 금액 0x4fc674(PCLASS 6): 0x456504(…, 편집 칸, [0x541894], [0x541898], …) — 0x456504 머리 0x4565ad~0x4565e6: 수량 칸 = IIF(인자 c = 0, 순번, 인자 d) → `'QTY' + 칸 글자`.
|
||||
- IIF 인자 순서(stdcall — 둘째로 넣은 값 = 참): ST_Boq 0x4e49c4 `IIF(K_ORD−1 < 4, K_ORD+1, 2)` 가 변경 차수 칸 규칙과 맞음.
|
||||
- 읽음: 기성 프로젝트 편집 칸 = 4(금회) · 단가 칸 인자 = 1(계약). 누계 다시 셈 0x4fce6e 의 단가 칸 인자 = IIF(PR·%·Q 행, 2, 1). 인자 e 가 단가 칸이라는 대응은 호출 짝으로 읽은 것(0x44019c 안쪽 미해독) — 신뢰도 중.
|
||||
|
||||
### 10.3 [3_KANJUB] 전회 제잡비 (상)
|
||||
|
||||
- 섹션 복사 함수 Main 0x455e68(메모, 원본 칸 글자, 대상 칸 문자열, …, 지울 칸 문자열): PRJ_MEMO.INI 로 풀어 원본 `n_KANJUB` 키를 읽고 → 대상 `m_KANJUB` 섹션 지움(vt+0x4c) → 키 첫 글자를 대상 칸으로 바꿔 기록(0x456128~0x4562b5) · KANJUB_ADD 의 칸 꼬리 키도 복사 · 끝에 지울 칸 문자열의 '1'~'4' 마다 `n_KANJUB` EraseSection(0x45676b~0x4567c0) · KANJUB_ADD 의 그 칸 값 '0'(0x4564e8).
|
||||
- 회차 등록 목표 6(기성) 갈래(0x55b287~0x55b3cb, Ghidra 같음):
|
||||
|
||||
| 원본 PCLASS | 섹션 처리 | PRJLST |
|
||||
|---|---|---|
|
||||
| 4 계약 | 0x455e68(src '1' → '1', 지움 '234') | k_ord = 1 |
|
||||
| 6 기성 | 0x455e68(src '2' → '3', 지움 '4') | TCOST3 ← TCOST2 · TCOST4 = 0 · 뒤 0x55d1d3 k_ord = K+1 |
|
||||
| 7 변경 | 0x455e68(src 차수 칸 → '1', …) · (src '4' → '3') 등 | 세부 미정리 |
|
||||
|
||||
- 따라서 전회 제잡비 [3_KANJUB] 는 다음 회차 등록 때 앞 회차 누계 [2_KANJUB] 를 복사해 채움 · 금회 [4_KANJUB] 는 지워진 채 시작.
|
||||
|
||||
### 10.4 인쇄 열 계산 (0633~0638 · 0646·0647)
|
||||
|
||||
- ST_P_Nae `Prn_Jab` 0x4b1998 → 양식 `TPM_Jab`(DFM 머리 「총 괄 설 계 내 역 서」를 서식 이름으로 바꿔 씀 · 자료 PRT.DBF) · 띠 출력 0x4b2600: 열 k 의 금액 = `T_AMT`/`M_AMT`/`L_AMT`/`S_AMT` + 칸 글자, 칸 = 설정 배열 [+0x1788 + k] (0x4b285c~0x4b29e1).
|
||||
- 칸 배열은 ST_Prt 인쇄 대화 상자에서 채움 — 0x4b6b14~0x4b6b40 이 전역 0x4d5498(6바이트)을 +0x1788 로 복사 · 0x4a27c0 이 대화 상자 선택값으로 0x4d5498 을 채움(당초·변경 칸 1·2 갈래 관찰).
|
||||
- 관찰: Prn_Jab · TPM_Jab 띠 출력에 금액 나눗셈(비율) · 사정 · 잔량 연산 없음(나눗셈은 배치 폭 2.0 · 376.0 뿐). 0632(TPM_JAB_K) 만 비율 연산 있음(§2).
|
||||
- 0635 비율 · 0636/0637 기성고(%) · 0638 기성(%)·잔량 · 0634 사정 · 0646/0647 준공금액 의 산식 원천은 이번 범위에서 미발견. 서식별 기본 칸 배열(어느 열이 어느 칸)도 미확정.
|
||||
- 관련 관찰: ST_P_ConEst TPM_NAE_C3 0x479007~0x479158 — 머리 문구 IIF([0x4aa738] = 1, 「◎ 준공 정산액 :」, 「◎ 기성부분금액 :」)(IIF 순서 §10.2) · 금액 = PRJLST `TCOST` + 첫 열 칸 글자(설정 +0x1788).
|
||||
|
||||
### 10.5 자료
|
||||
|
||||
- rea_mcp/ — Ghidra 결과 JSON(evidence_id 포함) · MkBoq 디컴파일 본문.
|
||||
- evidence/ 추가 — Main_0x455e68_kanjub_section_copy · Main_0x55b0b5_registration_kanjub_branch · Boq_0x4e4920_qty_price_slot_globals · Boq_0x456504_row_calc_head · Nae_0x4b285c_TPM_Jab_column_slot · Prt_0x4b6b14_column_slot_array · ConEst_0x479007_jungong_label · TPM_JAB.json.
|
||||
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
456504: push ebp
|
||||
456505: mov ebp, esp
|
||||
456507: push ecx
|
||||
456508: mov ecx, 0x46
|
||||
45650d: push 0
|
||||
45650f: push 0
|
||||
456511: dec ecx
|
||||
456512: jne 0x45650d
|
||||
456514: push ecx
|
||||
456515: xchg dword ptr [ebp - 4], ecx
|
||||
456518: push ebx
|
||||
456519: push esi
|
||||
45651a: push edi
|
||||
45651b: mov byte ptr [ebp - 2], cl
|
||||
45651e: mov edi, edx
|
||||
456520: mov byte ptr [ebp - 1], al
|
||||
456523: mov ebx, dword ptr [ebp + 8]
|
||||
456526: xor eax, eax
|
||||
456528: push ebp
|
||||
456529: push 0x456efa
|
||||
45652e: push dword ptr fs:[eax]
|
||||
456531: mov dword ptr fs:[eax], esp
|
||||
456534: cmp byte ptr [ebp - 1], 0
|
||||
456538: je 0x456638
|
||||
45653e: mov esi, 1
|
||||
456543: lea eax, [ebx + 0x130]
|
||||
456549: mov dword ptr [ebp - 8], eax
|
||||
45654c: push esi
|
||||
45654d: push edi
|
||||
45654e: mov esi, 0x456f0c
|
||||
456553: lea edi, [ebp - 0x30]
|
||||
456556: mov ecx, 8
|
||||
45655b: rep movsd dword ptr es:[edi], dword ptr [esi]
|
||||
45655d: pop edi
|
||||
45655e: pop esi
|
||||
45655f: mov eax, esi
|
||||
456561: cmp eax, 0xff
|
||||
456566: ja 0x45656c
|
||||
456568: bts dword ptr [ebp - 0x30], eax
|
||||
45656c: mov eax, dword ptr [ebp + 0xc]
|
||||
45656f: cmp eax, 0xff
|
||||
456574: ja 0x45657a
|
||||
456576: bt dword ptr [ebp - 0x30], eax
|
||||
45657a: jae 0x4565f1
|
||||
45657c: lea eax, [ebp - 0x54]
|
||||
45657f: mov edx, dword ptr [ebp + 0x10]
|
||||
456582: mov cl, 0xfc
|
||||
456584: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
456589: push dword ptr [ebp - 0x48]
|
||||
45658c: push dword ptr [ebp - 0x4c]
|
||||
45658f: push dword ptr [ebp - 0x50]
|
||||
456592: push dword ptr [ebp - 0x54]
|
||||
456595: lea eax, [ebp - 0x64]
|
||||
456598: mov edx, esi
|
||||
45659a: mov cl, 0xfc
|
||||
45659c: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
4565a1: push dword ptr [ebp - 0x58]
|
||||
4565a4: push dword ptr [ebp - 0x5c]
|
||||
4565a7: push dword ptr [ebp - 0x60]
|
||||
4565aa: push dword ptr [ebp - 0x64]
|
||||
4565ad: cmp dword ptr [ebp + 0xc], 0
|
||||
4565b1: sete al
|
||||
4565b4: push eax
|
||||
4565b5: lea eax, [ebp - 0x44]
|
||||
4565b8: push eax
|
||||
4565b9: call 0x42b2f8 ; DP_COMMON!IIF
|
||||
4565be: lea eax, [ebp - 0x44]
|
||||
4565c1: call 0x401350 ; rtl60!@System@@VarToReal$qqrrx14System@Variant
|
||||
4565c6: call 0x401068 ; rtl60!@System@@ROUND$qqrv
|
||||
4565cb: mov edx, dword ptr [0x52e784]
|
||||
4565d1: mov ecx, dword ptr [edx + eax*4]
|
||||
4565d4: lea eax, [ebp - 0x34]
|
||||
4565d7: mov edx, 0x456f34 ; 'QTY'
|
||||
4565dc: call 0x401270 ; rtl60!@System@@LStrCat3$qqrv
|
||||
4565e1: mov edx, dword ptr [ebp - 0x34]
|
||||
4565e4: mov eax, edi
|
||||
4565e6: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString
|
||||
4565eb: mov eax, dword ptr [ebp - 8]
|
||||
4565ee: fstp qword ptr [eax]
|
||||
4565f0: wait
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
4e4920: .byte 0xff
|
||||
4e4921: .byte 0xff
|
||||
4e4922: .byte 0xff
|
||||
4e4923: call 0x401340 ; rtl60!@System@@VarToInt$qqrrx14System@Variant
|
||||
4e4928: mov edx, dword ptr [0x5417b8]
|
||||
4e492e: mov dword ptr [edx + 0x118c], eax
|
||||
4e4934: jmp 0x4e4967 ; '�'
|
||||
4e4936: mov eax, dword ptr [0x5417b8]
|
||||
4e493b: mov dword ptr [eax + 0x118c], 1
|
||||
4e4945: jmp 0x4e4967 ; '�'
|
||||
4e4947: mov eax, dword ptr [0x5417b8]
|
||||
4e494c: mov dword ptr [eax + 0x118c], 1
|
||||
4e4956: jmp 0x4e4967 ; '�'
|
||||
4e4958: mov eax, dword ptr [0x5417b8]
|
||||
4e495d: mov dword ptr [eax + 0x118c], 1
|
||||
4e4967: mov dword ptr [0x541898], 1
|
||||
4e4971: mov dword ptr [0x541894], 1
|
||||
4e497b: mov dword ptr [0x54189c], 1
|
||||
4e4985: mov eax, dword ptr [0x5417bc]
|
||||
4e498a: sub eax, 3
|
||||
4e498d: je 0x4e499c
|
||||
4e498f: sub eax, 3
|
||||
4e4992: je 0x4e49b5
|
||||
4e4994: dec eax
|
||||
4e4995: je 0x4e49c4
|
||||
4e4997: jmp 0x4e4a45
|
||||
4e499c: mov dword ptr [0x541898], 2
|
||||
4e49a6: mov dword ptr [0x541894], 2
|
||||
4e49b0: jmp 0x4e4a59 ; '�'
|
||||
4e49b5: mov dword ptr [0x541894], 4
|
||||
4e49bf: jmp 0x4e4a59 ; '�'
|
||||
4e49c4: lea eax, [ebp - 0xfc]
|
||||
4e49ca: mov edx, 2
|
||||
4e49cf: mov cl, 1
|
||||
4e49d1: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
4e49d6: push dword ptr [ebp - 0xf0]
|
||||
4e49dc: push dword ptr [ebp - 0xf4]
|
||||
4e49e2: push dword ptr [ebp - 0xf8]
|
||||
4e49e8: push dword ptr [ebp - 0xfc]
|
||||
4e49ee: lea eax, [ebp - 0x10c]
|
||||
4e49f4: mov edx, dword ptr [0x5417c0]
|
||||
4e49fa: inc edx
|
||||
4e49fb: mov cl, 0xfc
|
||||
4e49fd: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
4e4a02: push dword ptr [ebp - 0x100]
|
||||
4e4a08: push dword ptr [ebp - 0x104]
|
||||
4e4a0e: push dword ptr [ebp - 0x108]
|
||||
4e4a14: push dword ptr [ebp - 0x10c]
|
||||
4e4a1a: mov eax, dword ptr [0x5417c0]
|
||||
4e4a1f: dec eax
|
||||
4e4a20: sub eax, 4
|
||||
4e4a23: setb al
|
||||
4e4a26: push eax
|
||||
4e4a27: lea eax, [ebp - 0xec]
|
||||
4e4a2d: push eax
|
||||
4e4a2e: call 0x42b2f8 ; DP_COMMON!IIF
|
||||
4e4a33: lea eax, [ebp - 0xec]
|
||||
4e4a39: call 0x401340 ; rtl60!@System@@VarToInt$qqrrx14System@Variant
|
||||
4e4a3e: mov dword ptr [0x541894], eax
|
||||
4e4a43: jmp 0x4e4a59 ; '�'
|
||||
4e4a45: mov dword ptr [0x541898], 1
|
||||
4e4a4f: mov dword ptr [0x541894], 1
|
||||
4e4a59: cmp dword ptr [0x5417bc], 5
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
479007: lea eax, [ebp - 0x490]
|
||||
47900d: mov edx, 0x479998 ; 'TCOST'
|
||||
479012: call 0x401350
|
||||
479017: lea eax, [ebp - 0x490]
|
||||
47901d: push eax
|
||||
47901e: mov al, 0x32
|
||||
479020: mov byte ptr [ebp - 0x413], al
|
||||
479026: mov byte ptr [ebp - 0x414], 1
|
||||
47902d: lea eax, [ebp - 0x4b0]
|
||||
479033: lea edx, [ebp - 0x414]
|
||||
479039: call 0x401348
|
||||
47903e: push dword ptr [ebp - 0x4a4]
|
||||
479044: push dword ptr [ebp - 0x4a8]
|
||||
47904a: push dword ptr [ebp - 0x4ac]
|
||||
479050: push dword ptr [ebp - 0x4b0]
|
||||
479056: lea eax, [ebp - 0x4c0]
|
||||
47905c: mov edx, dword ptr [0x486740]
|
||||
479062: mov edx, dword ptr [edx]
|
||||
479064: movsx edx, byte ptr [edx + 0x1788]
|
||||
47906b: mov ecx, dword ptr [0x48682c]
|
||||
479071: mov edx, dword ptr [ecx + edx*4]
|
||||
479074: call 0x401350
|
||||
479079: push dword ptr [ebp - 0x4b4]
|
||||
47907f: push dword ptr [ebp - 0x4b8]
|
||||
479085: push dword ptr [ebp - 0x4bc]
|
||||
47908b: push dword ptr [ebp - 0x4c0]
|
||||
479091: cmp dword ptr [0x4aa738], 1
|
||||
479098: sete al
|
||||
47909b: push eax
|
||||
47909c: lea eax, [ebp - 0x4a0]
|
||||
4790a2: push eax
|
||||
4790a3: call 0x43768c ; DP_COMMON!IIF
|
||||
4790a8: lea edx, [ebp - 0x4a0]
|
||||
4790ae: pop eax
|
||||
4790af: call 0x401358
|
||||
4790b4: lea edx, [ebp - 0x490]
|
||||
4790ba: lea eax, [ebp - 0x480]
|
||||
4790c0: call 0x401310
|
||||
4790c5: mov edx, dword ptr [ebp - 0x480]
|
||||
4790cb: mov eax, dword ptr [0x486914]
|
||||
4790d0: mov eax, dword ptr [eax]
|
||||
4790d2: mov eax, dword ptr [eax + 0x20]
|
||||
4790d5: call 0x402cb0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString
|
||||
4790da: fstp qword ptr [ebp - 0x18]
|
||||
4790dd: wait
|
||||
4790de: lea eax, [ebp - 0x4e0]
|
||||
4790e4: mov edx, 0x4799e4 ; '◎ 기성부분금액 : '
|
||||
4790e9: call 0x401350
|
||||
4790ee: push dword ptr [ebp - 0x4d4]
|
||||
4790f4: push dword ptr [ebp - 0x4d8]
|
||||
4790fa: push dword ptr [ebp - 0x4dc]
|
||||
479100: push dword ptr [ebp - 0x4e0]
|
||||
479106: lea eax, [ebp - 0x4f0]
|
||||
47910c: mov edx, 0x479a00 ; '◎ 준공 정산액 : '
|
||||
479111: call 0x401350
|
||||
479116: push dword ptr [ebp - 0x4e4]
|
||||
47911c: push dword ptr [ebp - 0x4e8]
|
||||
479122: push dword ptr [ebp - 0x4ec]
|
||||
479128: push dword ptr [ebp - 0x4f0]
|
||||
47912e: cmp dword ptr [0x4aa738], 1
|
||||
479135: sete al
|
||||
479138: push eax
|
||||
479139: lea eax, [ebp - 0x4d0]
|
||||
47913f: push eax
|
||||
479140: call 0x43768c ; DP_COMMON!IIF
|
||||
479145: lea edx, [ebp - 0x4d0]
|
||||
47914b: mov eax, dword ptr [ebp - 0x20]
|
||||
47914e: mov eax, dword ptr [eax]
|
||||
479150: mov ecx, dword ptr [eax]
|
||||
479152: call dword ptr [ecx + 0xc4]
|
||||
+813
@@ -0,0 +1,813 @@
|
||||
455e68: push ebp
|
||||
455e69: mov ebp, esp
|
||||
455e6b: push ecx
|
||||
455e6c: mov ecx, 0x51
|
||||
455e71: push 0
|
||||
455e73: push 0
|
||||
455e75: dec ecx
|
||||
455e76: jne 0x455e71
|
||||
455e78: xchg dword ptr [ebp - 4], ecx
|
||||
455e7b: push ebx
|
||||
455e7c: push esi
|
||||
455e7d: push edi
|
||||
455e7e: mov dword ptr [ebp - 0xc], ecx
|
||||
455e81: mov byte ptr [ebp - 5], dl
|
||||
455e84: mov dword ptr [ebp - 4], eax
|
||||
455e87: mov eax, dword ptr [ebp - 4]
|
||||
455e8a: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv
|
||||
455e8f: mov eax, dword ptr [ebp - 0xc]
|
||||
455e92: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv
|
||||
455e97: mov eax, dword ptr [ebp + 0x14]
|
||||
455e9a: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv
|
||||
455e9f: xor eax, eax
|
||||
455ea1: push ebp
|
||||
455ea2: push 0x456963
|
||||
455ea7: push dword ptr fs:[eax]
|
||||
455eaa: mov dword ptr fs:[eax], esp
|
||||
455ead: mov eax, dword ptr [ebp + 8]
|
||||
455eb0: mov edx, dword ptr [ebp - 4]
|
||||
455eb3: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv
|
||||
455eb8: lea edx, [ebp - 0x1f4]
|
||||
455ebe: mov eax, dword ptr [ebp - 4]
|
||||
455ec1: call 0x401e30 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString
|
||||
455ec6: cmp dword ptr [ebp - 0x1f4], 0
|
||||
455ecd: je 0x455f0a
|
||||
455ecf: cmp dword ptr [ebp + 0x10], 4
|
||||
455ed3: je 0x455f46
|
||||
455ed5: lea eax, [ebp - 0x1f8]
|
||||
455edb: mov dl, byte ptr [ebp - 5]
|
||||
455ede: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
455ee3: mov eax, dword ptr [ebp - 0x1f8]
|
||||
455ee9: mov edx, dword ptr [ebp - 0xc]
|
||||
455eec: call 0x4012c0 ; rtl60!@System@@LStrCmp$qqrv
|
||||
455ef1: jne 0x455f46
|
||||
455ef3: lea edx, [ebp - 0x1fc]
|
||||
455ef9: mov eax, dword ptr [ebp + 0x14]
|
||||
455efc: call 0x401e30 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString
|
||||
455f01: cmp dword ptr [ebp - 0x1fc], 0
|
||||
455f08: jne 0x455f46
|
||||
455f0a: push 0
|
||||
455f0c: lea eax, [ebp - 0x200]
|
||||
455f12: mov edx, dword ptr [0x5e5e7c]
|
||||
455f18: mov edx, dword ptr [edx]
|
||||
455f1a: add edx, 0x156d
|
||||
455f20: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255%
|
||||
455f25: lea eax, [ebp - 0x200]
|
||||
455f2b: mov edx, 0x45697c ; 'PRJ_MEMO.INI'
|
||||
455f30: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
455f35: mov eax, dword ptr [ebp - 0x200]
|
||||
455f3b: push eax
|
||||
455f3c: call 0x42297c ; DP_COMMON!DELE_FILE
|
||||
455f41: jmp 0x45692d
|
||||
455f46: xor eax, eax
|
||||
455f48: push ebp
|
||||
455f49: push 0x45609d
|
||||
455f4e: push dword ptr fs:[eax]
|
||||
455f51: mov dword ptr fs:[eax], esp
|
||||
455f54: lea eax, [ebp - 0x204]
|
||||
455f5a: mov edx, dword ptr [0x5e5e7c]
|
||||
455f60: mov edx, dword ptr [edx]
|
||||
455f62: add edx, 0x156d
|
||||
455f68: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255%
|
||||
455f6d: lea eax, [ebp - 0x204]
|
||||
455f73: mov edx, 0x45697c ; 'PRJ_MEMO.INI'
|
||||
455f78: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
455f7d: mov edx, dword ptr [ebp - 0x204]
|
||||
455f83: lea eax, [ebp - 0x1f0]
|
||||
455f89: call 0x4010a8 ; rtl60!@System@@Assign$qqrr15System@TTextRecx17System@AnsiString
|
||||
455f8e: lea eax, [ebp - 0x1f0]
|
||||
455f94: call 0x401098 ; rtl60!@System@@RewritText$qqrr15System@TTextRec
|
||||
455f99: call 0x401038 ; rtl60!@System@@_IOTest$qqrv
|
||||
455f9e: jmp 0x456052
|
||||
455fa3: lea eax, [ebp - 0x208]
|
||||
455fa9: push eax
|
||||
455faa: mov edx, dword ptr [ebp - 4]
|
||||
455fad: mov eax, 0x456994 ; '\r'
|
||||
455fb2: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
455fb7: mov ecx, eax
|
||||
455fb9: dec ecx
|
||||
455fba: mov edx, 1
|
||||
455fbf: mov eax, dword ptr [ebp - 4]
|
||||
455fc2: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
455fc7: mov edx, dword ptr [ebp - 0x208]
|
||||
455fcd: lea eax, [ebp - 0x1f0]
|
||||
455fd3: call 0x401318 ; rtl60!@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString
|
||||
455fd8: call 0x401110 ; rtl60!@System@@WriteLn$qqrr15System@TTextRec
|
||||
455fdd: call 0x401038 ; rtl60!@System@@_IOTest$qqrv
|
||||
455fe2: mov edx, dword ptr [ebp - 4]
|
||||
455fe5: mov eax, 0x456994 ; '\r'
|
||||
455fea: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
455fef: mov ebx, eax
|
||||
455ff1: mov edx, dword ptr [ebp - 4]
|
||||
455ff4: mov eax, 0x4569a0 ; '\r\n'
|
||||
455ff9: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
455ffe: cmp ebx, eax
|
||||
456000: jne 0x45602c
|
||||
456002: lea eax, [ebp - 4]
|
||||
456005: push eax
|
||||
456006: mov edx, dword ptr [ebp - 4]
|
||||
456009: mov eax, 0x456994 ; '\r'
|
||||
45600e: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
456013: add eax, 2
|
||||
456016: push eax
|
||||
456017: mov eax, dword ptr [ebp - 4]
|
||||
45601a: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
45601f: mov ecx, eax
|
||||
456021: mov eax, dword ptr [ebp - 4]
|
||||
456024: pop edx
|
||||
456025: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
45602a: jmp 0x456052
|
||||
45602c: lea eax, [ebp - 4]
|
||||
45602f: push eax
|
||||
456030: mov edx, dword ptr [ebp - 4]
|
||||
456033: mov eax, 0x456994 ; '\r'
|
||||
456038: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
45603d: inc eax
|
||||
45603e: push eax
|
||||
45603f: mov eax, dword ptr [ebp - 4]
|
||||
456042: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
456047: mov ecx, eax
|
||||
456049: mov eax, dword ptr [ebp - 4]
|
||||
45604c: pop edx
|
||||
45604d: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
456052: mov edx, dword ptr [ebp - 4]
|
||||
456055: mov eax, 0x456994 ; '\r'
|
||||
45605a: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
45605f: test eax, eax
|
||||
456061: jg 0x455fa3
|
||||
456067: mov edx, dword ptr [ebp - 4]
|
||||
45606a: lea eax, [ebp - 0x1f0]
|
||||
456070: call 0x401318 ; rtl60!@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString
|
||||
456075: call 0x401110 ; rtl60!@System@@WriteLn$qqrr15System@TTextRec
|
||||
45607a: call 0x401038 ; rtl60!@System@@_IOTest$qqrv
|
||||
45607f: xor eax, eax
|
||||
456081: pop edx
|
||||
456082: pop ecx
|
||||
456083: pop ecx
|
||||
456084: mov dword ptr fs:[eax], edx
|
||||
456087: push 0x4560a4
|
||||
45608c: lea eax, [ebp - 0x1f0]
|
||||
456092: call 0x4010b0 ; rtl60!@System@@Close$qqrr15System@TTextRec
|
||||
456097: call 0x401038 ; rtl60!@System@@_IOTest$qqrv
|
||||
45609c: ret
|
||||
45609d: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv
|
||||
4560a2: jmp 0x45608c
|
||||
4560a4: lea eax, [ebp - 0x20c]
|
||||
4560aa: mov edx, dword ptr [0x5e5e7c]
|
||||
4560b0: mov edx, dword ptr [edx]
|
||||
4560b2: add edx, 0x156d
|
||||
4560b8: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255%
|
||||
4560bd: lea eax, [ebp - 0x20c]
|
||||
4560c3: mov edx, 0x45697c ; 'PRJ_MEMO.INI'
|
||||
4560c8: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
4560cd: mov ecx, dword ptr [ebp - 0x20c]
|
||||
4560d3: mov dl, 1
|
||||
4560d5: mov eax, dword ptr [0x5fe630] ; [rtl60!@Inifiles@TIniFile@]
|
||||
4560da: call 0x404248 ; rtl60!@Inifiles@TCustomIniFile@$bctr$qqrx17System@AnsiString
|
||||
4560df: mov dword ptr [ebp - 0x20], eax
|
||||
4560e2: xor eax, eax
|
||||
4560e4: push ebp
|
||||
4560e5: push 0x4568ef
|
||||
4560ea: push dword ptr fs:[eax]
|
||||
4560ed: mov dword ptr fs:[eax], esp
|
||||
4560f0: mov dl, 1
|
||||
4560f2: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@]
|
||||
4560f7: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv
|
||||
4560fc: mov dword ptr [ebp - 0x10], eax
|
||||
4560ff: mov dl, 1
|
||||
456101: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@]
|
||||
456106: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv
|
||||
45610b: mov dword ptr [ebp - 0x14], eax
|
||||
45610e: mov eax, dword ptr [ebp - 0xc]
|
||||
456111: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
456116: test eax, eax
|
||||
456118: jle 0x456524
|
||||
45611e: mov dword ptr [ebp - 0x24], eax
|
||||
456121: mov dword ptr [ebp - 0x1c], 1
|
||||
456128: mov eax, dword ptr [ebp - 0xc]
|
||||
45612b: mov edx, dword ptr [ebp - 0x1c]
|
||||
45612e: mov al, byte ptr [eax + edx - 1]
|
||||
456132: cmp al, byte ptr [ebp - 5]
|
||||
456135: je 0x456518
|
||||
45613b: mov eax, dword ptr [ebp - 0x10]
|
||||
45613e: mov edx, dword ptr [eax]
|
||||
456140: call dword ptr [edx + 0x44]
|
||||
456143: lea eax, [ebp - 0x210]
|
||||
456149: mov dl, byte ptr [ebp - 5]
|
||||
45614c: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456151: lea eax, [ebp - 0x210]
|
||||
456157: mov edx, 0x4569ac ; '_KANJUB'
|
||||
45615c: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
456161: mov edx, dword ptr [ebp - 0x210]
|
||||
456167: mov ecx, dword ptr [ebp - 0x10]
|
||||
45616a: mov eax, dword ptr [ebp - 0x20]
|
||||
45616d: mov ebx, dword ptr [eax]
|
||||
45616f: call dword ptr [ebx + 0x40]
|
||||
456172: lea eax, [ebp - 0x214]
|
||||
456178: mov edx, dword ptr [ebp - 0xc]
|
||||
45617b: mov ecx, dword ptr [ebp - 0x1c]
|
||||
45617e: mov dl, byte ptr [edx + ecx - 1]
|
||||
456182: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456187: lea eax, [ebp - 0x214]
|
||||
45618d: mov edx, 0x4569ac ; '_KANJUB'
|
||||
456192: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
456197: mov edx, dword ptr [ebp - 0x214]
|
||||
45619d: mov eax, dword ptr [ebp - 0x20]
|
||||
4561a0: mov ecx, dword ptr [eax]
|
||||
4561a2: call dword ptr [ecx + 0x4c]
|
||||
4561a5: mov eax, dword ptr [ebp - 0x10]
|
||||
4561a8: mov edx, dword ptr [eax]
|
||||
4561aa: call dword ptr [edx + 0x14]
|
||||
4561ad: mov esi, eax
|
||||
4561af: dec esi
|
||||
4561b0: test esi, esi
|
||||
4561b2: jl 0x4562bd
|
||||
4561b8: inc esi
|
||||
4561b9: xor ebx, ebx
|
||||
4561bb: push 0
|
||||
4561bd: lea eax, [ebp - 0x218]
|
||||
4561c3: push eax
|
||||
4561c4: lea ecx, [ebp - 0x21c]
|
||||
4561ca: mov edx, ebx
|
||||
4561cc: mov eax, dword ptr [ebp - 0x10]
|
||||
4561cf: mov edi, dword ptr [eax]
|
||||
4561d1: call dword ptr [edi + 0xc]
|
||||
4561d4: mov eax, dword ptr [ebp - 0x21c]
|
||||
4561da: push eax
|
||||
4561db: lea eax, [ebp - 0x220]
|
||||
4561e1: mov dl, byte ptr [ebp - 5]
|
||||
4561e4: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
4561e9: lea eax, [ebp - 0x220]
|
||||
4561ef: mov edx, 0x4569ac ; '_KANJUB'
|
||||
4561f4: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
4561f9: mov edx, dword ptr [ebp - 0x220]
|
||||
4561ff: mov eax, dword ptr [ebp - 0x20]
|
||||
456202: pop ecx
|
||||
456203: mov edi, dword ptr [eax]
|
||||
456205: call dword ptr [edi]
|
||||
456207: mov eax, dword ptr [ebp - 0x218]
|
||||
45620d: push eax
|
||||
45620e: lea eax, [ebp - 0x224]
|
||||
456214: mov edx, dword ptr [ebp - 0xc]
|
||||
456217: mov ecx, dword ptr [ebp - 0x1c]
|
||||
45621a: mov dl, byte ptr [edx + ecx - 1]
|
||||
45621e: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456223: lea eax, [ebp - 0x224]
|
||||
456229: push eax
|
||||
45622a: lea eax, [ebp - 0x228]
|
||||
456230: push eax
|
||||
456231: lea ecx, [ebp - 0x22c]
|
||||
456237: mov edx, ebx
|
||||
456239: mov eax, dword ptr [ebp - 0x10]
|
||||
45623c: mov edi, dword ptr [eax]
|
||||
45623e: call dword ptr [edi + 0xc]
|
||||
456241: mov eax, dword ptr [ebp - 0x22c]
|
||||
456247: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
45624c: push eax
|
||||
45624d: lea ecx, [ebp - 0x230]
|
||||
456253: mov edx, ebx
|
||||
456255: mov eax, dword ptr [ebp - 0x10]
|
||||
456258: mov edi, dword ptr [eax]
|
||||
45625a: call dword ptr [edi + 0xc]
|
||||
45625d: mov eax, dword ptr [ebp - 0x230]
|
||||
456263: mov edx, 2
|
||||
456268: pop ecx
|
||||
456269: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
45626e: mov edx, dword ptr [ebp - 0x228]
|
||||
456274: pop eax
|
||||
456275: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
45627a: mov eax, dword ptr [ebp - 0x224]
|
||||
456280: push eax
|
||||
456281: lea eax, [ebp - 0x234]
|
||||
456287: mov edx, dword ptr [ebp - 0xc]
|
||||
45628a: mov ecx, dword ptr [ebp - 0x1c]
|
||||
45628d: mov dl, byte ptr [edx + ecx - 1]
|
||||
456291: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456296: lea eax, [ebp - 0x234]
|
||||
45629c: mov edx, 0x4569ac ; '_KANJUB'
|
||||
4562a1: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
4562a6: mov edx, dword ptr [ebp - 0x234]
|
||||
4562ac: mov eax, dword ptr [ebp - 0x20]
|
||||
4562af: pop ecx
|
||||
4562b0: mov edi, dword ptr [eax]
|
||||
4562b2: call dword ptr [edi + 4]
|
||||
4562b5: inc ebx
|
||||
4562b6: dec esi
|
||||
4562b7: jne 0x4561bb
|
||||
4562bd: mov eax, dword ptr [ebp - 0x10]
|
||||
4562c0: mov edx, dword ptr [eax]
|
||||
4562c2: call dword ptr [edx + 0x44]
|
||||
4562c5: mov eax, dword ptr [ebp - 0x14]
|
||||
4562c8: mov edx, dword ptr [eax]
|
||||
4562ca: call dword ptr [edx + 0x44]
|
||||
4562cd: mov ecx, dword ptr [ebp - 0x10]
|
||||
4562d0: mov edx, 0x4569bc ; 'KANJUB_ADD'
|
||||
4562d5: mov eax, dword ptr [ebp - 0x20]
|
||||
4562d8: mov ebx, dword ptr [eax]
|
||||
4562da: call dword ptr [ebx + 0x40]
|
||||
4562dd: mov ecx, dword ptr [ebp - 0x14]
|
||||
4562e0: mov edx, 0x4569bc ; 'KANJUB_ADD'
|
||||
4562e5: mov eax, dword ptr [ebp - 0x20]
|
||||
4562e8: mov ebx, dword ptr [eax]
|
||||
4562ea: call dword ptr [ebx + 0x48]
|
||||
4562ed: mov eax, dword ptr [ebp - 0x10]
|
||||
4562f0: mov edx, dword ptr [eax]
|
||||
4562f2: call dword ptr [edx + 0x14]
|
||||
4562f5: mov esi, eax
|
||||
4562f7: dec esi
|
||||
4562f8: test esi, esi
|
||||
4562fa: jl 0x456518
|
||||
456300: inc esi
|
||||
456301: xor ebx, ebx
|
||||
456303: lea ecx, [ebp - 0x238]
|
||||
456309: mov edx, ebx
|
||||
45630b: mov eax, dword ptr [ebp - 0x10]
|
||||
45630e: mov edi, dword ptr [eax]
|
||||
456310: call dword ptr [edi + 0xc]
|
||||
456313: mov eax, dword ptr [ebp - 0x238]
|
||||
456319: push eax
|
||||
45631a: push 0x4569d0 ; 'ADD_AMT_'
|
||||
45631f: call 0x4228cc ; DP_COMMON!MPOS
|
||||
456324: test al, al
|
||||
456326: je 0x456510
|
||||
45632c: lea eax, [ebp - 0x23c]
|
||||
456332: push eax
|
||||
456333: lea ecx, [ebp - 0x240]
|
||||
456339: mov edx, ebx
|
||||
45633b: mov eax, dword ptr [ebp - 0x10]
|
||||
45633e: mov edi, dword ptr [eax]
|
||||
456340: call dword ptr [edi + 0xc]
|
||||
456343: mov eax, dword ptr [ebp - 0x240]
|
||||
456349: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
45634e: push eax
|
||||
45634f: lea ecx, [ebp - 0x244]
|
||||
456355: mov edx, ebx
|
||||
456357: mov eax, dword ptr [ebp - 0x10]
|
||||
45635a: mov edi, dword ptr [eax]
|
||||
45635c: call dword ptr [edi + 0xc]
|
||||
45635f: mov eax, dword ptr [ebp - 0x244]
|
||||
456365: mov ecx, 1
|
||||
45636a: pop edx
|
||||
45636b: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
456370: mov eax, dword ptr [ebp - 0x23c]
|
||||
456376: push eax
|
||||
456377: lea eax, [ebp - 0x248]
|
||||
45637d: mov dl, byte ptr [ebp - 5]
|
||||
456380: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456385: mov edx, dword ptr [ebp - 0x248]
|
||||
45638b: pop eax
|
||||
45638c: call 0x4012c0 ; rtl60!@System@@LStrCmp$qqrv
|
||||
456391: jne 0x456480
|
||||
456397: lea eax, [ebp - 0x24c]
|
||||
45639d: push eax
|
||||
45639e: lea ecx, [ebp - 0x250]
|
||||
4563a4: mov edx, ebx
|
||||
4563a6: mov eax, dword ptr [ebp - 0x14]
|
||||
4563a9: mov edi, dword ptr [eax]
|
||||
4563ab: call dword ptr [edi + 0xc]
|
||||
4563ae: mov eax, dword ptr [ebp - 0x250]
|
||||
4563b4: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
4563b9: push eax
|
||||
4563ba: lea ecx, [ebp - 0x254]
|
||||
4563c0: mov edx, ebx
|
||||
4563c2: mov eax, dword ptr [ebp - 0x14]
|
||||
4563c5: mov edi, dword ptr [eax]
|
||||
4563c7: call dword ptr [edi + 0xc]
|
||||
4563ca: mov edx, dword ptr [ebp - 0x254]
|
||||
4563d0: mov eax, 0x4569e4 ; '='
|
||||
4563d5: call 0x401300 ; rtl60!@System@@LStrPos$qqrv
|
||||
4563da: inc eax
|
||||
4563db: push eax
|
||||
4563dc: lea ecx, [ebp - 0x258]
|
||||
4563e2: mov edx, ebx
|
||||
4563e4: mov eax, dword ptr [ebp - 0x14]
|
||||
4563e7: mov edi, dword ptr [eax]
|
||||
4563e9: call dword ptr [edi + 0xc]
|
||||
4563ec: mov eax, dword ptr [ebp - 0x258]
|
||||
4563f2: pop edx
|
||||
4563f3: pop ecx
|
||||
4563f4: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
4563f9: mov eax, dword ptr [ebp - 0x24c]
|
||||
4563ff: push eax
|
||||
456400: lea eax, [ebp - 0x25c]
|
||||
456406: push eax
|
||||
456407: lea ecx, [ebp - 0x260]
|
||||
45640d: mov edx, ebx
|
||||
45640f: mov eax, dword ptr [ebp - 0x10]
|
||||
456412: mov edi, dword ptr [eax]
|
||||
456414: call dword ptr [edi + 0xc]
|
||||
456417: mov eax, dword ptr [ebp - 0x260]
|
||||
45641d: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
456422: dec eax
|
||||
456423: push eax
|
||||
456424: lea ecx, [ebp - 0x264]
|
||||
45642a: mov edx, ebx
|
||||
45642c: mov eax, dword ptr [ebp - 0x10]
|
||||
45642f: mov edi, dword ptr [eax]
|
||||
456431: call dword ptr [edi + 0xc]
|
||||
456434: mov eax, dword ptr [ebp - 0x264]
|
||||
45643a: mov edx, 1
|
||||
45643f: pop ecx
|
||||
456440: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
456445: lea eax, [ebp - 0x25c]
|
||||
45644b: push eax
|
||||
45644c: lea eax, [ebp - 0x268]
|
||||
456452: mov edx, dword ptr [ebp - 0xc]
|
||||
456455: mov ecx, dword ptr [ebp - 0x1c]
|
||||
456458: mov dl, byte ptr [edx + ecx - 1]
|
||||
45645c: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
456461: mov edx, dword ptr [ebp - 0x268]
|
||||
456467: pop eax
|
||||
456468: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
45646d: mov ecx, dword ptr [ebp - 0x25c]
|
||||
456473: mov edx, 0x4569bc ; 'KANJUB_ADD'
|
||||
456478: mov eax, dword ptr [ebp - 0x20]
|
||||
45647b: mov edi, dword ptr [eax]
|
||||
45647d: call dword ptr [edi + 4]
|
||||
456480: cmp dword ptr [ebp + 0x10], 4
|
||||
456484: jne 0x456490
|
||||
456486: cmp dword ptr [ebp + 0xc], 7
|
||||
45648a: je 0x456510
|
||||
456490: mov eax, dword ptr [ebp + 0x14]
|
||||
456493: push eax
|
||||
456494: lea eax, [ebp - 0x26c]
|
||||
45649a: push eax
|
||||
45649b: lea ecx, [ebp - 0x270]
|
||||
4564a1: mov edx, ebx
|
||||
4564a3: mov eax, dword ptr [ebp - 0x10]
|
||||
4564a6: mov edi, dword ptr [eax]
|
||||
4564a8: call dword ptr [edi + 0xc]
|
||||
4564ab: mov eax, dword ptr [ebp - 0x270]
|
||||
4564b1: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
4564b6: push eax
|
||||
4564b7: lea ecx, [ebp - 0x274]
|
||||
4564bd: mov edx, ebx
|
||||
4564bf: mov eax, dword ptr [ebp - 0x10]
|
||||
4564c2: mov edi, dword ptr [eax]
|
||||
4564c4: call dword ptr [edi + 0xc]
|
||||
4564c7: mov eax, dword ptr [ebp - 0x274]
|
||||
4564cd: mov ecx, 1
|
||||
4564d2: pop edx
|
||||
4564d3: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv
|
||||
4564d8: mov eax, dword ptr [ebp - 0x26c]
|
||||
4564de: push eax
|
||||
4564df: call 0x4228cc ; DP_COMMON!MPOS
|
||||
4564e4: test al, al
|
||||
4564e6: je 0x456510
|
||||
4564e8: push 0x4569f0 ; '0'
|
||||
4564ed: lea ecx, [ebp - 0x278]
|
||||
4564f3: mov edx, ebx
|
||||
4564f5: mov eax, dword ptr [ebp - 0x10]
|
||||
4564f8: mov edi, dword ptr [eax]
|
||||
4564fa: call dword ptr [edi + 0xc]
|
||||
4564fd: mov ecx, dword ptr [ebp - 0x278]
|
||||
456503: mov edx, 0x4569bc ; 'KANJUB_ADD'
|
||||
456508: mov eax, dword ptr [ebp - 0x20]
|
||||
45650b: mov edi, dword ptr [eax]
|
||||
45650d: call dword ptr [edi + 4]
|
||||
456510: inc ebx
|
||||
456511: dec esi
|
||||
456512: jne 0x456303
|
||||
456518: inc dword ptr [ebp - 0x1c]
|
||||
45651b: dec dword ptr [ebp - 0x24]
|
||||
45651e: jne 0x456128 ; '�'
|
||||
456524: mov eax, dword ptr [ebp + 0x10]
|
||||
456527: sub eax, 4
|
||||
45652a: je 0x456541
|
||||
45652c: sub eax, 2
|
||||
45652f: je 0x4566c2
|
||||
456535: dec eax
|
||||
456536: je 0x456631
|
||||
45653c: jmp 0x45676b
|
||||
456541: push 1
|
||||
456543: mov ecx, 0x4569fc ; '1_I_COST_BO'
|
||||
456548: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
45654d: mov eax, dword ptr [ebp - 0x20]
|
||||
456550: mov ebx, dword ptr [eax]
|
||||
456552: call dword ptr [ebx + 0xc]
|
||||
456555: push 1
|
||||
456557: mov ecx, 0x456a24 ; '1_D_KUNBO'
|
||||
45655c: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456561: mov eax, dword ptr [ebp - 0x20]
|
||||
456564: mov ebx, dword ptr [eax]
|
||||
456566: call dword ptr [ebx + 0xc]
|
||||
456569: push 1
|
||||
45656b: mov ecx, 0x456a38 ; '1_D_YUNBO'
|
||||
456570: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456575: mov eax, dword ptr [ebp - 0x20]
|
||||
456578: mov ebx, dword ptr [eax]
|
||||
45657a: call dword ptr [ebx + 0xc]
|
||||
45657d: push 1
|
||||
45657f: mov ecx, 0x456a4c ; '1_D_ANJUN'
|
||||
456584: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456589: mov eax, dword ptr [ebp - 0x20]
|
||||
45658c: mov ebx, dword ptr [eax]
|
||||
45658e: call dword ptr [ebx + 0xc]
|
||||
456591: push 1
|
||||
456593: mov ecx, 0x456a60 ; '1_D_SLVBO'
|
||||
456598: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
45659d: mov eax, dword ptr [ebp - 0x20]
|
||||
4565a0: mov ebx, dword ptr [eax]
|
||||
4565a2: call dword ptr [ebx + 0xc]
|
||||
4565a5: push 1
|
||||
4565a7: mov ecx, 0x456a74 ; '1_D_TBUGUM'
|
||||
4565ac: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4565b1: mov eax, dword ptr [ebp - 0x20]
|
||||
4565b4: mov ebx, dword ptr [eax]
|
||||
4565b6: call dword ptr [ebx + 0xc]
|
||||
4565b9: cmp dword ptr [ebp + 0xc], 7
|
||||
4565bd: je 0x4565d3
|
||||
4565bf: push 0
|
||||
4565c1: mov ecx, 0x456a88 ; '1_C_IYUN_M'
|
||||
4565c6: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4565cb: mov eax, dword ptr [ebp - 0x20]
|
||||
4565ce: mov ebx, dword ptr [eax]
|
||||
4565d0: call dword ptr [ebx + 0xc]
|
||||
4565d3: push 1
|
||||
4565d5: mov ecx, 0x456a9c ; '1_D_EIS_SUPPAY'
|
||||
4565da: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4565df: mov eax, dword ptr [ebp - 0x20]
|
||||
4565e2: mov ebx, dword ptr [eax]
|
||||
4565e4: call dword ptr [ebx + 0xc]
|
||||
4565e7: push 0
|
||||
4565e9: push 0
|
||||
4565eb: mov ecx, 0x456ab4 ; '1_C_EIS_SUPPAY'
|
||||
4565f0: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4565f5: mov eax, dword ptr [ebp - 0x20]
|
||||
4565f8: mov ebx, dword ptr [eax]
|
||||
4565fa: call dword ptr [ebx + 0x38]
|
||||
4565fd: push 0
|
||||
4565ff: push 0
|
||||
456601: mov ecx, 0x456acc ; '1_C_EIS_HOLPAY'
|
||||
456606: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
45660b: mov eax, dword ptr [ebp - 0x20]
|
||||
45660e: mov ebx, dword ptr [eax]
|
||||
456610: call dword ptr [ebx + 0x24]
|
||||
456613: add esp, -8
|
||||
456616: fstp qword ptr [esp]
|
||||
456619: wait
|
||||
45661a: mov ecx, 0x456ae4 ; '1_C_EIS_HOLLAB'
|
||||
45661f: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456624: mov eax, dword ptr [ebp - 0x20]
|
||||
456627: mov ebx, dword ptr [eax]
|
||||
456629: call dword ptr [ebx + 0x38]
|
||||
45662c: jmp 0x45676b
|
||||
456631: push 1
|
||||
456633: mov ecx, 0x456afc ; '2_D_KUNBO'
|
||||
456638: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
45663d: mov eax, dword ptr [ebp - 0x20]
|
||||
456640: mov ebx, dword ptr [eax]
|
||||
456642: call dword ptr [ebx + 0xc]
|
||||
456645: push 1
|
||||
456647: mov ecx, 0x456b24 ; '2_D_YUNBO'
|
||||
45664c: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
456651: mov eax, dword ptr [ebp - 0x20]
|
||||
456654: mov ebx, dword ptr [eax]
|
||||
456656: call dword ptr [ebx + 0xc]
|
||||
456659: push 1
|
||||
45665b: mov ecx, 0x456b38 ; '2_D_SLVBO'
|
||||
456660: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
456665: mov eax, dword ptr [ebp - 0x20]
|
||||
456668: mov ebx, dword ptr [eax]
|
||||
45666a: call dword ptr [ebx + 0xc]
|
||||
45666d: push 1
|
||||
45666f: mov ecx, 0x456b4c ; '2_D_TBUGUM'
|
||||
456674: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
456679: mov eax, dword ptr [ebp - 0x20]
|
||||
45667c: mov ebx, dword ptr [eax]
|
||||
45667e: call dword ptr [ebx + 0xc]
|
||||
456681: push 2
|
||||
456683: mov ecx, 0x456b60 ; '2_I_BF_CH_BO'
|
||||
456688: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
45668d: mov eax, dword ptr [ebp - 0x20]
|
||||
456690: mov ebx, dword ptr [eax]
|
||||
456692: call dword ptr [ebx + 0xc]
|
||||
456695: push 2
|
||||
456697: mov ecx, 0x456b78 ; '2_I_ANJUNAUTO'
|
||||
45669c: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
4566a1: mov eax, dword ptr [ebp - 0x20]
|
||||
4566a4: mov ebx, dword ptr [eax]
|
||||
4566a6: call dword ptr [ebx + 0xc]
|
||||
4566a9: push 0
|
||||
4566ab: mov ecx, 0x456b90 ; '2_D_ANJUN'
|
||||
4566b0: mov edx, 0x456b10 ; '2_KANJUB'
|
||||
4566b5: mov eax, dword ptr [ebp - 0x20]
|
||||
4566b8: mov ebx, dword ptr [eax]
|
||||
4566ba: call dword ptr [ebx + 0xc]
|
||||
4566bd: jmp 0x45676b
|
||||
4566c2: push 0
|
||||
4566c4: mov ecx, 0x456ba4 ; '1_I_BF_CH_BO'
|
||||
4566c9: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4566ce: mov eax, dword ptr [ebp - 0x20]
|
||||
4566d1: mov ebx, dword ptr [eax]
|
||||
4566d3: call dword ptr [ebx + 8]
|
||||
4566d6: test eax, eax
|
||||
4566d8: je 0x45672a
|
||||
4566da: push 1
|
||||
4566dc: mov ecx, 0x456a24 ; '1_D_KUNBO'
|
||||
4566e1: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4566e6: mov eax, dword ptr [ebp - 0x20]
|
||||
4566e9: mov ebx, dword ptr [eax]
|
||||
4566eb: call dword ptr [ebx + 0xc]
|
||||
4566ee: push 1
|
||||
4566f0: mov ecx, 0x456a38 ; '1_D_YUNBO'
|
||||
4566f5: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
4566fa: mov eax, dword ptr [ebp - 0x20]
|
||||
4566fd: mov ebx, dword ptr [eax]
|
||||
4566ff: call dword ptr [ebx + 0xc]
|
||||
456702: push 1
|
||||
456704: mov ecx, 0x456a60 ; '1_D_SLVBO'
|
||||
456709: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
45670e: mov eax, dword ptr [ebp - 0x20]
|
||||
456711: mov ebx, dword ptr [eax]
|
||||
456713: call dword ptr [ebx + 0xc]
|
||||
456716: push 1
|
||||
456718: mov ecx, 0x456a74 ; '1_D_TBUGUM'
|
||||
45671d: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456722: mov eax, dword ptr [ebp - 0x20]
|
||||
456725: mov ebx, dword ptr [eax]
|
||||
456727: call dword ptr [ebx + 0xc]
|
||||
45672a: push 0
|
||||
45672c: mov ecx, 0x456bbc ; '1_I_ANJUNAUTO'
|
||||
456731: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456736: mov eax, dword ptr [ebp - 0x20]
|
||||
456739: mov ebx, dword ptr [eax]
|
||||
45673b: call dword ptr [ebx + 8]
|
||||
45673e: cmp eax, 2
|
||||
456741: jne 0x45676b
|
||||
456743: push 1
|
||||
456745: mov ecx, 0x456a4c ; '1_D_ANJUN'
|
||||
45674a: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
45674f: mov eax, dword ptr [ebp - 0x20]
|
||||
456752: mov ebx, dword ptr [eax]
|
||||
456754: call dword ptr [ebx + 0xc]
|
||||
456757: push 1
|
||||
456759: mov ecx, 0x456bbc ; '1_I_ANJUNAUTO'
|
||||
45675e: mov edx, 0x456a10 ; '1_KANJUB'
|
||||
456763: mov eax, dword ptr [ebp - 0x20]
|
||||
456766: mov ebx, dword ptr [eax]
|
||||
456768: call dword ptr [ebx + 0xc]
|
||||
45676b: mov eax, dword ptr [ebp + 0x14]
|
||||
45676e: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString
|
||||
456773: test eax, eax
|
||||
456775: jle 0x4567c2
|
||||
456777: mov dword ptr [ebp - 0x24], eax
|
||||
45677a: mov ebx, 1
|
||||
45677f: mov eax, dword ptr [ebp + 0x14]
|
||||
456782: mov al, byte ptr [eax + ebx - 1]
|
||||
456786: add al, 0xcf
|
||||
456788: sub al, 4
|
||||
45678a: jae 0x4567bc
|
||||
45678c: lea eax, [ebp - 0x27c]
|
||||
456792: mov edx, dword ptr [ebp + 0x14]
|
||||
456795: mov dl, byte ptr [edx + ebx - 1]
|
||||
456799: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc
|
||||
45679e: lea eax, [ebp - 0x27c]
|
||||
4567a4: mov edx, 0x4569ac ; '_KANJUB'
|
||||
4567a9: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
4567ae: mov edx, dword ptr [ebp - 0x27c]
|
||||
4567b4: mov eax, dword ptr [ebp - 0x20]
|
||||
4567b7: mov ecx, dword ptr [eax]
|
||||
4567b9: call dword ptr [ecx + 0x4c]
|
||||
4567bc: inc ebx
|
||||
4567bd: dec dword ptr [ebp - 0x24]
|
||||
4567c0: jne 0x45677f ; '�'
|
||||
4567c2: lea eax, [ebp - 4]
|
||||
4567c5: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv
|
||||
4567ca: mov dl, 1
|
||||
4567cc: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@]
|
||||
4567d1: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv
|
||||
4567d6: mov dword ptr [ebp - 0x18], eax
|
||||
4567d9: mov edx, dword ptr [ebp - 0x18]
|
||||
4567dc: mov eax, dword ptr [ebp - 0x20]
|
||||
4567df: mov ecx, dword ptr [eax]
|
||||
4567e1: call dword ptr [ecx + 0x44]
|
||||
4567e4: mov eax, dword ptr [ebp - 0x18]
|
||||
4567e7: mov edx, dword ptr [eax]
|
||||
4567e9: call dword ptr [edx + 0x14]
|
||||
4567ec: dec eax
|
||||
4567ed: test eax, eax
|
||||
4567ef: jl 0x4568be
|
||||
4567f5: inc eax
|
||||
4567f6: mov dword ptr [ebp - 0x24], eax
|
||||
4567f9: xor ebx, ebx
|
||||
4567fb: mov eax, dword ptr [ebp - 0x10]
|
||||
4567fe: mov edx, dword ptr [eax]
|
||||
456800: call dword ptr [edx + 0x44]
|
||||
456803: lea ecx, [ebp - 0x280]
|
||||
456809: mov edx, ebx
|
||||
45680b: mov eax, dword ptr [ebp - 0x18]
|
||||
45680e: mov esi, dword ptr [eax]
|
||||
456810: call dword ptr [esi + 0xc]
|
||||
456813: mov edx, dword ptr [ebp - 0x280]
|
||||
456819: mov ecx, dword ptr [ebp - 0x10]
|
||||
45681c: mov eax, dword ptr [ebp - 0x20]
|
||||
45681f: mov esi, dword ptr [eax]
|
||||
456821: call dword ptr [esi + 0x48]
|
||||
456824: push dword ptr [ebp - 4]
|
||||
456827: push 0x456bd4 ; '['
|
||||
45682c: lea ecx, [ebp - 0x284]
|
||||
456832: mov edx, ebx
|
||||
456834: mov eax, dword ptr [ebp - 0x18]
|
||||
456837: mov esi, dword ptr [eax]
|
||||
456839: call dword ptr [esi + 0xc]
|
||||
45683c: push dword ptr [ebp - 0x284]
|
||||
456842: push 0x456be0 ; ']'
|
||||
456847: push 0x456994 ; '\r'
|
||||
45684c: push 0x456bec ; '\n'
|
||||
456851: lea eax, [ebp - 4]
|
||||
456854: mov edx, 6
|
||||
456859: call 0x4012b8 ; rtl60!@System@@LStrCatN$qqrv
|
||||
45685e: mov eax, dword ptr [ebp - 0x10]
|
||||
456861: mov edx, dword ptr [eax]
|
||||
456863: call dword ptr [edx + 0x14]
|
||||
456866: mov esi, eax
|
||||
456868: dec esi
|
||||
456869: test esi, esi
|
||||
45686b: jl 0x4568ac
|
||||
45686d: inc esi
|
||||
45686e: mov dword ptr [ebp - 0x1c], 0
|
||||
456875: push dword ptr [ebp - 4]
|
||||
456878: lea ecx, [ebp - 0x288]
|
||||
45687e: mov edx, dword ptr [ebp - 0x1c]
|
||||
456881: mov eax, dword ptr [ebp - 0x10]
|
||||
456884: mov edi, dword ptr [eax]
|
||||
456886: call dword ptr [edi + 0xc]
|
||||
456889: push dword ptr [ebp - 0x288]
|
||||
45688f: push 0x456994 ; '\r'
|
||||
456894: push 0x456bec ; '\n'
|
||||
456899: lea eax, [ebp - 4]
|
||||
45689c: mov edx, 4
|
||||
4568a1: call 0x4012b8 ; rtl60!@System@@LStrCatN$qqrv
|
||||
4568a6: inc dword ptr [ebp - 0x1c]
|
||||
4568a9: dec esi
|
||||
4568aa: jne 0x456875
|
||||
4568ac: mov eax, dword ptr [ebp - 0x10]
|
||||
4568af: mov edx, dword ptr [eax]
|
||||
4568b1: call dword ptr [edx + 0x44]
|
||||
4568b4: inc ebx
|
||||
4568b5: dec dword ptr [ebp - 0x24]
|
||||
4568b8: jne 0x4567fb
|
||||
4568be: mov eax, dword ptr [ebp + 8]
|
||||
4568c1: mov edx, dword ptr [ebp - 4]
|
||||
4568c4: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv
|
||||
4568c9: xor eax, eax
|
||||
4568cb: pop edx
|
||||
4568cc: pop ecx
|
||||
4568cd: pop ecx
|
||||
4568ce: mov dword ptr fs:[eax], edx
|
||||
4568d1: push 0x4568f6
|
||||
4568d6: mov eax, dword ptr [ebp - 0x10]
|
||||
4568d9: call 0x401180 ; rtl60!@System@TObject@Free$qqrv
|
||||
4568de: mov eax, dword ptr [ebp - 0x18]
|
||||
4568e1: call 0x401180 ; rtl60!@System@TObject@Free$qqrv
|
||||
4568e6: mov eax, dword ptr [ebp - 0x20]
|
||||
4568e9: call 0x401180 ; rtl60!@System@TObject@Free$qqrv
|
||||
4568ee: ret
|
||||
4568ef: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv
|
||||
4568f4: jmp 0x4568d6
|
||||
4568f6: push 0
|
||||
4568f8: lea eax, [ebp - 0x28c]
|
||||
4568fe: mov edx, dword ptr [0x5e5e7c]
|
||||
456904: mov edx, dword ptr [edx]
|
||||
456906: add edx, 0x156d
|
||||
45690c: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255%
|
||||
456911: lea eax, [ebp - 0x28c]
|
||||
456917: mov edx, 0x45697c ; 'PRJ_MEMO.INI'
|
||||
45691c: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv
|
||||
456921: mov eax, dword ptr [ebp - 0x28c]
|
||||
456927: push eax
|
||||
456928: call 0x42297c ; DP_COMMON!DELE_FILE
|
||||
45692d: xor eax, eax
|
||||
45692f: pop edx
|
||||
456930: pop ecx
|
||||
456931: pop ecx
|
||||
456932: mov dword ptr fs:[eax], edx
|
||||
456935: push 0x45696a
|
||||
45693a: lea eax, [ebp - 0x28c]
|
||||
456940: mov edx, 0x27
|
||||
456945: call 0x401258 ; rtl60!@System@@LStrArrayClr$qqrpvi
|
||||
45694a: lea eax, [ebp - 0xc]
|
||||
45694d: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv
|
||||
456952: lea eax, [ebp - 4]
|
||||
456955: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv
|
||||
45695a: lea eax, [ebp + 0x14]
|
||||
45695d: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv
|
||||
456962: ret
|
||||
456963: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv
|
||||
456968: jmp 0x45693a
|
||||
45696a: pop edi
|
||||
45696b: pop esi
|
||||
45696c: pop ebx
|
||||
45696d: mov esp, ebp
|
||||
45696f: pop ebp
|
||||
456970: ret 0x10
|
||||
456973: add bh, bh
|
||||
456975: .byte 0xff
|
||||
456976: .byte 0xff
|
||||
456977: dec dword ptr [eax + eax]
|
||||
45697a: add byte ptr [eax], al
|
||||
45697c: push eax
|
||||
45697d: push edx
|
||||
45697e: dec edx
|
||||
45697f: pop edi
|
||||
+184
@@ -0,0 +1,184 @@
|
||||
55b0b5: mov eax, dword ptr [ebp - 4]
|
||||
55b0b8: mov ebx, dword ptr [eax + 0x57c]
|
||||
55b0be: cmp ebx, 4
|
||||
55b0c1: jne 0x55b287
|
||||
55b0c7: mov eax, dword ptr [ebp - 4]
|
||||
55b0ca: mov esi, dword ptr [eax + 0x578]
|
||||
55b0d0: mov eax, esi
|
||||
55b0d2: sub eax, 1
|
||||
55b0d5: jb 0x55b0e1
|
||||
55b0d7: sub eax, 6
|
||||
55b0da: je 0x55b13a
|
||||
55b0dc: jmp 0x55b7d9
|
||||
55b0e1: push 0x55f3d8 ; '234'
|
||||
55b0e6: push ebx
|
||||
55b0e7: push 0
|
||||
55b0e9: lea eax, [ebp - 0x354]
|
||||
55b0ef: push eax
|
||||
55b0f0: mov eax, dword ptr [0x5e5f40]
|
||||
55b0f5: mov edx, dword ptr [ebp - 0x28]
|
||||
55b0f8: mov eax, dword ptr [eax + edx*4 + 4]
|
||||
55b0fc: mov dl, byte ptr [eax]
|
||||
55b0fe: mov ecx, 0x55f3e4 ; '1'
|
||||
55b103: mov eax, dword ptr [ebp - 0x44]
|
||||
55b106: call 0x455e68
|
||||
55b10b: mov edx, dword ptr [ebp - 0x354]
|
||||
55b111: lea eax, [ebp - 0x350]
|
||||
55b117: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString
|
||||
55b11c: lea ecx, [ebp - 0x350]
|
||||
55b122: mov eax, dword ptr [ebp - 4]
|
||||
55b125: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b12b: mov edx, 0x55f374 ; 'PRJ_MEMO'
|
||||
55b130: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b135: jmp 0x55b7d9
|
||||
55b13a: push 0x55f3d8 ; '234'
|
||||
55b13f: push ebx
|
||||
55b140: push esi
|
||||
55b141: lea eax, [ebp - 0x368]
|
||||
55b147: push eax
|
||||
55b148: mov eax, dword ptr [0x5e5f40]
|
||||
55b14d: mov edx, dword ptr [ebp - 0x28]
|
||||
55b150: mov eax, dword ptr [eax + edx*4 + 4]
|
||||
55b154: mov dl, byte ptr [eax]
|
||||
55b156: mov ecx, 0x55f3e4 ; '1'
|
||||
55b15b: mov eax, dword ptr [ebp - 0x44]
|
||||
55b15e: call 0x455e68
|
||||
55b163: mov edx, dword ptr [ebp - 0x368]
|
||||
55b169: lea eax, [ebp - 0x364]
|
||||
55b16f: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString
|
||||
55b174: lea ecx, [ebp - 0x364]
|
||||
55b17a: mov eax, dword ptr [ebp - 4]
|
||||
55b17d: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b183: mov edx, 0x55f374 ; 'PRJ_MEMO'
|
||||
55b188: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b18d: mov eax, dword ptr [0x5e5f40]
|
||||
55b192: mov edx, dword ptr [ebp - 0x28]
|
||||
55b195: mov ecx, dword ptr [eax + edx*4 + 4]
|
||||
55b199: lea eax, [ebp - 0x37c]
|
||||
55b19f: mov edx, 0x55f364 ; 'TCOST'
|
||||
55b1a4: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv
|
||||
55b1a9: mov edx, dword ptr [ebp - 0x37c]
|
||||
55b1af: lea ecx, [ebp - 0x378]
|
||||
55b1b5: mov eax, dword ptr [ebp - 4]
|
||||
55b1b8: mov ebx, dword ptr [eax + 0x2f4]
|
||||
55b1be: mov eax, ebx
|
||||
55b1c0: call 0x403d00 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
55b1c5: lea ecx, [ebp - 0x378]
|
||||
55b1cb: mov eax, ebx
|
||||
55b1cd: mov edx, 0x55f3f0 ; 'TCOST1'
|
||||
55b1d2: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b1d7: lea eax, [ebp - 0x38c]
|
||||
55b1dd: xor edx, edx
|
||||
55b1df: mov cl, 1
|
||||
55b1e1: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b1e6: lea ecx, [ebp - 0x38c]
|
||||
55b1ec: mov eax, dword ptr [ebp - 4]
|
||||
55b1ef: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b1f5: mov edx, 0x55f400 ; 'TCOST2'
|
||||
55b1fa: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b1ff: lea eax, [ebp - 0x39c]
|
||||
55b205: xor edx, edx
|
||||
55b207: mov cl, 1
|
||||
55b209: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b20e: lea ecx, [ebp - 0x39c]
|
||||
55b214: mov eax, dword ptr [ebp - 4]
|
||||
55b217: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b21d: mov edx, 0x55f410 ; 'TCOST3'
|
||||
55b222: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b227: lea eax, [ebp - 0x3ac]
|
||||
55b22d: xor edx, edx
|
||||
55b22f: mov cl, 1
|
||||
55b231: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b236: lea ecx, [ebp - 0x3ac]
|
||||
55b23c: mov eax, dword ptr [ebp - 4]
|
||||
55b23f: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b245: mov edx, 0x55f420 ; 'TCOST4'
|
||||
55b24a: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b24f: mov eax, dword ptr [ebp - 4]
|
||||
55b252: xor edx, edx
|
||||
55b254: mov dword ptr [eax + 0x580], edx
|
||||
55b25a: lea eax, [ebp - 0x3bc]
|
||||
55b260: xor edx, edx
|
||||
55b262: mov cl, 1
|
||||
55b264: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b269: lea ecx, [ebp - 0x3bc]
|
||||
55b26f: mov eax, dword ptr [ebp - 4]
|
||||
55b272: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b278: mov edx, 0x55f430 ; 'K_ORD'
|
||||
55b27d: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b282: jmp 0x55b7d9
|
||||
55b287: cmp ebx, 6
|
||||
55b28a: jne 0x55b523
|
||||
55b290: lea eax, [ebp - 0x3cc]
|
||||
55b296: mov edx, 1
|
||||
55b29b: mov cl, 1
|
||||
55b29d: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b2a2: lea ecx, [ebp - 0x3cc]
|
||||
55b2a8: mov eax, dword ptr [ebp - 4]
|
||||
55b2ab: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b2b1: mov edx, 0x55f440 ; 'k_ord'
|
||||
55b2b6: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b2bb: mov eax, dword ptr [ebp - 4]
|
||||
55b2be: mov eax, dword ptr [eax + 0x578]
|
||||
55b2c4: sub eax, 4
|
||||
55b2c7: je 0x55b2da
|
||||
55b2c9: sub eax, 2
|
||||
55b2cc: je 0x55b328
|
||||
55b2ce: dec eax
|
||||
55b2cf: je 0x55b3d0
|
||||
55b2d5: jmp 0x55b7d9
|
||||
55b2da: push 0x55f3d8 ; '234'
|
||||
55b2df: push 0
|
||||
55b2e1: push 0
|
||||
55b2e3: lea eax, [ebp - 0x3e0]
|
||||
55b2e9: push eax
|
||||
55b2ea: mov ecx, 0x55f3e4 ; '1'
|
||||
55b2ef: mov dl, 0x31
|
||||
55b2f1: mov eax, dword ptr [ebp - 0x44]
|
||||
55b2f4: call 0x455e68
|
||||
55b2f9: mov edx, dword ptr [ebp - 0x3e0]
|
||||
55b2ff: lea eax, [ebp - 0x3dc]
|
||||
55b305: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString
|
||||
55b30a: lea ecx, [ebp - 0x3dc]
|
||||
55b310: mov eax, dword ptr [ebp - 4]
|
||||
55b313: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b319: mov edx, 0x55f374 ; 'PRJ_MEMO'
|
||||
55b31e: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b323: jmp 0x55b7d9
|
||||
55b328: push 0x55f450 ; '4'
|
||||
55b32d: push 0
|
||||
55b32f: push 0
|
||||
55b331: lea eax, [ebp - 0x3f4]
|
||||
55b337: push eax
|
||||
55b338: mov ecx, 0x55f45c ; '3'
|
||||
55b33d: mov dl, 0x32
|
||||
55b33f: mov eax, dword ptr [ebp - 0x44]
|
||||
55b342: call 0x455e68
|
||||
55b347: mov edx, dword ptr [ebp - 0x3f4]
|
||||
55b34d: lea eax, [ebp - 0x3f0]
|
||||
55b353: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString
|
||||
55b358: lea ecx, [ebp - 0x3f0]
|
||||
55b35e: mov eax, dword ptr [ebp - 4]
|
||||
55b361: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b367: mov edx, 0x55f374 ; 'PRJ_MEMO'
|
||||
55b36c: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b371: lea ecx, [ebp - 0x404]
|
||||
55b377: mov eax, dword ptr [ebp - 4]
|
||||
55b37a: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b380: mov edx, 0x55f400 ; 'TCOST2'
|
||||
55b385: call 0x403d00 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
55b38a: lea ecx, [ebp - 0x404]
|
||||
55b390: mov eax, dword ptr [ebp - 4]
|
||||
55b393: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b399: mov edx, 0x55f410 ; 'TCOST3'
|
||||
55b39e: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b3a3: lea eax, [ebp - 0x414]
|
||||
55b3a9: xor edx, edx
|
||||
55b3ab: mov cl, 1
|
||||
55b3ad: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi
|
||||
55b3b2: lea ecx, [ebp - 0x414]
|
||||
55b3b8: mov eax, dword ptr [ebp - 4]
|
||||
55b3bb: mov eax, dword ptr [eax + 0x2f4]
|
||||
55b3c1: mov edx, 0x55f420 ; 'TCOST4'
|
||||
55b3c6: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant
|
||||
55b3cb: jmp 0x55b7d9
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
4b285c: mov eax, dword ptr [0x4ebf3c]
|
||||
4b2861: mov eax, dword ptr [eax]
|
||||
4b2863: mov edx, dword ptr [ebp - 0xc]
|
||||
4b2866: movsx eax, byte ptr [eax + edx + 0x1788]
|
||||
4b286e: mov edx, dword ptr [0x4ec028]
|
||||
4b2874: mov ecx, dword ptr [edx + eax*4]
|
||||
4b2877: lea eax, [ebp - 0x1a0]
|
||||
4b287d: mov edx, 0x4b3cf0 ; 'T_AMT'
|
||||
4b2882: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv
|
||||
4b2887: mov edx, dword ptr [ebp - 0x1a0]
|
||||
4b288d: lea ecx, [ebp - 0x19c]
|
||||
4b2893: mov eax, dword ptr [esi + 0x328]
|
||||
4b2899: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
4b289e: lea edx, [ebp - 0x19c]
|
||||
4b28a4: mov eax, dword ptr [ebx - 4]
|
||||
4b28a7: mov ecx, dword ptr [eax]
|
||||
4b28a9: call dword ptr [ecx + 0xc4]
|
||||
4b28af: cmp byte ptr [ebp - 0x15], 0
|
||||
4b28b3: je 0x4b29b6
|
||||
4b28b9: mov eax, dword ptr [0x4ebf3c]
|
||||
4b28be: mov eax, dword ptr [eax]
|
||||
4b28c0: mov edx, dword ptr [ebp - 0xc]
|
||||
4b28c3: movsx eax, byte ptr [eax + edx + 0x1788]
|
||||
4b28cb: mov edx, dword ptr [0x4ec028]
|
||||
4b28d1: mov ecx, dword ptr [edx + eax*4]
|
||||
4b28d4: lea eax, [ebp - 0x1b4]
|
||||
4b28da: mov edx, 0x4b3d00 ; 'M_AMT'
|
||||
4b28df: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv
|
||||
4b28e4: mov edx, dword ptr [ebp - 0x1b4]
|
||||
4b28ea: lea ecx, [ebp - 0x1b0]
|
||||
4b28f0: mov eax, dword ptr [esi + 0x328]
|
||||
4b28f6: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
4b28fb: lea edx, [ebp - 0x1b0]
|
||||
4b2901: mov eax, dword ptr [ebx]
|
||||
4b2903: mov ecx, dword ptr [eax]
|
||||
4b2905: call dword ptr [ecx + 0xc4]
|
||||
4b290b: mov eax, dword ptr [0x4ebf3c]
|
||||
4b2910: mov eax, dword ptr [eax]
|
||||
4b2912: mov edx, dword ptr [ebp - 0xc]
|
||||
4b2915: movsx eax, byte ptr [eax + edx + 0x1788]
|
||||
4b291d: mov edx, dword ptr [0x4ec028]
|
||||
4b2923: mov ecx, dword ptr [edx + eax*4]
|
||||
4b2926: lea eax, [ebp - 0x1c8]
|
||||
4b292c: mov edx, 0x4b3d10 ; 'L_AMT'
|
||||
4b2931: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv
|
||||
4b2936: mov edx, dword ptr [ebp - 0x1c8]
|
||||
4b293c: lea ecx, [ebp - 0x1c4]
|
||||
4b2942: mov eax, dword ptr [esi + 0x328]
|
||||
4b2948: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
4b294d: lea edx, [ebp - 0x1c4]
|
||||
4b2953: mov eax, dword ptr [ebx + 4]
|
||||
4b2956: mov ecx, dword ptr [eax]
|
||||
4b2958: call dword ptr [ecx + 0xc4]
|
||||
4b295e: mov eax, dword ptr [0x4ebf3c]
|
||||
4b2963: mov eax, dword ptr [eax]
|
||||
4b2965: mov edx, dword ptr [ebp - 0xc]
|
||||
4b2968: movsx eax, byte ptr [eax + edx + 0x1788]
|
||||
4b2970: mov edx, dword ptr [0x4ec028]
|
||||
4b2976: mov ecx, dword ptr [edx + eax*4]
|
||||
4b2979: lea eax, [ebp - 0x1dc]
|
||||
4b297f: mov edx, 0x4b3d20 ; 'S_AMT'
|
||||
4b2984: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv
|
||||
4b2989: mov edx, dword ptr [ebp - 0x1dc]
|
||||
4b298f: lea ecx, [ebp - 0x1d8]
|
||||
4b2995: mov eax, dword ptr [esi + 0x328]
|
||||
4b299b: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString
|
||||
4b29a0: lea edx, [ebp - 0x1d8]
|
||||
4b29a6: mov eax, dword ptr [ebx + 8]
|
||||
4b29a9: mov ecx, dword ptr [eax]
|
||||
4b29ab: call dword ptr [ecx + 0xc4]
|
||||
4b29b1: jmp 0x4b2df7
|
||||
4b29b6: cmp byte ptr [ebp - 6], 0x54
|
||||
4b29ba: je 0x4b2df7
|
||||
4b29c0: mov eax, dword ptr [0x4ebf3c]
|
||||
4b29c5: mov eax, dword ptr [eax]
|
||||
4b29c7: mov edx, dword ptr [ebp - 0xc]
|
||||
4b29ca: movsx eax, byte ptr [eax + edx + 0x1788]
|
||||
4b29d2: mov edx, dword ptr [0x4ec028]
|
||||
4b29d8: mov ecx, dword ptr [edx + eax*4]
|
||||
4b29db: lea eax, [ebp - 0x1f0]
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
4b6b14: xor edx, edx
|
||||
4b6b16: mov eax, 0x4d5498
|
||||
4b6b1b: mov ecx, dword ptr [0x4c294c]
|
||||
4b6b21: mov ecx, dword ptr [ecx]
|
||||
4b6b23: mov bl, byte ptr [eax]
|
||||
4b6b25: mov byte ptr [ecx + edx + 0x1788], bl
|
||||
4b6b2c: inc edx
|
||||
4b6b2d: inc eax
|
||||
4b6b2e: cmp edx, 6
|
||||
4b6b31: jne 0x4b6b1b
|
||||
4b6b33: mov eax, dword ptr [0x4c294c]
|
||||
4b6b38: mov eax, dword ptr [eax]
|
||||
4b6b3a: mov dl, byte ptr [0x4d5498]
|
||||
4b6b40: mov byte ptr [eax + 0x178e], dl
|
||||
+754
@@ -0,0 +1,754 @@
|
||||
{
|
||||
"class": "TPM_Jab",
|
||||
"name": "PM_Jab",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 192,
|
||||
"Top": 107,
|
||||
"Width": 696,
|
||||
"Height": 477,
|
||||
"Caption": "PM_Jab",
|
||||
"Color": "clBtnFace",
|
||||
"Font.Charset": "HANGEUL_CHARSET",
|
||||
"Font.Color": "clWindowText",
|
||||
"Font.Height": -12,
|
||||
"Font.Name": "굴림체",
|
||||
"Font.Style": [],
|
||||
"OldCreateOrder": false,
|
||||
"Scaled": false,
|
||||
"WindowState": "wsMaximized",
|
||||
"PixelsPerInch": 96,
|
||||
"TextHeight": 12
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRPage",
|
||||
"name": "HRPage1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 0,
|
||||
"Top": 0,
|
||||
"Width": 1123,
|
||||
"Height": 794,
|
||||
"BeforePrint": "HRPage1BeforePrint",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"Font.Charset": "HANGEUL_CHARSET",
|
||||
"Font.Color": "clWindowText",
|
||||
"Font.Height": -16,
|
||||
"Font.Name": "굴림체",
|
||||
"Font.Style": [],
|
||||
"ParentFont": false,
|
||||
"PageInfo.Width": 210,
|
||||
"PageInfo.Height": 297,
|
||||
"PageInfo.MargineLeft": 20,
|
||||
"PageInfo.MargineTop": 15,
|
||||
"PageInfo.MargineRight": 20,
|
||||
"PageInfo.MargineBottom": 15,
|
||||
"PageInfo.Orientation": "hpoLandscape",
|
||||
"PrintZoom": 100,
|
||||
"Ruler": true,
|
||||
"Units": "hpuMM"
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRPageBand",
|
||||
"name": "HRPageBand3",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 76,
|
||||
"Top": 107,
|
||||
"Width": 971,
|
||||
"Height": 586,
|
||||
"LocateAtPage": "alNone",
|
||||
"BandType": "hpbPageHeader",
|
||||
"Alignment": "taLeftJustify",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnRight",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clGreen"
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lb_Smpl",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 72,
|
||||
"Top": 80,
|
||||
"Width": 500,
|
||||
"Height": 168,
|
||||
"Alignment": "taCenter",
|
||||
"Font.Charset": "ANSI_CHARSET",
|
||||
"Font.Color": 13290239,
|
||||
"Font.Height": -160,
|
||||
"Font.Name": "Times New Roman",
|
||||
"Font.Style": [],
|
||||
"FontWidth": 30,
|
||||
"ParentFont": false,
|
||||
"Transparent": true,
|
||||
"Visible": false,
|
||||
"BorderStyle.ShadowBrush.Color": "clGray",
|
||||
"BorderStyle.ShadowWidth": 3,
|
||||
"BorderStyle.Slash": [
|
||||
"slNormal"
|
||||
],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Color": 13290239,
|
||||
"BorderStyle.Pen.Width": 3,
|
||||
"BorderStyle.Transparent": true,
|
||||
"Caption": "S A M P L E",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"class": "THRPageBand",
|
||||
"name": "HRPageBand1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 76,
|
||||
"Top": 57,
|
||||
"Width": 971,
|
||||
"Height": 50,
|
||||
"LocateAtPage": "alTop",
|
||||
"BandType": "hpbPageHeader",
|
||||
"Alignment": "taLeftJustify",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clGreen",
|
||||
"BorderStyle.Transparent": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "HlCap",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 0,
|
||||
"Top": 0,
|
||||
"Width": 971,
|
||||
"Height": 27,
|
||||
"Alignment": "taCenter",
|
||||
"Font.Charset": "HANGEUL_CHARSET",
|
||||
"Font.Color": "clBlack",
|
||||
"Font.Height": -21,
|
||||
"Font.Name": "굴림체",
|
||||
"Font.Style": [
|
||||
"fsBold",
|
||||
"fsUnderline"
|
||||
],
|
||||
"FontWidth": 6,
|
||||
"ParentFont": false,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Transparent": true,
|
||||
"Caption": "총 괄 설 계 내 역 서",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "txPName",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 900000,
|
||||
"Left": 0,
|
||||
"Top": 26,
|
||||
"Width": 720,
|
||||
"Height": 23,
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Bottom": 0,
|
||||
"Caption": "공사명 : 경영정보(주) 앞 도로개설공사",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"class": "THRPageBand",
|
||||
"name": "HRPageBand2",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 76,
|
||||
"Top": 693,
|
||||
"Width": 971,
|
||||
"Height": 44,
|
||||
"LocateAtPage": "alBottom",
|
||||
"BandType": "hpbPageFooter",
|
||||
"Alignment": "taLeftJustify",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clGreen",
|
||||
"BorderStyle.Transparent": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "CopName",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 900000,
|
||||
"Left": 0,
|
||||
"Top": 4,
|
||||
"Width": 971,
|
||||
"Height": 22,
|
||||
"Alignment": "taRightJustify",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 4,
|
||||
"Caption": "경영정보(주)",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRCalc",
|
||||
"name": "HrPage",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 900000,
|
||||
"Left": 0,
|
||||
"Top": 4,
|
||||
"Width": 971,
|
||||
"Height": 22,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 4,
|
||||
"ResetType": "hrtResetValue",
|
||||
"ResetValue": 1,
|
||||
"CalcFunction": "hcfPageNo",
|
||||
"DisplayFormat": "- #,# -",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"class": "THRGroup",
|
||||
"name": "HRGroup1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 76,
|
||||
"Top": 142,
|
||||
"Width": 971,
|
||||
"Height": 22,
|
||||
"AfterPrint": "HRGroup1AfterPrint",
|
||||
"BeforePrint": "HRGroup1BeforePrint",
|
||||
"Alignment": "taLeftJustify",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clAqua",
|
||||
"BorderStyle.Transparent": true,
|
||||
"GroupStyle.RepeatToEOP": true,
|
||||
"GroupStyle.RepeatControls": true,
|
||||
"GroupStyle.SuppressText": true,
|
||||
"GroupStyle.PrintOnRepeat": true,
|
||||
"LocateAtPage": "hgaNone"
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRDBText",
|
||||
"name": "txITNUM",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 200010,
|
||||
"Left": 0,
|
||||
"Top": 0,
|
||||
"Width": 78,
|
||||
"Height": 23,
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 5,
|
||||
"DataField": "ITNUM",
|
||||
"TextFunction": "htfNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRDBText",
|
||||
"name": "txNAME1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 200020,
|
||||
"Left": 77,
|
||||
"Top": 0,
|
||||
"Width": 201,
|
||||
"Height": 23,
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 5,
|
||||
"DataField": "NAME1",
|
||||
"TextFunction": "htfNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRDBText",
|
||||
"name": "txSIZE1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 200030,
|
||||
"Left": 277,
|
||||
"Top": 0,
|
||||
"Width": 186,
|
||||
"Height": 23,
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 5,
|
||||
"DataField": "SIZE1",
|
||||
"TextFunction": "htfNone"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"class": "THRGroupBand",
|
||||
"name": "HRGroupBand0",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Left": 76,
|
||||
"Top": 107,
|
||||
"Width": 971,
|
||||
"Height": 35,
|
||||
"AlignWithGroup": "hbaGroupBoth",
|
||||
"LocateAtGroup": "hblTopAttach",
|
||||
"BodyGroup": "HRGroup1",
|
||||
"BandType": "hgbGroupHeader",
|
||||
"Alignment": "taLeftJustify",
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Transparent": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld01",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100010,
|
||||
"Left": 0,
|
||||
"Top": 0,
|
||||
"Width": 78,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "공 종",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld02",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100020,
|
||||
"Left": 77,
|
||||
"Top": 0,
|
||||
"Width": 201,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "명 칭",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld03",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100030,
|
||||
"Left": 277,
|
||||
"Top": 0,
|
||||
"Width": 186,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "규 격",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld04",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100040,
|
||||
"Left": 462,
|
||||
"Top": 0,
|
||||
"Width": 128,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "계",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld05",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100050,
|
||||
"Left": 589,
|
||||
"Top": 0,
|
||||
"Width": 128,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "재료비",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld06",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100060,
|
||||
"Left": 716,
|
||||
"Top": 0,
|
||||
"Width": 128,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "노무비",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld07",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100070,
|
||||
"Left": 843,
|
||||
"Top": 0,
|
||||
"Width": 128,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "경 비",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLabel",
|
||||
"name": "lbFld08",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"Tag": 100080,
|
||||
"Left": 589,
|
||||
"Top": 0,
|
||||
"Width": 381,
|
||||
"Height": 36,
|
||||
"Alignment": "taCenter",
|
||||
"FontWidth": 6,
|
||||
"Transparent": true,
|
||||
"BorderStyle.Slash": [],
|
||||
"BorderStyle.Lines": [
|
||||
"lnLeft",
|
||||
"lnTop",
|
||||
"lnBottom"
|
||||
],
|
||||
"BorderStyle.DesignPen.Color": "clSilver",
|
||||
"BorderStyle.Pen.Width": 0,
|
||||
"BorderStyle.Transparent": true,
|
||||
"BorderMargine.Top": 11,
|
||||
"AlignWithText.Left": true,
|
||||
"AlignWithText.Top": true,
|
||||
"AlignWithText.Width": true,
|
||||
"AlignWithText.Height": true,
|
||||
"Caption": "산 출 내 역",
|
||||
"LocateAtText": "hllNone"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"class": "THyperReport",
|
||||
"name": "Hrp",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"PreviewOptions.Caption": "총괄설계내역서",
|
||||
"PreviewOptions.ShowModal": true,
|
||||
"PreviewOptions.WindowState": "wsMaximized",
|
||||
"PreviewOptions.ZoomMin": 50,
|
||||
"PreviewOptions.ZoomMax": 150,
|
||||
"PreviewOptions.ZoomStep": 10,
|
||||
"PreviewOptions.MargineColor": "clWhite",
|
||||
"PreviewOptions.VisibleButtons": [
|
||||
"btFirst",
|
||||
"btPrev",
|
||||
"btNext",
|
||||
"btLast",
|
||||
"btStart",
|
||||
"btStop",
|
||||
"btZoomIn",
|
||||
"btZoomOut",
|
||||
"btSave",
|
||||
"btPrint"
|
||||
],
|
||||
"PrintFirstHeader": true,
|
||||
"SuppressHeaderGroup": true,
|
||||
"EnableSaveReport": true,
|
||||
"SaveAllProperties": true,
|
||||
"SpoolTitle": "총괄내역서",
|
||||
"OnSaveDialog": "HrpSaveDialog",
|
||||
"OnShowPrintDialog": "HrpShowPrintDialog",
|
||||
"Left": 24,
|
||||
"Top": 16
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "THRLink",
|
||||
"name": "HRLink1",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"LinkInfo.SourceTrees.Strings": [
|
||||
" 0 0PM_Jab.ds_Jab"
|
||||
],
|
||||
"LinkInfo.MasterFields.Strings": [
|
||||
"Master;"
|
||||
],
|
||||
"LinkInfo.DetailFields.Strings": [
|
||||
"Detail;"
|
||||
],
|
||||
"LinkInfo.SelfKyFields.Strings": [
|
||||
"SelfKy;"
|
||||
],
|
||||
"LinkInfo.GroupOrders.Strings": [
|
||||
"Groups;HRGroup1;0::1:1:1:0:"
|
||||
],
|
||||
"Left": 72,
|
||||
"Top": 16
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "TApolloTable",
|
||||
"name": "tb_Jab",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"DatabaseName": "ST_Work",
|
||||
"CachedUpdates": false,
|
||||
"FieldDefs": [],
|
||||
"IndexDefs": [],
|
||||
"Sequenced": false,
|
||||
"TableName": "PRT.DBF",
|
||||
"TableType": "ttSXNSX",
|
||||
"Left": 128,
|
||||
"Top": 16
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"class": "TDataSource",
|
||||
"name": "ds_Jab",
|
||||
"flags": [],
|
||||
"child_pos": null,
|
||||
"properties": {
|
||||
"DataSet": "tb_Jab",
|
||||
"Left": 176,
|
||||
"Top": 16
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+2976
File diff suppressed because it is too large
Load Diff
@@ -70,7 +70,16 @@ const MODES = {
|
||||
);
|
||||
const fs2 = Progress.fromStorage(base, seedRows, { K_ORD: 2 }, smt3);
|
||||
const next = Progress.run(base, [rounds[1]], fs2.seed);
|
||||
return { all, st, fs, fs2, next };
|
||||
// 원본 회차 등록 규칙(nextRound)으로 만든 저장본에서 다시 읽은 제 2 회
|
||||
const nr = Progress.nextRound(st);
|
||||
const fs3 = Progress.fromStorage(
|
||||
base,
|
||||
nr.boq,
|
||||
nr.prjlst,
|
||||
Object.assign({}, ...Object.values(nr.smt)),
|
||||
);
|
||||
const next2 = Progress.run(base, [rounds[1]], fs3.seed);
|
||||
return { all, st, fs, fs2, next, nr, next2 };
|
||||
},
|
||||
// 실제 STC(설계 판) → 계약 기준 → 회차 → 저장 형식
|
||||
real({ load, opts, rounds }) {
|
||||
|
||||
@@ -227,3 +227,22 @@ def test_real_stc_storage_totals():
|
||||
assert (r1["cur"]["supply"], r1["cur"]["vat"], r1["cur"]["total"]) == (sup, vat, tot)
|
||||
assert r2["cur"]["final"] and st["prjlst"]["TCOST2"] == got["direct"]
|
||||
assert st["smt"]["2_KANJUB"]["2_C_KANNO"] == r2["acc"]["items"][0]["amount"]
|
||||
|
||||
|
||||
def test_next_round_registration():
|
||||
"""회차 등록 — QTY3←QTY2 · QTY4=0 · T_AMT3←T_AMT2 · TCOST3←TCOST2 · TCOST4=0
|
||||
· [3_KANJUB]←[2_KANJUB] · [4_KANJUB] 0 · K_ORD+1 (STmate 0x55b328~0x55b3cb · 0x455e68)."""
|
||||
rounds = [{"qtyById": {"a": 4, "b": 1}}, {"qtyById": {"a": 3, "b": 1}, "vatMode": 2}]
|
||||
got = _run("store", {"spec": SPEC, "rounds": rounds})
|
||||
st, nr = got["st"], got["nr"]
|
||||
assert nr["prjlst"]["K_ORD"] == 2 and nr["prjlst"]["TCOST4"] == 0
|
||||
assert nr["prjlst"]["TCOST3"] == st["prjlst"]["TCOST2"]
|
||||
for u, v in zip(st["boq"], nr["boq"]):
|
||||
assert (v["QTY3"], v["QTY4"], v["T_AMT3"], v["T_AMT4"]) == (u["QTY2"], 0, u["T_AMT2"], 0)
|
||||
assert nr["smt"]["3_KANJUB"]["3_C_KANNO"] == st["smt"]["2_KANJUB"]["2_C_KANNO"]
|
||||
assert all(v == 0 for v in nr["smt"]["4_KANJUB"].values())
|
||||
nxt, ref = got["next2"][0], got["all"][1]
|
||||
assert nxt["round"] == 2
|
||||
for x, y in zip(nxt["rows"], ref["rows"]):
|
||||
assert x["prev"] == y["prev"] and x["cur"] == y["cur"] and x["acc"] == y["acc"]
|
||||
assert nxt["jab"]["cur"]["items"] == ref["jab"]["cur"]["items"]
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
* (ST_KanJub 0x4cae9b 열→칸 표 '1342' · 0x4cb03c 값 배열 순서 · ST_P_ConEst 0x47fadf~0x47fd4c)
|
||||
* 금액: 금회 = 금회수량으로 · 누계 = 누계수량으로 각각 다시 셈(ST_Boq 0x4fc674 · 0x4fce6e→T_AMT2 0x4fcf24)
|
||||
* · 전회 = 앞 회차 누계 이관(STmate 0x55d0b3~0x55d148 「전회<-누계, 금회=0」) — 전회+금회 ≠ 누계(끝전) 있음
|
||||
* 미확인: 금회 칸 단가 원천(MAMT4 등 — 회차 생성 시 1→2·3 칸만 복사 0x55c826~0x55ca73) — 여기서는 계약 단가
|
||||
* 단가: 기성(PCLASS 6) 편집 때 수량 칸 = 4 · 단가 칸 = 1(계약) — ST_Boq 0x4e49b5([0x541894]=4 · [0x541898]=1)
|
||||
* → 금회·누계 모두 계약 단가 × 그 칸 수량 (단가 칸 인자 뜻은 호출 대응으로 읽음 — 신뢰도 중)
|
||||
* 회차 등록(nextRound): QTY3←QTY2 · QTY4=0 · T_AMT3←T_AMT2 · TCOST3←TCOST2 · TCOST4=0
|
||||
* · [3_KANJUB]←[2_KANJUB](키 앞 글자 바꿈) · [4_KANJUB] 지움 · K_ORD+1 (STmate 0x55b328~0x55b3cb · 0x455e68)
|
||||
* 시험: resources/tester/test_stmate_stage_progress.py · test_stmate_stage_progress_rea.py
|
||||
*/
|
||||
const StmateProgress = (() => {
|
||||
@@ -98,7 +101,8 @@ const StmateProgress = (() => {
|
||||
const pct = (a, b) => (b ? Math.round((a / b) * 1e4) / 1e2 : 0);
|
||||
|
||||
// 금회수량 상한(ST_Boq 0x4f4bbd~0x4f4c9f) — 계약×금회 > 0 이고 |전회+금회| > |계약| 이면 금회 = 계약 − 전회
|
||||
// 설정 바이트(+0x1068→+0x69) 켜짐이면 상한 없음 — 그 설정 이름 미확인 → opt.allowOver
|
||||
// 켜짐이면 상한 없음 = 보기/설정 「누계수량 제한해제 (계약수량 〈 누계수량)」 Act_Enabl_OVR6(TwBoq +0x1068)
|
||||
// → opt.allowOver · 처음 값 꺼짐(DFM Checked 없음)
|
||||
function capCur(ctrQ, prevQ, q, allowOver) {
|
||||
if (allowOver || !(ctrQ * q > 0)) return q;
|
||||
return Math.abs(r4(prevQ + q)) > Math.abs(ctrQ) ? r4(ctrQ - prevQ) : q;
|
||||
@@ -308,6 +312,7 @@ const StmateProgress = (() => {
|
||||
}
|
||||
|
||||
// 준공조서(0646·0647) — 서식 칸은 계약금액 | 준공금액 둘(SET_REP) · 준공금액 산식 원본 미확인
|
||||
// (관찰: 내역서 머리 「◎ 준공 정산액」/「◎ 기성부분금액」 = PRJLST TCOST + 인쇄 열 칸 — ST_P_ConEst 0x4790d5)
|
||||
// 여기서는 마지막 회차 누계 이관(앱 가정)
|
||||
function completion(base, runs) {
|
||||
const last = runs[runs.length - 1];
|
||||
@@ -367,6 +372,28 @@ const StmateProgress = (() => {
|
||||
};
|
||||
}
|
||||
|
||||
// 다음 회차 등록 — 저장 형식(toStorage 꼴)을 STmate 회차 등록 규칙으로 바꿈
|
||||
// [4_KANJUB] 는 원본에서 섹션째 지움(EraseSection 0x4567b9) — 앱 저장은 키 값 0 으로 씀
|
||||
function nextRound(st) {
|
||||
const boq = st.boq.map((u) => {
|
||||
const o = Object.assign({}, u, { QTY3: u.QTY2, QTY4: 0 });
|
||||
["M_AMT", "L_AMT", "S_AMT", "T_AMT"].forEach((f) => {
|
||||
o[`${f}3`] = u[`${f}2`];
|
||||
o[`${f}4`] = 0;
|
||||
});
|
||||
return o;
|
||||
});
|
||||
const prjlst = Object.assign({}, st.prjlst, {
|
||||
K_ORD: n0(st.prjlst.K_ORD) + 1,
|
||||
TCOST3: st.prjlst.TCOST2,
|
||||
TCOST4: 0,
|
||||
});
|
||||
const s2 = st.smt["2_KANJUB"] || {};
|
||||
const sec3 = Object.fromEntries(Object.entries(s2).map(([k, v]) => [`3${k.slice(1)}`, v]));
|
||||
const sec4 = Object.fromEntries(Object.keys(st.smt["4_KANJUB"] || {}).map((k) => [k, 0]));
|
||||
return { boq, prjlst, smt: { "2_KANJUB": s2, "3_KANJUB": sec3, "4_KANJUB": sec4 } };
|
||||
}
|
||||
|
||||
// 기성 프로젝트 불러오기 — BOQ QTY3(전회)·QTY4(금회)·M_/L_/S_/T_AMT3 · [3_KANJUB] 또는 [2_KANJUB]−[4_KANJUB] 로 seed
|
||||
function fromStorage(base, boqRows, prjlst, smt) {
|
||||
const byRec = new Map((boqRows || []).map((r) => [r._recno, r]));
|
||||
@@ -411,6 +438,7 @@ const StmateProgress = (() => {
|
||||
capCur,
|
||||
toStorage,
|
||||
fromStorage,
|
||||
nextRound,
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
@@ -89,6 +89,8 @@
|
||||
if (prj[k] !== undefined) prjUpd[k] = prj[k];
|
||||
else delete prjUpd[k];
|
||||
});
|
||||
// 기성 회차(K_ORD) — [다음 회차 등록]이 올린 값(STmate 0x55d1d3 k_ord = K+1)
|
||||
if (isProgress && prj.K_ORD !== undefined) prjUpd.K_ORD = prj.K_ORD;
|
||||
|
||||
const smt = d.prjlst_smt || {};
|
||||
const rts = (ctx.state.kanjubConfig && ctx.state.kanjubConfig.rates) || {};
|
||||
|
||||
@@ -49,9 +49,11 @@
|
||||
}
|
||||
|
||||
// [기성 칸 반영] — 고른 회차를 작업본(dbfData)의 BOQ 칸 2·3·4 와 내역 항목 수량에 씀 · 파일 쓰기는 [저장]
|
||||
function applyStorage(ctx) {
|
||||
// next = 참이면 STmate 회차 등록(전회<-누계, 금회=0, K_ORD+1)까지 적용 — [다음 회차 등록]
|
||||
function applyStorage(ctx, next) {
|
||||
const G = global.STMATE_PROGRESS;
|
||||
const { base, run } = compute(ctx);
|
||||
const st = global.STMATE_PROGRESS.toStorage(base, run);
|
||||
const st = next ? G.nextRound(G.toStorage(base, run)) : G.toStorage(base, run);
|
||||
const d = ctx.dbfData;
|
||||
const byRec = new Map((d.boq_rows || []).map((r) => [r._recno, r]));
|
||||
const items = new Map((ctx.state.boqItems || []).map((b) => [b.id, b]));
|
||||
@@ -65,7 +67,8 @@
|
||||
[2, 3, 4].forEach((n) => (b.qtys[n - 1] = u[`QTY${n}`]));
|
||||
});
|
||||
const pr = st.prjlst;
|
||||
d.prjlst = Object.assign(d.prjlst || {}, {
|
||||
const keep = next ? { TCOST3: pr.TCOST3, TCOST4: 0 } : {};
|
||||
d.prjlst = Object.assign(d.prjlst || {}, keep, {
|
||||
COSTW3: pr.COSTW3,
|
||||
COSTW4: pr.COSTW4,
|
||||
K_ORD: pr.K_ORD,
|
||||
@@ -256,7 +259,7 @@
|
||||
<span>공급가액 절사</span>${sel("pg-sj", JEOL_S, Math.abs(rd.supplyJeol || 0))}<span>총공사비 절사</span>${sel("pg-tj", JEOL_T, Math.abs(rd.totalJeol || 0))}
|
||||
<span>이윤 직접입력</span>${inp("pg-iyun", rd.iyunManual, 90)}
|
||||
<span>집계수준</span>${sel("pg-level", G.LEVELS, p.level)}
|
||||
${isProgPrj(ctx) ? `<button class="win-btn" id="pg-store">기성 칸 반영</button>` : ""}</div>`;
|
||||
${isProgPrj(ctx) ? `<button class="win-btn" id="pg-store">기성 칸 반영</button><button class="win-btn" id="pg-next">다음 회차 등록</button>` : ""}</div>`;
|
||||
const nodes = G.aggregate(base, run, n0(p.level));
|
||||
const pc = (x, c) => (c ? Math.round((x / c) * 1e4) / 1e2 : 0);
|
||||
const rows = nodes.map((nd) => {
|
||||
@@ -389,6 +392,11 @@
|
||||
re();
|
||||
});
|
||||
api.onClick("pg-store", () => (applyStorage(ctx), re()));
|
||||
api.onClick("pg-next", () => {
|
||||
applyStorage(ctx, true);
|
||||
p.seeded = false; // 새 전회(칸 3)로 다시 읽음
|
||||
re();
|
||||
});
|
||||
api.onChange("pg-iyun", (e) => ((rd().iyunManual = val(e.target.value)), re()));
|
||||
api.onChange("pg-level", (e) => ((p.level = Number(e.target.value)), re()));
|
||||
api.bindEach(".pg-q", "onchange", (el) => {
|
||||
|
||||
Reference in New Issue
Block a user