목화연
사는이야기
기술지원
회원게시판
공지사항
자료실
베타테스터
사는이야기
 
작성일 : 10-08-09 22:55
[세상사는이야기] 이자 보다 더 어려운 입금을 맞추다...
 글쓴이 : 권오준
조회 : 8,511  
입금 예정일 + 입금예정 금액이 있는데 반해
 
들어온 금액은 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 11361
257   [세상사는이야기] 변화의 시대... (3) 권오준 09-14 8441
256   [등급업요청] 언제나 등업이 되나요? (1) 서원 09-13 9536
255   [세상사는이야기] DrMySQL Sync성능을 100%높이기... (1) 권오준 09-02 8252
254   [등급업요청] Sugar Tech 입니다.. (1) 설탕가뤼 08-26 9890
253   [등급업요청] 권한 등업 didim 08-18 9325
252   [세상사는이야기] 이자 계산 소스 (1) 권오준 08-09 9389
251   [세상사는이야기] 이자 보다 더 어려운 입금을 맞추다... 권오준 08-09 8512
250   [세상사는이야기] 이자 계산을 하다... (2) 권오준 08-09 8039
249   [등급업요청] 등업부탁합니다. hoho 08-09 8943
248   [세상사는이야기] 안드로이드 만듭시다... 권오준 07-07 8128
247   [세상사는이야기] 아내구함 권오준 07-05 8569
246   [세상사는이야기] 과망간산칼륨을 조사하다... 권오준 07-02 9208
245   [세상사는이야기] iPhone이냐 안드로이드냐? (1) 권오준 06-26 8809
244   [세상사는이야기] 64비트로 가게되면 아이폰 등의 어플리케이션 개발이 … (1) 이병홍 06-25 8032
 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