sam. 20 janvier 2018, 16h51
MSabri111
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