VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

[­ì³Ð]»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò3-N ¶¥¤è°}¨D¸Ñ

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
¦¶¨|¿³



µù¥U®É¶¡: 2003-08-25
¤å³¹: 661
¨Ó¦Û: ¥x¤¤¥«¤j¨½°Ï

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤­ ¤Q¤ë 17, 2003 2:12 am    ¤å³¹¥DÃD: [­ì³Ð]»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò3-N ¶¥¤è°}¨D¸Ñ ¤Þ¨¥¦^ÂÐ

* ¬°¤F±Æ¦C¬üÆ[ªº»Ý¨D¡AªÅ®æ¬O¥þ§ÎªºªÅ®æ¡A­n¤Þ¥Îµ{¦¡½X®É¶·
* Á٭쬰¥b§ÎªºªÅ®æ


* »¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò3-N ¶¥¤è°}¨D¸Ñ
* -------------------------------------------------------------- *
* §@ªÌ¡G¦¶¨|¿³ YSC 2003.10.17
* 1.³o¬O¦b¼Æ¾Ç¤¤ªº¤@­ÓÃD¥Ø¡G
*¡@ N ¶¥¤è°}¤¤¡A¨C¤@¾î¦CÁ`©M¡BÁa¦æÁ`©M¤Î¹ï¨¤½uÁ`©M³£¥²¶·¬Ûµ¥®É¡A
*¡@ °Ý¦³­þ´X²Õ¸Ñ¡H(³oùرN¤è°}¸g¹L±ÛÂà«á¬O¬Û¦Pªº±¡ªpµø¬°¤£¦P¸Ñ)
*¡@ ¨Ò¡G¨D 3 ¶¥¤è°}¦³­þ´X²Õ¸Ñ¡H
* 2.A.­Y EditBox (¦Û©w­ÈÄæ¦ì) ¤¤¤£¶ñ­È®É¡A´N¥H¼Æ¾Çªºªk©w­È
*¡@¡@ ( 1 .. N*N ) ¬°·Ç¡C
*¡@ B.­Y¨Ï¥ÎªÌ­n¦Û¦æ¶ñ¤J­È¡A­È»P­È¤§¶¡¥²¶·¥H , ¸¹¬Û¹j¡A¥B¥²¶·µ¹
*¡@¡@ °÷ N*N ­Ó¼Æ­È¡A¦Ó¥B¦U¼Æ¤§¶¡¥²¶·¨â¨â¬Û²§¡C
*¡@ C.¥»½d¨Ò¥Ø«e­­¨î N ³Ì¤j¨ì 27¡A¥u¬O¬°¤Fµe­±Åã¥Ü¦Ó³]­­ªº¡F¨Æ¹ê
*¡@¡@ ¤W N ¬OÀH§A³]ªº¡A¥u­n§Aªº CPU ­@¾Þªº¸Ü¡C
* 3.¦¹½d¨Ò¬Oºî¦X§Ú¤§«eµoªíªº¡u»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò¡v¡B
*¡@ ¡u»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò2-±Æ¦C¡v¦Ó¦¨ªº¡C
* 4.¸g´ú¸Õ¡A¥ú¶] N = 3 ´N¯Ó¶O³\¦h®É¶¡¡A¬Ý¼Ë¤l¹q¸£ªº³t«×µ¥¯Å¤£¯à
*¡@ ®t¡F¦³·Q´ú¸Õªº¤H¡A¥i­n¦³­@¤ß¡A­ü¡Iµ¥¦³ªÅ¦A¨Ó§ï¨}°õ¦æ³t«×§a¡I
* -------------------------------------------------------------- *

CLEAR ALL
CLOSE ALL
M_cSetTalk¡@ = SET("TALK")
M_cSetSafety = SET("SAFETY")
M_cSetEscape = SET("ESCAPE")
SET TALK¡@ OFF
SET SAFETY OFF
SET ESCAPE OFF
__Esc¡@¡@ = .F.
__IsCalc¡@= .F.¡@&& ¬O§_¥¿¦b­pºâ¤¤
M_lIsVFP7 = .F.¡@&& VFP ¬O§_¬° 7.0 ª©¥H¤W(§t)
M_nTran¡@ = "99,999,999,999,999,999,999,999,999,999"
WW_oMESSAGEBOX = CREATEOBJECT("UserForm1")
WITH WW_oMESSAGEBOX
¡@.spinNum.Value = 3
¡@.Show
ENDWITH
IF VARTYPE(WW_oMESSAGEBOX) = "O"
IF !ISNULL(WW_oMESSAGEBOX)
¡@WW_oMESSAGEBOX.Release
ENDIF
ENDIF
SET ESCAPE &M_cSetEscape
SET SAFETY &M_cSetSafety
SET TALK¡@ &M_cSetTalk
CLEAR ALL
CLOSE ALL
RETURN

* ---------- DEFINE CLASS ---------- *
DEFINE CLASS UserForm1 AS Form
¡@AutoCenter¡@¡@= .T.
¡@BackColor¡@¡@ = RGB(0,128,192)
¡@BorderStyle¡@ = 3
¡@Closable¡@¡@¡@= .F.
¡@DoCreate¡@¡@¡@= .T.
¡@FontName¡@¡@¡@= "²Ó©úÅé"
¡@FontSize¡@¡@¡@= 12
¡@ForeColor¡@¡@ = RGB(255,255,255)
¡@KeyPreview¡@¡@= .T.
¡@MaxButton¡@¡@ = .F.
¡@MinButton¡@¡@ = .F.
¡@ShowTips¡@¡@¡@= .T.
¡@ShowWindow¡@¡@= 1
¡@Top¡@¡@¡@¡@¡@ = 100
¡@WindowState¡@ = 0
¡@WindowType¡@¡@= 1
¡@Width¡@¡@¡@¡@ = 450
¡@Height¡@¡@¡@¡@= 220
¡@Caption¡@¡@¡@ = "N ¶¥¤è°}¨D¸Ñ"

¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "½Ð¿é¤J N ­È",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ =¡@27

ADD OBJECT spinNum¡@AS SPINNER WITH;
¡@¡@FontName¡@¡@¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@¡@¡@=¡@11,;
¡@¡@Format¡@¡@¡@¡@¡@¡@= "RK",;
¡@¡@Height¡@¡@¡@¡@¡@¡@=¡@23,;
¡@¡@InputMask¡@¡@¡@¡@ = "99",;
¡@¡@KeyboardHighValue =¡@27,;
¡@¡@KeyboardLowValue¡@=¡@ 1,;
¡@¡@Left¡@¡@¡@¡@¡@¡@¡@= 130,;
¡@¡@SpinnerHighValue¡@=¡@27,;
¡@¡@SpinnerLowValue¡@ =¡@ 1,;
¡@¡@Top¡@¡@¡@¡@¡@¡@¡@ =¡@25,;
¡@¡@Width¡@¡@¡@¡@¡@¡@ =¡@45

¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "¦Û©w­È",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ =¡@50

ADD OBJECT ediNums¡@AS EDITBOX WITH;
¡@¡@FontName¡@¡@¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@¡@¡@=¡@11,;
¡@¡@Format¡@¡@¡@¡@¡@¡@= "K",;
¡@¡@Height¡@¡@¡@¡@¡@¡@=¡@50,;
¡@¡@Left¡@¡@¡@¡@¡@¡@¡@= 130,;
¡@¡@Top¡@¡@¡@¡@¡@¡@¡@ =¡@50,;
¡@¡@Width¡@¡@¡@¡@¡@¡@ =¡@300

¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "( ªÅ¥Õ = 1,2,...,N*N )",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@= 130,;
¡@¡@Top¡@¡@¡@¡@¡@ = 100

¡@ADD OBJECT lblRecL¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "°O¿ý²£¥Í¤¤...",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,0),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@10,;
¡@¡@Visible¡@¡@¡@ = .F.,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = 125

¡@ADD OBJECT lblRec¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,0),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@10,;
¡@¡@Visible¡@¡@¡@ = .F.,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = 145

¡@ADD OBJECT cmdYes¡@AS CommandButton WITH;
¡@¡@Caption¡@¡@¡@ = "°õ¦æ",;
¡@¡@Height¡@¡@¡@¡@=¡@25,;
¡@¡@Width¡@¡@¡@¡@ =¡@75,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = ThisForm.Height-36

¡@ADD OBJECT cmdCancel AS CommandButton WITH;
¡@¡@Caption¡@¡@¡@ = "Â÷¶}",;
¡@¡@Height¡@¡@¡@¡@=¡@25,;
¡@¡@Width¡@¡@¡@¡@ =¡@75,;
¡@¡@Left¡@¡@¡@¡@¡@= ThisForm.Width-90,;
¡@¡@Top¡@¡@¡@¡@¡@ = ThisForm.Height-36


¡@PROCEDURE spinNum.Valid
¡@WITH This.Parent
¡@¡@.ediNums.Valid
¡@ENDWITH
¡@ENDPROC

¡@PROCEDURE ediNums.Valid
¡@* One
¡@WITH This.Parent
¡@¡@STORE .spinNum.Value¡@¡@¡@¡@¡@TO UserForm1_nspinNum
¡@¡@STORE ALLTRIM(.ediNums.Value) TO UserForm1_cediNums
¡@ENDWITH
¡@UserForm1_lCHKOK = .T.
¡@* Two
¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@UserForm1_cAlias = ALIAS()
¡@¡@UserForm1_nRecno = RECNO()
¡@¡@* > ±N¦h¦C¨Ö¬°¤@¦C
¡@¡@UserForm1_cediNums¡@= CHRTRAN(UserForm1_cediNums,CHR(13)+CHR(10)+" ","")
¡@¡@* > ±N¼Æ­È¦r¦ê¥h¤p¼Æ«á¦s¤J Cursor
¡@¡@SELECT 0
¡@¡@CREATE CURSOR TMP_ediNums (NUM N(5))
¡@¡@UserForm1_nCommaCNT = OCCURS(",",UserForm1_cediNums)
¡@¡@UserForm1_cediNums1¡@= "," + UserForm1_cediNums + ","
¡@¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nCommaCNT+1
¡@¡@¡@IF M_lIsVFP7
¡@¡@¡@¡@UserForm1_nNum = VAL(STR(VAL(STREXTRA(UserForm1_cediNums1,",",",",UserForm1_SUB_A))))
¡@¡@¡@ELSE
¡@¡@¡@¡@UserForm1_nSemicolonThis = AT(",",UserForm1_cediNums1,UserForm1_SUB_A)
¡@¡@¡@¡@UserForm1_nSemicolonNext = AT(",",UserForm1_cediNums1,UserForm1_SUB_A+1)
¡@¡@¡@¡@UserForm1_nNum = VAL(STR(VAL(SUBSTR(UserForm1_cediNums1,UserForm1_nSemicolonThis+1,UserForm1_nSemicolonNext-UserForm1_nSemicolonThis-1))))
¡@¡@¡@ENDIF
¡@¡@¡@APPEND BLANK
¡@¡@¡@REPLACE NUM WITH UserForm1_nNum
¡@¡@ENDFOR
¡@¡@* > ¥h±¼­«ÂЭȨí«²Õ¤º©w­Èªº¤º®e
¡@¡@SELECT¡@DIST A.NUM FROM TMP_ediNums A ;
¡@¡@¡@GROUP BY A.NUM ;
¡@¡@¡@INTO CURSOR TMP_ediNums1
¡@¡@UserForm1_cediNums = SPACE(0)
¡@¡@SELECT TMP_ediNums1
¡@¡@SCAN ALL
¡@¡@¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + ","
¡@¡@¡@ENDIF
¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + LTRIM(STR(NUM))
¡@¡@ENDSCAN
¡@¡@* >
¡@¡@IF !RECCOUNT("TMP_ediNums1") = UserForm1_nspinNum * UserForm1_nspinNum
¡@¡@IF MESSAGEBOX("¤º©w­È¬O§_¥H¼Æ¾Çªk©w­È¨Ó¨D¸Ñ¡H",4+32+256,This.Name) = 6
¡@¡@¡@UserForm1_cediNums = SPACE(0)
¡@¡@ELSE
¡@¡@¡@UserForm1_lCHKOK = .F.
¡@¡@¡@=MESSAGEBOX("½Ð­×¥¿¤º©w­È¡I",0+48+0,This.Name)
¡@¡@ENDIF
¡@¡@ENDIF
¡@¡@USE IN TMP_ediNums1
¡@¡@USE IN TMP_ediNums
¡@¡@IF !EMPTY(UserForm1_cAlias)
¡@¡@¡@SELECT (UserForm1_cAlias)
¡@¡@¡@GOTO (MAX(UserForm1_nRecno,1))
¡@¡@ENDIF
¡@ENDIF
¡@* Three
¡@WITH This.Parent
¡@¡@.ediNums.Value = UserForm1_cediNums
¡@ENDWITH
¡@RETURN UserForm1_lCHKOK
¡@ENDPROC

¡@PROCEDURE cmdYes.Click
¡@* One
¡@WITH This.Parent
¡@¡@STORE .spinNum.Value¡@¡@¡@¡@¡@TO UserForm1_nspinNum
¡@¡@STORE ALLTRIM(.ediNums.Value) TO UserForm1_cediNums
¡@ENDWITH
¡@* > «Ø¥ß¦s©ñ¸Ñªº¤º®e
¡@UserForm1_mSolution = SPACE(0)
¡@* > «Ø¥ß¦s©ñ¸Ñªº¤º®e¤§ÀɮצWºÙ
¡@UserForm1_cFileName = SYS(2015) + ".TXT"
¡@* > «Ø¥ß N ¶¥¤è°}ªº Cursor
¡@SELECT 0
¡@CREATE CURSOR TMP_Square ;
¡@¡@(nRow N(3),nCol N(3),Num N(4))
¡@INDEX ON TRANSFORM(nRow,"@L 999")+TRANSFORM(nCol,"@L 999") TAG TAG01

¡@* Two
¡@* > ­Y¤º©w­È¬°±Ä¥Î¼Æ¾Çªk©w­È
¡@IF EMPTY(UserForm1_cediNums)
¡@¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nspinNum*UserForm1_nspinNum
¡@¡@¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + ","
¡@¡@¡@ENDIF
¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + LTRIM(STR(UserForm1_SUB_A))
¡@¡@ENDFOR
¡@ENDIF
¡@UserForm1_cediNums = "," + UserForm1_cediNums + ","
¡@* > ­pºâ¦@¦³´X²Õ¥i¯à¸Ñ¥H¨ÑÅã¥Ü¸ê°T¨Ï¥Î
¡@M_nReccount = 1
¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nspinNum*UserForm1_nspinNum
¡@¡@M_nReccount = M_nReccount * UserForm1_SUB_A
¡@ENDFOR
¡@* > Åã¥Ü°O¿ý²£¥Íµ§¼Æ¸ê°T
¡@WITH This.Parent
¡@¡@.lblRecL.Caption = "°O¿ý²£¥Í¤¤...¡@ " + TRANSFORM(M_nReccount,M_nTran)
¡@¡@.lblRec.Caption¡@= ""
¡@¡@.lblRecL.Visible = .T.
¡@¡@.lblRec.Visible¡@= .T.
¡@ENDWITH
¡@* > °O¿ý²£¥Íµ§¼Æ
¡@M_nRecCNT = 0
¡@* > ¨D¸Ñ
¡@M_nSolCNT = 0
¡@__Esc¡@¡@ = .F.
¡@__IsCalc¡@= .T.
¡@=CIRCLE(UserForm1_nspinNum*UserForm1_nspinNum)
¡@__IsCalc¡@= .F.
¡@* > Åã¥Üµ²ªG
¡@IF EMPTY(UserForm1_mSolution)
¡@¡@UserForm1_mSolution = "µL¸Ñ¡I"
¡@ELSE
¡@¡@UserForm1_mSolution = "Á`¦@¦³ " + LTRIM(TRANSFORM(M_nSolCNT,"@R 999,999,999")) + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@" ²Õ¸Ñ¡G" + CHR(13) + CHR(10) + UserForm1_mSolution
¡@ENDIF
¡@=STRTOFILE(UserForm1_mSolution,UserForm1_cFileName)
¡@MODIFY FILE (UserForm1_cFileName) NOEDIT
¡@DELETE FILE (UserForm1_cFileName)
¡@USE IN TMP_Square
¡@ENDPROC

¡@PROCEDURE KeyPress
¡@LPARAMETERS nKeyCode, nShiftAltCtrl
¡@DO CASE
¡@* >> ESC
¡@CASE nKeyCode =¡@27
¡@¡@¡@ __Esc = .T.
¡@¡@¡@ IF !__IsCalc
¡@¡@¡@¡@ .cmdCancel.SetFocus
¡@¡@¡@¡@ .cmdCancel.Click
¡@¡@¡@ ENDIF
¡@ENDCASE
¡@ENDPROC

¡@PROCEDURE Destroy
¡@ThisForm.Visible = .F.
¡@RELEASE THISFORM
¡@ENDPROC

¡@PROCEDURE cmdCancel.Click
¡@THISFORM.Destroy()
¡@ENDPROC
ENDDEFINE
* ---------- ENDDEFINE CLASS ---------- *


FUNCTION CIRCLE
* »¼°j¨ç¼Æ
* ------------------------------------------ *
* L_nNum¡@¡@¡@¡@N ±q 1 ±Æ¨ì´X
* ------------------------------------------ *
* ¥H¤U¥u¨Ñ¥»¨ç¼Æ¤º³¡¨Ï¥Î
*
* L_nCircle¡@¡@ N ¥Ø«e¸Ó²Õ±Æ¦Cªº²Ä´X­Ó
* L_cGroup¡@¡@¡@C ¤W¼h¶Ç¨Óªº¸Ó²Õ±Æ¦C¤º®e
* ------------------------------------------ *
LPARAMETERS L_nNum,L_nCircle,L_cGroup
LOCAL W1_SUB_A,W1_cSUB_A,W1_SUB_B,W1_SUB_C,W1_cGroup
LOCAL W1_nSemicolonThis,W1_nSemicolonNext,W1_nNum,W1_nNNum
LOCAL W1_nRow,W1_nCol,W1_cFields4SQL,W1_aSQL
LOCAL W1_nSum4Square,W1_lEqual
IF __Esc
¡@RETURN
ENDIF

*
IF PCOUNT() = 1
¡@L_nCircle = 1
¡@L_cGroup¡@= SPACE(0)
ENDIF

* ±Æ¦C²£¥Í
FOR W1_SUB_A = 1 TO L_nNum
¡@W1_cSUB_A = TRANSFORM(W1_SUB_A,"@L 99")
¡@W1_cGroup = L_cGroup¡@¡@¡@¡@¡@¡@¡@ && ©Ó±µ¤W¼h¶Ç¨Óªº±Æ¦C¤º®e
¡@IF W1_cSUB_A $ W1_cGroup¡@¡@¡@¡@¡@ && ¨C¤@²Õ±Æ¦C¤£¯à¦³­«ÂЪº¼Æ¦r
¡@¡@LOOP
¡@ENDIF
¡@IF !EMPTY(W1_cGroup)¡@¡@¡@¡@¡@¡@¡@ && ¥[¤J·s¤º®e«eªº°Ê§@
¡@¡@W1_cGroup = W1_cGroup + ","
¡@ENDIF
¡@W1_cGroup = W1_cGroup + W1_cSUB_A¡@&& ¥[¤J·s¤º®e
¡@IF L_nCircle = L_nNum¡@¡@¡@¡@¡@¡@¡@&& ¦pªG¬O³Ì«á¤@¼h´N§PÂ_
¡@¡@M_nRecCNT = M_nRecCNT + 1
¡@¡@IF MOD(M_nRecCNT,10000) = 1 OR M_nRecCNT = M_nReccount
¡@¡@¡@WW_oMESSAGEBOX.lblRec.Caption = TRANSFORM(M_nRecCNT,M_nTran) + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@" («ö Esc Á䤤Â_)"
¡@¡@ENDIF
¡@¡@* > §PÂ_¬O§_¬°¥¿½T¸Ñ
¡@¡@W1_lEqual = .T.
¡@¡@W1_cGroup = "," + W1_cGroup + ","
¡@¡@SELECT TMP_Square
¡@¡@ZAP
¡@¡@* >> ¨ú±o¤@­Ó N ¶¥¤è°}¹Ï
¡@¡@W1_nSum4Square = 0
¡@¡@FOR W1_SUB_B = 1 TO L_nNum
¡@¡@¡@IF M_lIsVFP7
¡@¡@¡@¡@W1_nNum¡@= VAL(STREXTRA(W1_cGroup,",",",",W1_SUB_B))
¡@¡@¡@¡@W1_nNNum = VAL(STREXTRA(UserForm1_cediNums,",",",",W1_nNum))
¡@¡@¡@ELSE
¡@¡@¡@¡@W1_nSemicolonThis = AT(",",W1_cGroup,W1_SUB_B)
¡@¡@¡@¡@W1_nSemicolonNext = AT(",",W1_cGroup,W1_SUB_B+1)
¡@¡@¡@¡@W1_nNum = VAL(SUBSTR(W1_cGroup,W1_nSemicolonThis+1,W1_nSemicolonNext-W1_nSemicolonThis-1))
¡@¡@¡@¡@W1_nSemicolonThis = AT(",",UserForm1_cediNums,W1_nNum)
¡@¡@¡@¡@W1_nSemicolonNext = AT(",",UserForm1_cediNums,W1_nNum+1)
¡@¡@¡@¡@W1_nNNum = VAL(SUBSTR(UserForm1_cediNums,W1_nSemicolonThis+1,W1_nSemicolonNext-W1_nSemicolonThis-1))
¡@¡@¡@ENDIF
¡@¡@¡@W1_nRow = INT(W1_SUB_B/UserForm1_nspinNum) + 1
¡@¡@¡@W1_nCol = MOD(W1_SUB_B,UserForm1_nspinNum)
¡@¡@¡@IF W1_nCol = 0
¡@¡@¡@¡@W1_nRow = W1_nRow - 1
¡@¡@¡@¡@W1_nCol = UserForm1_nspinNum
¡@¡@¡@ENDIF
¡@¡@¡@APPEND BLANK
¡@¡@¡@REPLACE nRow WITH W1_nRow
¡@¡@¡@REPLACE nCol WITH W1_nCol
¡@¡@¡@REPLACE Num¡@WITH W1_nNNum
¡@¡@¡@W1_nSum4Square = W1_nSum4Square + W1_nNNum
¡@¡@ENDFOR
¡@¡@W1_nSum4Square = W1_nSum4Square / UserForm1_nspinNum
¡@¡@* >> ¨C¤@¾î¦CÁ`©M¡BÁa¦æÁ`©M¤Î¹ï¨¤½uÁ`©M³£¥²¶·¬Ûµ¥
¡@¡@FOR W1_SUB_B = 1 TO 3
¡@¡@¡@W1_cFields4SQL = SPACE(0)
¡@¡@¡@DO CASE
¡@¡@¡@CASE W1_SUB_B = 1¡@&& ¾î¦C
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,UserForm1_nspinNum)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow=] + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@LTRIM(STR(W1_SUB_C)) + [,A.Num,0))]
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@CASE W1_SUB_B = 2¡@&& Áa¦æ
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,UserForm1_nspinNum)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nCol=] + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@LTRIM(STR(W1_SUB_C)) + [,A.Num,0))]
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@CASE W1_SUB_B = 3¡@&& ¹ï¨¤½u
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,2)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO 2
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ IF W1_SUB_C = 1¡@&& ¥ª¤W¥k¤U
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow=A.nCol,A.Num,0))]
¡@¡@¡@¡@¡@¡@ ELSE¡@¡@¡@¡@¡@¡@ && ¥k¤W¥ª¤U
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow+A.nCol=UserForm1_nspinNum+1,A.Num,0))]
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@ENDCASE
¡@¡@¡@* >>
¡@¡@¡@SELECT &W1_cFields4SQL FROM TMP_Square A ;
¡@¡@¡@¡@INTO ARRAY W1_aSQL
¡@¡@¡@FOR W1_SUB_C = 1 TO ALEN(W1_aSQL,2)
¡@¡@¡@¡@IF !W1_nSum4Square = W1_aSQL(1,W1_SUB_C)
¡@¡@¡@¡@¡@W1_lEqual = .F.
¡@¡@¡@¡@¡@EXIT
¡@¡@¡@¡@ENDIF
¡@¡@¡@ENDFOR
¡@¡@¡@IF !W1_lEqual
¡@¡@¡@¡@EXIT
¡@¡@¡@ENDIF
¡@¡@ENDFOR
¡@¡@IF W1_lEqual
¡@¡@¡@M_nSolCNT = M_nSolCNT + 1
¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + CHR(13) + CHR(10)
¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + TRANSFORM(M_nSolCNT,"@L 999") + "."
¡@¡@¡@FOR W1_SUB_B = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + CHR(13) + CHR(10)
¡@¡@¡@¡@FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@SEEK TRANSFORM(W1_SUB_B,"@L 999")+TRANSFORM(W1_SUB_C,"@L 999")
¡@¡@¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + TRANSFORM(Num,"999999")
¡@¡@¡@¡@ENDFOR
¡@¡@¡@ENDFOR
¡@¡@ENDIF
¡@ELSE¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ && §_«h°õ¦æ¤U¤@¼h»¼°j¨ç¼Æ
¡@¡@IF !__Esc
¡@¡@¡@__Esc = INKEY() = 27
¡@¡@ENDIF
¡@¡@IF __Esc
¡@¡@¡@RETURN
¡@¡@ENDIF
¡@¡@=CIRCLE(L_nNum,L_nCircle+1,W1_cGroup)
¡@ENDIF
ENDFOR
RETURN
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó MSN Messenger
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@