또 질문을 올립니다.
현재 dbmemo에 뿌리고자하는 원본 table의 필드 type이 vachar입니다.
dbmemo1.datafield := 'course_id';
이런식으로 하면
총 6개의 데이타가 dbmemo에 한꺼번에 나와야 하는데 1개씩 밖에 안나옵니다.
dbnavigator로 이동하면 다음 데이타가 나옵니다.
제가 많이 몰라서 질문하기도 어렵네요...하~
a라는 사람이 6개의 강의를 듣고있습니다.
그리드에 출력되는것은
사용자 강의과목
1 A 국어
2 A 수학
3 A 영어
이걸 다음과 같은 형식으로 표현하고 싶어요...
사용자 강의과목
1 A 국어
수학
영어
2 B 국어
영어
수학
사용자 필드는 dbedit에 강의 과목은 dbmemo에
문제는 원본테이블의 type이 memo가 아니고 vachar입니다.
그럼 고수님의 조언부탁할게요....
새해 복많이 받으세요...
> 또 질문을 올립니다.
> 현재 dbmemo에 뿌리고자하는 원본 table의 필드 type이 vachar입니다.
> dbmemo1.datafield := 'course_id';
> 이런식으로 하면
> 총 6개의 데이타가 dbmemo에 한꺼번에 나와야 하는데 1개씩 밖에 안나옵니다.
> dbnavigator로 이동하면 다음 데이타가 나옵니다.
> 제가 많이 몰라서 질문하기도 어렵네요...하~
> a라는 사람이 6개의 강의를 듣고있습니다.
> 그리드에 출력되는것은
> 사용자 강의과목
> 1 A 국어
> 2 A 수학
> 3 A 영어
> 이걸 다음과 같은 형식으로 표현하고 싶어요...
> 사용자 강의과목
> 1 A 국어
> 수학
> 영어
> 2 B 국어
> 영어
> 수학
> 사용자 필드는 dbedit에 강의 과목은 dbmemo에
> 문제는 원본테이블의 type이 memo가 아니고 vachar입니다.
> 그럼 고수님의 조언부탁할게요....
> 새해 복많이 받으세요...
>
>
이재식 Wrote :
안녕하세요?
디비메모에 뿌릴때 테이블의 필드타입이 varchar2, varchar 상관없습니다.
다만, 위의 형식의 문제에서 디비메모에 출력할때는 위에서 말씀하신대로
하나의 레코드밖에 나오질 않습니다.
그런데, 원하시는 형식으로 나오게 하려면 디비그리드를 쓰셔서
그 안에서 나오게 하는방법이 가능합니다.(onDrawColumnCell이벤트 이용)
그러나, 이건 순 조회용으만 사용하셔야 하고 DBGrid1의 enable 속성을
false로 하셔서 사용자가 선택등을 못하게 해야 하는 단점이 있습니다.
왜냐하면, 사용자가 클릭을 했을경우, 다소 모양이 좀 dirty해지는 경우가
상황에따라 빈번히 발생을 하는 그런 문제가 있기 때문입니다.
사실 이방법은 별로 권하고 싶지 않습니다.
저라면 이렇게 하겠습니다.
화면 인터페이스가 어떻게 구성되어 있는지 모르는 관계로
막연히나마 이야기를 해보겠습니다.
1. 디비메모를 쓰지않고 그냥 메모를 씁니다.
해당 이름을 클릭할때마다 그 사람의 수강과목을 반복문 돌려서
메모에 출력해주는 거죠.
즉, 별도의 쿼리 컴포넌트를 더 쓰든가 아니면 기존의 쿼리 컴포넌트를 이용해서
반복문 돌리든가요.
만약 메모에 어떤 내용이 있고 사용자가 같은 이름의 수강과목을 출력하려면
체크를 해서 괜시리 반복문 돌아가는것을 막아야 겠죠.
2. 사실 저는 이 방법을 더 권하고 싶습니다.
스트링 그리드나 formula를 써서 위의 결과형식 그대로 출력하는 방법을
쓰겠습니다. 즉, 메모필드, 디비메모를 쓰지 않고 그냥 표형식으로
출력을 하는거죠.