Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Do Not allow minus numbers to be entered
Message
 
 
À
13/10/2014 18:02:53
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01609221
Message ID:
01609413
Vues:
50
>Here is a custom class that I wrote for numeric value input:
>
>
>**************************************************
>*-- Class:        _currency (e:\my work\foxpro\projects\gkkmembership\classes\baseclasses.vcx)
>*-- ParentClass:  textbox
>*-- BaseClass:    textbox
>*-- Time Stamp:   10/02/14 09:57:02 PM
>*
>#INCLUDE "e:\my work\foxpro\projects\gkkmembership\programs\gkkmembership.h"
>*
>DEFINE CLASS _currency AS textbox
>
>
>	Alignment = 1
>	Value = 0.00
>	Height = 23
>	SelectOnEntry = .T.
>	Width = 100
>	*-- Amount entered
>	amount = 0.00
>	*-- XML Metadata for customizable properties
>	_memberdata = [<VFPData><memberdata name="amount" type="property" display="Amount"/><memberdata name="amount_assign" type="method" display="Amount_Assign"/><memberdata name="uservalid" type="method" display="UserValid"/><memberdata name="allowzero" type="property" display="AllowZero"/><memberdata name="maxamount" type="property" display="MaxAmount"/><memberdata name="addcurrencysymbol" type="property" display="AddCurrencySymbol"/><memberdata name="currencysymbol" type="property" display="CurrencySymbol"/></VFPData>]
>	*-- Flag to indicate if zero is a valid entry
>	allowzero = .F.
>	*-- Maximum amount if greater than 0.00
>	maxamount = -1
>	*-- Flag to indicate whether to add the currency symbol to the value
>	addcurrencysymbol = .F.
>	*-- Currency Symbol
>	currencysymbol = "$"
>	Name = "_currency"
>
>
>	PROCEDURE amount_assign
>		LPARAMETERS tnAmount
>		this.InputMask = ''
>		DO CASE
>			CASE VARTYPE(tnAmount) = "N"
>				this.Amount = tnAmount
>				this.Value  = IIF(this.AddCurrencySymbol, this.CurrencySymbol+" ", "") + ALLTRIM(TRANSFORM(tnAmount, "9,999,999.99"))
>
>			CASE VARTYPE(tnAmount) = "C"
>				this.Amount = VAL(ALLTRIM(tnAmount))
>				this.Value  = IIF(this.AddCurrencySymbol, this.CurrencySymbol+" ", "") + ALLTRIM(TRANSFORM(tnAmount, "9,999,999.99"))
>
>			OTHERWISE
>				WAIT WINDOW "Invalid value entered for Amount" NOWAIT
>		ENDCASE
>	ENDPROC
>
>
>	PROCEDURE GotFocus
>		SET CURSOR ON
>		this.InputMask = '9999999.99'
>		this.Amount = this.Amount
>	ENDPROC
>
>
>	PROCEDURE Valid
>		LOCAL lnAmount
>		DO CASE
>			CASE VARTYPE(this.Value) = "N"
>				IF this.Value > 0.00
>					IF this.MaxAmount < 0.00
>						this.Amount = this.Value
>						this.UserValid()
>					ELSE
>						IF this.Value <= this.MaxAmount
>							this.Amount = this.Value
>							this.UserValid()
>						ELSE
>							DisplayMsg("Value entered cannot be greater than $ " + ALLTRIM(TRANSFORM(this.MaxAmount, "9,999,999.99")))
>							this.Amount = this.MaxAmount
>							RETURN False
>						ENDIF
>					ENDIF
>				ELSE
>					IF this.AllowZero .AND. this.Value = 0.00
>						this.Amount = this.Value
>						this.UserValid()
>					ELSE
>						DisplayMsg("Invalid value entered")
>						RETURN False
>					ENDIF
>				ENDIF
>
>			CASE VARTYPE(this.Value) = "C"
>				lnAmount = VAL(STRTRAN(STRTRAN(this.Value, ",", "") , "$", ""))
>				IF lnAmount > 0.00
>					IF this.MaxAmount < 0.00
>						this.Amount = lnAmount
>						this.UserValid()
>					ELSE
>						IF lnAmount <= this.MaxAmount
>							this.Amount = lnAmount
>							this.UserValid()
>						ELSE
>							DisplayMsg("Value entered cannot be greater than $ " + ALLTRIM(TRANSFORM(this.MaxAmount, "9,999,999.99")))
>							this.Amount = this.MaxAmount
>							RETURN False
>						ENDIF
>					ENDIF
>				ELSE
>					IF this.AllowZero .AND. lnAmount = 0.00
>						this.Amount = lnAmount
>						this.UserValid()
>					ELSE
>						DisplayMsg("Invalid value entered")
>						RETURN False
>					ENDIF
>				ENDIF
>
>			OTHERWISE
>				DisplayMsg("Invalid value entered")
>				RETURN False
>		ENDCASE
>	ENDPROC
>
>
>	*-- Called by Valid event for user code
>	PROCEDURE uservalid
>	ENDPROC
>
>
>ENDDEFINE
>*
>*-- EndDefine: _currency
>**************************************************
>
Thanks Greg, I will work on this later.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform