miércoles, 20 de febrero de 2008

Codigos de barras en asp

Frente a una pregunta en desarrolloweb.com voy a publicar el como hace que una pagina tenga insertado un código de barras dinamico (sin componentes)

Primero que necesitas

ms Access

iis 5.0 o superior

permisos sobre la base de Access a los usuario iusr_'nombre de equipo' completos o full


 

Los datos

Crear la base de datos en c:\inetpub\wwwroot\test\test.mdb (ojo que debe ser comptible con access 2000-2003 si es que la creas con office 2007

Crear una tabla de datos con los campos nombre (char), barcode(number) (los títulos no son importantes, pero esos nombre utilizare en el ejemplo)


 

Crear el archivo de conexión a la Base de ms Access.

Como trabajo con dreamweaver 8, la creación del archivo de conexión se genera en una carpeta llamada c:\inetpub\wwwroot\test\Connections con un archivo que yo llamé conn_test.asp

Ese archivo tiene el siguiente código

<%

' FileName="Connection_ado_conn_string.htm"

' Type="ADO"

' DesigntimeType="ADO"

' HTTP="false"

' Catalog=""

' Schema=""

Dim MM_conn_test_STRING

MM_conn_test_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\INETPUB\WWWROOT\TEST\TEST1.mdb"

%>


 

Ahora la página principal c:\inetpub\wwwroot\test\barcode.asp


 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

'en esta linea se llama al archivo de conexión que acabamos de crear

'el Inlcude file es similar a escribir directamente la conexión en la página

' la ventaja es que de esta menra solo se exribe una vez y se llama desde cualquier

'pagina%>

<!--#include file="Connections/conn_test.asp" -->

<%


 

' Acá Dreamweaver creo la conexión a la base para crear un variabe listao, que contiene los campos de la tabla datos

Dim listado

Dim listado_numRows


 

Set listado = Server.CreateObject("ADODB.Recordset")

listado.ActiveConnection = MM_conn_test_STRING

listado.Source = "SELECT * FROM datos"

listado.CursorType = 0

listado.CursorLocation = 2

listado.LockType = 1

listado.Open()


 

listado_numRows = 0

%>

<%

'estas son la variables para repetir cada linea de la tabla

Dim Repeat1__numRows

Dim Repeat1__index


 

Repeat1__numRows = -1

Repeat1__index = 0

listado_numRows = listado_numRows + Repeat1__numRows

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Prueba de Códigos de Barra</title>

</head>


 

<body>

<%' esta es una tabla que contendra todos los registros de la tabla datos%>

<table width="748" border="1" cellspacing="0" cellpadding="0">

<tr>

<td>Nombre</td>

<td>Codigo</td>

</tr>

<% 'Este ciclo repite la etiqueta td y su contenido hasta que recorra todo el recordset

While ((Repeat1__numRows <> 0) AND (NOT listado.EOF))

%>

<tr>

<td><%=(listado.Fields.Item("nombres").Value)%></td>

<td><!--#include file="js_scripts/Bars.asp" --></td>

</tr>

<%

Repeat1__index=Repeat1__index+1

Repeat1__numRows=Repeat1__numRows-1

listado.MoveNext()

Wend

%>

</table>

</body>

</html>

<%

listado.Close()

Set listado = Nothing

%>


 

Como te puedes dar cuenta llama un archivo con el nombre bars.asp que esta en c:\inetpub\wwwroot\test\js_scripts


 

Este archivo contiene

<%


 

'strBarcode es la variable que recibe el valor que se desa generar como BARCODE'

strBarCode = listado.Fields.Item("barcode").Value %>

<%

redim a(44)

a(1)="1wnnwnnnnw"

a(2)="2nnwwnnnnw"

a(3)="3wnwwnnnnn"

a(4)="4nnnwwnnnw"

a(5)="5wnnwwnnnn"

a(6)="6nnwwwnnnn"

a(7)="7nnnwnnwnw"

a(8)="8wnnwnnwnn"

a(9)="9nnwwnnwnn"

a(10)="0nnnwwnwnn"

a(11)="Awnnnnwnnw"

a(12)="Bnnwnnwnnw"

a(13)="Cwnwnnwnnn"

a(14)="Dnnnnwwnnw"

a(15)="Ewnnnwwnnn"

a(16)="Fnnwnwwnnn"

a(17)="Gnnnnnwwnw"

a(18)="Hwnnnnwwnn"

a(19)="Innwnnwwnn"

a(20)="Jnnnnwwwnn"

a(21)="Kwnnnnnnww"

a(22)="Lnnwnnnnww"

a(23)="Mwnwnnnnwn"

a(24)="Nnnnnwnnww"

a(25)="Ownnnwnnwn"

a(26)="Pnnwnwnnwn"

a(27)="Qnnnnnnwww"

a(28)="Rwnnnnnwwn"

a(29)="Snnwnnnwwn"

a(30)="Tnnnnwnwwn"

a(31)="Uwwnnnnnnw"

a(32)="Vnwwnnnnnw"

a(33)="Wwwwnnnnnn"

a(34)="Xnwnnwnnnw"

a(35)="Ywwnnwnnnn"

a(36)="Znwwnwnnnn"

a(37)="-nwnnnnwnw"

a(38)=".wwnnnnwnn"

a(39)=" nwwnnnwnn"

a(40)="*nwnnwnwnn"

a(41)="$nwnwnwnnn"

a(42)="/nwnwnnnwn"

a(43)="+nwnnnwnwn"

a(44)="%nnnwnwnwn"


 

numNarrow=2

numHeight=30


 

strBarCode="*" & strBarCode & "*"

strConv=""

// response.write strBarCode


 

for t=1 to len(strBarCode)

    for s=1 to 44

        if mid(strBarCode,t,1)=left(a(s),1) then

            strConv=strConv & right(a(s),9)&"s"

        end if

    next

next


 

// response.write strconv & "<p>"


 

b=1


 

for t=1 to len(strConv)

    if mid(strConv,t,1)="n" then

        if b=1 then response.write "<img src=js_scripts/Bar_img/shim_black.gif width=" & numNarrow & " height=" & numHeight & ">"

        if b=0 then response.write "<img src=js_scripts/Bar_img/shim.gif width=" & numNarrow & " height=" & numHeight & ">"

        b=b+1

        if b=2 then b=0

    end if


 

    if mid(strConv,t,1)="w" then

        if b=1 then response.write "<img src=js_scripts/Bar_img/shim_black.gif width=" & numNarrow*2 & " height=" & numHeight & ">"

        if b=0 then response.write "<img src=js_scripts/Bar_img/shim.gif width=" & numNarrow*2 & " height=" & numHeight & ">"

        b=b+1

        if b=2 then b=0

    end if


 

    if mid(strconv,t,1)="s" then

        response.write "<img src=js_scripts/Bar_img/shim.gif width=" & numNarrow & " height=" & numHeight & ">"

        b=1

    end if

next

%>

<%

response.write "<br>" & strBarCode

%>


 

lo que debes hacer es copiar este texto en un notepad y grabarlo como bars.asp


 

por último las líneas...las línea del código de barra son imágenes que están guardadas en C:\Inetpub\wwwroot\Test\js_scripts\Bar_img

las imágenes fueron agregadas a este post, debes guardarla en la carpeta correspondiente (C:\Inetpub\wwwroot\Test\js_scripts\Bar_img\) con el mismo nombre y voila!




 

Solo debe escribir en tu explorador <a href="http://localhost/test/barcode.asp">http://localhost/test/barcode.asp</a>