Q&A

  • QReoprt 를 이용하여 출력할때..


안녕하세요..
또 질문하러 왔습니다..(_ _)
QReport를 이용해서 출력하는걸 해보고 있습니다..
자료를 찾아다니다보니 대부분 쿼리를 이용해서 값을 받아오는 경우 뿐이더군요..

저는 출석부를 만들고 싶습니다..
사용자가  강의 년도/학기/수업/분반 정보를 차례로 선택하면
그 정보를 이용해서 출석부를 만들려고 합니다.

사용자가 선택한     "수업"  정보가 콤보박스에 있는데 그걸 출석부의 처음 부분에 TQRLabel 의 caption에 넣어주려고하니 자꾸 에러가 납니다. .
위의 이미지와 같은 컴포넌트 에러가 뜨는데요.. 이게 먼지 모르겠습니다.

사용자가 각 수업정보를 선택하고 버튼을 누르면
Form2.QuickRep1.Preview;   라고 해서 미리보기 창이 뜨게 하는데..

값이 들어가질수 있도록 하기 위해서 (나름 혼자 고민한 끝에...;;)
QuickRep1 의 event 속성 중 QuickRep1StartPage 와 QuickRep1Preview 에 각각  라벨의 캡션에 값을 넣을 수 있도록 코드를 작성했습니다...
===============================

    with mainf do begin
      code := Trim(Copy(cb_class.text, 1, Pos(' : ', cb_class.text)-1));
      name := Trim(Copy(cb_class.text, Pos(':',cb_class.text)+1, Length(cb_class.text)));
    showmessage(code+'    '+name);
    end;
    qlb_LessName.Caption := '';
    qlb_LessName.Caption := name;

==============================

근데 event 속성중 걸 정하는게 맞는지도 사실 잘 모르겠습니다.. ;;

출석부에 라인도 엄청나게 많은데.. 그걸 어떻게 표현할지도 사실 막막.. ㅠ
첫 단계부터 막히니 답답하네요..
QReport 때문에 몇일을 고생중입니다.. 강의에도 이 내용은 봐도 잘 모르겠더군요..
고수님들의 친절한  답변 부탁드리겠습니다....
제발 그냥 지나치지 마시고 도와주세요..ㅠㅠ


3  COMMENTS
  • Profile
    깔쌈보이 2008.06.14 02:51
    with mainf do begin 문장에 보면 name := 어쩌구 구문 있죠?
    이 구문에 한글이 들어가서 발생한 오류입니다.

    컴포넌트의 명칭은 영문자와 숫자 및 일부 특수기호만 가능하며 첫글자는 영문자가 와야 합니다.
    아마 db_class.text에 한글 "운영체제"가 들어가 있나 봅니다.

    그리고 추측컨데 name 이라는 변수는 외부에서 선언된 변수인것 같은데...
    다른 이름으로 바꾸셔야 에러가 발생 안 합니다.

    with mainf do begin 밑에도 name이 있기 때문에...
    with 구문은 도움말을 통해 찾아보시구요... 이 구문으로 인해...
    결국 mainf.name 으로 여겨지기 때문에... Trim(Copy(~~ 어쩌구~ 에 한글이 있어서 에러가 발생한거죠...
    name을 vName 등으로 바꾸시던가... with 문을 없애시던가.. 등등 수정을 하시길 바랍니다.
  • Profile
    화이팅 2008.06.14 03:44
    이름을 바꾸니 위와같은 에러는 발생하지 않네요.. 깔삼보이님 감사합니다^^
    근데 실행을 시키면 아무런 변화가 없습니다..
    버튼에 preview 하게 만들었는데 창이 전혀 안뜨네요..
    이벤트를 잘못 지정한건지...
    어디에 넣어야 콤보박스 내용을 TQRLabel 의 caption으로 버튼을 클릭했을 때, 창이 뜨기전 실행 가능한지좀 알려주시면 감사하겠습니다
  • Profile
    석주현 2008.06.19 02:44
    Form2.QuickRep1.Prepare;

    를 해주시고 Preview 를 하셔야 합니다.
    • steps
    • 2008.06.14 02:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.06.15 02:26
      자답입니다. 코드에서 이미지처리에 리용된 GDI PLUS가 문제였습니다. GDI Plus를 쓴 경우 우의 증상...
    • 화이팅
    • 2008.06.14 00:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 깔쌈보이
      2008.06.14 02:51
      with mainf do begin 문장에 보면 name := 어쩌구 구문 있죠? 이 구문에 한글이 들어가서 발생한 오류입...
    • 화이팅
      2008.06.14 03:44
      이름을 바꾸니 위와같은 에러는 발생하지 않네요.. 깔삼보이님 감사합니다^^ 근데 실행을 시키면 아무런...
    • 석주현
      2008.06.19 02:44
      Form2.QuickRep1.Prepare; 를 해주시고 Preview 를 하셔야 합니다.
    • 김길남
    • 2008.06.14 00:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2008.06.13 20:21
      이름으로 찾는 FindComponent를 사용해 보세요. 그리고 FrmMain는 그촘의 이름입니다. <!--CodeS--&...
    • 강태원
      2008.06.13 20:53
      아하 저런 함수가 있었군요. 감사합니다. 이제 할수 있을듯...^^
    • 이정욱
      2008.06.13 21:04
      한가지 더 팁을 알려드리면, FindComponent 를 사용하셔도 무방합니다. 하지만 성능상의 잇점을 조금...
    • 강태원
      2008.06.14 00:15
      아하.. 밑쪽의 방법도 괜찮은데요?^^; 근데 이미 다 해놨는데... 바꿔야 하나...(이놈의 게으름..-...
    • 석주현
      2008.06.14 11:52
      아래쪽의 방법이 더 나은거 같네요. 코드 컴프리트 같은 책이나 아니면 보통 프로그래밍 관련 책들을 ...
    • 천천히
    • 2008.06.11 23:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2008.06.12 02:22
      for문 다음에 rowcount := rowcount + 1; 이렇게하면 보이겠네요. 전번에 처럼 rowcount로 하시면...
    • 홍성락
      2008.06.12 04:38
      2가지 방법으로 해보겠습니다. 1방법은 그냥 넣을때 곰마를 넣습니다, 그러나 실제 데이타와 다르므로 ...
    • 천천히
      2008.06.13 00:06
      님말씀대로 formatfloat 함수
    • 홍성락
      2008.06.13 03:10
      FormatFloat인자가 Variant라서 그런가봅니다 Cells[1, i+1] := FormatFloat('#,##0', StrToFloat(VarTo...
    • 천천히
      2008.06.13 19:09
      홍성락님..답변 감사합니다.. 그런데 또 에러가... ㅠ..ㅠ Cells[1, i+1] := FormatFloat('#,##0', ...
    • 홍성락
      2008.06.13 20:15
      아마 위에서 말한것 처럼 데이타에 숫자가아닌 값이 있나 보네요. try를 사용해 함수내 놓거나 별고 함...
    • 천천히
      2008.06.14 00:26
      감사합니다.. 해결했습니다... ^^; 복 받으세요...
    • 플루토
    • 2008.06.11 01:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.06.11 05:23
      파일을 다운로드하든 메모리에 스트림으로 써넣든 클라이언트에 이미지자료가 오기전에는 불가능합니다.
    • 이정욱
      2008.06.11 06:26
      만약 이미지가 커서 그런다면, 이미지 썸네일을 생성 후 받아서 보여주시면 됩니다.
    • 장성호
      2008.06.10 03:14
      <!--CodeS--> procedure TForm1.Button2Click(Sender: TObject); var idx: Integer; begin ...
    • 강태원
      2008.06.10 18:05
      아 C++ 처럼 형변환이 가능하군요. 감사합니다.
    • 석주현
      2008.06.10 03:06
      DateTimeToFileTime(EncodeDateTime(2008,6,9, 17,25,00,00)); EncodeDateTime 으로 한번 해보세요. ...
    • 이정욱
      2008.06.11 00:29
      FileTimeToLocalFileTime 를 참고해보세요 ^^ 우리나라의 GMT 타임 존이 다르기 때문입니다. 위의 ...
    • 석주현
      2008.06.11 09:41
      역씨 정욱님 대단하시네요. ^^ 저도 좋은거 배웠네요.
    • 장성호
      2008.06.10 03:54
      OpenDialog에서 파일명이 들어가는 부분은 ComboBox 입니다. vcl에서도 마찬가지 그렇지만 ComboB...
    • 백록화
      2008.06.10 00:49
      edit 의 imemode 가 imDontCare 이라면...다른 콤포넌트의 영향을 받을수 있습니다. edit1 에 들어오기전...
    • 바다소리
      2008.06.10 01:16
      감사 합니다 검색을위해 호출되는 하위 폼의 edit box에 imemode를 한글로 했었는데 거기서 영향을 ...
    • 임정미
      2008.06.09 09:31
      해결했습니다. 배열크기는 SetLength(value , s_count); 로 정해놓고 for 문은 scount+1 만큼 ...
    • 이정욱
      2008.06.09 20:10
      윽.. 도와드리려고 했는데... 챙피해 하지 마세요 ^^; 전 더 한 실수도 많이 한답니다.ㅜㅜ 꽤 긴...
    • 석주현
      2008.06.09 22:26
      ㅎㅎ 저도 캡춰해서 분석하다가 말았습니다. 제가 보긴 코드를 좀 나누고 좀 리펙토링 하셔야 할 것 ...
    • 이정욱
      2008.06.06 13:13
      test (a,b) 로 그냥 호출 하시면 됩니다. 그리고 그냥 ShowMessage(b); 하시면 제데로 출력될 것입니...
    • 플루토
      2008.06.06 20:24
      네 감사합니다. 수정했어요^ ^
    • 구창민
      2008.06.06 03:02
      이정욱님 편역한...델파이7 Check 또는 아래 델마당에 어떤분이 추천하셨던 책이네요.. 류종택님 저서....
    • 홍성락
      2008.06.05 23:29
      자료실에 [문자를 좌로 스크롤 하는 소스-이미지 사용]으로 올렸습니다. 수정하시면서 사용해 보세요
    • 김광식
      2008.06.11 00:54
      감사합니다...
    • 화이팅
    • 2008.06.05 10:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김병윤
      2008.06.05 12:37
      기본적으로 DATA는 Query한값을 --> DataSource를 통해 --> DBGrid에 보여줍니다. 결과적으로 Query의 ...
    • 화이팅
      2008.06.07 05:33
      고맙습니다..^^ 덕분에 잘 해결되었습니다~
    • 왕초보
    • 2008.06.05 02:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.06.05 03:00
      포트 번호는 보통 Ip를 통해서 호스트를 찾고 포트번호를 통해서 호스트 내의 통신 접속점을 구분하기 위...
    • 장성호
      2008.06.05 06:22
      TServerSocket의 Port를 100000으로 하고 Active=true해 놓은후에 netstat -a 해보세요 TCP 에...
    • 석주현
      2008.06.04 22:54
      디버깅 하시면서 쿼리의 결과가 제대로 나오는지 확인 부터 해보세요. 디비 구성이 어떤지 모르지만 ...
    • 이정욱
      2008.06.04 22:57
      저도 가끔 이런경우를 보는데, 아마도 for 문의 최적화 때문일 수도 있습니다. 디버깅을 해보시면, co...
    • 석주현
      2008.06.04 23:20
      아 그러고 보니 정욱님 말씀 처럼 최적화에 따라 달라지는 경우가 있습니다. 음 저 같으면요. v...