Q&A

  • 퀵레포트에서 newpage가 안됩니다.
운영체제는 윈도우즈98이고 델파이 4.0을 사용하고 있습니다.
밴드는 group1과 band1을 설정한 상태입니다.
group1에 학년, 반, 학교가 바뀌게 되면 뉴페이지를 설정하고 출력을 하려하고 있는데 잘 안되고 있습니다. 스택오버플로우가 발생하고 preview를 했을경우에는 drawing을 할 수 없다는 메시지가 뜹니다.
아래는 group1과 퀵리포트의 이벤트에 코딩한 내용입니다.  제발 고수님들의 많은 조언 부탁드리겠습니다.
procedure TqrPClass.qrPClassBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
with dmExam do
  begin
    tmpGrade := qryReport.FieldByName('GRADE').AsString;
    tmpSCode := qryReport.FieldByName('SCODE').AsString;
    tmpClass := qryReport.FieldByName('CLASS').AsString;
  end;
end;

procedure TqrPClass.QRGroup1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  with dmExam do
  begin
    if (tmpGrade <> qryReport.FieldByName('GRADE').AsString) or
       (tmpScode <> qryReport.FieldByName('SCODE').AsString) or
       (tmpClass <> qryReport.FieldByName('CLASS').AsString) then
    begin
      qrPClass.NewPage;
      tmpGrade := qryReport.FieldByName('GRADE').AsString;
      tmpSCode := qryReport.FieldByName('SCODE').AsString;
      tmpClass := qryReport.FieldByName('CLASS').AsString;
    end;
  end;
end;
5  COMMENTS
  • Profile
    major 2003.09.16 21:04


    안녕하세요..

    제가 봤을때에는 혹시 Group Footer가 없는게 아닌지요?
    Group Header와 Group Footer가 있어야 될것 같은데요..

    글구 Group Footer 에서 After Print에서 NewPage를 하시면 될 것 같네요..

    그럼 즐프하세염...

    노파심에 Group Header와 Group Footer 연결은 Group Header에서 Footer 밴드를 연결하시면 됩니다..
  • Profile
    김문철 2003.09.16 21:48
    고수님의 조언 감사합니다. 그런데, 퀵리포트폼의 소스내용을 qroup footer에 복사한 결과 맨 마지막 번호 학생만이 출력이 되고, 그전 학생들은 아예 출력이 안됩니다. 제 질문이 잘못된것 같습니다. 현재 그룹헤더에는 학년, 반, 학교코드등이 있고, 밴드(현재는 footer)에는 번호, 성명, 계열, 점수등이 있습니다. 그래서, 현재 출력하고자 하는 내용은 담임용 학급별 성적일람표입니다.
    즉, 학년 또는 반 또는 학교번호가 바뀌면 새로운 페이지에 새로운 학년 또는 반 또는 학교번호(즉 그룹헤더)가 찍혀야하고, 밴드(현재는 footer)에는 그 해당  학년 또는 반 또는 학교번호의 학생들의 내용들이 찍혀야 합니다. 그런데, 끝 번호의 학생들만 찍히는 실정입니다. 죄송합니다. 초짜라서


  • Profile
    major 2003.09.16 22:01
    아무래도 밴드 조정을 하셔야 할 것 같네요..

    그룹헤더           --------
    디테일밴드                    |------연결을 하고요...
    그룹푸터           --------

    글구 디테일밴드에 내용 즉 그러니까....
    학생에 대한 내용을 올리시구요...

    그룹푸터는 아주 작게 하셔두 되구요..

    아님 QRExpr 컴퍼넌트를 올려서 사용하셔서 소계를 보여주어두 되구요..

    어쨌든 그렇게 사용을 하시고... 그룹 푸터 밴드 After Print이벤트에서

    어떤 조건이 들어오면 NewPage를 할수 있도록 코딩을 하시면 될 것 같네요..

    글구 혹시 시간이 되신다면... 델파이 폴더에 보면 데모가 있을 건데요...

    거기에서 델파이 폴더/demos/Quickrpt 를 한번 실행 해 보시면 어떻게 돌아가는 지 금방 아실수 있을 것 같네요...

    그럼 즐프하세염..
  • Profile
    김문철 2003.09.17 00:51
    바쁘신중에도 이렇게 답변을 주셔서 감사합니다. 아래와 같이 해보았으나, 뜻대로 잘 안되는 것 같습니다. 우선 초반에 스택오버플로우나 preview시 드로윙 오류는 나타나지 않습니다. 단, 반이 바뀌었는데도 연달아 다른반의 아이들이 똑같이 나옵니다. 그림을 첨부합니다. 처음에 퀵레포트가 열리면 학교코드, 반코드, 학년코드를 임시변수에 저장하게 되어있고,그룹 푸터 밴드 After Print이벤트에서 조건을 주어 하였으나 그림과 같이 반이 붙어 나옵니다. 정말 귀찮게 해서 죄송합니다.
  • Profile
    major 2003.09.17 03:12
    내용무에요..