728x90

<%
 '********************************************************
 ' 문서제목 : 사용자 정의 함수
 ' 파일명 : Userfunction.asp
 ' 작성자 : 궉장걸
 ' 작성일 : 2006-11-21
 ' 내역 :
 '********************************************************
 
 Class UserFunction

  '클래스 초기화
  Private Sub Class_Initialize() 
  
  End Sub
  
  '클래스 소멸
  Private Sub Class_Terminate()

  End Sub  

  '******************************************************
  ' 함수 기능 : 문자열 캐릭터로 자르기
  ' Parameter :
  '  - str : 원본 Data
  '  - cutLen : 자를 길이
  '******************************************************
  Public Function cutChar(str, cutLen) 
   If Not(IsEmpty(str)) And Not(IsNull(str)) Then
    Dim strLen, strByte, strPos, char, i, charactor_cut_len
    strByte = 0
    strPos = 0
    strLen = Len(str)    '총 글자수

    for i = 1 to strLen
     char = ""
     char = Asc(Mid(str, i, 1)) '아스키 코드값 읽어오기
     char = Left(char, 1)
     if char = "-" then  '"-"이면 2바이트 문자임
      strByte = strByte + 2
     else
      strByte = strByte + 1
     end if
     strPos = strPos + 1
     if cutLen > 0 then
      if  strByte > cutLen then
       strPos = strPos - 1 '마지막 2바이트 문자처리
       exit for
      end if
     end if
    next

    if cutLen <= 0 then
     charactor_cut_len = strByte
    else
     charactor_cut_len = strPos
    end if

    if (charactor_cut_len < strLen) then
     cutChar = Left(str, charactor_cut_len) & "..."
    else
     cutChar = str
    end If
   Else
    cutChar = str
   End If
  End Function
  
  '******************************************************
  ' 함수 기능 : 비교처리 (CompareNum1 과 CompareNum2 비교 후 RtnStr1, RtnStr2 반환)
  ' Parameter :
  '  - CompareNum1 : 비교 검사할 Data
  '  - CompareNum2 : 비교 검사할 Data
  '  - RtnStr1 : 비교 검사후 True 인 경우 반환할 값
  '  - RtnStr2 : 비교 검사후 False 인 경우 반환할 값
  '******************************************************
  Public Function Return_Val(CompareNum1, CompareNum2, RtnStr1, RtnStr2)
   If Not IsNull(CompareNum1) Then
    If (Cstr(CompareNum1) = Cstr(CompareNum2)) Then
     Return_Val = RtnStr1
    Else
     Return_Val = RtnStr2
    End If
   Else
    Return_Val = RtnStr2
   End If
  End Function

  '******************************************************
  ' 함수 기능 : 날짜 검사 ( 2자리로 변환 )
  ' Parameter :
  '  - ChkDate : 검사할 날짜
  '******************************************************
  Public Function date_check(ChkDate)
   IF len(ChkDate) = 1 Then
    date_check = "0" & ChkDate
   Else      
    date_check = ChkDate
   End If
  End Function

  '******************************************************
  ' 함수 기능 : 월별로 마지막 날짜 반환
  ' Parameter :
  '  - DateMonth : 검사할 월
  '  - DateYear : 검사할 년도
  '******************************************************
  Public Function MonthArray(DateMonth, DateYear)
   Dim MonthDay(12)

   MonthDay(1) = 31
   MonthDay(2) = 28
   If YoonCheck(DateYear) Then MonthDay(2) = 29
   MonthDay(3) = 31
   MonthDay(4) = 30
   MonthDay(5) = 31
   MonthDay(6) = 30
   MonthDay(7) = 31
   MonthDay(8) = 31
   MonthDay(9) = 30
   MonthDay(10) = 31
   MonthDay(11) = 30
   MonthDay(12) = 31

   MonthArray = MonthDay(DateMonth)
  End Function

  '******************************************************
  ' 함수 기능 : 날짜 (윤년) 검사 후 Bool형 반환
  ' Parameter :
  '  - chkYear : 검사할 년도
  '******************************************************
  Public Function YoonCheck(chkYear)
   If chkYear Mod 4 <> 0 Then
    YoonCheck = False
   ElseIf chkYear Mod 100 <> 0 Then
    YoonCheck = True
   ElseIf chkYear Mod 400 <> 0 Then
    YoonCheck = False
   Else
    YoonCheck = True
   End If
  End Function

  '******************************************************
  ' 함수 기능 : 정수값 타입별로 반환
  ' Parameter :
  '  - MinNumber : 최소값
  '  - MaxNumber : 최대값
  '  - StepNumber : step 값(Loop 문에서 사용)
  '  - ObjType : 반환 타입(SelectBox, CheckBox, RadioBox)
  '  - ObjName : Object 명(CheckBox, RadioBox 에서 사용)
  '  - LengChkFlag : 길이체크 여부(date_check 함수 호출)
  '  - CompareFlag : 비교 여부(Return_Val 함수 호출 : True, False)
  '  - CompareNumber : 비교값 (CompareFlag 가 True 인 경우 사용)
  '  - Rtn_CompareTrue : 비교결과가 True인경우 반환값
  '  - Rtn_CompareFalse : 비교결과가 False인경우 반환값f
  '  - StyleStr : 스타일시트 문자열
  '******************************************************
  Public Function IntReturn(MinNumber, MaxNumber, StepNumber, ObjType, ObjName, LengChkFlag, CompareFlag, CompareNumber, Rtn_CompareTrue, Rtn_CompareFalse, StyleStr) 
   Dim Temp_Str, Return_Str, ResultValue
   Dim cnt, Rtn_cnt

   ResultValue = ""

   Select Case UCase(CStr(ObjType))
   Case "SELECT" Temp_Str = "<Option value='@val@' @CompareNumber@>@view@</Option>"
   Case Else Temp_Str = "<input type='@ObjType@' name='@ObjName@' value='@val@' @StyleStr@ @CompareNumber@> @view@"
   End Select

   ' 최소값(MinNumber) 에서 최대값(MaxNumber)까지 Loop
   For cnt = MinNumber To MaxNumber Step StepNumber
    ' 길이 체크여부(2자리로 재정의)
    If LengChkFlag Then
     Rtn_cnt = date_check(cnt)
    Else
     Rtn_cnt = cnt
    End If
    Return_Str = Replace(Temp_Str, "@ObjType@", ObjType)
    Return_Str = Replace(Return_Str, "@ObjName@", ObjName)
    Return_Str = Replace(Return_Str, "@StyleStr@", StyleStr)
    Return_Str = Replace(Return_Str, "@val@", Rtn_cnt)
    Return_Str = Replace(Return_Str, "@view@", Rtn_cnt)
    ' 비교여부
    If CompareFlag Then
     Return_Str = Replace(Return_Str, "@CompareNumber@", Return_Val(Rtn_cnt, CompareNumber, Rtn_CompareTrue, Rtn_CompareFalse))
    Else
     Return_Str = Replace(Return_Str, "@CompareNumber@", "")
    End If
    ResultValue = ResultValue & Return_Str
   Next
   IntReturn = ResultValue
  End Function

  '******************************************************
  ' 함수 기능 : 데이터 부분 반환
  ' Parameter :
  '  - Data : 원본 Data
  '  - Gubun : split()함수에 사용할 구분값
  '  - index : 배열번호
  '******************************************************
  Public Function Rtn_DataSplit(Data, Gubun, index)
   If InStr(Data, Gubun) Then
    tmp_Data = Split(Data, Gubun)
    If UBound(tmp_Data) >= index Then
     Rtn_DataSplit = tmp_Data(index)
    End If
   End If
  End Function

  '******************************************************
  ' 함수 기능 : html 태그 변환
  ' Parameter :
  '  - str : 원본 Data
  '******************************************************
  Public Function HtmlTagChk(str)
   Dim ResultValue
   ResultValue = ""
   If str <> "" Then
    ResultValue = Replace(Replace(Replace(Replace(Trim(str), "&", "&amp;"), "<", "&lt;"), ">", "&gt;"), "'", "''")
    ResultValue = Replace(ResultValue, chr(13)&Chr(10), "<br>")
   End If
   HtmlTagChk = ResultValue
  End Function

  '******************************************************
  ' 함수 기능 : 코드 생성
  ' Parameter :
  '******************************************************
  Public Function getGoodsCode()  
   Randomize  
   getGoodsCode = Chr(Int(Rnd()*26) + 65)& Chr(Int(Rnd()*26) + 65) & Left(Replace(Now, "-", ""), 8) & Hour(Now) & Chr(Int(Rnd()*20) + 65)
  End Function

  '******************************************************
  ' 함수 기능 : 주문코드 생성
  ' Parameter :
  '******************************************************
  Public Function getOrderCode2()
   Randomize  
   getOrderCode2 = Left(Replace(Now, "-", ""), 8) & Hour(Now) & Minute(Now) & Second(Now) & Chr(Int(Rnd()*20) + 65) & Chr(Int(Rnd()*26) + 65)
  End Function

 End Class
%>

728x90

'프로그래밍 > asp' 카테고리의 다른 글

ASP에서 CSV 파일 생성하기  (0) 2011.08.03
ON Error Resume Next  (0) 2011.06.24
ASP 오류 'ASP 0115'  (0) 2011.06.15
asp 함수 정리  (0) 2011.06.08
DateAdd를 이용한 날짜 계산  (0) 2011.06.01

+ Recent posts