문제가 생겼어요...
아래 답변해준 소스죠?
아래 문제가 있어요...
=========================================================================
adate := inputdate; ,=====요기는 20010101 요런식이라고 가정함
ayear := copy(adate, 1,4);
cdate := copy(adate, 5,2);
if (cdate = '01') or (cdate = '02') or (cdate = '12') then
ddate := '12' else
if (cdate = '03') or (cdate = '04') or (cdate = '05') then
ddate := '03' else
if (cdate = '06') or (cdate = '07') or (cdate = '08') then
ddate := '06' else
if (cdate = '09') or (cdate = '10') or (cdate = '11') then
ddate := '09';
with Query1 do begin <=====요쿼리를 레포트랑 연결
close;
sql.clear;
sql.add('select * from bdb');
sql.add('where bdate = :p_date');
parambyname('p_date').asstring := ayear + ddate;
open;
printform.qrlabel1.caption := copy(fieldbyname('bdate').asstring, 1, 6);
만약 날짜밴드가 디테일이라면 쿼리1의 Calck 이벤트를 활용하세요
end;
============================================================================
여기서 'p_date'가 값이 안들어 가요...참고로 Bdate는 Integer형입니다...
그리고 Open도 안되요..이상한 에러가 뜨는데...
::::쿼리1의 Calck 이벤트를 활용하세요
이거는 어떻게 이벤트를 어디서부터 해야 하는 건가요...
Query만 하는 건가요...
알려주세요...
> 문제가 생겼어요...
>
> 아래 답변해준 소스죠?
>
> 아래 문제가 있어요...
> =========================================================================
> adate := inputdate; ,=====요기는 20010101 요런식이라고 가정함
> ayear := copy(adate, 1,4);
> cdate := copy(adate, 5,2);
> if (cdate = '01') or (cdate = '02') or (cdate = '12') then
> ddate := '12' else
> if (cdate = '03') or (cdate = '04') or (cdate = '05') then
> ddate := '03' else
> if (cdate = '06') or (cdate = '07') or (cdate = '08') then
> ddate := '06' else
> if (cdate = '09') or (cdate = '10') or (cdate = '11') then
> ddate := '09';
>
> with Query1 do begin <=====요쿼리를 레포트랑 연결
> close;
> sql.clear;
> sql.add('select * from bdb');
> sql.add('where bdate = :p_date');
> parambyname('p_date').asstring := ayear + ddate;
> open;
> printform.qrlabel1.caption := copy(fieldbyname('bdate').asstring, 1, 6);
> 만약 날짜밴드가 디테일이라면 쿼리1의 Calck 이벤트를 활용하세요
> end;
>
>
> ============================================================================
>
> 여기서 'p_date'가 값이 안들어 가요...참고로 Bdate는 Integer형입니다...
>
> 그리고 Open도 안되요..이상한 에러가 뜨는데...
>
> ::::쿼리1의 Calck 이벤트를 활용하세요
> 이거는 어떻게 이벤트를 어디서부터 해야 하는 건가요...
> Query만 하는 건가요...
>
> 알려주세요...
var adate,ayear,cdate,ddate : string;
begin
adate := inputdate; ,=====요기는 20010101 요런식이라고 가정함, 스트링형이죠?
ayear := copy(adate, 1,4);
cdate := copy(adate, 5,2);
if ((cdate = '01') or (cdate = '02') or (cdate = '12')) then
ddate := '12' else
if ((cdate = '03') or (cdate = '04') or (cdate = '05')) then
ddate := '03' else
if ((cdate = '06') or (cdate = '07') or (cdate = '08')) then
ddate := '06' else
if ((cdate = '09') or (cdate = '10') or (cdate = '11')) then
ddate := '09';
showmessage(ddate);
showmessage(ayear+ddate);
with Query1 do begin <=====요쿼리를 레포트랑 연결
close;
sql.clear;
sql.add('select * from bdb');
sql.add('where bdate = :p_date'); <===== bdate 필드는 200001 이라고 가정함
parambyname('p_date').asstring := ayear + ddate;
open;
end;
이렇게 하면 오픈 됩니다
오픈 된담에 다시 봅시다.
inputdate 가 스트링이 아니면 스트링으로 형변환 하세요 inttostr
bdate가 200101 이 아니고 20010101 이면 where 절에 substring 함수를 써야 합니다.
얼릉 무지개가 떠야 제우스에게 갈텐데...