VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

纯VFP¥Í¦¨EAN¡Ð13条码ºâªk

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
¦æªÌ孙



µù¥U®É¶¡: 2006-03-11
¤å³¹: 43


²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤@¤ë 22, 2006 4:49 pm    ¤å³¹¥DÃD: 纯VFP¥Í¦¨EAN¡Ð13条码ºâªk ¤Þ¨¥¦^ÂÐ

EAN码¬O国际ª««~编码协会¨î©wªº¤@Ïú°Ó«~¥Î条码¡A³q¥Î¤_¥þ¥@¬É¡CEAN码²Å号¦³标­ãª©¡]EAN-13¡^©M缩µuª©¡]EAN-8¡^两Ïú¡A§Ú国ªº³q¥Î°Ó«~条码ÉO¨äµ¥®Ä¡C§Ú们¤é±`购买ªº°Ó«~¥]装¤W©Ò¦Lªº条码¤@¯ë´N¬OEAN码¡C§Ú这¨½给¥Xªº¬OEAN¡Ð13ªººâªk¥N码¡A¤j®a¦pªG»Ý­nEAN¡Ð8条码¥i¥H¦Û¦æ­×§ï¤U¡C



* ¨ç 数 ¦W¡GEAN13()
* ¥\¡@ ¯à¡G®ÚÕu条EAN-13码²Å号¦r²Å¦ê¥Í¦¨条码¦ì图
* 参¡@ 数¡GBM ¦r²Å«¬(12¦ìEAN-13码²Å号¦r²Å¦ê ¦p¡G'690102818039')
* ªð ¦^ ­È¡G¥Í¦¨ªº条码¦ì图ªº¤å¥ó¦W
* 运¦æ环¹Ò¡GWIN95¥H¤Wª©¥»¡CVisual FoxPro 6.0,7.0,8.0,9.0
* ºâªk¨î§@¡G¦æªÌ孙(QQ:310727570)-VFP应¥Îµ{¦¡ºâªk¸s(12787940)
* 说 ©ú¡G转载请«O¯d¥X处¡I
Function EAN13(BM As String )
Private BM
Dimension EAN_code[10,3]
EAN_code[1,1]='00000011110011'
EAN_code[1,2]='00110000111111'
EAN_code[1,3]='11111100001100'
EAN_code[2,1]='00001111000011'
EAN_code[2,2]='00111100001111'
EAN_code[2,3]='11110000111100'
EAN_code[3,1]='00001100001111'
EAN_code[3,2]='00001111001111'
EAN_code[3,3]='11110011110000'
EAN_code[4,1]='00111111001100'
EAN_code[4,2]='00001111110011'
EAN_code[4,3]='11000000001100'
EAN_code[5,1]='00110000001111'
EAN_code[5,2]='00001111110011'
EAN_code[5,3]='11001111110000'
EAN_code[6,1]='00111100000011'
EAN_code[6,2]='00111111000011'
EAN_code[6,3]='11000011111100'
EAN_code[7,1]='00110011111111'
EAN_code[7,2]='00000011001111'
EAN_code[7,3]='11001100000000'
EAN_code[8,1]='00111111001111'
EAN_code[8,2]='00001100000011'
EAN_code[8,3]='11000000110000'
EAN_code[9,1]='00111100111111'
EAN_code[9,2]='00000011000011'
EAN_code[9,3]='11000011000000'
EAN_code[10,1]='00000011001111'
EAN_code[10,2]='00001100111111'
EAN_code[10,3]='11111100110000'
Dimension EAN_left[10]
EAN_left[1]='111111'
EAN_left[2]='112122'
EAN_left[3]='112212'
EAN_left[4]='112221'
EAN_left[5]='121122'
EAN_left[6]='122112'
EAN_left[7]='122211'
EAN_left[8]='121212'
EAN_left[9]='121221'
EAN_left[10]='122121'
Dimension EAN_mode[8]
Store '' To EAN_mode
If Len(Alltrim(BM))<>12 .And. Val(BM)>0
Messagebox('EAN-13编码长«×¤£规­S',268,'«H®§´£¥Ü')
Return ''
Else
EAN_mode[1]='000000000000000000'
EAN_mode[2]='110011'
For i=0 To 9
If Val(Substr(BM,1,1))=i
For ii=1 To 6
BMZ=Val(Substr(BM,ii+1,1))
MODE=Val(Substr(EAN_left[i+1],ii,1))
EAN_mode[3]=EAN_mode[3]+EAN_code[BMZ+1,MODE]
Endf
Endi
Endf
EAN_mode[4]='0011001100'
For i=1 To 5
BMZ=Val(Substr(BM,i+7,1))
EAN_mode[5]=EAN_mode[5]+EAN_code[BMZ+1,3]
Endf
JY_A=0
JY_B=0
For i=1 To 12
If i%2=0
JY_A=JY_A+Val(Substr(BM,i,1))
Else
JY_B=JY_B+Val(Substr(BM,i,1))
Endif
Endf
JYM=10-(JY_A*3+JY_B)%10
If JYM=10
JYM=1
Endi
EAN_mode[6]=EAN_code[JYM+1,3]
EAN_mode[7]='110011'
EAN_mode[8]='000000000000000000'
EAN_code=EAN_mode[1]+EAN_mode[2]+EAN_mode[3]++EAN_mode[4]+EAN_mode[5]+EAN_mode[6]+EAN_mode[7]+EAN_mode[8]
Dimension BMP[4]
BMP[4]=90
BMP[3]=224
BMP[2]=Int((BMP[3]*3+3)/4)*4*BMP[4]+54
BMP[1]=BMP[2]-54
Dimension BMP_T[4]
For i=1 To 4
k1='0x'+Subs(Righ(Tran(BMP[i],"@0"),8 ),7,2)
k2='0x'+Subs(Righ(Tran(BMP[i],"@0"),8 ),5,2)
k3='0x'+Subs(Righ(Tran(BMP[i],"@0"),8 ),3,2)
k4='0x'+Subs(Righ(Tran(BMP[i],"@0"),8 ),1,2)
BMP_T[i]=Chr(&k1)+Chr(&k2)+Chr(&k3)+Chr(&k4)
Endf
st1='BM'+BMP_T[2]+Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(54)+Chr(0)+Chr(0)+Chr(0);
+Chr(40)+Chr(0)+Chr(0)+Chr(0)+BMP_T[3]+BMP_T[4]+Chr(1)+Chr(0)+Chr(24)+Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(0)+BMP_T[1]+Chrt(Spac(16),' ',Chr(0))
st2=Chrt(Spac(224*10*3),' ',Chr(255))
st3=''
For i=11 To 70
For k1=1 To 224
If Substr(EAN_code,k1,1)=='1'
st3=st3+Chr(0)+Chr(0)+Chr(0)
Else
st3=st3+Chr(255)+Chr(255)+Chr(255)
Endi
Endf
Endf
Pb=Chr(0)+Chr(0)+Chr(0)
Pw=Chr(255)+Chr(255)+Chr(255)
st4=Chrt(Spac(18*3),' ',Chr(255))+Pb+Pb+Pw+Pw+Pb+Pb+Chrt(Spac(84*3),' ',Chr(255))+Pw+Pw+Pb+Pb+Pw+Pw+Pb+Pb+Pw+Pw+Chrt(Spac(84*3),' ',Chr(255))+Pb+Pb+Pw+Pw+Pb+Pb+Chrt(Spac(16*3),' ',Chr(255))
st4=st4+st4
Dimension T_D[11]
T_D[1]='11111000111111111100000111111110111100111111101111101111111011111011111110111110111111101111101111'+;
'11101111101111111011111011111110111110111111101111101111111011110011111111000001111111111000111111'
T_D[2]='11111110111111111111001111111111100011111111100000111111111011101111111111111011111111111110111111'+;
'11111110111111111111101111111111111011111111111110111111111111101111111111111011111111111110111111'
T_D[3]='11111000111111111000000111111110111110111111101111101111111111111011111111111110111111111111011111'+;
'11111110011111111111001111111111100111111111110011111111111001111111111110000000111111000000001111'
T_D[4]='11111000111111111100000111111110011100111111101111101111111111110111111111110011111111111100011111'+;
'11111111101111111111111011111111111110111111101111101111111011110011111111000001111111111000111111'
T_D[5]='11111111011111111111100111111111111001111111111100011111111110110111111111011101111111110111011111'+;
'11101111011111110111110111111100000000011111000000000111111111110111111111111101111111111111011111'
T_D[6]='11110000001111111100000011111111011111111111110111111111111000001111111110000001111111101111101111'+;
'11111111101111111111111011111111111110111111101111101111111011110011111111000001111111111000111111'
T_D[7]='11111000111111111100000111111110011110111111101111111111111011001111111110000001111111100111001111'+;
'11101111101111111011111011111110111110111111101111101111111001111011111111000001111111111000111111'
T_D[8]='11000000001111110000000011111111111100111111111111011111111111101111111111111011111111111101111111'+;
'11111101111111111110011111111111101111111111111011111111111110111111111111101111111111110011111111'
T_D[9]='11111000111111111100000111111110011100111111101111101111111011111011111110011100111111110000011111'+;
'11110000011111111011111011111110111110111111101111101111111011111011111110000001111111111000111111'
T_D[10]='11111000111111111100000111111110111100111111101111101111111011111011111110111110111111101111101111'+;
'11101111001111111100000011111111100110111111111111101111111011110111111110000001111111111001111111'
T_D[11]='11111111111111111111111111111111111111111111111111001111111111000011111111000001111111100111111111'+;
'11100111111111111100000111111111110000111111111111001111111111111111111111111111111111111111111111'
Dimension td[14]
Store '' To td
For i=1 To 14
For k1=1 To 13
zh=Val(Substr(BM+Alltrim(Str(JYM)),k1,1))+1
td[i]=td[i]+Substr(T_D[zh],14*i-13,14)
Endf
td[i]=td[i]+Substr(T_D[11],14*i-13,14)
Endf
For i=1 To 7
td[i]='11'+Subs(td[i],1,14)+'11'+'001100'+Subs(td[i],15,84)+'1100110011'+Subs(td[i],99,84)+'001100'+Subs(td[i],183,14)+'11'
Endf
For i=8 To 14
td[i]='11'+Subs(td[i],1,14)+'11'+'111111'+Subs(td[i],15,84)+'1111111111'+Subs(td[i],99,84)+'111111'+Subs(td[i],183,14)+'11'
Endf
For i=1 To 14
td[i]=Strtran(td[i],'1',Chr(255)+Chr(255)+Chr(255))
td[i]=Strtran(td[i],'0',Chr(0)+Chr(0)+Chr(0))
Endf
st5=Chrt(Spac(224*4*3),' ',Chr(255))
h=Fcreate(BM+Alltrim(Str(JYM))+'.bmp')
=Fwrite(h,st1)
=Fwrite(h,st5)
For i=14 To 1 Step -1
=Fwrite(h,td[i])
Endf
=Fwrite(h,st4)
=Fwrite(h,st3)
=Fwrite(h,st2)
Fclose(h)
Return BM+Alltrim(Str(JYM))+'.bmp'
Endif

调¥Î¤èªk¡G¦p¦p¡Gthisform.image1.picture=EAN13('6901028039')


调¥Î®ÄªG¡G[/img]

_________________
¢~⌒¢¡VFP应¥Îµ{¦¡ºâªk¸s 12787940¤¢~⌒
¢~http://hi.baidu.com/myvfp/blog
,¡`¡`¡`¡`,""¡`~~ ,""~¡`¡`¡@ ,""
¢¬¢ª¢i¢©¡@¢¬¢ª¢i¢©
¡W¥Ð¡W¥Ð¡W¡W¥Ð¡W¥Ð¡W
ùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùá

http://hi.baidu.com/myvfp/blog
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
janlih



µù¥U®É¶¡: 2003-11-04
¤å³¹: 69


²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤@¤ë 22, 2006 5:23 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

·P®¦¡A¥ý´ú¸Õ¬Ý¬Ý
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
janlih



µù¥U®É¶¡: 2003-11-04
¤å³¹: 69


²Ä 3 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤@¤ë 22, 2006 8:54 pm    ¤å³¹¥DÃD: Re: 纯VFP¥Í¦¨EAN¡Ð13条码ºâªk ¤Þ¨¥¦^ÂÐ

¦æªÌ孙 ¼g¨ì:
If Len(Alltrim(BM))<>12 .And. Val(BM)>0
Messagebox('EAN-13编码长«×¤£规­S',268,'«H®§´£¥Ü')
...............
[/img]


´ú¸Õ¤ß±o¡G

³o¤@¦æ¦³°ÝÃD
If Len(Alltrim(BM))<>12 && .And. Val(BM)>0

¦C¦L«á¥Î±ø½X¾÷¨ê¥X¨Óªº±ø½X¸¹½X»P¹Ï¤ùªº¸¹½X¤£²Å =>¬Gµ{¦¡¦³°ÝÃD¡A¤£ª¾­þ¸Ì¿ù¤F¡AÁÙ­n¦A¬ã¨s

¥B¥Î±ø½X¾÷¨ê®É­n¸Õ«Ü¦h¦¸¤~¨ê±o¥X¨Ó
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
green



µù¥U®É¶¡: 2003-09-19
¤å³¹: 136


²Ä 4 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤Q¤@¤ë 23, 2006 9:46 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

·PÁ¤À¨É!!«Ü¹ê¥Îªº¤@­Óµ{¦¡,­×¥¿«áÀ³¸Ó«Ü¦³µo®i,¥i±¤¤â¤W¨S¦³Åª½X¾÷ ...
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
¦æªÌ孙



µù¥U®É¶¡: 2006-03-11
¤å³¹: 43


²Ä 5 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤Q¤@¤ë 23, 2006 10:58 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¦Ü¤_Éó¾¹读¥X来ªº数Õu©Mµ{§Ç¥Í¦¨ªº数¦r¦³¥X¤J¡A¥i¯àÉO区°ì间ªº条码规则¦³关¡A¥i¥H¦Û¦æ­×§ï¤U¡I
§Ú写这¬q¥N码³Ìªìªº¥Øªº¬O为¤F给¸s¨½ªº¤H°µ¤@个¤£¥ÎAPI动态¥Í¦¨24¦ì¦ì图ªº¥Ü¨Ò¡A¦Z来·Q¬JµM°µ´N°µ个¦³点实¥Îɲ­Èªº¡A©Ò¥H´N写¤F这¬q¥N码¡A这¬q¥N码写¦n¦Z经过¸s¨½ªº¤@¨Ç¤H¥h测试³£«Ü顺§Qªº³q过¤F¡I

_________________
¢~⌒¢¡VFP应¥Îµ{¦¡ºâªk¸s 12787940¤¢~⌒
¢~http://hi.baidu.com/myvfp/blog
,¡`¡`¡`¡`,""¡`~~ ,""~¡`¡`¡@ ,""
¢¬¢ª¢i¢©¡@¢¬¢ª¢i¢©
¡W¥Ð¡W¥Ð¡W¡W¥Ð¡W¥Ð¡W
ùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùá

http://hi.baidu.com/myvfp/blog
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
Erwin



µù¥U®É¶¡: 2003-03-28
¤å³¹: 97
¨Ó¦Û: ¥x¥_

²Ä 6 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤Q¤@¤ë 23, 2006 11:16 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

·PÁÂ
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó MSN Messenger
shjianq



µù¥U®É¶¡: 2006-09-16
¤å³¹: 2


²Ä 7 ¼Ó

µoªíµoªí©ó: ¬P´Á¤é ¤Q¤G¤ë 03, 2006 11:02 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

kan kan
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@