Guest Posted April 14, 2012 at 11:01 AM Report #449132 Posted April 14, 2012 at 11:01 AM Bom dia, Estou com um problema com a emissão de etiquetas para uma impressora Zebra (Modelo 2746e). Quero usar ZPL, mas não sei como incluir nos commandos zpl as minhas váriáveis, lidas num datarow. Sistematizando: Tenho registos numa BD. Leio os dados obtendo datatable. Itero o datatable obendo os datarows Quero imprimir uma ou mais etiquetas por cada datarow(tenho outro ciclo para emitir um nº de etiquetas, dependendo de um valor de uma coluna "Quantiy" do próprio datarow). Até aqui tudo rola. Um exemplo ZPL: N q609 Q203,26 B26,26,0,UA0,2,2,152,B,"603679025109" A253,26,0,3,1,1,N,"SKU 6205518 MFG 6354" A253,56,0,3,1,1,N,"2XIST TROPICAL BEACH" A253,86,0,3,1,1,N,"STRIPE SQUARE CUT TRUNK" A253,116,0,3,1,1,N,"BRICK" A253,146,0,3,1,1,N,"X-LARGE" P1,1 A questão é: Susbtituir os dados estáticos pelos dados lidos em cada datarow. Nota: Este exemplo de etiqueta está neste tutorial: http://nicholas.piasecki.name/blog/2009/03/sending-raw-epl2-directly-to-a-zebra-lp2844-via-c/ - Tem código c#, é muito claro em tudo, mas não percebi a parte que enuncio aqui. Aceito sugestões para outras abordagens ao problema o que desde já agradeço. António Fernandes.
petvetbr Posted April 14, 2012 at 01:08 PM Report #449144 Posted April 14, 2012 at 01:08 PM Esta explicado no tópico Printing the label directly from C# Precisa de um código da Microsoft e corrigir um pequeno bug no código. Basicamente vc gera uma String usando o stringbuilder e manda para a impressora. Fernando Lage Bastos - MCP/MCTS/MCPD
Guest Posted April 14, 2012 at 04:14 PM Report #449182 Posted April 14, 2012 at 04:14 PM Obrigado pela resposta, Se eu tivesse percebido, não tinha postado a dúvida. A classe recebe uma string como parametro, eu quero enviar-lhe um datarow (até podem ser várias strings; façoa a extração antes, é indiferente). Constroi um string e envia para a impressora, eu quero construir uma string com vários campos extraidos do datarow (em várias linhas da etiqueta, claro). Esta é a minha dúvida. Obrigado.
petvetbr Posted April 14, 2012 at 04:42 PM Report #449185 Posted April 14, 2012 at 04:42 PM Qual a estrutura deste datarow? Porque depende da estrutura dele e também do tipo/tamanho de etiqueta que deseja fazer, porém o código básico usando o exemplo do site seria o seguinte: StringBuilder sb; if (printerName == null) { throw new ArgumentNullException("printerName"); } foreach(var row in meuDataTable) { sb = new StringBuilder(); sb.AppendLine(); sb.AppendLine("N"); sb.AppendLine("q609"); sb.AppendLine("Q203,26"); sb.AppendLine(string.Format( CultureInfo.InvariantCulture, "B26,26,0,UA0,2,2,152,B,\"{0}\"", row["campoDoUpcAqui")); sb.AppendLine(string.Format( CultureInfo.InvariantCulture, "B2A253,26,0,3,1,1,N,\"{0}\"", row["campoDaDescricaoDaPrimeiraLinhaAqui")); sb.AppendLine(string.Format( CultureInfo.InvariantCulture, "B2A253,56,0,3,1,1,N,\"{0}\"", row["colunaDaDescricaoDaSegundaLinhaAqui")); sb.AppendLine(string.Format( CultureInfo.InvariantCulture, "B2A253,86,0,3,1,1,N,\"{0}\"", row["colunaDaDescricaoDaTerceiraLinhaAqui")); sb.AppendLine("P1,1"); RawPrinterHelper.SendStringToPrinter(printerName, sb.ToString()); } Fernando Lage Bastos - MCP/MCTS/MCPD
Guest Posted April 14, 2012 at 09:45 PM Report #449219 Posted April 14, 2012 at 09:45 PM É isso mesmo, Obrigado.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now