QuickReport의 출력 데이터는 대부분 DBText로 직접 필드를 연결해서 사용하고 있습니다.
그런데, DetailBand를 이용하여 여러 건의 데이터를 출력하는 경우,
2~3건 정도로 한 페이지 안에서 출력가능한 경우는 잘 나오는데,
한 페이지가 넘어가게 되면, Preview에서 에러가 납니다.
"Project *** raised exception class EFCreateError with message 'Cannot create file'. "
작년에 이와 비슷한 질문을 올린 분이 계시던데, 그에 대한 답변은 없더군요.
프로그램 코딩은 해당 화면의 QuickReport를 단순히 Preview 하는 것으로 되어 있거든요.
=> QR.PREVIEW;
프로그램 로직으로 출력하는 것도 아니고 단순히 QR의 PREVIEW 기능을 이용하는 것이라
어떻게 해 볼 여지가 없어 많이 답답합니다.
혹시, 페이지가 넘어가도록 설정하는 옵션 등이 없는가 싶기도 하구요....
조언 부탁드립니다.
우선 답변이 많이 늦었습니다. 그동안 해결을 하셨는지 궁금하네요.
저와 비슷한 상황이신것 같아서 늦게나마 답변을 드립니다. 혹시 다른 분들도 이런 경우에 있으시면 도움이 되었으면 하는 바램에 답변합니다.
일반 사용자의 환경이 윈도우 98환경이었고, 개발환경은 윈도우 98에 델파이 3으로 개발했다가, 윈도우 2000이었습니다. 그리고 이번에 윈도우XP로 개발환경을 변경했습니다.
윈도우 XP 설치하고 Delphi 3.0을 설치하고 기존 개발환경을 테스트 하는데 오류가 발생을 해서 별의 별짓을 다 했다가 포기진적에 혹시나 해서 이곳 게시판에서 질문을 봤는데 다른분중에서 어느분이 외국 사이트 자료를 인용한 내용을 참고하여 처리했습니다.
일단 퀵리포트에서 인쇄하는 내용중에 메모리 사용이 많으면 임시 파일을 생성하는데, 임시파일 생성상에 오류 같습니다.
임시파일 생성을 위해 임시디렉토리를 사용하는데 윈도우즈의 환경변수 중에 TEMP 또는 TMP를 사용하는데 TMP를 사용하는 것 같습니다.
근데 이 TMP 환경변수가 Delphi 3의 한계인지 모르지만 윈도우즈98 환경을 따라가기 때문에 80글자 이상을 인식못합니다. 아시다시피 윈XP에서는 80자를 넘어가는 경우가 많습니다. 그래서 어쩔 수 없이 80나 이내로 변경을 해야합니다.
** 수정하는 방법 **
하시는 방법은 내컴퓨터 속성에서 고급탭에 보시면 환경변수가 있습니다. 이중에 사용자변수에 보시면 대게 TEMP와 TMP가 있는데 두개 다를 편집을 클릭하여 C:\Temp로 설정하시고 사용하면 해결 됩니다.
물론, C:\Temp가 생성되어 있어야 합니다.
제 경험상인데요. 80자 이내이더라도 "C:\documents and Settings\...."에서 공백이 있는경우 제대로 인식 못하는 경우가 있습니다. 그래서 간단하게 "C:\Temp"로 처리했습니다.
내용이 기네요. 지루 하시더라도 고생하시는 분이 없었으면 하는 바램에 서론이 길었습니다.