el objetivo del programa es el siguiente, programa que esta abierto las 24 hrs del dia) ya que los embarques ingresan durante las 24 horas
mi programa tiene 4 botones, Peso Bruto(Entrada), Peso Tara(Salida),Impresion y Deshacer
mi idea es poner un Inputbox para que el usuario ingrese el Numero de Control a Buscar(Id_Control)
SI el embarque viene de ingreso(Peso Bruto), entonces,
Clic al boton PESO BRUTO y que me aparezca un Inputbox para ingresar el num de control, en ese momento hago llamar al SP que se llama Sisbascula_CargaControl, que recibe 3 parametros (Id_Control, Tipo_Mov y Version), como constantes Tipo_Mov=1 y Version=2
el SP recibe los argumentos y busca el Num. de Control(Id_Control), si no existe muestra los datos del embarque en pantalla, (previamente capturados)los campos a mostrar son
Num,Control(Id_Control) TextBox
Folio Ticket (Id_Ticket) TextBox
NCA (NCA) - Textbox
Tipo de Embarque(Tipo_Embarque) -TextBox
Placa Tractor (Placa_Tractor) Textbox
Placas1 (Placa_Jaula1) TextBox
Placas2 (Placa_Jaula1) TextBox
Cliente (Nombre_Cliente (ComboBox)
Transpsortista (Transportista) - ComboBox
Chofer (Nombre_Operador) TextBox
Pesador (Pesador) TextBox
si el embarque ya existe debera de mostrar mensaje que ya existe y deshabilita los campos
posterior a esto el pesador pone su nombre y debera poner clic al boton imprimir para la impresion del ticket de bascula, que debera de tener los datos arriba mencionados mas el peso y la fecha de pesaje, que se muestran en textbox diferentes
si el embarque no existe y no esta capturado, debera mostrar el Mensaje de que el embarque no existe pero se debera capturar manualmente, se deberan de poner todos los campos habilitados y en blanco. al terminar de capturar los campos imprimir el ticket dando clic al boton imprimir.
al salir el embarque ingreso el numero de control a pesar debera de mostrar los datos del embarque en pantalla y clic al PESO TARA e impirmir la segunda pesada, espero me haya dado a entender con esta explicacion de lo que requiero que haga el programa muesto mi codigo, no me esta mostrando la informacion, obviamente algo no esta bien
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Windows.Forms
Public Class Form1
Public conexion As New SqlConnection 'encargada de realizar la conexion
Public enunciado As SqlCommand ' permite ejecutar sentencias sql como insert, update, delete, select
Public respuesta As SqlDataReader 'se encarga de poder recorrer los registros de una consulta
Private ComBuffer As Byte()
Private Delegate Sub UpdateFormDelegate()
Private UpdateFormDelegate1 As UpdateFormDelegate
Public Id_Control As String
'Creamos las variables a usar en el procedimiento de UpdateDisplay
Dim strReturn As String
Dim strPeso As String
Dim car As String
Dim TipoMov As String
Dim Sqlstring As String
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Abrir_Conexion()
LlenarComboBoxClientes(CbClientes)
LlenarComboBoxTransporte(CbTransportista)
Me.lblHora.Text = String.Format("{0:HH:mm:ss}", DateTime.Now)
Timer1.Interval = 1000
Timer1.Start()
Timer2.Interval = 1000
Timer2.Start()
TraeConfiguracion()
'abro el puerto
If Not PuertoSerial.IsOpen Then
PuertoSerial.Open()
End If
LimpiaCambios()
End Sub
Private Sub TraeConfiguracion()
PuertoSerial.PortName = "COM1" 'puerto de comunicacion
PuertoSerial.BaudRate = "9600" 'velocidad
PuertoSerial.DataBits = "8" 'bits de paridad
PuertoSerial.StopBits = "1" 'bits de parada
End Sub
Private Sub PuertoSerial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles PuertoSerial.DataReceived
Dim Cuenta_Bytes_Leidos As Integer
Try
UpdateFormDelegate1 = New UpdateFormDelegate(AddressOf UpdateDisplay)
Cuenta_Bytes_Leidos = PuertoSerial.BytesToRead 'capturo el numero de bytes leidos
If Cuenta_Bytes_Leidos > 50 Then
ComBuffer = New Byte(Cuenta_Bytes_Leidos - 1) {} 'redimensiono
PuertoSerial.Read(ComBuffer, 0, Cuenta_Bytes_Leidos) 'leemos el dato
Me.Invoke(UpdateFormDelegate1)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub UpdateDisplay()
'variables locales
Dim incoming As String = ""
Dim longBuffer As Long
Dim i As Integer
'calcularmos la longitud del buffer y guardamos la información en una variable
longBuffer = ComBuffer.Length
For i = 0 To longBuffer - 1
incoming = incoming & Chr(ComBuffer(i))
Next
strReturn = incoming.ToString
'ahora solo tenemos que formatear la cadena tal como deseemos.
'Yo conecte el puerto a una báscula por tanto necesito capturar el dato del pesaje
'------------------------------------------------
If strReturn.Length > 2 Then
i = 0
strPeso = ""
Dim blnLeyoNumero As Boolean
For i = 1 To strReturn.Length
car = Mid(strReturn, i, 1)
If IsNumeric(car) Or car = "." Then
strPeso = strPeso & car
blnLeyoNumero = True
Else
If blnLeyoNumero Then Exit For
End If
Next
End If
'--------------------------------------------------
'Listo ahora el dato lo mostramos en la cajita de texto, ahora si a probarlo
Me.lblPeso.Text = strPeso
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
LimpiaCambios()
TipoMov = "1"
Me.Button2.Enabled = False
Me.Button3.Enabled = True
Me.Button4.Enabled = True
Id_Control = InputBox("Favor de Ingresar el Número de Control", "Identificacion de Número de Control")
Buscar_Control(Id_Control, TipoMov, 2)
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Label18.Text = TimeOfDay.TimeOfDay.ToString
Label19.Text = DateString
'Me.lblHora.Text = String.Format("{0:HH:mm:ss}", DateTime.Now)
Me.lblHora.Text = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss")
End Sub
Private Sub GroupBox1_Enter(sender As System.Object, e As System.EventArgs) Handles GroupBox1.Enter
End Sub
Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
Me.lblPeso.Text = strPeso
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
LimpiaCambios()
End Sub
Private Sub LimpiaCambios()
Me.Button1.Enabled = True
Me.Button2.Enabled = True
Me.Button3.Enabled = False
Me.Button4.Enabled = False
Me.txtControl.Text = ""
Me.txtNCA.Text = ""
Me.txtNCA.Text = ""
Me.CboEmbarque.SelectedIndex = -1
Me.txtTractor.Text = ""
Me.txtPlaca1.Text = ""
Me.TxtPlaca2.Text = ""
Me.CbClientes.SelectedIndex = -1
Me.CbTransportista.SelectedIndex = -1
Me.TxtChofer.Text = ""
Me.TxtPesador.Text = ""
End Sub
Private Sub Abrir_Conexion()
Try
conexion = New SqlConnection("Data Source=XX.XX.X.X;Initial Catalog=Mecano_Rimsa_Mina_PR;User ID=sa;Password=************")
conexion.Open()
'MsgBox("Se conecto a la Base de Datos")
Catch ex As Exception
MsgBox("No se conecto a la Base de Datos" + ex.ToString)
End Try
End Sub
Private Sub LlenarComboBoxClientes(ByVal Cb As ComboBox)
Try
enunciado = New SqlCommand("Select Nombre From Mina_Clientes", conexion)
respuesta = enunciado.ExecuteReader
While respuesta.Read
Cb.Items.Add(respuesta.Item("Nombre"))
End While
respuesta.Close()
Catch ex As Exception
MsgBox("Error al Consultar" + ex.ToString)
End Try
End Sub
Private Sub LlenarComboBoxTransporte(ByVal Cb As ComboBox)
Try
enunciado = New SqlCommand("Select Nombre From Mina_Transportistas", conexion)
respuesta = enunciado.ExecuteReader
While respuesta.Read
Cb.Items.Add(respuesta.Item("Nombre"))
End While
respuesta.Close()
Catch ex As Exception
MsgBox("Error al consultar" + ex.ToString)
End Try
End Sub
Function Buscar_Control(ByVal Id_Control As String, ByVal Tipo_Mov As String, Version As Integer)
Dim Salida As String = "Registro Encontrado"
Dim da As SqlDataAdapter = New SqlDataAdapter("Select * From Mina_Reg_Bascula Where Id_Control=@Id_Control", conexion)
Dim LlenaDatos As DataSet = New DataSet
da.Fill(LlenaDatos)
txtControl.DataBindings.Add(New Binding("Text", LlenaDatos, "Mina_Reg_Bascula.Id_Control.Id_Control"))
Dim Salida As String = "Registro Encontrado"
Dim Dt As DataTable
Try
enunciado = New SqlCommand("SisBascula_CargaControl", conexion)
enunciado.CommandType = CommandType.StoredProcedure
With enunciado.Parameters
.AddWithValue("@Id_Control", Id_Control)
.AddWithValue("@Tipo_Mov", "1")
.AddWithValue("@Version", 2)
End With
enunciado.ExecuteNonQuery()
Dim Reader As SqlDataReader = enunciado.ExecuteReader
If Reader.HasRows Then
If Reader.Read Then
txtControl.Text = Reader.GetString(0)
txtNCA.Text = Reader.GetString(12)
txtTractor = Reader.GetString(13)
txtPlaca1 = Reader.GetString(14)
TxtPlaca2 = Reader.GetString(15)
TxtPesador.Text = Reader.GetString(16)
TxtChofer.Text = Reader.GetString(14)
End If
Reader.Close()
End If
Catch ex As Exception
Salida = "No se encontro registro: " + ex.ToString
End Try
Return Salida
End Function
End Class
