목화연
사는이야기
기술지원
회원게시판
공지사항
자료실
베타테스터
사는이야기
 
작성일 : 10-08-09 22:55
[세상사는이야기] 이자 보다 더 어려운 입금을 맞추다...
 글쓴이 : 권오준
조회 : 4,864  
입금 예정일 + 입금예정 금액이 있는데 반해
 
들어온 금액은 partial로 어느게 어느것인지 모르게 들어 온 case가 있습니다.
 
1.일단 들어온 사람들 목록을 다음
2.들어온것 목록으로 만듭니다.
3.입금 예정 목록을 만듭니다.
 
1의 조건으로 while을 만듬 !Eof
2의 조건값을 가져와서 while로 만듬 !Eof
3의 조건값을 가져와소 while로 만듬 .t.
 
2의 금액을 3의 값을 빼고 남으면
     3의 다음으로 넘거감
3의 값이 더 많으면 2의 남은 값을 기억하고
   2의 다음 값으로 skip
   2값을 3과 계속 비교
 
 
이런식으로 프로그램을 만들어 해결했습니다 ㅠㅠ
 
 
   KMPAY->( dbGotop() )
   oMeter := TDrMeta():New( "Converting...", "Wait...", KMPAY->( RecCount() ) )

   WHILE !KMPAY->(Eof())
         cQuery := "select * from m_pay where J_NO = " + ALLTRIM( KMPAY->J_NO ) + " and pay_code='001' order by pay_code2,pay_date"
         ::oPayDb:Query( cQuery,,,,,.f.)
         oMeter:SetData( ++nCounter )
         KMPAY2->(OrdScope( 0, KMPAY->J_NO ))
         KMPAY2->(OrdScope( 1, KMPAY->J_NO ))
         KMPAY2->(dbGotop())

         WHILE !KMPAY2->(Eof())
               nMoney    := KMPAY2->J_MONEY
               nInMoney  := 0
               WHILE .T.
                     //kmpay2->(dr_browse())
                     //::oPayDb:Browse()
                     IF nMoney - (::oPayDb:PAY_MONEY - nInMoney) >= 0
                        ::oPayDb:PAY_IN_MONEY := ::oPayDb:PAY_MONEY
                        ::oPayDb:PAY_IN_DATE  := KMPAY2->J_DATE
                        nMoney   := nMoney - (::oPayDb:PAY_MONEY - nInMoney)
                        nInMoney := 0
                        ::oPayDb:update()

                        ::oPayInDb:Blank()
                        ::oPayInDb:CITY_CODE       := "002"
                        ::oPayInDb:J_NO            := KMPAY->J_NO
                        ::oPayInDb:PAY_CODE        := ::oPayDb:PAY_CODE
                        ::oPayInDb:PAY_CODE2       := ::oPayDb:PAY_CODE2
                        ::oPayInDb:PAY_NAME        := ::oPayDb:PAY_NAME
                        ::oPayInDb:PAY_IN_DATE     := KMPAY2->J_DATE
                        ::oPayInDb:PAY_IN_MONEY    := ::oPayDb:PAY_MONEY
                        ::oPayInDb:PAY_BANK        := KMPAY2->J_BANK
                        ::oPayInDb:PAY_SENDER      := KMPAY2->J_NAME

                        ::oPayInDb:Insert()
                        ::oPayDb:Skip()
 
                     ELSE
                        nInMoney += nMoney
                        KMPAY2->(dbSkip())
                        nMoney := KMPAY2->J_MONEY
                     ENDIF
                     IF nMoney == 0
                        EXIT
                     ENDIF
                     IF KMPAY2->(Eof())
                        EXIT
                     ENDIF
               ENDDO
               KMPAY2->( dbSkip() )
         ENDDO

         IF nInMoney > 0
            KMPAY2->( dbSkip(-1) )
            ::oPayDb:PAY_IN_MONEY := nInMoney
            ::oPayDb:PAY_IN_DATE  := KMPAY2->J_DATE
            ::oPayDb:update()
            ::oPayInDb:CITY_CODE       := "002"
            ::oPayInDb:J_NO            := KMPAY->J_NO
            ::oPayInDb:PAY_CODE        := ::oPayDb:PAY_CODE
            ::oPayInDb:PAY_CODE2       := ::oPayDb:PAY_CODE2
            ::oPayInDb:PAY_NAME        := ::oPayDb:PAY_NAME
            ::oPayInDb:PAY_IN_DATE     := KMPAY2->J_DATE
            ::oPayInDb:PAY_IN_MONEY    := nInMoney
            ::oPayInDb:PAY_BANK        := KMPAY2->J_BANK
            ::oPayInDb:PAY_SENDER      := KMPAY2->J_NAME

            ::oPayInDb:Insert()
         ENDIF
         KMPAY->( dbSkip() )
   ENDDO
 
   oMeter:End()

 
 

 
Total 303
번호 제   목 글쓴이 날짜 조회
258   [세상사는이야기] 안드로이드용 스마트폰 개발툴 구경좀 할까요. (1) 문병산 10-13 5804
257   [세상사는이야기] 변화의 시대... (3) 권오준 09-14 4828
256   [등급업요청] 언제나 등업이 되나요? (1) 서원 09-13 5487
255   [세상사는이야기] DrMySQL Sync성능을 100%높이기... (1) 권오준 09-02 4843
254   [등급업요청] Sugar Tech 입니다.. (1) 설탕가뤼 08-26 5775
253   [등급업요청] 권한 등업 didim 08-18 5082
252   [세상사는이야기] 이자 계산 소스 (1) 권오준 08-09 5220
251   [세상사는이야기] 이자 보다 더 어려운 입금을 맞추다... 권오준 08-09 4865
250   [세상사는이야기] 이자 계산을 하다... (2) 권오준 08-09 4566
249   [등급업요청] 등업부탁합니다. hoho 08-09 4863
248   [세상사는이야기] 안드로이드 만듭시다... 권오준 07-07 4663
247   [세상사는이야기] 아내구함 권오준 07-05 4980
246   [세상사는이야기] 과망간산칼륨을 조사하다... 권오준 07-02 5650
245   [세상사는이야기] iPhone이냐 안드로이드냐? (1) 권오준 06-26 4578
244   [세상사는이야기] 64비트로 가게되면 아이폰 등의 어플리케이션 개발이 … (1) 이병홍 06-25 4570
 1  2  3  4  5  6  7  8  9  10    
COPYRIGHT© Fivetech.net. All RIGHTS RESERVED.
For more information webmaster | webmaster@fivetech.net | Tel 02-566-6826 | (해외) +82-2-566-6826