ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Convertir un nombre en lettres sur facture VFP   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

sam. 20 janvier 2018, 16h51

MSabri111
Algérie Algérie

atoutfox.public.association

Re: Convertir un nombre en lettres sur facture VFP

&&PROCEDURE montan_lter
SET TALK OFF
PUBLIC ARRETTE
SELECT "matable"
SUM matable.montant TO t_montant1

NET =t_montant

** en entree variable numerique NET
declare A[999]
A[1]="æÇÍÏ"
A[2]="ÅËäíä"
A[3]="ËáÇËÉ"
A[4]="ÃÑÈÚÉ"
A[5]="ÎãÓÉ"
A[6]="ÓÊÉ"
A[7]="ÓÈÚÉ"
A[8]="ËãÇäíÉ"
A[9]="ÊÓÚÉ"
A[10]="ÚÔÑÉ"
*
A[11]="ÃÍÏ ÚÔÑÉ"
A[12]="ÅËäÊÇ ÚÔÑÉ"
A[13]="ËáÇËÉ ÚÔÑÉ"
A[14]="ÃÑÈÚÉ ÚÔÑÉ"
A[15]="ÎãÓÉ ÚÔÑÉ"
A[16]="ÓÊÉ ÚÔÑÉ"
A[17]="ÓÈÚÉ ÚÔÑÉ"
A[18]="ËãÇäíÉ ÚÔÑÉ"
A[19]="ÊÓÚÉ ÚÔÑÉ"
*
A[20]="ÚÔÑæä"
A[21]="æÇÍÏ æ ÚÔÑæä"
A[22]="ÅËäÊÇ æ ÚÔÑæä"
A[23]="ËáÇËÉ æ ÚÔÑæä"
A[24]="ÃÑÈÚÉ æ ÚÔÑæä"
A[25]="ÎãÓÉ æ ÚÔÑæä"
A[26]="ÓÊÉ æ ÚÔÑæä"
A[27]="ÓÈÚÉ æ ÚÔÑæä"
A[28]="ËãÇäíÉ æ ÚÔÑæä"
A[29]="ÊÓÚÉ æ ÚÔÑæä"
*
A[30]="臂辊"
A[31]="æÇÍÏ æ ËáÇËæä"
A[32]="ÅËäÇ æ ËáÇËæä"
A[33]="ËáÇËÉ æ ËáÇËæä"
A[34]="ÃÑÈÚÉ æ ËáÇËæä"
A[35]="ÎãÓÉ æ ËáÇËæä"
A[36]="ÓÊÉ æ ËáÇËæä"
A[37]="ÓÈÚÉ æ ËáÇËæä"
A[38]="ËãÇäíÉ æ ËáÇËæä"
A[39]="ÊÓÚÉ æ ËáÇËæä"
*
A[40]="ÃÑÈÚæä"
A[41]="æÇÍÏ æ ÃÑÈÚæä"
A[42]="ÃËäÊÇ æ ÃÑÈÚæä"
A[43]="ËáÇËÉ æ ÃÑÈÚæä"
A[44]="ÃÑÈÚÉ æ ÃÑÈÚæä"
A[45]="ÎãÓÉ æ ÃÑÈÚæä"
A[46]="ÓÊÉ æ ÃÑÈÚæä"
A[47]="ÓÈÚÉ æ ÃÑÈÚæä"
A[48]="ËãÇäíÉ æ ÃÑÈÚæä"
A[49]="ÊÓÚÉ æ ÃÑÈÚæä"
*
A[50]="ÎãÓæä"
A[51]="æÇÍÏ æ ÎãÓæä"
A[52]="ÃËäÊÇ æ ÎãÓæä"
A[53]="ËáÇËÉ æ ÎãÓæä"
A[54]="ÃÑÈÚÉ æ ÎãÓæä"
A[55]="ÎãÓÉ æ ÎãÓæä"
A[56]="ÓÊÉ æ ÎãÓæä"
A[57]="ÓÈÚÉ æ ÎãÓæä"
A[58]="ËãÇäíÉ æ ÎãÓæä"
A[59]="ÊÓÚÉ æ ÎãÓæä"
*
A[60]="ÓÊæä"
A[61]="æÇÍÏ æ ÓÊæä"
A[62]="ÅËäÊÇ æ ÓÊæä"
A[63]="ËáÇËÉ æ ÓÊæä"
A[64]="ÃÑÈÚÉ æ ÓÊæä"
A[65]="ÎãÓÉ æ ÓÊæä"
A[66]="ÓÊÉ æ ÓÊæä"
A[67]="ÓÈÚÉ æ ÓÊæä"
A[68]="ËãÇäíÉ æ ÓÊæä"
A[69]="ÊÓÚÉ æ ÓÊæä"
*
A[70]="ÓÈÚæä"
A[71]="æÇÍÏ æ ÓÈÚæä"
A[72]="ÅËäÊÇ æ ÓÈÚæä"
A[73]="ËáÇËÉ æ ÓÈÚæä"
A[74]="ÃÑÈÚÉ æ ÓÈÚæä"
A[75]="ÎãÓÉ æ ÓÈÚæä"
A[76]="ÓÊÉ æ ÓÈÚæä"
A[77]="ÓÈÚÉ æ ÓÈÚæä"
A[78]="ËãÇäíÉ æ ÓÈÚæä"
A[79]="ÊÓÚÉ æ ÓÈÚæä"
*
A[80]="ËãÇäæä"
A[81]="æÇÍÏ æ ËãÇäæä"
A[82]="ÅËäÊÇ æË ãÇäæä"
A[83]="ËáÇËÉ æ ËãÇäæä"
A[84]="ÃÑÈÚÉ æ ËãÇäæä"
A[85]="ÎãÓÉ æ ËãÇäæä"
A[86]="ÓÊÉ æ ËãÇäæä"
A[87]="ÓÈÚÉ æ ËãÇäæä"
A[88]="ËãÇäíÉ æ ËãÇäæä"
A[89]="ÊÓÚÉ æ ËãÇäæä"
*
A[90]="ÊÓÚæä"
A[91]="æÇÍÏ æ ÊÓÚæä"
A[92]="ÅËäÊÇ æ ÊÓÚæä"
A[93]="ËáÇËÉ æ ÊÓÚæä"
A[94]="ÃÑÈÚÉ æ ÊÓÚæä"
A[95]="ÎãÓÉ æ ÊÓÚæä"
A[96]="ÓÊÉ æ ÊÓÚæä"
A[97]="ÓÈÚÉ æ ÊÓÚæä"
A[98]="ËãÇäíÉ æ ÊÓÚæä"
A[99]="ÊÓÚÉ æ ÊÓÚæä"
*
declare b[9]
b[1]="ãÇÆÉ"
b[2]="ãÇÆÊíä"
b[3]="ËáÇË ãÇÆÉ"
b[4]="ÃÑÈÚ ãÇÆÉ"
b[5]="ÎãÓÉ ãÇÆÉ"
b[6]="ÓÊÉ ãÇÆÉ"
b[7]="ÓÈÚÉ ãÇÆÉ"
b[8]="ËãÇäíÉ ãÇÆÉ"
b[9]="ÊÓÚÉ ãÇÆÉ"
J=1
P=100
do while J<=9
I=1
do while I<=99
if val(substr(ltrim(str(P)),2,2))=00
A[P]=Rtrim(B[J])
i=0
else
A[P]=Rtrim(B[J])+" æ"+rtrim(A[I])
endif
I=I+1
P=P+1
enddo
J=J+1
enddo
*
***** procedure de convertion
VA=NET
lon=len(ltrim(str(int(VA))))
vac0=ltrim(str(int(VA)))
vac=replicate("0",9-Lon)+vac0
vad=str(VA,12,2)
vad1=substr(vad,11,2)
*
vchaine1=""
vchaine2=""
vchaine3=""
*
chaine1=substr(vac,7,3)
chaine2=substr(vac,4,3)
chaine3=substr(vac,1,3)
Vchaine4="zero"
***
oua=IIF(val(chaine1)=0," "," æ ")
if val(chaine1)<>00
vchaine1=rtrim(A[val(chaine1)])
endif
IF val(chaine2)<>00
do case
case val(chaine2)=1 .or. val(chaine2)>10
vchaine2=iif(val(chaine2)<>1,rtrim(A[val(chaine2)])+" ÃáÝ "," ÃáÝ ")+oua
case val(chaine2)=2
vchaine2=" ÃáÝíä "+ oua
case val(chaine2)>1 .or. val(chaine2)<11
vchaine2=rtrim(A[val(chaine2)])+" ÃáÇÝ "+ oua
endcase
ENDIF
***
IF val(chaine3)<>00
do case
case val(chaine3)=1 .or. val(chaine3)>10
vchaine3=iif(val(chaine3)<>1,rtrim(A[val(chaine3)])+" ãáíæä "," ãáíæä ")+oua
case val(chaine3)=2
vchaine3=" ãáíæäíä "+oua
case val(chaine3)>1 .or. val(chaine3)<11
vchaine3=rtrim(A[val(chaine3)])+" ãáÇííä "+oua
endcase
ENDIF

***
if val(vad1)<>00
vchaine4=rtrim(A[val(vad1)])
endif
do case
case val(chaine1)+val(chaine2)+val(chaine3)=00 .and. val(vad1)=00
CT1=". ÕÝÑ ÏíäÇÑ æ ÕÝÑ ÓäÊíã "
case val(chaine1)+val(chaine2)+val(chaine3)<>00 .and. val(vad1)=00
CT1=vchaine3+" "+vchaine2+" "+vchaine1+" ÏíäÇÑ ÌÒÇÆÑí æ ÕÝÑ ÓäÊíã "
case val(chaine1)+val(chaine2)+val(chaine3)=00 .and. val(vad1)<>00
CT1=" ÕÝÑ ÏíäÇÑ "+vchaine4+".ÓäÊíã "
case val(chaine1)+val(chaine2)+val(chaine3)<>00 .and. val(vad1)<>00
CT1=vchaine3+" "+vchaine2+" "+vchaine1+" ÏíäÇÑ ÌÒÇÆÑí æ"+vchaine4+" ÓäÊíãã "
endcase

LET1=""
LET2=""
IP=1
Do while ip<=35
if ip=35
do while substr(ct1,IP,1)<>" " .and. ip<len(ct1)
LET1=LET1+substr(ct1,IP,1)
IP=IP+1
enddo
let2=substr(ct1,ip,len(ct1)-ip)
endif
let1=let1+substr(ct1,IP,1)
IP=IP+1
enddo
ARRETTE1=LET1
ARRETTE2=LET2
ARRETTE=LET1+LET2
** en SORTIE ARRETTE CARACTERE EN ARABE
&&------------------------------------------





Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018802
20 088 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3