안녕하세요.
맨날 신세만 지네요.
공부 많이 해서 나두 답변 올려 도움이 되었음 좋겠네요
앞에서 질문을 드려 답을 받았는데 여전히 풀리지 않네요.
mast table에 고객에 대한 주소를 전부다 넣어 놓지 않고 기타 주소만 저장하고 시도명, 구명, 동명, 리명 등을 우편번호를 이용하고 있습니다.
즉 mast table
고객이름 우편번호1 우편번호2 기타주소
-------------------------------------------------------
김아무개 600 010 120번지 우성아파트 5-202
그리고 woo table에서
우편번호1 우편번호2 시도명 시군구명 행정동명 리명
------------------------------------------------------------------------
600 010 부산 중구 대청동
이런 식으로 있는데요.
제가 원하는 것은 퀵리포트에 고객의 이름과 함께 주소를 대장으로 출력하고자 한는 겁니다.
그럴려면 일단 고객이름과 기타주소는 그대로 가져오면 되는데 시도, 구, 동명이
문제 입니다.
리포트 출력모양
고객이름 주 소
------------------------------------------------------
김아무개 시도명? 구명? 행정동명? ---- 이 부분이 문제
기타주소
var
str1, str2, str3 : string;
woo_1, woo_2 : string;
sidon_p, digungun_p, ln_p, hjdn_p : string;
begin
dm1.Table1.Open;
dm1.Query1.Close;
dm1.Query1.SQL.Clear;
woo_1 := dm1.Table1.FieldByName('woo1').AsString;
woo_2 := dm1.Table1.fieldbyname('woo2').AsString;
str1 := ' ';
str1 := 'select sidon as sidon_p, sigungun as sigungun_p, hjdn as hjdn_p, ln as ln_p from woo where woo1 = :woo_1 and woo2 = :woo_2 ';
dm1.Query1.SQL.Add(str1);
dm1.Query1.ParamByName('woo_1').AsString := dm1.Table1.fieldbyname('woo1').AsString;
dm1.Query1.ParamByName('woo_2').AsString := dm1.Table1.fieldbyname('woo2').AsString;
dm1.Query1.Open;
qrdbtext4.DataField := sidon_p; //제가 해본 방법인데 에러네요.
(여기서 qrdbtext4 는 시도명이 출력될 퀵리포트상
의 dbtext 입니다.)
아시겠지만 여기서 dm1은 table, query 등을 모아놓은 것이구요
table1은 mast table 을 가르키는 것입니다.
어떻하죠? 어떻게 하면 시도명, 구명, 동명을 출력할 수 있을 까요?
선배님들의 가르침을 기다립니다.
우선 Mast Table을 QuickReport에다 연결하시고요...
원하시는 내용(Mast에 있는 내용)을 DetailBand에 놓으시고
[고객이름 기타주소]를 QRDBLabel로 놓으시고요
중간에 그냥 QRLabel를 놓으세요...
고객이름 QRLabel 기타주소 이렇게...
그런다음 아마도 woo table은 Master Key가 우편번호1,우편번호2 로 잡혀 있을것
같은데... DetailBand의 Before Event에서 바로 출력될때마다 찾아 주시면되죠
[[[
if wooTable.FindKey([우편번호1,우편번호2]) = True then
begin
QRLabel.Caption := woTable.FieldByName('시도명').AsString +
woTable.FieldByName('시군구명').AsString +
woTable.FieldByName(행정동명').AsString;
end;
]]]
이런식으로요...
Wootable의 Key가 다르다면 Query로 Select하셔서 해당하는 내용을 사용하셔도
되고요... 음 내가 적어내려가고도 어렵군요... 잘 하실수 있을것 같은데...
낼은 쉬는날 그럼... 즐코하세요...
강영미 wrote:
> 안녕하세요.
> 맨날 신세만 지네요.
> 공부 많이 해서 나두 답변 올려 도움이 되었음 좋겠네요
>
> 앞에서 질문을 드려 답을 받았는데 여전히 풀리지 않네요.
>
> mast table에 고객에 대한 주소를 전부다 넣어 놓지 않고 기타 주소만 저장하고 시도명, 구명, 동명, 리명 등을 우편번호를 이용하고 있습니다.
>
> 즉 mast table
>
> 고객이름 우편번호1 우편번호2 기타주소
> -------------------------------------------------------
> 김아무개 600 010 120번지 우성아파트 5-202
>
> 그리고 woo table에서
>
> 우편번호1 우편번호2 시도명 시군구명 행정동명 리명
> ------------------------------------------------------------------------
> 600 010 부산 중구 대청동
>
> 이런 식으로 있는데요.
>
> 제가 원하는 것은 퀵리포트에 고객의 이름과 함께 주소를 대장으로 출력하고자 한는 겁니다.
>
> 그럴려면 일단 고객이름과 기타주소는 그대로 가져오면 되는데 시도, 구, 동명이
> 문제 입니다.
>
> 리포트 출력모양
>
> 고객이름 주 소
> ------------------------------------------------------
> 김아무개 시도명? 구명? 행정동명? ---- 이 부분이 문제
> 기타주소
>
>
> var
> str1, str2, str3 : string;
> woo_1, woo_2 : string;
> sidon_p, digungun_p, ln_p, hjdn_p : string;
> begin
> dm1.Table1.Open;
> dm1.Query1.Close;
> dm1.Query1.SQL.Clear;
> woo_1 := dm1.Table1.FieldByName('woo1').AsString;
> woo_2 := dm1.Table1.fieldbyname('woo2').AsString;
>
> str1 := ' ';
> str1 := 'select sidon as sidon_p, sigungun as sigungun_p, hjdn as hjdn_p, ln as ln_p from woo where woo1 = :woo_1 and woo2 = :woo_2 ';
> dm1.Query1.SQL.Add(str1);
> dm1.Query1.ParamByName('woo_1').AsString := dm1.Table1.fieldbyname('woo1').AsString;
> dm1.Query1.ParamByName('woo_2').AsString := dm1.Table1.fieldbyname('woo2').AsString;
> dm1.Query1.Open;
>
> qrdbtext4.DataField := sidon_p; //제가 해본 방법인데 에러네요.
> (여기서 qrdbtext4 는 시도명이 출력될 퀵리포트상
> 의 dbtext 입니다.)
>
> 아시겠지만 여기서 dm1은 table, query 등을 모아놓은 것이구요
> table1은 mast table 을 가르키는 것입니다.
>
> 어떻하죠? 어떻게 하면 시도명, 구명, 동명을 출력할 수 있을 까요?
>
> 선배님들의 가르침을 기다립니다.