VSTO|
작업일정관리_9
아래의 그림과 같이 일자별로 임의의 날짜 간격으로 열을
표현할때 ...보할테이블이 찝찝하게 값이 떨어진다
프로그래밍을 하다 보면 흔히 일어나는 일이다..
고것참..이것 또 어떤 경우의 수에 걸려서 이렇게 되었지??
아마도..나누기의 소숫점처리에서 문제가 되었을 것이다
디버깅을 돌려 보아야 되는 경우인 것이다
이런 문제가 발생하면 골치 싸메고 머리속으로 간단하게
처리하려고 하면 안된다..천재가 아니니까..
디버깅을 돌려 보는 것이 제일 빠르고 확실한 길이다
프로그래밍에서 항상 이런 어처구니 없는 부분이 발생한다
앞전 계산만 하고 뒷전 계산은 미쳐 하지 못하는 경우가 대부분이다
아래와 같이 수정하면 딱 맞아 떨어진다
Private Sub createTimeUnit_NEW()
...
...
...
For lDate = datCalendarStart To datCalendarEnd
Select Case sUnitType
Case "d" ' 일자의 경우
If iDaysInUnit = 1 Then ' 1일 인 경우
...
...
Else ' 1일 보다 많은 임의의 일수의 경우
If iDayCount = iDaysInUnit Then
'fillTimeUnitForDayAndWeek lDate, iIndex, iAccumDays ' 잘못된 것
fillTimeUnitForDayAndWeek lDate - iDaysInUnit, iIndex, iAccumDays '수정
iDayCount = 0
Else ' 마지막 유닛부분 잔여일처리
If lDate = datCalendarEnd Then
fillTimeUnitForDayAndWeek lDate - iDayCount, iIndex, iAccumDays
End If
End If
iDayCount = iDayCount + 1
End If
Case "w" ' 1 주일인 경우
If Weekday(lDate) = VBA.VbDayOfWeek.vbMonday Then
fillTimeUnitForDayAndWeek lDate, iIndex, iAccumDays
End If
Case "m" ' 1 개월인 경우
....
....
Case "q" '1 분기 씩인 경우
....
....
Case "y" ' 1 년 씩인 경우
....
....
End Select
Next
End Sub
순환하면서 지정된 임의의 일자로 끊어나가다가
자투리 일자부분에서 검문없이 그냥 나가 버리니까..마지막일자부분이
사라져 버리니..엉뚱한 값이 나온것
또한 순환하면서 순환한 일자 만큼 앞으로 이전하여 그려야 하는 것을
그대로 사용하여
전체 카렌다의 앞전과 뒷전에서 바보같은 짓을 한 셈이다
아래의 화일로 기본적인 작업 일단락 하고
이제 이 내용을 VSTO로 옮겨 보고, 더더욱 내용을 VSTO에서 확장해 나가도록 하자
이 페이지에서 계속 진행한다
***[LOG-IN]***