Projects

[매출 관리 프로그램 제작] - 기능구현(1)

Runningturtle 2024. 8. 18. 06:03

지난 포스팅에서 데이터베이스에서 필요한 데이터를 가져오기위한 쿼리를 작성하였다. 

 

 

이번 포스팅에서는 이 프로그램의 기능들중 1번 기능을 직접 구현할 것이다.

구현과정에서 문제를 많이 겪고 완성하여서 어떻게 포스팅을 작성해야할지 난감한..

 

 

 

 

직접 기능 구현을 하기 전에 데이터베이스 정보를 담은 객체 Cursor에 대하여 알아보았다.

 

결과 : ('2508.2' )

 

cursor인덱스참조 결과확인 [0] , [0][0] , [0][1]

 

따움표 내에서 따움표를 적으면 SQL문 실행 오류
query 변수를 따로 지정해 SQL문 지정해 해결

 

 

 

 

 

DATE값이 이상하게 출력된 것을 확인
FORMAT 설정
변경한 포맷

데이터의 일관성을 위해 포맷을 변경

 

오라클에서 DATE 형식을 지정할땐 TO_CHAR , MYSQL은 TO_DATE

 

Cursor자료형을 리스트형태로 변환

 

 

 

 

기능 구현을 위한 단계를 정리해보았다.

 

 

 

 

 

 

 

 

 

그리고  기능1번 테스트 소스를 작성 완료하였다.

기능1번 테스트 소스

 

이를 실행하면

 

실행

 

 

작성한 코드가 올바르게 작동한다면 해당 코드에따라서

 

* 날짜지정 *  아래 LineEdit  2개 박스에 날짜를 입력시

 

첫번째 LineEdit이 쿼리 실행 결과에 따라서  2023-01-01로 바뀌게 된다.

 

 

2001-05-01을 입력하기 전

 

2001-05-03을 입력한 후

 

첫번째 칸이 

2023-01-01으로 변하여

올바르게 작동함을 확인하였다.

 

 

 

 

 

 

 

 

select TO_CHAR(a.transaction_date,'YYYY-MM-DD'),store_location,SUM(REVENUE)  from (select transaction_date,revenue,store_location from cafe_sales_report where TRANSACTION_DATE between TO_DATE('2023-01-01','YYYY-MM-DD') AND TO_DATE('2023-01-02','YYYY-MM-DD'))A group by A.TRANSACTION_DATE,A.store_location order by 1,3 desc;

[1번기능 쿼리]

이제 이전에 작성했던 쿼리를 사용하여 

진짜 요청한 데이터를 받아오도록 하겠다.

 

실행

 

 

 

 

 

 

 

 

 

무수한 오류 발생..

 

 

오류발생

 

 

 

해결

 

 

쿼리를 출력할 데이터테이블에 입력할 자료형이 일치하지않아 생기는 오류였다.

위와같이 str 자료형으로 변환하여 해결

 

테이블 크기 설정 인덱스 문제 발생

 

테이블 행,열 값 지정

그리고

 

 

 

 

 

 

 

 

 

 

 

 

성공

 

요청한 결과에따라 올바르게 데이터를 출력이 되었다.

 

formatting을 이용해서 쿼리작성이 더 용이하게 변경하겠다.

Python formatting
결과

 

 

 

 

사용자가 입력한

Start_Date

End_Date  값을 포매팅으로 쿼리에 전달할수 있게 쿼리를 수정

 

 

 

 

 

 

 

 

 

실행 영상

 

입력한 값에따라 즉시 결과를 얻을 수 있다.

 

하지만 출력한 결과의 테이블이 가독성이 떨어진다.

 

그래서 테이블을 보기 좋게 수정하였다.

 

아래는 그 결과

 

 

 

 

이로서  1번 기능구현을 마친다.