Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
For...Endfor Looping Help!!!!!!!!!!!!!
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00388802
Message ID:
00388814
Vues:
9
Edited for better readability.

First I do not see where any sorting is going on. I also see NO references to CMS_CUST_NO in the code. If you want to sort your cursers, put an ORCER BY clause at the end of the SQL Select statements.

As for the FOR...ENDFOR loop, I would first declare LOCAL lnI and change i to lnI. There could be something [a function call in one of the reports?] that is resetting the value of i which could put you in an endless loop. Also if the value of IS_IJH changes you could have problems.

In the debugger, I would add breakpoints when the value changes for lnI and IS_IJH.

>What I need to do is to get it to sort by the CMS_CUST_NO and then the rest. I have attempted to edit this code in order to do this. I think my problem is in the way that I began the FOR...ENDFOR loop. I am really not sure how this looping process works. I know how it is supposed to be nested, I can't figure out why it only runs the the same two reports over and over again. It doesn't end. I guess this means that I have an infinate loop? Any help would be appreciated.

>Here it is as it reads now.
>*********Monthly Backup Report by Location Code Report**************
>CUR_USER=UPPER(USER_NAME)
>#DEFINE CR CHR(13)
>
>* Determine BilledFrom.
>SELECT BILLEDFROM DISTINCT FROM COMPANY WHERE COMPANY.CSR=CUR_USER AND !ISBLANK(BILLEDFROM) INTO ARRAY TEMP_BILLEDFROM
>DO CASE
>  CASE (_TALLY=0)
>  	=MESSAGEBOX("No billed-from for this PA!")
>  	CANCEL
>  CASE (_TALLY>1)
>  	=MESSAGEBOX("Multiple billed-froms identified for this PA!")
>  	CANCEL
>ENDCASE
>THISBILLEDFROM = TEMP_BILLEDFROM[1]
>IS_IJH = (THISBILLEDFROM="IJH")
>	
>* Preprocess: Identify each record to be printed as being DOT and/or random.
>WAIT WINDOW "Preprocessing RECORDS" NOWAIT
>SELECT * FROM RECORDS,COMPANY ;
>	WHERE COMPANY.CSR=CUR_USER AND COMPANY.CO_CODE=RECORDS.LOCATION_CODE ;
>		AND BETWEEN(RECORDS.REPORT_DATE, {^2000-05-26}, {^2000-06-25}) ;
>	INTO CURSOR C2
>SCAN
>	THISISDOT = ISDOT(C2.ACCOUNT_NUMBER)
>	THISISRANDOM = (C2.REASON == "RA")
>	UPDATE RECORDS SET ISDOT = THISISDOT, ISRANDOM=THISISRANDOM WHERE CCN=C2.CCN
>ENDSCAN
>
>WAIT WINDOW "Preprocessing COMBINED" NOWAIT
>SELECT * FROM COMBINED,COMPANY WHERE COMPANY.CSR=CUR_USER AND COMPANY.CO_CODE=COMBINED.LOCATION_CODE ;
>	INTO CURSOR C2
>SCAN
>  	THISISDOT=ISDOT(C2.ACCOUNT_NUMBER)
>	THISISRANDOM = (C2.REASON == "RA")
>	UPDATE COMBINED SET ISRANDOM=THISISRANDOM WHERE CCN=C2.CCN
>ENDSCAN
>UPDATE COMBINED SET ISDOT=.F. WHERE ACCOUNT_TYPE="N"
>UPDATE COMBINED SET ISDOT=.T. WHERE ACCOUNT_TYPE="D"
>
>* Get master list of records that will be exported.
>SELECT REPORT_DATE, ACCOUNT_NAME, ACCOUNT_NUMBER, LOCATION_CODE, SSN, LAST_NAME, FIRST_NAME, REASON, CCN, ;
>	RESULT, COLLECTION_NAME, COLLECTION_PHONE, CC_CODE, TEST_TYPE, MRO_NEG, SUP_REC, ISDOT, ISRANDOM  ;
>	FROM COMBINED,COMPANY WHERE COMPANY.CSR=CUR_USER AND COMPANY.CO_CODE=COMBINED.LOCATION_CODE   ;
>	UNION ;
>	(SELECT REPORT_DATE, ACCOUNT_NAME, ACCOUNT_NUMBER, LOCATION_CODE, SSN, LAST_NAME, FIRST_NAME, REASON, CCN, ;
>		RESULT, COLLECTION_NAME, COLLECTION_PHONE, CC_CODE, TESTTYPE(ACCOUNT_NUMBER) AS TEST_TYPE, MRO_NEG, SUP_REC, ISDOT, ISRANDOM  ;
>		FROM RECORDS,COMPANY ;
>		WHERE COMPANY.CSR=CUR_USER AND COMPANY.CO_CODE=RECORDS.LOCATION_CODE    ;
>			AND BETWEEN(RECORDS.REPORT_DATE, {^2000-05-26}, {^2000-06-25})) ;
>	INTO CURSOR BATSUMMASTER ORDER BY 4, 5
>
>M.DODAILY = .T.

<b>local lnI</b>

>FOR <b>lnI</b> = 0 TO IIF(IS_IJH,1,3)
>	DO CASE
>	  CASE THISBILLEDFROM="AMI"
>		* 00 = DOT randoms
>		* 01 = DOT non-randoms
>		* 10 = Non-DOT randoms
>		* 11 = Non-DOT non-randoms
>		DOTCASE = (<b>lnI</b> < 2)
>		RANDCASE = ((<b>lnI%2) = 0</b>)
>		CASESTRING = IIF(DOTCASE,"","non-")+"DOT "+IIF(RANDCASE,"","non-")+"randoms"
>		M.DOTSTATUS = IIF(DOTCASE,"","NON-")+"DOT TESTING"
>		SELECT * FROM BATSUMMASTER WHERE ISDOT=DOTCASE AND ISRANDOM=RANDCASE ;
>			INTO CURSOR BATSUMGROUP ORDER BY 4, 5
>	WAIT WINDOW "Finding "+CASESTRING+"." NOWAIT
>	  CASE THISBILLEDFROM="IJH"
>		* 0 = DOT
>		* 1 = DOT
>		DOTCASE = (<b>lnI = 0</b>)
>		CASESTRING = IIF(DOTCASE,"","non-")+"DOT "
>		M.DOTSTATUS = IIF(DOTCASE,"","NON-")+"DOT TESTING"
>		SELECT * FROM BATSUMMASTER WHERE ISDOT=DOTCASE  ;
>			INTO CURSOR BATSUMGROUP ORDER BY 4, 5
>	  OTHERWISE
>	  	MESSAGEBOXSTRING = "Location code "+M.PARENT_CODE+CR+ ;
>	  		"has an unrecognized billed-from field."+CR+ ;
>	  		"Cannot print report for it."
>	  	=MESSAGEBOX(MESSAGEBOXSTRING)
>	  	CANCEL
>	ENDCASE
>	
>	IF (_TALLY>0)
>		M.PARENT_CODE = BATSUMGROUP.LOCATION_CODE
>		SELECT PARENT_CODE, BILLEDFROM, CO_NAME, SUB_LOCATION FROM COMPANY ;
>			WHERE COMPANY.CO_CODE=BATSUMGROUP.LOCATION_CODE INTO CURSOR C1
>		M.PARENT_NAME = C1.CO_NAME
>		IF (C1.SUB_LOCATION)
>			M.PARENT_CODE = C1.PARENT_CODE
>			SELECT CO_NAME FROM COMPANY WHERE COMPANY.CO_CODE=M.PARENT_CODE INTO CURSOR PARENTCURSOR
>			M.PARENT_NAME = PARENTCURSOR.CO_NAME	
>		ENDIF
>			
>		WAIT WINDOW "Printing "+CASESTRING+"." NOWAIT
>		SELECT BATSUMGROUP
>		DO CASE
>		  CASE THISBILLEDFROM="AMI"
>			REPORT FORM BATCH_MONTHLY_AMI PREVIEW
>		  CASE THISBILLEDFROM="IJH"
>			REPORT FORM BATCH_MONTHLY_IJH PREVIEW
>		  OTHERWISE
>		  	MESSAGEBOXSTRING = "Location code "+M.PARENT_CODE+" has "+CR+ ;
>		  		"an unrecognized billed-from field."+CR+ ;
>		  		"Cannot print report for it."
>		  	=MESSAGEBOX(MESSAGEBOXSTRING)
>		 ENDCASE
>	ENDIF
>ENDFOR
Mark McCasland
Midlothian, TX USA
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform