none
Impresion de Formato - Como lograr Codigo Consecutivo a la tabla. RRS feed

  • Pregunta

  • bueno tengo un formulario donde el codigo del formato es 01-0000# entonces si yo pongo click en nuevo aparezca en el formato 01-00001,01-00002,01-00003 y asi sucesivamente por cada registro que realice.

    y que este se vaya contabilizando en la tabla si lo deje hoy en 01-00002, obvio manana toca 01-00003 es decir que la tabla mantenga la secuencia de registro. El problema es si elimino ese 01-00002, deberia volver a cargar 01-00002 sin embargo en las mayoria de veces he visto que siempre sale 01-00003 el que sigue, en fin si no es posible no importa.

    En la tabla no es necesario el formato sea almacenado 01-00001, 01-00002, 01-0000#.... solo es en el formato al momento de imprimir.

    como es un formato que contiene muchos controles en trabajoso en el sentido de hacer el registro pero me es necesario tenerlo registrado, asi se me hacia muy dificil hacer un reporte y opte por usar el PrintForm lo he probado y me estas mas aceptable que hacer todo el reporte con su estructura y todo eso. 

    El detalle es lograr la secuencia de codigo al presionar el boton nuevo.

    el tipo de datos en la tabla de la columna codigo esta como nvarchar y tengo un id como int con incremento en 1.

    Cuales son las sugerencias para lograr esto?

    Le parece bien  usar :

    Dim cm As New SqlCommand("SELECT MAX(NumOrder) + 1 FROM Orden", cnx)
                Dim nro As Integer = Convert.ToInt32(cm.ExecuteScalar())
                lblCodigo.Text = Format(nro, "0000")

    o luego voy a tener errores? el diseño de los 000 solo es para la impresión no en la tabla.


    lunes, 27 de febrero de 2017 21:52

Respuestas

  • por el momento estoy haciendo esto:

    Private Sub Nuevo_Click(sender As Object, e As EventArgs) Handles Nuevo.Click
            Using cnx As New SqlConnection(ConfigurationManager.ConnectionStrings("cnxString").ToString())
                Call Limpiar()
                cnx.Open()
                Dim cm As New SqlCommand("SELECT COALESCE(MAX(Codigo),0)+1  FROM FRecepcion", cnx)
                Dim nro As Integer = Convert.ToInt32(cm.ExecuteScalar())
                lblCodigo.Text = Format(nro, "01 - 0000#")
    
                If cnx.State = ConnectionState.Open Then
                    cnx.Close()
                End If
    
                Activo()
                Guardar.Enabled = True
                Nuevo.Enabled = False
                lblMensaje.Text = Nothing
                contador_para_guardar = 1
            End Using
        End Sub

    y va bien.


    • Editado Javier Roque lunes, 27 de febrero de 2017 22:31
    • Marcado como respuesta Javier Roque martes, 28 de febrero de 2017 2:50
    lunes, 27 de febrero de 2017 22:31