Q&A

  • 퀵레포트에서 서로 다른 Query의 결과를 나오게 해야하는데..
안녕하세여?



식사는 하셨는지여...^^



지금 제가 퀵레포트때문에 일주일을 고생하구 있담니다..좀 도와주세여~~



제가 출력하구 싶은 형식은 월별로 출근부를 출력하고 싶거든여





팀명 사원번호 사원이름 01 02 03 04 05....31 //ColumnHeader band

A팀 h-111 김아무개 O X O O O....X //Detail band



그런데 문제는...



팀명,사원번호,사원이름은 하나의 Query에서 필드만 따로 연결 해주구여

TeamSql

select T.D_Name, S.S_No , S.S_Name from 사원 S, 팀 T

Where S.S_dept = T.D_code



QuickRep1의 DataSet두 TeamSql로 연결을 했구여



01,02,03......,31은 다른 쿼리거든여

어떻게 나와야하는지 몰라서 Query를 날짜만큼(31개) 만들었어여..

왜냐면 퀵레포트의 날짜에 각각 필드를 연결해 줘야하니깐여...

Sql01

select 출근체크 from 월별출근

Sql02

select 출근체크 from 월별출근

.

.

그리구 코드상에서

TeamSql을 열어서 사원번호를 비교해서 같으면 각각에 사원번호에 따라서

with frmMonPrint do

begin

with Sql01 do

begin

Close;

Sql.Clear;

Sql.Add('Select 출근체크 as 01 from 월별출근');

Sql.Add('Where 월 = '+QuotedStr(edDays.Text));

Sql.Add(' And 날짜 = ''01''');

Open;

end;

with Sql02 do

begin

Close;

Sql.Clear;

Sql.Add('Select 출근체크 as 02 from 월별출근');

Sql.Add('Where 월 = '+QuotedStr(edDays.Text));

Sql.Add(' And 날짜 = ''02''');

Open;

end;

.

.

.

end;



그런데 이걸 돌리면 전부 'O'가 나오네여...



db는 Access를 쓰고 있습니다.



사원번호에 따라서 1일부터 31일까지 출근체크가 나오게 하려면 어케 해야할까여?

3  COMMENTS
  • Profile
    Lee 2001.06.14 23:28
    이 방법은 어떨까요?



    한개의 쿼리를 활용하세요.



    Select 팀.팀명,

    사원.사번,

    사원.성명,

    case when 출근부.일자 = '01' and 출근부.출근확인 = 'o' then 'O' else 'X' end day01,

    case when 출근부.일자 = '02' and 출근부.출근확인 = 'o' then 'O' else 'X' end day02,

    .....

    case when 출근부.일자 = '31' and 출근부.출근확인 = 'o' then 'O' else 'X' end day31



    From 사원

    left join 팀 on 사원.부서코드 = 팀.코드

    left join 출근부 on 사원.사번 = 출근부.사번

    and 출근부.월 = 지정년월



    퀵리포드에서는 아래의 필드들을 활용.



    Query1.팀명 Query1.사번 Query1.성명 Query1.day01,.......,Query1.day31











    blackjewel wrote:

    > 안녕하세여?

    >

    > 식사는 하셨는지여...^^

    >

    > 지금 제가 퀵레포트때문에 일주일을 고생하구 있담니다..좀 도와주세여~~

    >

    > 제가 출력하구 싶은 형식은 월별로 출근부를 출력하고 싶거든여

    >

    >

    > 팀명 사원번호 사원이름 01 02 03 04 05....31 //ColumnHeader band

    > A팀 h-111 김아무개 O X O O O....X //Detail band

    >

    > 그런데 문제는...

    >

    > 팀명,사원번호,사원이름은 하나의 Query에서 필드만 따로 연결 해주구여

    > TeamSql

    > select T.D_Name, S.S_No , S.S_Name from 사원 S, 팀 T

    > Where S.S_dept = T.D_code

    >

    > QuickRep1의 DataSet두 TeamSql로 연결을 했구여

    >

    > 01,02,03......,31은 다른 쿼리거든여

    > 어떻게 나와야하는지 몰라서 Query를 날짜만큼(31개) 만들었어여..

    > 왜냐면 퀵레포트의 날짜에 각각 필드를 연결해 줘야하니깐여...

    > Sql01

    > select 출근체크 from 월별출근

    > Sql02

    > select 출근체크 from 월별출근

    > .

    > .

    > 그리구 코드상에서

    > TeamSql을 열어서 사원번호를 비교해서 같으면 각각에 사원번호에 따라서

    > with frmMonPrint do

    > begin

    > with Sql01 do

    > begin

    > Close;

    > Sql.Clear;

    > Sql.Add('Select 출근체크 as 01 from 월별출근');

    > Sql.Add('Where 월 = '+QuotedStr(edDays.Text));

    > Sql.Add(' And 날짜 = ''01''');

    > Open;

    > end;

    > with Sql02 do

    > begin

    > Close;

    > Sql.Clear;

    > Sql.Add('Select 출근체크 as 02 from 월별출근');

    > Sql.Add('Where 월 = '+QuotedStr(edDays.Text));

    > Sql.Add(' And 날짜 = ''02''');

    > Open;

    > end;

    > .

    > .

    > .

    > end;

    >

    > 그런데 이걸 돌리면 전부 'O'가 나오네여...

    >

    > db는 Access를 쓰고 있습니다.

    >

    > 사원번호에 따라서 1일부터 31일까지 출근체크가 나오게 하려면 어케 해야할까여?

  • Profile
    blackjewel 2001.06.15 01:02
    답변감사해여^^;



    그런데 질문이......



    Query문 안에 case문이 사용가능한가여?



    > case when 출근부.일자 = '01' and 출근부.출근확인 = 'o' then 'O' else 'X' end day01,

    이부분이여....무슨 뜻인지...잘 이해가...갈듯말듯...

    날짜가 '01'이구 출근확인이 'o'면 'O'찍구 아니면 'X'를 찍으란 소리같은데...



    Query의 Inspector의 Sql문 작성하는 곳에 넣어
  • Profile
    Lee 2001.06.15 01:39
    말씀하신데로 case문입니다.



    case when 출근부.일자='01' and 출근부.출근확인='o' then 'O' else 'X' end day01,



    출근부의 일자가 1일이고 출근이 확인되었으면 표시글(O)를 day01에 넣으란 소립니다.



    그리고 token error의 경우 문장 오류일 가능성이 많다는 것인데...

    쿼리컴포에서는 문자가 '01' 형태지만

    만약 동적쿼리라면 "01" 형식 또는 ''01'' 형식이여야 할 겁니다.



    우선은 menu/database/explore 에서 먼저 실행해서

    결과가 나오는지 확인하시구요...

    만약 access에서 case가 수행되지 않는다면

    이런방법은 어떤지 확인해보세요





    Select 팀.팀명,

    사원.사번,

    사원.성명,

    isNull((select 출근부.출근확인 from 출근부

    where 출근부.사번 = 사원.사번

    and 출근부.출근년월 = 지정년월

    and 출근부.출근일 = '01'),'X') day01,



    ..........

    From 사원

    left join 팀 on 사원.부서코드 = 팀.코드



    여기서도 case문을 사용하면 편리하지만 안될 경우

    리포트에서 dayXX에 맞게 표시해주던지

    아님 쿼리의 OnCalcFields에서

    if Query1.FieldByName('day01').asString = 'X' then

    Query1.FieldByName('day01').asString := 결근표시글(또는 문양)

    else

    Query1.FieldByName('day01').asString := 출근표시글(또는 문양);

    으로 처리하면 어떨까요?



    이번엔 도움 외었음 좋겠네요.

    • info
    • 2001.06.15 03:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      2001.06.15 09:50
      테이블명이 한글로 되어있어서 소스를 보기 무척 난해하네요^^ 전 필드명인줄 알았거든여.. insert sel...
    • 권순택
    • 2001.06.15 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하기
      2001.06.15 03:42
      라이브러리(DLL)로 만드셔서 Dll을 호출하면 되겠죠... 권순택 wrote: > 안녕하세요 > > 아시는 ...
    • 써니
    • 2001.06.15 03:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 쿠쿠리
    • 2001.06.15 02:01
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Ziker
      2001.06.21 01:05
      안녕하세요 Ziker 입니다. 아래 이경문님께서도 글 올려 주셨듯이, 델파이에서 사이즈를 기대 하기란 힘...
    • 이경문
      2001.06.17 09:40
      가슴아픈 얘기지만 Borland계열이 제품으로는 200k도 작은 용량입니다. 흑흑흑... 방법에 대해 많이 고민...
    • 쿠쿠리
      2001.06.19 01:14
      그럼 볼랜드 계열이 아닐 경우엔 어떤가요? 뭐 VC++이나 VB나 썼을때는 용량 줄일 방법이 있는지... 급...
    • 이경문
      2001.06.19 01:23
      VB는 잘 모르겠구요(아무래도 VB는 dll없으면 안돌아 가는 놈이라서 예상컨데 델파이 product보다 크기가 ...
    • 아폴론
    • 2001.06.15 01:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 정종섭
      2001.06.15 19:28
      아폴론 wrote: > 델가족 여러분중 오라클 고수님들께 질문 합니다. > > 델5와 오라클8i를 이용해 서버...
    • 아폴론
      2001.06.16 03:05
      어떻게 하면 아카이브모드를 노아카이브모드로 바굴수 있나요? > 델파이 에서 외부 명령어를 실행하면...
    • XXX
    • 2001.06.15 01:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Lee
      2001.06.15 01:52
      group by 문장에서는 보통 max라는 함수를 잘 사용하지 않는것 같은데 정확히는 모르겠구요 제가 일때...
    • 초보2
    • 2001.06.15 01:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • SHANS
      2001.06.19 18:21
      그 에러는 타프로세스의 영역을 침범했을 경우등에 나타나는 에러로서 치명적인 에러입니다. 즉, 이 에러...
    • 이재식
      2001.06.15 02:24
      이렇게 ..... unprepare를 빼버리세요. 그리고, prepare앞에 이렇게 해보세요 if Prepared then ...
    • 델초보
    • 2001.06.15 01:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 토맛토
      2001.06.15 10:02
      그림위에 마우스로 사각형의 도형을 드래그 하고자 하시는 것인가요? 이때 그림이 무지하게 깜박거린다는 ...
    • 델맹맹
    • 2001.06.15 00:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.15 00:31
      안녕하세요. 최용일입니다. 굉장히 많이 나오는 질문이네요... 빠른 답변을 바란다면 항상 먼저 검색해...
    • 델맹맹
      2001.06.15 00:34
      최용일 wrote: > 안녕하세요. 최용일입니다. > > 굉장히 많이 나오는 질문이네요... 빠른 답변을 바란...
    • 최용일
      2001.06.15 00:19
      안녕하세요. 최용일입니다. 툴버튼의 Tag속성에 2번째를 표시하는 숫자를 넣어서 Sender파라매터를 이용...
    • Ziker
      2001.06.15 00:22
      최용일 wrote: > 안녕하세요. 최용일입니다. > > 툴버튼의 Tag속성에 2번째를 표시하는 숫자를 넣어서 ...
    • 정세민
    • 2001.06.14 23:29
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 박진훈
      2001.06.15 04:42
      1.멀티플랫폼 지원 여부 델파이는 윈도용이구, 리눅스에서는 비슷한 카일릭스가 있죠, 파워빌더는 윈...
    • 최용일
      2001.06.14 23:47
      안녕하세요. 최용일입니다. 1. 지원 (유닉스플랫폼에는 Kylix를 쓰시면 됩니다) 2. 아주 잘 지원 3. ...
    • 정세민
      2001.06.15 00:41
      빠른 답변 감사드립니다. 다름이 아니라 Kylix에 대한 부분인데요. 이거는 Delphi하구는 다른 Tool로 알...
    • 최용일
      2001.06.15 00:47
      다른 툴이지만 Kylix는 유닉스용 델파이라고 생각하시면 됩니다. 특별히 윈도우플랫폼에만 적용되는 코...
    • 정세민
      2001.06.15 02:41
      ..
    • 정우
    • 2001.06.14 22:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Lee
      2001.06.14 23:28
      이 방법은 어떨까요? 한개의 쿼리를 활용하세요. Select 팀.팀명, 사원.사번, 사원....
    • blackjewel
      2001.06.15 01:02
      답변감사해여^^; 그런데 질문이...... Query문 안에 case문이 사용가능한가여? > case whe...
    • Lee
      2001.06.15 01:39
      말씀하신데로 case문입니다. case when 출근부.일자='01' and 출근부.출근확인='o' then 'O' else 'X' e...
    • 최용일
      2001.06.15 00:00
      안녕하세요. 최용일입니다. 스트링그리드에서 쓰는 TInplaceEdit를 제어해서 하는 방법두 있겠구... 생...
    • 초보님
    • 2001.06.14 21:49
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 윤광희
      2001.06.16 22:53
      디플로이 옵션에서 include file version을 체크하시구 디플로이하면 HTML 만들어지죠? 거기에 버전 표시...
    • 나그네
      2001.06.16 04:49
      초보님 wrote: > ACTIVEXFORM으로 만든 프로그램을 을 익스플로우로 잘 나옵니다... > > 근데...갱신은...
    • 최용일
      2001.06.15 00:39
      안녕하세요. 최용일입니다. Web Deployment Options에서 Include file version number 와 Auto incremen...
    • 초보님
      2001.06.15 00:52
      확인했어요........그래도 않되요........ㅜ.ㅜ 최용일 wrote: > 안녕하세요. 최용일입니다. > > We...
    • 최용일
      2001.06.15 01:32
      되는데.... 쩝 Project/Options메뉴의 Version Info탭에서 버전을 크게 올려보세요... 아마두 예전에...
    • 최용일
      2001.06.15 00:07
      안녕하세요. 최용일입니다. 흠~ FindWindow로 다이얼로그 찾아서 다이얼로그의 버튼에 마우스 이벤트를 ...
    • 궁금
    • 2001.06.14 21:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 바람개비
      2001.06.14 23:43
      유닛컴파일후 생기는 파일입니다. 해당 유닛파일(compute.pas)이 존재하지 않거나 선언된 유닛이 없다는 ...
    • 시빌더
    • 2001.06.14 20:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kuma
      2001.06.15 04:37
      시빌더 wrote: > RxRichEdit 에서 선이나 Box를 그리는 방법아시는분 > 좀 갈쿄주셔요... 간단한 코드...
    • 이성찬
      2001.06.16 20:55
      IndexFieldNames := 'field1;field2';