오늘은...5시간 동안 뻘짓해서 겨우 수정한 oz report 쿼리 편집에 대해 글을 써볼까해요
글을 읽기에 앞서 제가 해당 시스템을 담당하고 있지만 솔루션사가 개발하고 나가서 코드를 일일이 들여다보지못해 구조를 모두 파악하고 있지 못했다는 점이 가장 큰 문제였네요ㅠㅠ(앞으로 열심히 들여다볼 것!)
사건의 발단은 웹에 표시되는 데이터 순서와 바코드 프린트 시 순서가 일치하지 않아 불편하다는 문의가 있어
그러면 쿼리에 ORDER BY 컬럼만 수정하면 끝이겠네~(결론적으로는 맞지만) 하고 아무 생각없이 쿼리문을 수정했는데...
화면상 순서는 바뀌었지만 뷰어 상으로는 순서가 수정되지 않았어요.
그 때부터 시작된 5시간 뻘짓ㅠㅠㅠ

일단 해당 기능을 구현한 소스에 들어가서 하나하나 다 까봤는데 오랫동안 쳐다보지도 않은 js 문법에 1차 막힘...(편식하지말자)2차로 데이터 구조가 헤더 - 디테일 구조인데 프로젝트에서 사용하는 프레임워크 내부 함수를 아무리 다 까봐도 가져오는 데이터는 헤더 데이터만 가져오는거 같아서 멘붕.. 난 왜 이렇게 못하지.. 내가 모르는 거겠지?.. 지금 이게 뭐하는 짓이지... 등등
그렇게 5시간 동안 삽질하다가 갑자기 문득 든 생각.아무리 봐도 소스상에서 프린트 관련 쿼리를 날리는 곳은 없어보인다..hoxy?..
oz report 자체적으로 DB에 접근해서 쿼리를 날릴 수 있지 않을까?..
그 때부터 다시 소스를 보니
var FILE_NM = "ITEM_LABEL"
이전에는 이건 뭐지? 일단 넘어가..
했던 변수 선언과 oz report 설정에 필요한 파라미터 객체에 MENU : ~~ 라는 변수가 있었어요
oz report 관련 디렉토리에 보니 .odi 파일과 .ozr 파일들이 있는데 !!!!!
파일 이름 중 ITEM_LABEL.odi 파일이 있어 들어가보니
드디어 발견한 익숙한 SELECT ㅠㅠㅠ
query 라는 변수에 문자열 타입으로 쌓길래
냉큼 query += "ORDER BY ~~";
하고 배포하니 뷰어 순서 변경 성공 !
저같은 사람이 발생하지 않길 바라며 이만
끝.