마이플랫폼 - 페이징
var grdObj; //그리드 오브젝트
var dsObj; //데이터셋 오브젝트
var divPage; //페이징 DIV 오브젝트
var init_URL; //트랜잭션 경로
var init_svcID; //트랜잭션 고유 ID
var init_outDatasets; //트랜잭션 요청 시 입력값으로 보낼 Dataset 의 ID
var init_category; //게시판 구분자
var init_grdId; //그리드 ID
var init_dsId; //데이터셋 ID
var init_divId; //페이징DIV ID
var init_iNowPage; //현재페이지
var init_iPageScale; //페이징되는 페이지 개수
var init_iVolumnPerPage; //페이지당 건 수
// OnMouseOver
function f_over_color(obj)
{
obj.Color = "Blue";
obj.Font = "굴림,8,Bold";
}
// OnMouseOut
function f_out_color(obj)
{
obj.Color = "Black";
obj.Font = "굴림,8";
}
// OnFocus
function f_focus_color()
{
}
// OnKillFocus
function f_kill_color()
{
}
/*
* 변수 값 초기화
*/
function gridPaging_init(iNowPage, iPageScale, iVolumnPerPage, grdId, dsId, divId, strURL, strSvcID, strOutDatasets, vCategory)
{
init_URL = strURL;
init_svcID = strSvcID;
init_outDatasets = strOutDatasets;
init_category = vCategory;
init_grdId = grdId;
init_dsId = dsId;
init_divId = divId;
init_iNowPage = iNowPage;
init_iPageScale = iPageScale;
init_iVolumnPerPage = iVolumnPerPage;
}
function hboard_ret(obj, iNowPage)
{
//페이징 DIV에서 선택 시 선택 한 페이지 조회
if(length(toString(iNowPage)) > 0) {
init_iNowPage = iNowPage;
}
var vArg = "jobGbn = '" + init_svcID + "'";
vArg += " boardCategory='" + init_category +"'"; //공지사항
vArg += " iNowPage='" + init_iNowPage + "'";
vArg += " iPageScale='" + init_iPageScale + "'";
vArg += " iVolumnPerPage='" + init_iVolumnPerPage + "'";
SetWaitCursor(true);
SetCapture();
//진행창(progress)
gfn_Progress();
Transaction(obj.id, init_URL, "", init_outDatasets, vArg, "CallBack");
}
/*
* Transaction CallBack
*/
function CallBack(SvcID, ErrCode, ErrMsg)
{
SetWaitCursor(false);
ReleaseCapture();
//progress 팝업 닫기 - 0.1초 간격(1번 만)
setTimer(99, 100);
//성공 인 경우
if (ErrCode == 0) {
switch (SvcID) {
case "btnSearch" :
/*
* 페이지 생성(현재페이지, 조회 건수, 페이징되는 페이지수, 페이지당 건수, 그리드ID, 데이터셋ID, 페이지 DIV)
* makePage(iNowPage, iTotalCount, iPageScale, iVolumnPerPage,grdId, dsId, divId)
*/
makePage(iNowPage, toNumber(totalrecord), init_iPageScale, init_iVolumnPerPage, init_grdId, init_dsId, init_divId);
//그리드에 포커스
grdObj.SetFocus();
break;
}
} else if (ErrCode == -999) {
//세션 종료
gfn_SessionClose(gfn_MsgTitle("01003"),gfn_MsgName("01003"));
} else {
//에러 메시지
gfn_Message(gfn_MsgTitle("01004"),gfn_MsgName("01004"));
}
}
/*******************************************************
* page번호를 선택 시 그리드 한화면의 Row수 만큼 스크롤 이동
* Parameters : obj - Object
********************************************************/
function getList(obj)
{
setNowPage(obj);
//조회
hboard_ret(obj, iNowPage);
makePage(iNowPage, toNumber(totalrecord), iPageScale, iVolumnPerPage);
}
/*******************************************************
* 페이징 생성
* Parameters : strNowPage - 현재페이지
* iTotalCount - 조회 건수
* iPageScale - 페이징되는 페이지 개수
* iVolumnPerPage - 페이지당 건수
* grdId - Grid ID
* dsId - Dataset ID
* divId - 페이징 Div ID
********************************************************/
function makePage(iNowPage, iTotalCount, iPageScale, iVolumnPerPage, grdId, dsId, divId)
{
if(length(grdId) > 0) {
grdObj = object(grdId);
}
if(length(dsId) > 0) {
dsObj = object(dsId);
}
if(length(divId) > 0) {
divPage = object(divId);
}
//조회된 데이터가 없으면 페이지 번호 안보여줌
if(dsObj.rowcount > 0) {
divPage.Visible = true;
} else {
divPage.Visible = false;
}
//iLeft, iWidth로 페이지 번호의 크기와 간격을 지정합니다.
var iLeft = 1;
var iWidth = 28;
var iHeight = 20;
var iTop = (divPage.height / 2) - (iHeight / 2);
var iMyFont = "";
var iMyColor = "";
// 페이지당 조회 건수
//iVolumnPerPage = grdObj.PageRowCount;
// 총 건수(TotalCount)
//iTotalCount = dsObj.rowcount;
var sb = "<Contents>\n";
var iTotalPage;
if( floor(iTotalCount%iVolumnPerPage) > 0 ) {
iTotalPage = floor(iTotalCount/iVolumnPerPage) +1;
} else {
iTotalPage = floor(iTotalCount/iVolumnPerPage);
}
if(iNowPage == 0) iNowPage = 1;
var iUint = floor((toInteger(iNowPage)-1) / toInteger(iPageScale));
iUint = (iUint * iPageScale)+1;
var iNextUnit = toInteger(iUint+iPageScale);
// 앞으로(<)
if(iUint > iPageScale) {
sb = sb +"<button ImageID='btn_outLeft' Cursor='HAND' Id='before' userData='"+ (iUint-1) + "' Left='"+iLeft+"' Top='"+iTop+"' Width='22' Height='" + iHeight + "' Font='굴림,9' Text='←' Color='Black' Appearance='Falt' OnClick='getList' OnMouseOver='f_over_color' OnMouseOut='f_out_color' OnFocus='f_focus_color' OnKillFocus='f_kill_color' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
} else {
sb = sb +"<button ImageID='btn_outLeft' Id='before' enable='false' Left='"+iLeft+"' Top='"+iTop+"' Width='22' Height='" + iHeight + "' Font='굴림,9' Text='←' Color='Black' Appearance='Falt' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
}
iLeft = (iLeft + 22) + 6;
/*
// 이전페이지
if(iNowPage != 1) {
sb = sb +"<button Cursor='HAND' Id='first' userData='" + (Eval(iNowPage)-1) + "' Left='"+iLeft+"' Top='0' Width='28' Height='" + iHeight + "' Font='굴림,9' Text='◀' Color='Black' Appearance='Falt' OnClick='getList' OnMouseOver='f_over_color' OnMouseOut='f_out_color' OnFocus='f_focus_color' OnKillFocus='f_kill_color' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
} else {
sb = sb +"<button Id='first' enable='false' Left='"+iLeft+"' Top='0' Width='28' Height='" + iHeight + "' Font='굴림,9' Text='◀' Color='Black' Appearance='Falt' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
}
iLeft = (iLeft + 28) + 4;
*/
// 페이징[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
for(var i = iUint ; i < iNextUnit ; i++ ) {
if(i > iTotalPage) break;
if(i == iNowPage) {
sb = sb +"<button Align='CENTER' Id='"+i+"' Left='"+iLeft+"' Top='"+iTop+"' Width='"+iWidth+"' Height='20' Font='굴림,8,bold' Text='"+i+"' Color='blue' Appearance='Flat' Style='styleDivBtn'></button>\n" ;
}
else {
sb = sb +"<button Align='CENTER' Id='"+i+"' Left='"+iLeft+"' Top='"+iTop+"' Width='"+iWidth+"' Height='20' Font='굴림,8' Text='"+i+"' Color='Black' Appearance='Flat' Style='styleDivBtn' Cursor='HAND' OnClick='getList' OnMouseOver='f_over_color' OnMouseOut='f_out_color' OnFocus='f_focus_color' OnKillFocus='f_kill_color'></button>\n" ;
}
iLeft = (iLeft + iWidth) + 1;
}
iLeft = iLeft + 5;
/*
// 다음페이지
if(iNowPage != iTotalPage) {
sb = sb +"<button Cursor='HAND' Id='end' userData='" + (Eval(iNowPage)+1) + "' Left='"+iLeft+"' Top='0' Width='28' Height='" + iHeight + "' Font='굴림,9' Text='▶' Color='Black' Appearance='Falt' OnClick='getList' OnMouseOver='f_over_color' OnMouseOut='f_out_color' OnFocus='f_focus_color' OnKillFocus='f_kill_color' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
} else {
sb = sb +"<button Id='end' enable='false' Left='"+iLeft+"' Top='0' Width='28' Height='" + iHeight + "' Font='굴림,9' Text='▶' Color='Black' Appearance='Falt' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
}
iLeft = iLeft + 28;
*/
// 뒤로
if(iNextUnit <= iTotalPage) {
sb = sb +"<button ImageID='btn_putRight' Cursor='HAND' Id='next' userData='"+iNextUnit+"' Left='"+iLeft+"' Top='"+iTop+"' Width='22' Height='" + iHeight + "' Font='굴림,9' Text='→' Color='Black' Appearance='Falt' OnClick='getList' OnMouseOver='f_over_color' OnMouseOut='f_out_color' OnFocus='f_focus_color' OnKillFocus='f_kill_color' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
} else {
sb = sb +"<button ImageID='btn_putRight' Id='next' enable='false' Left='"+iLeft+"' Top='"+iTop+"' Width='22' Height='" + iHeight + "' Font='굴림,9' Text='→' Color='Black' Appearance='Falt' BKColor = '#D6ECF0' BorderColor = '#D6ECF0'></button>\n" ;
}
iLeft = iLeft + 22;
sb = sb +"</Contents>\n";
divPage.Contents = sb;
//페이징 Div 중앙 정렬
divPage.width = iLeft+4;
divPage.left = ((grdObj.width - 10) / 2) - (divPage.width/2);
}
/*******************************************************
* page번호를 선택시 현재페이지(iNowPage)를 세팅
* Parameters : obj - Object
********************************************************/
function setNowPage(obj)
{
if(obj=='←' || obj=='◀' || obj=='▶' || obj=='→') {
iNowPage = obj.userData;
} else if(IsDigit(obj.Value)) {
iNowPage = obj.Id;
}
}
FROM
(
-- 3. 여러개의 ROW로 연결자(|)로 붙여서 하나의 ROW로 만든다.
SELECT SUBSTR(MAX(SYS_CONNECT_BY_PATH(OFF_LIST, '|')), 4) OFF_LIST
FROM
(
SELECT 0 CNT, '!' OFF_LIST
FROM DUAL
UNION ALL
SELECT ROWNUM CNT
, (SELECT CRNAME FROM CRCODE WHERE CRCODE = A.CRCODE) || ' : ' || OFFLIST OFF_LIST
FROM
(
-- 2. 문자열#으로 (기존에 붙어있는 코드와 내용을 분리한다.)
SELECT SUBSTR(OFF_LINE, 0, INSTR(OFF_LINE, '#', 1)-1) CRCODE
, SUBSTR(OFF_LINE, INSTR(OFF_LINE, '#', 2)+1, LENGTH(OFF_LINE)) OFFLIST
FROM
(
-- 1. 연결자(@)롤 붙여진 한 ROW의 값을 여러개의 ROW로 만든다.
SELECT SUBSTR (OFFLINE_TEST, INSTR (OFFLINE_TEST, '@', 1, LEVEL) + 1
, INSTR (OFFLINE_TEST, '@', 1, LEVEL + 1) - INSTR (OFFLINE_TEST, '@', 1, LEVEL) - 1 ) OFF_LINE
FROM (
SELECT '@' || OFFLINE_TEST || '@' OFFLINE_TEST
FROM CRLIST
WHERE HCODE='001018'
AND CCODE='101165'
AND ECODE='100313'
AND LESSON='03'
AND REG_DATE='20080910'
)
CONNECT BY LEVEL <= LENGTH (OFFLINE_TEST) - LENGTH (REPLACE (OFFLINE_TEST, '@')) - 1
)
) A
)
START WITH OFF_LIST = '!'
CONNECT BY PRIOR CNT = CNT-1
)
30분 걸린다는 조립시간이 3시간 걸렸다.
패키지에 동봉된 설명서가 엉성했고,
홈페이지 가서 상세 조립서를 프린트 했는데
프린터가 흐릿하게(카트리지 다됐다 ㅠㅠ;) 나와서
잘안보이는 부분이 있으면 컴퓨터 앞에 달려가면서
조립에 성공했는데
어떻게 찍는지 설명이 없다. 이런~
간단하게 셔터(?) 같은 뚜껑 열어주면 찍힌다는 건 알겠는데
노출을 얼마동안 해야 되는지 공부해야 된다니.
아 선물줄껀데 사용법이라도 알려줘야 한는데.
어렵군
핀홀카메라 DIY PinholeArt 120-Lite (P)
직접 조립해야 되고
렌즈가 없으며 바늘 구멍을 통해 노출시간만 조절해주면 사진이 찍힌단다.
120필름을 쓴다는게 마음에 살짝 걸림
http://www.boxncan.com/shop/s_goods_detail.asp?goodsIdx=33411
선물할려고 샀는데..
평가가 좋으면 나도 하나 사야지
기회가 되면 리뷰도 쓸 예정
홀가 135BC와 고민 끝에 결정
| [F] 기능키 | |
|
[F1] |
선택한 항목의 도움말을 실행 합니다. |
| [F2] | 아이콘/폴더/파일의 이름을 바꿀때 사용합니다. 마우스 오른쪽 [이름 바꾸기] 기능 |
| [F3] | 파일이나 폴더를 찾기. [시작] - [찾기] - [파일 또는 폴더] |
| [F4] | 탐색기나 IE의 주소 입력란을 드롭다운 합니다. |
| [F5] | 창의 내용을 새로 고침 합니다. 마우스 오른쪽 [새로 고침] 기능 |
| [F6] | 주소 입력란을 활성화 합니다. 입력된 주소 셀렉트 |
| [F10] | 탐색기나 IE의 메뉴를 활성화 합니다. 방향키 메뉴 이동 |
| [F11] | 전체 화면으로 보기(Fullscreen) |
more..
lib_GridPaging.js



