La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PRÁCTICA A REALIZAR EN EL CURSO DE ADO.NET SISTEMA AGENDA.NET.

Presentaciones similares


Presentación del tema: "PRÁCTICA A REALIZAR EN EL CURSO DE ADO.NET SISTEMA AGENDA.NET."— Transcripción de la presentación:

1 PRÁCTICA A REALIZAR EN EL CURSO DE ADO.NET SISTEMA AGENDA.NET

2 Crear un nuevo proyecto

3 DISEÑAR EL SIGUIENTE FORMULARIO DE INICIO Para ello debemos agregar un Main Menu, un ToolBar un ImageList, un Status Bar, un Datetimepicker y un Picture Box

4 Código para que funcione el ToolBar Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Select Case ToolBar1.Buttons.IndexOf(e.Button) Case 0 Dim x As New Datos() x.Visible = True Case 1 MsgBox("EN CONSTRUCCIÓN") Case 2 MsgBox("EN CONSTRUCCIÓN") Case 3 End End Select End Sub

5 Código para mandar llamar a otro formulario Dim x As New Datos() x.Visible = True

6 Crear la siguiente base de datos en Guardarla en la misma carpeta del proyecto

7 Diseñar el formulario de altas

8 Nombres de los controles txtNombre txtTelefono txtMail txtCumple btnPrimero btnAnterior btnSiguiente btnUltimo btnAgregar btnGuardar btnBorrar btnImprimir btnSalir Datagrid1

9 Crear la conexión a la base de datos y seleccionar el proveedor de datos

10 Seleccionar la base de datos y probar la conexión

11 Conexión a la base de datos

12 Crear la OleDbConnection y el OleDbDataAdapter y cambiarle el nombre a oledbconnagenda y daAgenda en la propiedad name

13 Agregar un conjunto de datos o Dataset al proyecto, dando clic derecho sobre el daAgenda

14 Cambiamos el nombre al dataset por dsAgenda

15 Vinculamos cada uno de los controles en la propiedad DataBindings, seleccionando el dataset, tabla y campo correspondiente.

16 Vinculamos el Datagrid con el origen de datos correspondiente en la propiedad Datasource.

17 Llenamos los controles con la base de datos de la siguiente manera:

18 Código para llenar los controles: Llenamos el dataAdapter con el Dataset Private Sub frmDatos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.dsAgenda.Clear() daAgenda.Fill(dsAgenda) End Sub

19 Código para los siguientes botones: Boton primero: BindingContext(DsAgenda, Agenda").Position = 0 MostrarPosicion() Boton Anterior: BindingContext(dsAgenda, "Agenda").Position -= 1 MostrarPosicion() Boton Siguiente BindingContext(DsAgenda, Agenda").Position += 1 MostrarPosicion() Boton Ultimo BindingContext(DsAgenda, Agenda").Position = _ BindingContext(DsAgenda, Agenda").Count - 1 MostrarPosicion()

20 Código mostrar posición Private Sub MostrarPosicion() Dim bmBase As BindingManagerBase = BindingContext(DsAgenda, Agenda") Dim iTotal As Integer = bmBase.Count 'total registros Dim iPos As Integer If iTotal = 0 Then lblRegistros.Text = "No registros" Else iPos = bmBase.Position + 1 'número (1, 2,...) de registro 'Mostrar información en la etiqueta lblRegistros.Text = iPos.ToString & " de " & iTotal.ToString End If End Sub

21 Ahora si podemos desplazarnos a los diferentes registros a través de los botones programados.

22 Código para el botón Agregar Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click Me.txtNombre.Text = "" Me.txtCumple.Text = "" Me.txtMail.Text = "" Me.txtTelefono.Text = "" Me.txtNombre.Focus() End Sub

23 Código para el bóton Guardar Dim miTabla As DataTable = dsAgenda.Agenda Dim cfilas As DataRowCollection = miTabla.Rows Dim nuevaFila As DataRow Dim nombre As String Dim telefono As String Dim As String Dim cumple As String nombre = Me.txtNombre.Text telefono = Me.txtTelefono.Text = Me.txtMail.Text cumple = Me.txtCumple.Text Try 'Nueva fila nuevaFila = miTabla.NewRow 'Columnas de la tabla nuevaFila.Item("NOMBRE") = nombre nuevaFila.Item("TELEFONO") = telefono nuevaFila.Item(" ") = nuevaFila.Item("CUMPLE") = cumple MsgBox("Registro agregado") cfilas.Add(nuevaFila) Catch ex As System.Data.ConstraintException MessageBox.Show("ERROR DE CLAVE DUPLICADA") End Try daAgenda.Fill(dsAgenda) If (dsAgenda.HasChanges()) Then daAgenda.Update(dsAgenda) MessageBox.Show("Origen de datos actualizado") End If

24 Código para eliminar un registro Dim bmBase As BindingManagerBase = BindingContext(dsAgenda, "Agenda") Dim vistaFilaActual As DataRowView Dim NL As String = Environment.NewLine If (MessageBox.Show("¿Desea borrar este registro?" & NL, _ "Buscar", MessageBoxButtons.YesNo, _ MessageBoxIcon.Question) = DialogResult.Yes) Then vistaFilaActual = bmBase.Current vistaFilaActual.Row.Delete() End If If (dsAgenda.HasChanges()) Then daAgenda.Update(dsAgenda) MessageBox.Show("Origen de datos actualizado") End If

25 Agregar una referencia a Excel para exportar los datos.

26 Código para imprimir a Excel Dim excelApp As New excel.Application() Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add Dim excelWorksheet As Excel.Worksheet = _ CType(excelBook.Worksheets(1), Excel.Worksheet) excelApp.Visible = True With excelWorksheet ' Set the column headers and desired formatting for the spreadsheet..Columns().ColumnWidth = Range("A1").Value = "NOMBRES".Range("A1").Font.Bold = True.Range("B1").Value = "TELEFONO".Range("B1").Font.Bold = True.Range("C1").Value = " ".Range("C1").Font.Bold = True.Range("D1").Value = "CUMPLEAÑOS".Range("D1").Font.Bold = True ' Start the counter on the second row, following the column headers Dim i As Integer = 2 ' Loop through the Rows collection of the DataSet and write the data ' in each row to the cells in Excel. Dim dr As DataRow For Each dr In dsAgenda.Tables(0).Rows.Range("A" & i.ToString).Value = dr("nombre").Range("B" & i.ToString).Value = dr("telefono").Range("C" & i.ToString).Value = dr(" ").Range("D" & i.ToString).Value = dr("cumple") i += 1 Next End With

27

28 CONSULTAS: Agregue y diseñe el siguiente formulario.

29 Nombres de los controles del formulario consultas: cboNombres rbtNombresA rbtNombresD cmdSort gridAmigos cmdNames

30 CONSULTAS Agregar el siguiente código en la parte superior para importar las clases de la base de datos OleDb. Imports System.Data.OleDb Crear una conexión a la base de datos. Dim conn As String = _ "Provider=Microsoft.jet.oledb.4.0;data source=D:\EJEMPLO SEMANA ACADEMICA\AGENDA.mdb;"

31 Declaraciones en el formulario de consultas Imports System.Data.OleDb Dim conn As String = _ "Provider=Microsoft.jet.oledb.4.0;data source=D:\EJEMPLO SEMANA ACADEMICA\AGENDA.mdb;" Dim DVAmigos As DataView Protected Const DEFAULT_FILTER As String = "Nombre like '%'" Protected Const DEFAULT_SORT As String = "Nombre ASC, Nombre DESC" Protected Const NO_RECORDS_FOUND_MESSAGE As String = "No existen registros en ese criterio de busqueda." Protected Const CAPTION_TITLE As String = "Ordena y filtra en un Dataview" Protected Const NO_RECORDS_TO_SORT_MESSAGE As String = "No existen registros para ordenar." Protected Const CAPTION_ICON_BUTTON As MsgBoxStyle = CType(MsgBoxStyle.Information + MsgBoxStyle.OKOnly, MsgBoxStyle)

32 Código para realizar consultas en el botón cmdNames Dim strFilter As String 'Process the row filter criteria based on first character of the product name. ' if was selected, show all rows in the grid, else show only ' those rows beginning with the selected letter. If cboNombres.Text = " " Then strFilter = "Nombre like '%'" Else strFilter = "Nombre like '" & cboNombres.Text & "%'" End If DVAmigos.RowFilter = strFilter 'Display the sorted and filtered view in the datagrid gridAmigos.DataSource = DVAmigos 'Display the number of rows in the view 'lblRecords.Text = STATUS_MESSAGE & dvProducts.Count.ToString 'lblFilter.text = strFilter 'display a msgbox if no records were found that ' match the user criteria If DVAmigos.Count = 0 Then MsgBox(NO_RECORDS_FOUND_MESSAGE, CAPTION_ICON_BUTTON, CAPTION_TITLE) End If

33 Código para el botón cmdSort Dim strSort As String 'Only sort if the dataview currently has records If DVAmigos.Count = 0 Then MsgBox(NO_RECORDS_TO_SORT_MESSAGE, CAPTION_ICON_BUTTON, CAPTION_TITLE) Exit Sub End If 'Process the sort criteria selected for the view ' construct a sort string for the primary, secondary sort keys ' The Primary sort key is the UnitsInStock column, the ' secondary sort key is UnitsOnOrder column If rbtNombresA.Checked = True Then strSort = "Nombre ASC" Else strSort = "Nombre DESC" End If If rbtNombresD.Checked = True Then strSort = strSort & ", Nombre ASC" Else strSort = strSort & ", Nombre DESC" End If 'Apply the sort criteria to the dataview DVAmigos.Sort = strSort 'Display the view in the datagrid Me.gridAmigos.DataSource = DVAmigos

34 Código del formulario de consultas en el evento load Private Sub frmconsultas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim amigosConnection As New OleDbConnection(conn) Dim productadapter As New OleDbDataAdapter("SELECT nombre, telefono, , cumple from AGENDA", amigosConnection) Dim dsamigos As New DataSet() Dim cmd As OleDbCommand Dim idrfc As String amigosConnection.Open() productadapter.Fill(dsamigos, "AGENDA") ''create the dataview; use a constructor to specify '' the sort, filter criteria for performance purposes DVAmigos = New DataView(dsamigos.Tables("AGENDA"), DEFAULT_FILTER, DEFAULT_SORT, DataViewRowState.OriginalRows) ' Bind the DataGrid to the dataview created above gridAmigos.DataSource = DVAmigos ''Populate the combo box for productName filtering. '' Allow a user to select the first letter of products that they wish to view cboNombres.Items.AddRange(New Object() {" ", "A", "B", "C", "D", "E", "F", "G", _ "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}) cboNombres.Text = " " End Sub

35 REPORTES CON CRYSTAL REPORT Diseñar el siguiente formulario: El control CrystalReportViewver debe de llamarse crv. Y debemos importar lo siguiente: Imports CrystalDecisions.CrystalReports.Engine

36 Código para los reportes, botón cargar reporte Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo ' Create a report document instance to hold the report Dim Datos As New ReportDocument() Try ' Load the report crv.Visible = True Datos.Load("D:\EJEMPLO SEMANA ACADEMICA\AGENDA\REPORTE.rpt") crv.ReportSource = Datos ' Zoom viewer to fit to the whole page so the user can see the report crv.Zoom(2) Catch Exp As LoadSaveReportException MsgBox("Incorrect path for loading report.", _ MsgBoxStyle.Critical, "Load Report Error") Catch Exp As Exception MsgBox(Exp.Message, MsgBoxStyle.Critical, "General Error") End Try

37


Descargar ppt "PRÁCTICA A REALIZAR EN EL CURSO DE ADO.NET SISTEMA AGENDA.NET."

Presentaciones similares


Anuncios Google