테이블 제목을 계속 품고서 다음장에서도 프린트 하는 방법 > script

본문 바로가기
사이트 내 전체검색

script

테이블 제목을 계속 품고서 다음장에서도 프린트 하는 방법

페이지 정보

작성자 서방님 댓글 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>

댓글목록

등록된 댓글이 없습니다.

Total 846건 23 페이지
게시물 검색

회원로그인

접속자집계

오늘
21
어제
302
최대
1,347
전체
155,082
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.