Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Buffering
Message
De
10/09/2001 08:51:43
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Divers
Thread ID:
00554518
Message ID:
00554583
Vues:
11
Hi,
Thank you for reply. I have the following code. I am not sure it is finr or not. Could you pls check it for me, if the way of coding is not correct...
thank you very much
SELECT csrTmpFile

IF GETNEXTMODIFIED(0, "csrTmpFile") # 0
	lcAdj_No = THISFORM.GetNextAdj()

	IF lcAdj_No == ""
		RETURN "NOAUTO-"
	ENDIF

	SELECT csrTmpFile
	SCAN
		IF csrTmpFile.AdjQty # 0

			UPDATE Stock_Status SET Qty = CURVAL("Qty", "Stock_Status") + csrTmpFile.AdjQty WHERE ;
						Stock_Status.INo = csrTmpFile.INo AND LocCode == csrTmpFile.LocCode

		ENDIF
	ENDSCAN
	
ELSE
	RETURN ""
ENDIF

BEGIN TRANSACTION

	IF NOT llRollBack AND NOT TABLEUPDATE(2, tlForceUpdate, "Stock_Status")
		llRollBack = .T.
	ENDIF

	SELECT csrTmpFile
	LOCATE

	SCAN
		SELECT Stock_Status
		LOCATE FOR INo == csrTmpFile.INo AND LocCode == csrTmpFile.LocCode
		IF FOUND()
			IF AT("2", GETFLDSTATE(-1) ) = 0
				INSERT INTO tblAdj_Details (Adj_No, INo, BCode, Qty, NewQty, AdjQty, LocCode, CPU) ;
					VALUES (lcAdj_No, csrTmpFile.INo, csrTmpFile.BCode, csrTmpFile.Qty, ;
							csrTmpFile.NewQty, csrTmpFile.AdjQty, csrTmpFile.LocCode, csrTmpFile.CPU)
				lnCount = lnCount + 1
			
				SELECT csrTmpFile
				DELETE
			ENDIF
		ENDIF
	ENDSCAN

	IF lnCount > 0
		INSERT INTO tblStock_Adj (Adj_No, dDate, Remark, Operator) ;
				VALUES (lcAdj_No, tdDate, tcDesc, tcOperator)
	ENDIF
	
	BEGIN TRANSACTION

		IF NOT llRollBack2 AND NOT TABLEUPDATE(.T., tlForceUpdate, "tblStock_Adj")
			llRollBack2 = .T.
		ENDIF

		IF NOT llRollBack2 AND NOT TABLEUPDATE(.T., tlForceUpdate, "tblAdj_Details")
			llRollBack2 = .T.
		ENDIF

		IF llRollBack2
			ROLLBACK
			ROLLBACK	&& TRANSACTION 1
			TABLEREVERT(.T., "tblStock_Adj")
			TABLEREVERT(.T., "tblAdj_Details")
			TABLEREVERT(.T., "Stock_Status")
			
			AERROR(laError)
			RETURN "ERROR-" + laError[2] + "(" + ALLTRIM(STR(laError[1])) + ")"
		ELSE
			IF llRollBack
				AERROR(laError)
				DO CASE
				CASE laError[1,1] = 1585
					RETURN "CONFLICT-"
				OTHERWISE
					RETURN "ERROR-" + laError[2] + "(" + ALLTRIM(STR(laError[1])) + ")"		
				ENDCASE
			ELSE
				END TRANSACTION
				END TRANSACTION		&& TRANSACTION 1
				RETURN "SAVED-"
			ENDIF
		ENDIF
I am not the most powerful man in this world.
I am not the worst man in this world either.
I just as same as all of you.
I still need to learn from my mistakes...
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform