Click here to Skip to main content
15,887,911 members
Home / Discussions / Database
   

Database

 
GeneralBARCODE (Code39) Pin
OMalleyW22-Jun-05 7:42
OMalleyW22-Jun-05 7:42 
GeneralAny Comments? Pin
OMalleyW23-Jun-05 3:51
OMalleyW23-Jun-05 3:51 
GeneralRe: BARCODE (Code39) Pin
Mike Dimmick24-Jun-05 2:38
Mike Dimmick24-Jun-05 2:38 
GeneralRe: BARCODE (Code39) Pin
OMalleyW24-Jun-05 4:12
OMalleyW24-Jun-05 4:12 
GeneralRe: BARCODE (Code39) Pin
Ian Darling29-Jun-05 23:22
Ian Darling29-Jun-05 23:22 
GeneralRe: BARCODE (Code39) Pin
OMalleyW30-Jun-05 10:58
OMalleyW30-Jun-05 10:58 
GeneralRe: BARCODE (Code39) Pin
Ian Darling30-Jun-05 12:15
Ian Darling30-Jun-05 12:15 
GeneralRe: BARCODE (Code39) Pin
Ian Darling30-Jun-05 12:54
Ian Darling30-Jun-05 12:54 
OMalleyW wrote:
Then write something better. I explained why I posted this the way I did.

Given that I do feel quite strongly about the difference, I've knocked up an ASP.NET user control as an approximate example of how I might go about it (the alternative is to write it with a GIF/PNG renderer). It's also a quickly hacked up job, but it outputs the essentially the same HTML as yours does so should be suitably illustrative.

The way you call it from an ASP.NET page is like this:

<uc1:Code39 id="Code391" runat="server" Code="12345"></uc1:Code39>
The Code attribute can be databound, which makes for easy use from data retrieved from SQL.

The User Control implementation is as follows

// Snip namespace and using stuff.<br />
<br />
public class Code39 : System.Web.UI.UserControl<br />
{<br />
// Lookup tables for initialisation<br />
private static Hashtable CodeLookup;<br />
static Code39()<br />
{<br />
    CodeLookup = new Hashtable();<br />
    CodeLookup.Add('0', new bool[]{true, false,true, false,false,true, true, false,true, true, false,true});<br />
    CodeLookup.Add('1', new bool[]{true, true, false,true, false,false,true, false,true, false,true, true});<br />
    CodeLookup.Add('2', new bool[]{true, false,true, true, false,false,true, false,true, false,true, true});<br />
    CodeLookup.Add('3', new bool[]{true, true, false,true, true, false,false,true, false,true, false,true});<br />
    CodeLookup.Add('4', new bool[]{true, false,true, false,false,true, true, false,true, false,true, true});<br />
    CodeLookup.Add('5', new bool[]{true, true, false,true, false,false,true, true, false,true, false,true});<br />
    CodeLookup.Add('6', new bool[]{true, false,true, true, false,false,true, true, false,true, false,true});<br />
    CodeLookup.Add('7', new bool[]{true, false,true, false,false,true, false,true, true, false,true, true});<br />
    CodeLookup.Add('8', new bool[]{true, true, false,true, false,false,true, false,true, true, false,true});<br />
    CodeLookup.Add('9', new bool[]{true, false,true, true, false,false,true, false,true, true, false,true});<br />
    CodeLookup.Add('A', new bool[]{true, true, false,true, false,true, false,false,true, false,true, true});<br />
    CodeLookup.Add('B', new bool[]{true, false,true, true, false,true, false,false,true, false,true, true});<br />
    CodeLookup.Add('C', new bool[]{true, true, false,true, true, false,true, false,false,true, false,true});<br />
    CodeLookup.Add('D', new bool[]{true, false,true, false,true, true, false,false,true, false,true, true});<br />
    CodeLookup.Add('E', new bool[]{true, true, false,true, false,true, true, false,false,true, false,true});<br />
    CodeLookup.Add('F', new bool[]{true, false,true, true, false,true, true, false,false,true, false,true});<br />
    CodeLookup.Add('G', new bool[]{true, false,true, false,true, false,false,true, true, false,true, true});<br />
    CodeLookup.Add('H', new bool[]{true, true, false,true, false,true, false,false,true, true, false,true});<br />
    CodeLookup.Add('I', new bool[]{true, false,true, true, false,true, false,false,true, true, false,true});<br />
    CodeLookup.Add('J', new bool[]{true, false,true, false,true, true, false,false,true, true, false,true});<br />
    CodeLookup.Add('K', new bool[]{true, true, false,true, false,true, false,true, false,false,true, true});<br />
    CodeLookup.Add('L', new bool[]{true, false,true, true, false,true, false,true, false,false,true, true});<br />
    CodeLookup.Add('M', new bool[]{true, true, false,true, true, false,true, false,true, false,false,true});<br />
    CodeLookup.Add('N', new bool[]{true, false,true, false,true, true, false,true, false,false,true, true});<br />
    CodeLookup.Add('O', new bool[]{true, true, false,true, false,true, true, false,true, false,false,true});<br />
    CodeLookup.Add('P', new bool[]{true, false,true, true, false,true, true, false,true, false,false,true});<br />
    CodeLookup.Add('Q', new bool[]{true, false,true, false,true, false,true, true, false,false,true, true});<br />
    CodeLookup.Add('R', new bool[]{true, true, false,true, false,true, false,true, true, false,false,true});<br />
    CodeLookup.Add('S', new bool[]{true, false,true, true, false,true, false,true, true, false,false,true});<br />
    CodeLookup.Add('T', new bool[]{true, false,true, false,true, true, false,true, true, false,false,true});<br />
    CodeLookup.Add('U', new bool[]{true, true, false,false,true, false,true, false,true, false,true, true});<br />
    CodeLookup.Add('V', new bool[]{true, false,false,true, true, false,true, false,true, false,true, true});<br />
    CodeLookup.Add('W', new bool[]{true, true, false,false,true, true, false,true, false,true, false,true});<br />
    CodeLookup.Add('X', new bool[]{true, false,false,true, false,true, true, false,true, false,true, true});<br />
    CodeLookup.Add('Y', new bool[]{true, true, false,false,true, false,true, true, false,true, false,true});<br />
    CodeLookup.Add('Z', new bool[]{true, false,false,true, true, false,true, true, false,true, false,true});<br />
    CodeLookup.Add(' ', new bool[]{true, false,false,true, true, false,true, false,true, true, false,true});<br />
    CodeLookup.Add('*', new bool[]{true, false,false,true, false,true, true, false,true, true, false,true});<br />
    CodeLookup.Add('%', new bool[]{true, false,true, false,false,true, false,false,true, false,false,true});<br />
    CodeLookup.Add('-', new bool[]{true, false,false,true, false,true, false,true, true, false,true, true});<br />
}<br />
<br />
// Snip Web Form Designer generated code and Page_Load<br />
	<br />
// Returns an ArrayList of bool[]s.  Each bool[] represents the bars for a single character.<br />
private ArrayList AsCode39(string code)<br />
{<br />
    ArrayList BarSequence = new ArrayList();<br />
<br />
    foreach(char codeCharacter in code)<br />
    {<br />
        object bars = CodeLookup[codeCharacter];<br />
        if(bars != null)<br />
        {<br />
            BarSequence.Add((bool[])bars);<br />
        }<br />
        else<br />
        {<br />
            // Duff character - we'll ignore it for the purpose of this example<br />
        }<br />
    }<br />
<br />
    return BarSequence;<br />
}<br />
<br />
protected override void Render(System.Web.UI.HtmlTextWriter writer)<br />
{<br />
    writer.Write("<table cellpadding=0 cellspacing=0><tr>");<br />
    foreach(bool [] Character in AsCode39(Code))<br />
    {<br />
        foreach(bool Black in Character)<br />
        {<br />
            if(Black)<br />
            {<br />
                writer.Write("<td style='background-color:Black;height:7mm;width:0.3mm;'></td>");<br />
            }<br />
            else<br />
            {<br />
                writer.Write("<td style='background-color:White;height:7mm;width:0.3mm;'></td>");<br />
            }<br />
        }<br />
        // Separator between characters<br />
        writer.Write("<td style='background-color:White;height:7mm;width:0.4mm;'></td>");<br />
    }<br />
    writer.Write("</tr></table>");<br />
    base.Render(writer);<br />
}<br />
<br />
private string _Code;<br />
public string Code<br />
{<br />
    get<br />
    {<br />
        return _Code;<br />
    }<br />
    set<br />
    {<br />
        _Code = value;<br />
    }<br />
}<br />



Ian Darling
The world is a thing of utter inordinate complexity ... that such complexity can arise ... out of such simplicity ... is the most fabulous extraordinary idea ... once you get some kind of inkling of how that might have happened - it's just wonderful ... the opportunity to spend 70 or 80 years of your life in such a universe is time well spent as far as I am concerned - Douglas Adams
GeneralRe: BARCODE (Code39) Pin
OMalleyW1-Jul-05 1:55
OMalleyW1-Jul-05 1:55 
GeneralADO.NET - Best way to use the mighty SELECT Pin
BinaryHead22-Jun-05 3:53
BinaryHead22-Jun-05 3:53 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
Colin Angus Mackay22-Jun-05 6:03
Colin Angus Mackay22-Jun-05 6:03 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
david cohoon22-Jun-05 8:06
david cohoon22-Jun-05 8:06 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
BinaryHead22-Jun-05 22:25
BinaryHead22-Jun-05 22:25 
Generalreplication: remote login error Pin
NickKnife22-Jun-05 2:02
NickKnife22-Jun-05 2:02 
GeneralSQL Server 2000 CE Edition... Pin
Jan van den Baard22-Jun-05 1:54
professionalJan van den Baard22-Jun-05 1:54 
GeneralSQL SERVER 2005 INSTED OF Trigger Pin
Yaakov Davis22-Jun-05 1:28
Yaakov Davis22-Jun-05 1:28 
GeneralSQL Server Manager 2005 animated wait thingie Pin
nxtwothou21-Jun-05 10:37
nxtwothou21-Jun-05 10:37 
GeneralConnection Pooling Pin
anju21-Jun-05 8:30
anju21-Jun-05 8:30 
GeneralRe: Connection Pooling Pin
Colin Angus Mackay21-Jun-05 8:38
Colin Angus Mackay21-Jun-05 8:38 
GeneralRe: Connection Pooling Pin
anju21-Jun-05 8:44
anju21-Jun-05 8:44 
GeneralRe: Connection Pooling Pin
Colin Angus Mackay21-Jun-05 8:57
Colin Angus Mackay21-Jun-05 8:57 
GeneralRe: Connection Pooling Pin
anju21-Jun-05 9:11
anju21-Jun-05 9:11 
GeneralRe: Connection Pooling Pin
Colin Angus Mackay21-Jun-05 9:18
Colin Angus Mackay21-Jun-05 9:18 
GeneralRe: Connection Pooling Pin
anju21-Jun-05 9:23
anju21-Jun-05 9:23 
GeneralRe: Connection Pooling Pin
Colin Angus Mackay21-Jun-05 10:04
Colin Angus Mackay21-Jun-05 10:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.