El sistema es sencillo, una pantalla que captura datos y luego otra que convierte esa data a un archivo XML. Para los que programamos Visual Foxpro también es útil ya que desde la versión 7 podemos trabajar con este tipo de archivos.
Bueno, creemos el proyecto, seleccionemos “Aplicación para Smart Device”:
Seleccionamos “Pocket PC” como plataforma de desarrollo, y “Aplicación para Windows” como tipo de proyecto a crear y pulsemos “Aceptar”.
Bueno ahora que ya tenemos creado nuestro proyecto “Sistema”, vemos como aparece el primer Form con su respectivo “MainMenu”, el cual por omisión lleva el nombre de “Form1”:
A este Form le cambiaremos el nombre, le pondremos “Menu”, para hacerlo en el Explorador de Soluciones pulse el botón derecho sobre “Form1”, seleccionamos “Cambiar Nombre” y le ponemos “Menu”.
Ahora pulsemos un clic sobre el Form1, y en la ventana de propiedades del Form1, cambie la propiedad (Name) de “Form1” a “Menu”. En el Explorador de Soluciones Pulse el botón derecho sobre “Sistema”, pulse clic sobre “Propiedades”, ahora cambiaremos el “Objeto Inicial”, de “Form1” a “Menu”, pulse “Apply” y “Ok” y continuemos.
Esta es la forma en que lucirán los Forms del sistema:
Este será nuestro Form Principal, cuyo nombre será “Menu”, como vimos anteriormente. Aquí es donde se creara la base de datos y la tabla con la que vamos a trabajar.
Private
Sub menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Sub menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
If Not File.Exists("\Program
Files\Sistema\zafra.sdf") Then
'creación
de la base de datos
Try
Dim Engine As SqlCeEngine
Engine = New SqlCeEngine
Engine.LocalConnectionString = "DataSource=\Program Files\Sistema\zafra.sdf; Password=; Encrypt DataBase=False"
'este es el comando que crea la base de datos
Engine.CreateDatabase()
'captura de errores de la base de datos
Catch
sqlex As SqlCeException
Dim sqlError
As SqlCeError
For Each sqlError In sqlex.Errors
MessageBox.Show(sqlError.Message)
Next
'captura de otros errores
Catch ex
As Exception
MessageBox.Show("Error
" & ex.Message)
End
Try
'creación de la tabla
Dim
cn As SqlCeConnection
Try
cn = New SqlCeConnection("Data
Source=\Program Files\sistema\zafra.sdf")
cn.Open()
Dim cmd
As SqlCeCommand =
cn.CreateCommand
'
Creación de la tabla de la base de datos
cmd.CommandText
= "CREATE TABLE Colecta (" &
_
"Lote integer NOT NULL PRIMARY KEY, " & _
"Fecha datetime, " & _
"camion nchar(5)," &
_
"cargas integer)"
cmd.ExecuteNonQuery()
'si deseáramos crear otra tabla, haríamos “cmd.CommandTex=”Create Table …”
'y luego cmd.ExecuteNonQuery(), este proceso se repetiría para c/tabla a crear.
Catch
sqlex As SqlCeException
Dim sqlError
As SqlCeError
For Each sqlError In sqlex.Errors
MessageBox.Show(sqlError.Message)
Next
Catch ex As Exception
MessageBox.Show("Error " & ex.Message)
Finally
If cn.State
<> ConnectionState.Closed Then
cn.Close()
End If
End Try
End If
End Sub
Estas son las opciones del Menú del sistema:
Los menus se programan igual que para escritorio.
Private
Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem2.Click
Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem2.Click
Me.Close()
End Sub
Private Sub
MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem3.Click
MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem3.Click
Dim frm
As New colecta
frm.Show()
End Sub
Private Sub
MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem4.Click
MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MenuItem4.Click
Dim frm
As New
xml
frm.Show()
Sub
Este es el form de la colecta de datos, en cual usaremos algunas validaciones y procedimientos:
Botón Nuevo:
llama a un procedimiento que limpia los TextBoxs
'Limpia los textboxes
Private Sub LimpiaTextbox()
Me.txtLote.Text = ""
Me.txtFecha.Text = ""
Me.txtCamion.Text = ""
Me.txtCargas.Text = ""
Botón
Guardar:
' Agregamos registro
cmd.CommandText = "INSERT INTO colecta" & _
"(lote, fecha, camion, cargas)" & _
" VALUES (?, ?, ?, ?)"
cmd.Parameters.Add(New SqlCeParameter("@lote", lot))
cmd.Parameters.Add(New SqlCeParameter("@fecha", fec))
cmd.Parameters.Add(New SqlCeParameter("@camion", truck))
cmd.Parameters.Add(New SqlCeParameter("@cargas", car))
cmd.Prepare()
cmd.ExecuteNonQuery()
Botón Eliminar:
'Eliminamos registro
cmd.CommandText = "DELETE FROM colecta WHERE lote=" & Me.txtLote.Text
cmd.ExecuteNonQuery()
Este form no servirá para convertir la tabla “colecta” a un archivo XML:
Private
Sub btnXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnXml.Click
Sub btnXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnXml.Click
Dim cn As SqlCeConnection
Try
cn = New SqlCeConnection("Data
Source=\Program Files\sistema\zafra.sdf")
cn.Open()
Dim cmd
As SqlCeCommand =
cn.CreateCommand
cmd.CommandText = "SELECT * FROM colecta"
Dim da As New SqlCeDataAdapter(cmd)
Dim ds As New DataSet
da.Fill(ds)
' Aquí creamos el Archivo .XML
ds.WriteXml("colecta.xml")
MessageBox.Show("Archivo creado")
Me.Close()
Catch sqlex
As SqlCeException
Dim sqlError
As SqlCeError
For Each sqlError In sqlex.Errors
MessageBox.Show(sqlError.Message)
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If cn.State
<> ConnectionState.Closed Then
cn.Close()
End If
End Try
No hay comentarios:
Publicar un comentario