Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2010
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Cool Barcode 128a Generar codigo de barras

Buenas, actualmente tengo una función escrita en delphi que permite calcular el código de barras en formato code128a, para usarlo solo tengo que instalar una fuente code128 y calcular la cadena antes de mandar a imprimir.

Lo que quisiera es poder implementar una funcion similar en SQL Server.

Pongo el código delphi.

Código Delphi [-]
unit BarcodeTools;

interface

Function Code128a(DataToEncode:String) : String;

implementation

Uses sysutils;

Function Code128a(DataToEncode:String) : String;
// Esta funcion fue traducida desde un macro excel descargado de internet
// permite codificar en code 128a una texto dado.
// Incluye calculo de digito de verificación
Var
PrintableString : String;
StringLength, i, WeightedTotal,
CurrentCharNum, CurrentValue : Integer;
CheckDigitValue : Integer;
C128CheckDigit : Char;
Begin
DataToEncode := Trim(DataToEncode);
PrintableString := '';
WeightedTotal := 103;
PrintableString := Char(203);
StringLength := Length(DataToEncode);
CurrentValue := 0;
For i := 1 To StringLength do
   Begin
   CurrentCharNum := ord(DataToEncode[i]);
   If CurrentCharNum < 135 Then CurrentValue := CurrentCharNum - 32;
   If CurrentCharNum > 134 Then CurrentValue := CurrentCharNum - 100;
   CurrentValue := CurrentValue * i;
   WeightedTotal := WeightedTotal + CurrentValue;
   If CurrentCharNum = 32 Then CurrentCharNum := 194;
   PrintableString := PrintableString + Chr(CurrentCharNum);
   End;
CheckDigitValue := (WeightedTotal Mod 103);
C128CheckDigit := #0;
If (CheckDigitValue < 95) And (CheckDigitValue > 0) Then C128CheckDigit := Char(CheckDigitValue + 32);
If (CheckDigitValue > 94) Then C128CheckDigit := Char(CheckDigitValue + 100);
If CheckDigitValue = 0 Then C128CheckDigit := Char(194);
PrintableString := PrintableString + C128CheckDigit + Char(206);
Result := PrintableString;
End;

end.

Es más me arriesgo a proponer al foro completar la unidad con otros "generadores" de códigos de barras, hasta ahora siempre he usado solo el 128a pero hay otros formatos que se podrían definir fácilmente en la unidad.

Gracias
__________________
Sitrico
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Generar codigo de barras e imprimirlas rufo Varios 3 13-01-2010 21:04:21
generar codigo de barras jmlifi Impresión 7 18-06-2007 16:04:03
Generar Codigo de barras - sin componentes- voldemmor Varios 0 04-06-2007 17:32:54
generar codigo de barras pipe Varios 13 21-02-2007 19:54:58
Generar codigo de barras salvanano Conexión con bases de datos 1 02-10-2006 12:57:23


La franja horaria es GMT +2. Ahora son las 19:49:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi