테이블 제목을 계속 품고서 다음장에서도 프린트 하는 방법
페이지 정보
작성자 서방님 댓글 0건 조회 206회 작성일 07-11-14 16:05본문
<script language="javascript">
<!--
//페이지 break 인쇄
function PrnFrm(TBName, HeadColLength, HeadStart, HeadEnd, PageSize){
//TBName : 테이블명
//HeadColLengh : 반복할 제목부분의 컬럼수
//HeadStart : 반복할 제목의 시작 로우
//HeadEnd : 반복할 제목의 끝 로우
//PageSize : 페이지크기(A4:850)
var pageNum = 0;
var TRHeight = 0;
var HEADHeight = 0;
var HeadTDHTML = new Array(HeadEnd - HeadStart + 1);
var HeadTDColSpan = new Array(HeadEnd - HeadStart + 1);
var HeadTDRowSpan = new Array(HeadEnd - HeadStart + 1);
var HeadTDClass = new Array(HeadEnd - HeadStart + 1);
//page-break후 반복해서 찍어야할 타이틀을 저장하는부분
for(i=HeadStart; i<=HeadEnd; i++) {
HeadTDHTML[i] = new Array(TBName.rows(i).cells.length);
HeadTDColSpan[i] = new Array(TBName.rows(i).cells.length);
HeadTDRowSpan[i] = new Array(TBName.rows(i).cells.length);
HeadTDClass[i] = new Array(TBName.rows(i).cells.length);
for(j=0;j<=TBName.rows(i).cells.length-1;j++) {
HeadTDHTML[i][j] = TBName.rows(i).cells(j).innerHTML; //타이틀의 내용저장
HeadTDColSpan[i][j] = TBName.rows(i).cells(j).colSpan; //타이틀의 colSpan저장
HeadTDRowSpan[i][j] = TBName.rows(i).cells(j).rowSpan; //타이틀의 rowSpan저장
HeadTDClass[i][j] = TBName.rows(i).cells(j).className; //타이틀의 스타일시트저장
}
HEADHeight = HEADHeight + TBName.rows[i].scrollHeight; //타이틀의 height계산
}
//한행씩 height를 더해가면서 pagesize를 넘었는가를 검사
for(row=0;row<=TBName.rows.length-1;row++) {
TRHeight = TRHeight + TBName.rows[row].scrollHeight; //각 행의 height를 sum
//pagesize를 넘었으면 타이틀을 찍는다.
if((TRHeight + HEADHeight) > PageSize) {
pageNum = pageNum+1; //페이지넘버
for(i=0;i<=HeadTDHTML.length-1;i++){
var R = TBName.insertRow(row+i); //타이틀 찍을자리에 한행 추가
for (j=0; j <= HeadTDHTML[i].length - 1; j++) {
var C = R.insertCell(j); //타이틀찍을자리에 셀 추가
C.innerHTML = HeadTDHTML[i][j]; //타이틀내용찍고
C.colSpan = HeadTDColSpan[i][j]; //타이틀 Colspan속성걸고
C.rowSpan = HeadTDRowSpan[i][j]; //타이틀 Rowspan속성걸고
C.className = HeadTDClass[i][j]; //타이틀의 스타일시트걸고
}
}
// 타이틀 앞부분에 page-break를 삽입
var R = TBName.insertRow(row); //page-break걸어줄 행을 추가
var c = R.insertCell(0); //셀 추가
c.innerHTML = pageNum+" Page<BR CLASS='Page'>"; //page-break
c.colSpan = HeadColLength; //한행 전체를 한 셀로 묶어주고
c.className = "PageBreakTD"; //page-break할때 border안보이게...
TRHeight = 0; //page-break부터 다시 height계산
row = row - 1; //이걸 해줘야 하는 이유를........
}
}
pageNum = pageNum + 1;
var S = TBName.insertRow(row); //마지막 페이지에 페이지넘버 출력
var d = S.insertCell(0); //셀 추가
d.innerHTML = pageNum + " Page";
//페이지넘버
d.colSpan = HeadColLength;
//한행 전체를 한셀로 묶어주고
d.className = "PageBreakTD"; //page-break할때 border안보이게...
this.print();
parent.selectData();
}
/*
----- 사용 ------
반복할 제목이 2줄 6컬럼일 경우 함수호출
PrnFrm(PrnTB,6,0,1,850);
*/
//-->
</script>
댓글목록
등록된 댓글이 없습니다.