Principales respuestas
Numero de comprobante fiscal (NCF)

Pregunta
-
Buenas a todos
Programo en vb.net
Esta consulta me genera el Numero de comprobante fiscal (NCF). Quiero resaltar que esta consulta funciona muy bien y esta nítida.
Public Sub GenerarNCF_Facturas_A_Consumidores_Finales() Try Using cn As New SqlConnection(cadenaConexion) Dim consultaSql As String = "SELECT ISNULL(LEFT(MAX(ncf), 11) + RIGHT('00000000' + CONVERT(varchar(8), MAX(CONVERT(int, RIGHT(ncf, 8))) + 1), 8), 'A010010010200000001') As maximo FROM TblaNCFConsumidorFinal" Using cmd3 As New SqlCommand(consultaSql, cn) cn.Open() txtNCF.Text = cmd3.ExecuteScalar().ToString() End Using End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
En la consulta solamente se incrementa los últimos 8 números, por ejemplo:
00000001
00000002
00000003
Yo lo único que quiero es: almacenar esta parte de la consulta anterior 'A010010010200000001' en una variable global.
Mi variable global está declarada así:
Public NCFConsumidorFinal As String = "A010010010200000001"
Lo que yo intento es sustituir este trozo de código de la consulta anterior "A010010010200000001" por NCFConsumidorFinal.
El problema se ve complejo desde mi punto de vista, lo he intentado, pero no me funciona.
- Tipo cambiado Enrique M. MontejoModerator lunes, 2 de enero de 2017 12:36
- Tipo cambiado Enrique M. MontejoModerator jueves, 5 de enero de 2017 7:13
Respuestas
-
Ahora que si lo que quieres es solo la parte de la consulta, entonces cambia
'A010010010200000001'
por
'" + NCFConsumidorFinal + '"
y tu consulta queda:
Dim consultaSql As String = "SELECT ISNULL(LEFT(MAX(ncf), 11) + RIGHT('00000000' + CONVERT(varchar(8), MAX(CONVERT(int, RIGHT(ncf, 8))) + 1), 8), '" + NCFConsumidorFinal + "') As maximo FROM TblaNCFConsumidorFinal"
OJO despues de: 8), es comilla sencilla y luego doble y despues de NCFConsumidorFinal + es comilla doble y luego sencilla.
Si te sirve maracala como respuesta
Saludos
- Marcado como respuesta Enrique M. MontejoModerator jueves, 5 de enero de 2017 7:14
Todas las respuestas
-
La verdad no entiendo lo que requieres. La consulta de selección retorna la secuencia siguiente del código y según entiendo ese valor necesitas asignarlo a la variable NCFConsumidorFinal, ¿entendí bien? de ser así ¿qué problemas tienes en la asignación?
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
Gracias, pero entendiste bien
Yo lo único que quiero es: almacenar esta parte de la consulta anterior 'A010010010200000001' en una variable global.
Mi variable global está declarada así:
Public NCFConsumidorFinal As String = "A010010010200000001"
Es decir que la consulta en vez de que tenga este trozo de código "A010010010200000001" tenga NCFConsumidorFinal, es decir la constante .
El problema es que la consulta no reconose la constante (NCFConsumidorFinal)
observa este código
Public Sub GenerarNCF_Facturas_A_Consumidores_Finales() Try Using cn As New SqlConnection(cadenaConexion) Dim consultaSql As String = "SELECT ISNULL(LEFT(MAX(ncf), 11) + RIGHT('00000000' + CONVERT(varchar(8), MAX(CONVERT(int, RIGHT(ncf, 8))) + 1), 8), 'NCFConsumidorFinal') As maximo FROM TblaNCFConsumidorFinal" Using cmd3 As New SqlCommand(consultaSql, cn) cn.Open() txtNCF.Text = cmd3.ExecuteScalar().ToString() End Using End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Public NCFConsumidorFinal As String = "A010010010200000001"NCFConsumidorFinal: viene siendo una constante.
- Editado EliannyRD jueves, 29 de diciembre de 2016 0:16
-
Lo siento, debo de ser yo quien no logra entender lo que requieres, debe ser algo simple pero no doy con el punto de duda.
-------------------------------------------------------------------------------------------------
Es decir que la consulta en vez de que tenga este trozo de código "A010010010200000001" tenga NCFConsumidorFinal, es decir la constante .
El problema es que la consulta no reconose la constante (NCFConsumidorFinal)
-------------------------------------------------------------------------------------------------
No entiendo, si pudieses darle mayor claridad lo agradeceré o quizá algún compañero logre comprender tu requerimiento y echarte una mano. Por cierto, NCFConsumidorFinal no es una constante.
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
esto que vez en la consulta anterior: "A010010010200000001", es una contaste, es decir que no varia en el código de la consulta SQL.
Que es lo que yo quiero: es sustituir A010010010200000001 por: NCFConsumidorFinal
Public NCFConsumidorFinal As String = "A010010010200000001"
pero ta bien, si no se puede, no se puede............
gracias...
- Editado EliannyRD jueves, 29 de diciembre de 2016 21:45
-
Elianny yo he resuelto un caso parecido de la siguiente manera:
Dim folio_s, NCini, NCfin As String
Dim folio_a As Integer
folio_s = Right(NCFConsumidorFinal, 8)
NCini = Left(NCFConsumidorFinal,(Len(NCFConsumidorFinal)-8)
folio_a = Val(folio_s)
folio_a = folio_a + 1
folio_s = folio_a.ToString("00000000")
NCfin = NCini + folio_s
Espero te ayude.
Si te sirve la respuesta no olvides marcarla como correcta
-
Ahora que si lo que quieres es solo la parte de la consulta, entonces cambia
'A010010010200000001'
por
'" + NCFConsumidorFinal + '"
y tu consulta queda:
Dim consultaSql As String = "SELECT ISNULL(LEFT(MAX(ncf), 11) + RIGHT('00000000' + CONVERT(varchar(8), MAX(CONVERT(int, RIGHT(ncf, 8))) + 1), 8), '" + NCFConsumidorFinal + "') As maximo FROM TblaNCFConsumidorFinal"
OJO despues de: 8), es comilla sencilla y luego doble y despues de NCFConsumidorFinal + es comilla doble y luego sencilla.
Si te sirve maracala como respuesta
Saludos
- Marcado como respuesta Enrique M. MontejoModerator jueves, 5 de enero de 2017 7:14
-
Gracias por contestar gasgdl2
Disculpa por no haber contestado, tenia unos días que no entraba al foro.
El problema está resuelto 100x%
sinceramente, muchas gracias, realmente daba este caso por perdido y gracias a ti se puedo resolver.
Que señor te siga Bendiciendo..........................
.