메뉴 건너뛰기

app

[evb] 리프레시 폼-각 값 검사후 적용(설정)하기

박영식2006.09.06 14:47조회 수 2079댓글 0

    • 글자 크기
오늘은 구역을 설정해 가면서 까지 에러를 체크했다. 참으로 비굴하게도(하지만 어쩔 수 없지, 따로 돌려볼 수가 없으니...)

임베디드 프로그램의 단점으로 든다면, 툴(PDA 등)과 똑같은 에물레이터가 PC에 없다면, TOOL에서만 돌려봐야 한다는 점이다. 그래서 TEST도 TOOL에 직접 하게 되니 내가 PROGRAM을 설치하고 지운게 50번은 넘을 것이다. 이것은 TOOL 자체에도 무리가 가고, 메모리라든지, 저장매체에도 적지않은 데미지를 미칠 것이다.

리프레쉬폼에서는 수정시 값을 DB에서(TABLE의 필드에서) 읽어온다. 그래야 기존 값을 통해 수정이 가능하다. 그렇게 하지 않으면, 일일이 다시 입력해야 한다. 신규일 경우는 빈칸으로 하면 되지만, 아니라면, 값이 다 있어야 하는 것이다. 구역설정을 해서 ERR.NUMBER를 확인했는데, NULL체크를 안한 변수들이 걸려들었다. 13! 에러발생 수 이다. 변수들은 실제로 이 것보다 작았는데, 이퀄(=)뒤로 이어지면서 이런 숫자가 나왔던 것 같다. 아무튼 이 원본 프로그램에서는 ERR 체크와 MSGBOX가 잘 되어 있어서, ERR발생을 일으키는 함수나 위치를 찾는데 굉장한 도움이 된다.

프로젝트 프로그래서의 작업이 50%정도 된 것 같다. 이제 추가할 부분은 데이트 피커 부분과 TABLE의 적용. 이것을 이용한 LATE DAY의 계산을 처리하고, CD관리기였다는 사실을 은폐(?)할 변수 변경이 남았다.

아무리 빨리해도 일주일은 걸릴 것 같다.


Private Function RefreshFormCD() As Boolean

    Dim lngIndex As Long
    
    On Error Resume Next
    
    RefreshFormCD = False
    
    ' Project 콤보박스에 모든 Project 레코드 추가
    PopulateProjectCombo
    
    ' 장르 콤보박스에 모든 장르 레코드 추가
    PopulateGenreCombo
    
    ' 아무것도 선택되지 않은 아이템으로 Project 콤보 설정
    Me.cboProject.ListIndex = -1
    
    ' 정확한 값인지 체크
    If Not IsNull(gobjWork.Fields("ProjectId").Value) Then
        If gobjWork.Fields("ProjectId").Value > 0 Then
            ' Project 콤보 박스 설정
            For lngIndex = 0 To Me.cboProject.ListCount - 1
                
                ' 프로젝트이면
                If Me.cboProject.ItemData(lngIndex) = _
                    gobjWork.Fields("ProjectId").Value Then
                        
                        ' 선택된 아이템으로 설정
                        Me.cboProject.ListIndex = lngIndex
                        ' for 문 종료
                        Exit For
                
                End If
            Next
        End If
    End If
    
    ' 아무것도 선택되지 않은 아이템으로 장르 콤보 설정
    Me.cboGenre.ListIndex = -1
    
    ' 정확한 값인지 체크
    If Not IsNull(gobjWork.Fields("KindId").Value) Then
        If gobjWork.Fields("KindId").Value > 0 Then
        
            ' 콤보 박스 설정
            For lngIndex = 0 To Me.cboGenre.ListCount - 1
                If Me.cboGenre.ItemData(lngIndex) = _
                    gobjWork.Fields("KindId").Value Then
                        Me.cboGenre.ListIndex = lngIndex
                        Exit For
                End If
            Next
        End If
    End If
    
    ' 텍스트 박스 clear
    Me.PoWork.Text = ""
    Me.PoProgress.Text = ""
    Me.PoExpire.Text = ""
    Me.PoPreprocess.Text = ""
    Me.PoLateDay.Text = ""
    Me.PoSideEffect.Text = ""
    Me.PoReference.Text = ""
    Me.PoTarget.Text = ""
    Me.PoState.Text = ""
    
    ' WORK 이름을 가지고 있는지
    If Not IsNull(gobjWork.Fields("PoName").Value) Then
        ' 이름 설정
        Me.PoWork.Text = gobjWork.Fields("PoName").Value
    End If
    
    'UPDATE시 원래 값을 적용함.(이때, Null값 체크를 반드시 해야함. 된장..

    If Not IsNull(gobjWork.Fields("PoProgress").Value) Then
        ' 이름 설정
        Me.PoProgress.Text = gobjWork.Fields("PoProgress").Value
    End If

    If Not IsNull(gobjWork.Fields("PoExpire").Value) Then
        ' 이름 설정
        Me.PoExpire.Text = gobjWork.Fields("PoExpire").Value
    End If

    If Not IsNull(gobjWork.Fields("PoPrepro").Value) Then
        ' 이름 설정
        Me.PoPreprocess.Text = gobjWork.Fields("PoPrepro").Value
    End If

    If Not IsNull(gobjWork.Fields("PoLateDay").Value) Then
        ' 이름 설정
        Me.PoLateDay.Text = gobjWork.Fields("PoLateDay").Value
    End If

    If Not IsNull(gobjWork.Fields("PoSideEffect").Value) Then
        ' 이름 설정
        Me.PoSideEffect.Text = gobjWork.Fields("PoSideEffect").Value
    End If

    If Not IsNull(gobjWork.Fields("PoReference").Value) Then
        ' 이름 설정
        Me.PoReference.Text = gobjWork.Fields("PoReference").Value
    End If

    If Not IsNull(gobjWork.Fields("PoTarget").Value) Then
        ' 이름 설정
        Me.PoTarget.Text = gobjWork.Fields("PoTarget").Value
    End If
    If Not IsNull(gobjWork.Fields("PoState").Value) Then
        ' 이름 설정
        Me.PoState.Text = gobjWork.Fields("PoState").Value
    End If
'''''''''''''''''''''''''''    null값 체크하는 부분입니다. ''''''''''''''''''''''''''''''''''''
    
    If Err.Number = 0 Then
        RefreshFormCD = True
    End If
        MsgBox ("세번째 구역 에러" _
                & Err.Number)
        
End Function
박영식 (비회원)
    • 글자 크기
[evb] 데이트 피커의 추가 및 활용 (by 박영식) [evb] 쿼리 INNER JOIN 구문 (by 박영식)

댓글 달기

이전 1 ... 5 6 7 8 9 10 11 12 13 14다음
첨부 (0)
위로