Foros del Web » Programación para mayores de 30 ;) » .NET »

no duplicar numero de factura

Estas en el tema de no duplicar numero de factura en el foro de .NET en Foros del Web. Hola amigos, tengo un problema seguro que facil pero para mi ahora mismo dificil...tengo un text box y un combo box dónde pongo el número ...
  #1 (permalink)  
Antiguo 05/06/2011, 13:41
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Pregunta no duplicar numero de factura

Hola amigos, tengo un problema seguro que facil pero para mi ahora mismo dificil...tengo un text box y un combo box dónde pongo el número de factura y el proveedor y necesito que al pulsar intro en el último de ellos para comenzar a introducir la factura haga una comprobación de si existe la factura en la tabla correspondiente, lo del intro lo hago ya pero no consigo que compruebe si ya existe o no...alguna idea?¿?
  #2 (permalink)  
Antiguo 05/06/2011, 13:47
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: no duplicar numero de factura

No especificas donde tienes el problema. ¿No sabes como recoger el evento de presionar Intro para hacer la validación o no sabes como validar contra la base de datos?
  #3 (permalink)  
Antiguo 05/06/2011, 13:56
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: no duplicar numero de factura

no no...perdón por explicarme mal, el intro ya esta...lo hace a la perfección, pero no quiero que cambie de campo mientras no compruebe que el número de factura no está ya en la base de datos
  #4 (permalink)  
Antiguo 05/06/2011, 14:31
Avatar de bieres  
Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 1 mes
Puntos: 5
Respuesta: no duplicar numero de factura

Hola guillebomtrasmiti, por lo que comentas, tienes una BD, con los mismos, entonces yo lo que haria seria crearme esa base con esa clave primaria, con lo cual ya no puede ser repetido, eso es una forma, otra forma seria obtener todos los numeros de factura de esa BD, te los pones en un ArrayList y compruebas si lo contiene ese introducido en tu textBox o comboBox.
Código:
ArrayList Numeros = new ArrayList();
// aqui lo rellenas con una consulta a tu bd con ese campo
if (Numeros.Contains(textBox1.Text))
{
  textBox1.Text="";
// envias mensaje de que ya esta ese numero
}
  #5 (permalink)  
Antiguo 05/06/2011, 15:20
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: no duplicar numero de factura

lo hago así por que lo pones en c# pero lo hago en .net...y no me va...seguro que hago mal la consulta a la base de datos verdad?¿?

Private Sub TextUnd_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextUnd.KeyPress
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''
'con este IF consigo que el punto siempre sea una coma
If e.KeyChar = "."c Then
e.Handled = True
TextUnd.Text += ","
TextUnd.SelectionStart = TextUnd.Text.Length
End If
'con este if convierto la pulsación hacia la tecla enter
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
'compruebo si factura tiene su número y paso el foco a formato compra, si no da mensaje de error

'con este if compruebo que la factura no esté ya en el historico
Dim Numeros As New ArrayList()
Dim ada As New OleDbDataAdapter
Dim data As New DataSet
Dim comando = conexion.CreateCommand

comando.CommandType = CommandType.Text
comando.CommandText = "Select NFacturaSRCabecera From LineasFacturasHCabecera"
ada.SelectCommand = comando
ada.Fill(data, "LineasFacturasHCabecera")
' aqui lo rellenas con una consulta a tu bd con ese campo
If Numeros.Contains(TextNFactura.Text) Then
' envias mensaje de que ya esta ese numero
MessageBox.Show("error, Número repetido")
TextNFactura.Text = ""
End If


If Not String.IsNullOrEmpty(TextNFactura.Text) Then

TextFComp.Focus()
Else
MessageBox.Show("Debe cubrir un número de factura campo obligatorio. ", "Información de Error")
End If
End If

End Sub
  #6 (permalink)  
Antiguo 05/06/2011, 15:57
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: no duplicar numero de factura

UNA AYUDITA PORFI?¿?, se me acabjavascript:;a el tiempo
  #7 (permalink)  
Antiguo 05/06/2011, 16:14
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: no duplicar numero de factura

ya ... por si alguien lo necesita

Private Sub TextUnd_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextUnd.KeyPress
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''
'con este IF consigo que el punto siempre sea una coma
If e.KeyChar = "."c Then
e.Handled = True
TextUnd.Text += ","
TextUnd.SelectionStart = TextUnd.Text.Length
End If
'con este if convierto la pulsación hacia la tecla enter
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
'compruebo si factura tiene su número y paso el foco a formato compra, si no da mensaje de error

'con este if compruebo que la factura no esté ya en el historico
Dim com As New OleDbCommand
Dim buscar As String = "SELECT * from LineasFacturasHCabecera where NFacturaSRCabecera = '" & TextNFactura.Text & "'"

com = New OleDbCommand(buscar, conexion)

Dim Adapter As OleDbDataAdapter = New OleDbDataAdapter(buscar, conexion)
Dim tabla_temp As DataTable = New DataTable

conexion.Open()
Adapter.Fill(tabla_temp)
If tabla_temp.Rows.Count = 1 Then
MessageBox.Show("Existe el Número de Factura " & TextNFactura.Text & " decida si continuar")
ElseIf tabla_temp.Rows.Count = 0 Then
End If
conexion.Close()

'con este If compruebo si el textbox factura está en blanco o no
If Not String.IsNullOrEmpty(TextNFactura.Text) Then
TextFComp.Focus()
Else
MessageBox.Show("Debe cubrir un número de factura campo obligatorio. ", "Información de Error")
End If
End If

Etiquetas: duplicar, factura, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:25.