Q&A

  • 퀵리포트에서 데이터의 선택문제에서요..
쿼리를 퀵리포트에서,

쿼리의 SELECT 문은 :



QUERY1.SQL.ADD(' SELECT NAME1, NAME2 FROM ADDR '); 로 해서 이름을 끌어오게 함.



그리고,

QUICKREP에서

QRDBTEXT 하나만을 배치해서

NAME1이 <>''이면 NAME1을

NAME1이 =''이면 NAME2를 선택하게 하려고, 아래와 같이 코딩을 하였는데,

안되는 군요...

그럼, 어떻게 해야지요? 답변 부탁드립니다.





VAR

I:INTEGER;

begin

FOR I:=0 TO FORM1.QUERY1.RECORDCOUNT-1 DO BEGIN

FORM1.QUERY1.FIRST;

IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING<>'' THEN

FORM2.QRDBTEXT1.DATAFIELD:='NAME1'

ELSE IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING='' THEN

FORM2.QRDBTEXT1.DATAFIELD:='NAME2';

NEXT;



END; //FOR ..

end;





3  COMMENTS
  • Profile
    김지엽 2001.10.19 23:14
    간단한 실수를 하신거 같군요.

    query1.First 문을 루프 바깥(위)으로 끌어내세요.



    헬프미 wrote:

    > 쿼리를 퀵리포트에서,

    > 쿼리의 SELECT 문은 :

    >

    > QUERY1.SQL.ADD(' SELECT NAME1, NAME2 FROM ADDR '); 로 해서 이름을 끌어오게 함.

    >

    > 그리고,

    > QUICKREP에서

    > QRDBTEXT 하나만을 배치해서

    > NAME1이 <>''이면 NAME1을

    > NAME1이 =''이면 NAME2를 선택하게 하려고, 아래와 같이 코딩을 하였는데,

    > 안되는 군요...

    > 그럼, 어떻게 해야지요? 답변 부탁드립니다.

    >

    >

    > VAR

    > I:INTEGER;

    > begin

    > FOR I:=0 TO FORM1.QUERY1.RECORDCOUNT-1 DO BEGIN

    > FORM1.QUERY1.FIRST;

    > IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING<>'' THEN

    > FORM2.QRDBTEXT1.DATAFIELD:='NAME1'

    > ELSE IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING='' THEN

    > FORM2.QRDBTEXT1.DATAFIELD:='NAME2';

    > NEXT;

    >

    > END; //FOR ..

    > end;

    >

    >

  • Profile
    헬프미 2001.10.20 00:52
    답변 감사합니다.



    그런데,



    간단한 DB 를 만들어 필들에 NAME1, NAME2를 주어 한 5~6개 정도 레코드를 만들어서,

    테스트 해보아도, 역시 마지막 레코드의 여부에 따라서 밖엔 되지 않네요..

    다른 방법 없을 까요?



    김지엽 wrote:

    > 간단한 실수를 하신거 같군요.

    > query1.First 문을 루프 바깥(위)으로 끌어내세요.

    >

    > 헬프미 wrote:

    > > 쿼리를 퀵리포트에서,

    > > 쿼리의 SELECT 문은 :

    > >

    > > QUERY1.SQL.ADD(' SELECT NAME1, NAME2 FROM ADDR '); 로 해서 이름을 끌어오게 함.

    > >

    > > 그리고,

    > > QUICKREP에서

    > > QRDBTEXT 하나만을 배치해서

    > > NAME1이 <>''이면 NAME1을

    > > NAME1이 =''이면 NAME2를 선택하게 하려고, 아래와 같이 코딩을 하였는데,

    > > 안되는 군요...

    > > 그럼, 어떻게 해야지요? 답변 부탁드립니다.

    > >

    > >

    > > VAR

    > > I:INTEGER;

    > > begin

    > > FOR I:=0 TO FORM1.QUERY1.RECORDCOUNT-1 DO BEGIN

    > > FORM1.QUERY1.FIRST;

    > > IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING<>'' THEN

    > > FORM2.QRDBTEXT1.DATAFIELD:='NAME1'

    > > ELSE IF FORM1.QUERY1.FIELDBYNAME('NAME1').ASSTRING='' THEN

    > > FORM2.QRDBTEXT1.DATAFIELD:='NAME2';

    > > NEXT;

    > >

    > > END; //FOR ..

    > > end;

    > >

    > >

  • Profile
    코스엑스 2001.10.21 15:54
    다시 써봤읍니다.





    begin

    with Form1.Query1 do

    begin

    Open;

    First;

    while not EOF do

    begin

    if FieldByName('Name').isNull then Form2.QRDBText1.DataField := 'Name2' else

    Form2.QRDBText1.DataField := 'Name1' ;

    next;

    end;

    end;