Codigo QR

Iniciado por PETTETE, 12 Abril 2017, 07:33 AM

0 Miembros y 1 Visitante están viendo este tema.

PETTETE

buenas,

la duda de hoy es algo complidilla...

He encontrado en internet un codigo que genera codigos QR mediante codigo de VB.NET.

La cosa es que este codigo solo genera codigos QR de 1 en 1 y a mi me gustaría crar  una serie entera de codigos QR. Por ejemplo, que desde el numero 1 hasta el 20 genere 1 codigo QR por numero. Y no se como hacerlo. Esto sobrepasa mis conocimientos de vb.net.

Os adjuntaría el codigo que he encontrado pero es largo... largo largo.. ya que esta acompañado de un form que te da distintas opciones de generar el codigo QR..

¿ Alguien sabe como puedo hacerlo?

Una ayudita porfa.

Un saludo,
PETETE;)
UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)

pkj

Supongo que esos códigos QR son peticiones a bases de datos.
Si es mucho código, pón la direccion donde lo encontraste y ayudarás a otros. Eso de las bases de datos parece ser una locura.
Yo no entiendo de bases de datos, pero sin el código quizás nadie te conteste algo mejor que esto:

Por lo que he entendido y sin conocer ese form que dices, ya sea .NET o VB6, se me ocurre que el modo facil es insertar ese form en tu programa como un form normal (por ejemplo Form2), y cuando quieras generar un código de esos, cargas los valores en las casillas del form2 desde tu programa principal, ejecutas el boton "generar" que traiga el form2 y recoges el resultado de donde te aparezca.
El form2 se cargará en el momento que introduzcas el primer valor en una de sus casillas. Para que no se vea nunca el form2, ya que lo vas a usar desde código, solo tienes que hacerlo invisible en su evento Load y ya esta.

Espero haberme explicado... mas o menos.

Suerte

PETTETE

#2
el link de la pagina es este:
http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=582

la cosa es que este programa te permite escribir lo que quieres convertir en QR. lo que yo quiero converitr a QR son unos codigos.
los codigos los escribiria a mano, por ejemplo:
020000000000010000010 ( codigo 1)
020000000000010000020 ( codigo 2)
020000000000010000030 ( codigo 3)
020000000000010000040 ( codigo 4)

Lo que me gustaría hacer es que por cada codigo me genere un QR. Pero que me los genere a l vez, sin tener que meter un codigo cada vez que valla a realizar el QR. Si le meto 10 codigos pues 10 QR.

He conseguido reducir el codigo que genera los QR a la opcion que quiero, ahora mandoel codigo a ver si podeis echarle una ojeada y comentarme lo que sea.


Imports ThoughtWorks.QRCode
Imports ThoughtWorks.QRCode.Codec
Imports ThoughtWorks.QRCode.Codec.Data
Public Class Form1

   Private Sub txtTextoLibre_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtTextoLibre.TextChanged
       txtTextoQR.Text = txtTextoLibre.Text
   End Sub
Código (vbnet) [Seleccionar]

   Private Sub btGenerarQR_Click(sender As System.Object, e As System.EventArgs) Handles btGenerarQR.Click

       If txtEscalaPixel.Text.Trim = "" Then
           MsgBox("Debe indicar la escala de los píxeles del " +
                  "QR que se generará.",
                  MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
           txtEscalaPixel.Focus()
       Else

           If Val(txtEscalaPixel.Text) = 0 Then
               txtEscalaPixel.Text = 4
           End If

           Dim generarCodigoQR As QRCodeEncoder = New QRCodeEncoder

           generarCodigoQR.QRCodeEncodeMode =
              Codec.QRCodeEncoder.ENCODE_MODE.BYTE
           generarCodigoQR.QRCodeScale = Int32.Parse(txtEscalaPixel.Text)

           Select Case lsNivelCorreccion.Text
               Case "Bajo (7%)"
                   generarCodigoQR.QRCodeErrorCorrect =
                       Codec.QRCodeEncoder.ERROR_CORRECTION.L
               Case "Medio (15%)"
                   generarCodigoQR.QRCodeErrorCorrect =
                       Codec.QRCodeEncoder.ERROR_CORRECTION.M
               Case "Alto (25%)"
                   generarCodigoQR.QRCodeErrorCorrect =
                       Codec.QRCodeEncoder.ERROR_CORRECTION.Q
               Case "Muy alto (30%)"
                   generarCodigoQR.QRCodeErrorCorrect =
                       Codec.QRCodeEncoder.ERROR_CORRECTION.H
           End Select

           'La versión "0" calcula automáticamente el tamaño
           generarCodigoQR.QRCodeVersion = 0

           '' --------- Forzar una determinada version -----------
           ''En caso de querer forzar una determinada version
           '(tamaño) el siguiente código devuelve la
           ''versión mínima para el texto que se quiere códificar:
           'Dim iVersion As Integer =
           '    AdjustQRVersion(TextBox1.Text, QRCodeEncoder.QRCodeErrorCorrect)
           'If iVersion = -1 Then
           '    MessageBox.Show("El texto es demasiado grande o el " +
           '        "Correction Level (ERROR_CORRECTION) no es el apropiado")
           '    Exit Sub
           'Else
           '    qrCodeEncoder.QRCodeVersion = iVersion
           'End If
           '' -----------------------------------------------------

         


           Try
               If opForzarUTF.Checked Then
                   'Con UTF-8 podremos añadir caracteres como ñ, tildes, etc.
                   imgQR.Image = generarCodigoQR.Encode(txtTextoQR.Text,
                                   System.Text.Encoding.UTF8)
               Else
                   imgQR.Image = generarCodigoQR.Encode(txtTextoQR.Text)
               End If
           Catch ex As Exception
               MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly)
           End Try
       End If

   End Sub

   Private Sub btGuardarQR_Click(sender As System.Object, e As System.EventArgs) Handles btGuardarQR.Click

       Dim dlGuardar As New SaveFileDialog

       If IsNothing(imgQR.Image) Then
           MsgBox("No se ha generado el Código QR. Antes de guardar " +
                  "debe generar un código QR.",
                  MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
       Else
           dlGuardar.Filter = "JPEG|*.jpg|Mapa de Bits|*.bmp|Gif|*.gif|PNG|*.png"
           dlGuardar.Title = "Guardar código QR"
           dlGuardar.FileName = "codigo_qr"
           dlGuardar.ShowDialog()
           If (dlGuardar.FileName <> "") Then
               Select Case dlGuardar.FilterIndex
                   Case 1
                       imgQR.Image.Save(dlGuardar.FileName,
                           System.Drawing.Imaging.ImageFormat.Jpeg)
                   Case 2
                       imgQR.Image.Save(dlGuardar.FileName,
                           System.Drawing.Imaging.ImageFormat.Bmp)
                   Case 3
                       imgQR.Image.Save(dlGuardar.FileName,
                           System.Drawing.Imaging.ImageFormat.Gif)
                   Case 4
                       imgQR.Image.Save(dlGuardar.FileName,
                           System.Drawing.Imaging.ImageFormat.Png)
               End Select
           End If
       End If
   End Sub
 
End Class



mas o menos el codigo es ese..

una ayudita porfaaaaaa!
UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)

Eleкtro

#3
Hola.

1. Esto va en el foro de Visual Basic.NET, esta duda NO tiene que ver con Visual Basic, lo sabes perfectamente puesto que muchas veces has publicado preguntas en el foro de .NET, así que por favor, que esto no se vuelva a repetir.

2. Revisando todas las preguntas que has formulado en los foros de programación, podemos comprobar que jamás has mediado una sola palabra de agradecimiento ni absolutamente ningún tipo de comentario/respuesta tras obtener la ayuda que pedías por parte mia o por parte de los demás compañeros del foro que te han entregado ayuda en bandeja. Creo que si una persona pide ayuda y se la entregan y le resuelven el problema, lo mínimo que esa persona debería hacer es mostrar gratitud; no seré yo quien te ayude esta vez a hacer tu trabajo... aunque lo que pides es facil.

¡Saludos!








Serapis

Pués si, le doy la razón a EleKtro... aunque yo como llevo poco tiempo en el foro (en la nueva andadura), no te conozco, así que tienes otra oportunidad de 'redimirte'  :silbar: :silbar: :silbar:

A - Todo lo que tienes que hacer es meter tus 'códigos' en un array.
B - Y luego invocar una función pasando ese array.
C - En dicha función es un bucle quien recorre el array invocando a la función de ese 'código misterioso superlargo y supersecreto (que encontraste)' (la verdad que si es tan largo como dices, ni siquiera será muy bueno), pasándole como parámetro el 'código' actualmente en ciclo del bucle. Esto es, por cada índice en el array se invoca esa supersecretaFunciónQR(array(k)).
D - Finalmente supongo que devuelve algo, no sé si una imagen o si un fichero... si es un fichero, quizás debas pasarle también una ruta, si es una imagen la guardas tu mismo a fichero.