검증 실행 결과에 출력 행이 안 보이던 문제
결과를 ExpandoObject 목록으로 DataGrid 에 넘기고 있었다. DataGrid 의 AutoGenerateColumns 는
항목 <b>타입</b>의 속성을 반사해 열을 만드는데 ExpandoObject 에는 그런 속성이 없다 —
그래서 요약("성공 — 컬럼 2개, 표본 3행")은 맞게 뜨는데 표는 비어 있었다.
DataTable 로 바꿨다. DataGrid 가 직접 알아본다.
같은 컬럼명이 두 번 나오면(별칭 없는 조인에서 흔하다) DataTable 이 예외를 내므로 뒤에 번호를 붙인다.
■ 0행과 실패를 구분한다
구문은 맞는데 조건에 걸리는 데이터가 없을 수 있다. 검증 실행은 치환 변수를 빈 값으로 바꿔
돌리므로(런타임과 같은 방식) 조건이 빡빡하면 0행이 정상이다.
그 경우 표를 감추고 "구문은 정상입니다 — 치환 변수를 빈 값으로 실행하므로 조건에 걸리는 행이
없을 수 있습니다" 를 덧붙인다. 빈 표를 보여 주면 실패한 것처럼 읽힌다.
결과 영역을 190 → 260px 로 키웠다.
■ 이 종류를 다시 놓치지 않도록
--query-popup 진단에 3건을 더 넣었다: 결과 창이 열리는가 · 표에 열이 생기는가 · 행이 채워지는가.
요약만 검사했다면 이번 결함을 그대로 통과시켰을 것이다. 현재 12/12.
--dialog-shots 에도 검증 실행을 마친 상태(03b-query-trial)를 추가해 눈으로도 남는다.
회귀: 테스트 230/230, 편집 스모크 실패 0, 팝업·정렬·결과표 점검 12/12,
검증 실행 점검 10/10, DB 왕복 1,271건 diff 0/예외 0, 종이 렌더 P062 바이트 동일.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3e26af8739
commit
f447ae742b
@@ -115,6 +115,7 @@ public static class DialogShots
|
||||
("02-sheet-history", () => new Views.SheetHistoryDialogView("S999", "표본 서식", SampleVersions())),
|
||||
("03-query-editor", () => NewQueryEditor(designer,
|
||||
"SELECT ChtNum, PatNam FROM P_PatMst\nWHERE ChtNum = <<M.CMM.HISOperatingInfo.bzPatientInfo.ChtNum>>")),
|
||||
("03b-query-trial", () => NewQueryEditorWithTrial(designer)),
|
||||
// 실제 카탈로그(384종)와 실제 제안 순위로 찍는다 — 표본 몇 개로는 분류·건수가 안 보인다
|
||||
("04-tag-picker", () => new Views.TagPickerDialogView(
|
||||
"데이터 태그 선택 — 자동 채움 원천(bzDataInterface)",
|
||||
@@ -315,6 +316,19 @@ public static class DialogShots
|
||||
private static Window NewQueryEditor(DesignerViewModel designer, string sql)
|
||||
=> new Views.QueryEditorWindow("데이터소스", sql, controlNames: designer.ControlNames());
|
||||
|
||||
/// <summary>
|
||||
/// 검증 실행까지 마친 상태 — 결과 표가 실제로 채워지는지 눈으로 확인할 유일한 경로다.
|
||||
/// DB 가 없으면 실패 메시지가 찍히고, 그것도 봐야 하는 화면이다.
|
||||
/// </summary>
|
||||
private static Window NewQueryEditorWithTrial(DesignerViewModel designer)
|
||||
{
|
||||
var window = new Views.QueryEditorWindow("데이터소스",
|
||||
"SELECT ShtCod, ShtKorNam, ShtTyp FROM E_ShtMst WHERE ROWNUM <= 5",
|
||||
controlNames: designer.ControlNames());
|
||||
window.RunTrialForSmoke();
|
||||
return window;
|
||||
}
|
||||
|
||||
private static DesignerViewModel SampleDesigner()
|
||||
{
|
||||
var document = new FormDocument { FormId = "S999", Title = "표본 서식" };
|
||||
|
||||
Reference in New Issue
Block a user