BLOG main image

같은생각
From... Las

Home | Local log | Tag | Google RSS | Google analytics | Trace watch | Guestbook  
     - 잘 지내나요?
    List  

spread

   
Virtual Mode 적용하기 Spread
* Spread Virtual Mode


1. 해당 Query의 Count를 구한다.(.VirtualMaxRows)
      'Virtual Mode 초기화   
       lngLastRow = getDataRecordCount    '해당 Query의 Count를 구한다.
       'lngLastRow는 전역변수로 설정하여 사용하도록 한다.(출력라인 계산시 필요)


Private Function getDataRecordCount() As Long   
  Dim StrPos As Long
  Dim RetValue As Long   
  RetValue = 0
      
  On Error GoTo Err_H   
  If Rs_Open(SQL_CNT, "N", "Y") = False Then
       RS.Close
       Exit Function
  End If   
  RetValue = CLng(RS!ROW_COUNT)   
  getDataRecordCount = RetValue   
  Exit Function   
Err_H:
  getDataRecordCount = 0
End Function



2. VirtualMode를 True로 설정한다.
      vaSpread1.VirtualMaxRows = lngLastRow   


3. VirtualMode가 설정되면 발생하는 Event인 QueryData에 출력할 내용을 적는다.
      - 출력시마다 출력할 라인수를 구하는 로직 필요.
      - Direction에 따른 라인 위치 구하는 로직 필요.


Private Sub vaSpread1_QueryData(ByVal Row As Long, ByVal RowsNeeded As Long, RowsLoaded As Long, ByVal Direction As Integer, AtTop As Boolean, AtBottom As Boolean)
  Dim lngEnd As Long
  Dim lngRow As Long

  'RowsNeeded 값은 Spread의 Height에 따라 보여주어야 할 Row수인데, Default 값의 2배를 조회할 수 있도록 하였다.
  RowsNeeded = RowsNeeded * 10
  GET_ROW_NEED_CNT = RowsNeeded
 
  Select Case Direction
       Case DATA_DOWN, DATA_BOTTOM, DATA_TOP, DATA_UP:
           lngEnd = Row + RowsNeeded
           If lngEnd > lngLastRow Then lngEnd = lngLastRow
       Case Else:
           Exit Sub
  End Select
 
  'Query 출력 함수(showQryData)
  If showQryData(Row, lngEnd, False) = False Then
       Screen.MousePointer = vbDefault
       Exit Sub
  End If
 
  Screen.MousePointer = vbDefault
 
     
  RowsLoaded = Abs(lngEnd - Row) + 1
  AtTop = (1 = lngEnd)
  AtBottom = (lngLastRow = lngEnd)
End Sub


'시작,종료 ROW에 해당하는 Data를 조회하여 Spread에 Display한다.
Private Function showQryData(START_ROW As Long, END_ROW As Long, ISFROM As Boolean) As Boolean

  '새로 조회해야할 Query
  SSQL = getSSQLScript(START_ROW, END_ROW)
 
  If Rs_Open(SSQL, "N", "Y") = False Then
       RS.Close
       Exit Function
  End If

  With vaSpread1
       Do Until RS.EOF
           .Row = RowCnt
           '출력내용......
           RowCnt = RowCnt + 1
           RS.MoveNext
       Loop
  End With

  RS.Close
  showQryData = True
End Function


'OLD_SSQL Script에 ROWNUM Field를 삽입하여 원하는 Row num, 개수를 Query 하는 Script를 만든다.
Private Function getSSQLScript(Start_Num As Long, End_Num As Long) As String
  Dim TempSSQL As String
  Dim RetSSQL As String
 
  If End_Num <= 0 Then
       GoTo Err_H
  End If
 
  'ROWNUM Field를 삽입한다.
  TempSSQL = " SELECT ROWNUM AS ROW_NUM, OLD_SQL_A.* FROM (" & SQL & ") OLD_SQL_A"
      
  RetSSQL = " SELECT OLD_SQL_B.* FROM ( " & TempSSQL & " ) OLD_SQL_B WHERE ROW_NUM >= " & Start_Num & " AND ROW_NUM <= " & End_Num & "  "
    
  getSSQLScript = RetSSQL
 
  Exit Function
 
Err_H:
  getSSQLScript = ""
End Function



# 한번에 모든 Data를 조회할 경우를 대비해 Flag로 정해 한번 Query가 가능하도록 적용한다.


▶ Far Point Spread Designer 사용법

1. Scroll Bars
  ◎ Settings
    - None
    - Horizontal
    - Vertical
    - Both
  ◎Show Only If Needed : 필요할 때만 보여주기
  ◎Align at last Row and Column : 마지막 로우와 컬럼에서 멈춘다.(체크 안되면 계속 움직인다.)
  ◎Box Reflects Max Row : 별 영향 없음.


2. GridLines
  ◎ Settings
    - Show Vertical Lines : 수직라인 보이기
    - Show Horizontal Lines : 수평라인 보이기
    - Make Grid Lines Solid : 라인이 흐릿하게 보인다.
  ◎ Back Color Style ---> Back Color가 있을때,
    - Over Grid : Cell에 Back Color가 있을때 라인이 안 보인다.
    - Under Grid : Back Color가 있어도 라인이 보인다.
    - Over Horizontal Lines Only : 수직선만 보인다.
    - Over Vertical Lines Only : 수평선만 보인다.

3. Border Lines
  ◎ Type
    - None
    - Set Border for Selected Block : 선택한 셀에 선명한 선이 나타난다.
    - Set Border for Each Cell : 셀에 대한 오른쪽,왼쪽,위,아래선을 선택할 수 있다.
  ◎ Style : 라인이 있을때
    - Fine : 선을 좀더 선명하게 보여준다.
      None
      Solid
      Dash
      Dot
      Dash Dot
      Dash Dot Dash


4. Cell Color
  ◎ Property
    - BackColor : 바탕색깔
    - ForeColor : 글자색깔


5. SpreadSheet Environment
  (1) General
      - Make Edit Mode Permanent : 셀을 클릭하면 바로 Edit 모드로 들어간다.
      - Replace Existing Text : 셀을 선택하고 Edit하면 기존에 글자들이 지워지면서 새롭게 
                                작성된다. (선택안되었을때: 기존글자 뒤에서부터 작성된다.)
      - Handle ClipBoard Keys : 기본선택
      - Retain Selected Block : 기본선택
      - Protect Locked Cells  : 기본선택
      - Multiple Block Selections
      - On Focus Set Cell to Cursor
      - Use Arrow Keys to Exit Edit
      - Cell Overflow : 문자열이 셀의 길이를 벗어날때 다음 셀까지 합쳐서 보여준다.
      - Beep off
      - Cell DragDrop
      - Hide Border : 스프레드(전체) 외곽의 보더를 감춘다.
      - Process Tabkey : 탭키가 가능해진다.
      - Autosize On
      - Calculate Formulas : 기본선택
      - Custom Formulars
      - Formula Sync : 기본선택
  (2) SheetMode
      - Normal : 기본선택
      - ReadOnly : 읽기만 가능(코딩으로 데이터를 넣을수는 있다.)
      - RowMode : 한 Row 전체가 선택되어진다.(읽기/쓰기 가능)
      - Single Selection : ReadOnly + RowMode
      - Multiple Selection : ReadOnly + RowMode + 클릭할때마다 계속 선택되어진다.
      - Extend Selection : ReadOnly + RowMode + Shift,Ctrl 키로 여러 Row를 선택할수 있다.
  (3) Block Mode
      - Sheet Mode를 선택할때 마다 최적 상태로 세팅 해준다.(건드리지 않는게 좋다.)
  (4) Enter Key
      - 셀안에서 엔터키를 칠때 셀이 다음에 어디로 이동될지를 설정한다.


6. Headers
  --> Row와 Col의 Header Title을 바꿀때 사용한다.
  ◎ Display Headers : Header 보이기
  ◎ User Resize : 셀 사이즈 조절 가능

7. Columns And Rows
  --> Row와 Col의 갯수를 설정할때 사용한다.
  ◎ Max Cols/Rows : 최대 Col/Row 수
  ◎ Resizeable : 셀 크기조절 가능


8. SpreadSheet Colors
  ◎ Property
     - GrayAreaColor : 스프레드 여백 색깔
     - GridColor : Grid Line Color
     - ShadowColor : Header 채우기 색깔
     - ShadowDark : Header의 외곽선 색깔
     - ShadowText : Header의 글자색


9. Virtual Mode
  ◎ Virtual Scrollbar
     - UserSpecial Scrollbar : 페이지 단위로 스크롤, 처음과 끝 보여주기 등의 스크롤바


10. Go To Run-Time Mode
  -- > 실행 시키 화면과 같은 효과


11. Button
  ◎ Text : Button에 글자 넣기
  ◎ Style
      - Push Button : 일반적이 버튼
      - Two State : 클릭하면 들어가고 또 다시 클릭하면 튀어나오는 버튼
  ◎ Color : 버튼 색깔 설정
  ◎ Picture : 버튼에 그림 넣기


12. Check Box
  ◎ TextLeft : 글자가 왼쪽에 위치


13. Combo Box
  ◎ Text에 글자를 넣고 Add/Delete/Update로 Item을 추가/삭제/수정 한다.
  ◎ Editable : 실행시 Item에 수정 가능


14. Date
  --> 데이트형 Edit Mask
  ◎ Show Cuntury : 년도를 4자리로 보이기
  ◎ Spin Button : 스핀버튼 보이기


15. Edit
  ◎ Char Set
      - All Char : 모든 문자 허용
      - Alpha : 알파벳만 허용
      - Alphanumeric : 알파벳과 숫자만 허용
      - Numeric : 숫자만 허용
  ◎ Text Align : 문자 정렬
  ◎ Char Case : 대/소문자 설정
  ◎ MultiLine : MultiLine 허용
  ◎ PassWord : *****문자로 보여주기
  ◎ Length : 최대 문자수


16. Float
  --> 실수형 Mask Edit
  ◎ Int Digits : 정수 자릿수
  ◎ Dec Digits : 소수점 아래 자릿수
  ◎ Money : 금액 단위 표시 ($,\)
  ◎ Separator : 1000단위 분리자 (,)


17. Integer
  --> 정수형 Mask Edit


18. Label(Static) : Label Box


19. Mask(Pic) : Edit Mask


20. Picture : Picture Box


21. Time

 
Spread에서 ToolTip 보여주기 Spread 
1. MouseMove 이벤트 사용
 

  Private Sub vaSpread1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

       Dim Col As Long

       Dim Row As Long


       With aSpread1

           .GetCellFromScreenCoord Col, Row, X, Y        '해당 X, Y좌표로 Col, Row위치를 구함.

           .Col = Col:  .Row = Row

           .ToolTipText = .Value                                    '해당 위치에 값을 ToolTip으로 표시

       End With


  End Sub


  '해당 Spread의 마우스이동시마다 이벤트 발생. 마우스 이동시 ToolTip의 깜박임이 심할 수 있습니다.




  2. TextTipFetch 이벤트 사용


  Private Sub vaSpread1_TextTipFetch(ByVal Col As Long, ByVal Row As Long, MultiLine As Integer, TipWidth As Long, TipText As String, ShowTip As Boolean)


       TipText = .CellTag                            'CellTag설정시 사용... 생략하면 해당 셀의 값을 Tooltip으로 표시해줌.


       TipWidth = 3000                                
        MultiLine = 0                                    'MultiLine 설정
        ShowTip = True                    
        vaSpread1.TextTipDelay = 200           'Delay 설정
  End Sub
  ' TextTipFetch를 사용하려면  먼저 vaSpread1.TextTip의 값을 설정해주어야 합니다. off일경우는 TextTipFetch이벤트는 발생하지 않습니다.  MouseMove이벤트 보다는 TextTipFetch이벤트를 사용하는 것이 좀 더 효율적입니다.

출처: http://blog.naver.com/cosmosb612?Redirect=Log&logNo=80029881796

Category : 분류없음   Tag :  
2008/09/01 15:21   By Las 
Trackback : Comment

Trackback Address :: http://asperados.byus.net/home/board/tt/trackback/258

Name Password Home Secret Submit

prev page next page
1  ..11 12 13 14 15 16 17 18 19 .. 238 

Recent Entry

Recent Comment

Recent Trackback

Counter

Total : 251532 Today : 42 Yesterday : 47

Tag cloud

..., ......ing, ActiveX 삭제, ADO, ADO 성능 높이기, agp, Aids, Another World, apple cinema, asp, Aya Ueto, A형, Baldurs Gate, bard, BEO Player, Book, Bryan adams, CGV, Chante Moore, clie, compact, Compilation, Convert, DAO, dao에서 ADO로, DarkNamer, datetime, DB restore, DB 복구, db 테이블 정의서, dell 2007WFP, DreamFall: The Longest Journey, dvd, DVD 타이틀, ecotonoha, eve-online, event.keyCode 번호표, Facebook, favicon, favis, Faye Wong, FLASH, Fon, Fon Lafontenna, fon maps, FON 지향성 안테나, footnote, Fun, Game, Gamecube, game_ost, GETDATE, Google, Google analytics, Graphic card, hanami, HDTV 수신카드, heaven, HijackThis, I-RAM, i4R, IceWind Dale, IE ActiveX, IE Plug-in, IETOY, include, irc, ishihara satomi, isNull, Java, JavaScript, jazz, join update, j_drama, j_music, kav, kb917422, Kenny G, keyboard_Fun, k님, Launcher, LightBox2, Linked Server, linux, Lottery Music, M.Friends, Maki Horikita, Matsu Takako, mdb, MDB생성, MDB압축, Microsoft iPod, mp3, mp3 Media Player, MSN Live, MSN Messenger, Mssql, Myminicity, NEC, NeverwinterNights, o-game, ogame, one more time, Open Your Eyes, opencapture, openTTD, PageDefrag, palm, pc_game, pc_game_tip, PC업그레이드, Pda, Petit Launcher, picture, pinball, Pink Floyd, program, ps3, punkbuster, RAID, RDO, Remake, retrievr, Review, Search, settler, settler2, skt 포인트소멸, songlist, sony usm2gj, spread, SqL, Starry Night, sudoku, Symphonic, THE ERASER, The Father, The isley brothers, thecheat, theinquirer, Think, THOM YORKE, Time, tip, Tistory, tracewatch, Twitter, ubuntu, Uchiyama Rina, Ueto Aya, UltraMon, unplugged, us and them, util, ux50, vangard, vb, wallpaper, Web관련, Wii, WOW, xirc, xp install, yui, Yumiko Shaku, z22, Zoo 愛をください, Zune, クロサギ, ソニン, 上戸彩, 優香, 我願意, 王菲, 王靖雯, 白い影, 가상주민등록번호, 강릉, 건슈팅, 검색로봇, 고냥군, 괴물, 구입기, 그해 여름, 그해여름 OST, 기억상실, 기억속의 인물, 김연아, 꿈 속에 살아가다, 난수 발생, 날개셋, 날씨, 내캐릭, 내컴퓨터, 놀자, 다랭이, 다스베이더, 다케우치 유코, 당신은 사랑받기 위해 태어난 사람, 더워, 데이터가져오기, 독백, 동생, 듀얼모니터, 레지스트리 청소, 로또, 로코모션, 마마님, 머리속, 메타정보, 미완료작업물, 밀란쿤데라, 바탕화면 아이콘을 줄이자, 박x무당님, 범프키, 보안카드, 북다트, 블랙잭, 뿌리를찾아서, 사제, 삼돌이, 삼벌식, 삽질의 현장, 생각, 생활의 지혜, 설명, 성격, 세계 AIDS의날, 소닌, 스타더스트, 스티브잡스, 스팸댓글, 시스템, 신동우, 신승훈, 실시간알리미, 싸이월드 플러그인, 안나님, 언락, 업데이트, 연애편차치, 영화를 보다, 오소영, 옥션광고, 와라님, 외장하드, 우에토 아야, 웨군, 웹표준, 유용한 소스, 유카, 윤창군, 음악저작권법, 이동성, 이벤트당첨, 이사, 이승환 9집, 이자람, 인희, 일본연예인, 자바스크립트 코드 작성법, 자식창에서 부모창 함수 사용, 잘지내나요?, 잡담, 저장프로시저, 정규식, 젠장!!!, 족보, 즐거운인생, 지름, 천안전씨, 추억과 이야기들, 카툰, 칼리브레이션, 캡쳐, 컴터 다운, 컴터업, 케로로중사 중에서, 키트님, 태양의노래 OST, 테더스킨, 테터툴즈, 투명한얼음, 트랙백놀이, 트릭, 특성, 파일이름바꾸기, 파코즈, 편한사람, 플러그인, 하고싶어, 한국 지도 서비스, 한글입력기, 함수모음, 향수, 혈액형, 혼자놀기, 후회,