lunes, 3 de mayo de 2010

Insetar facturas usando LINQToSQL (2ª parte)

Hola,
En este post voy a continuar con el desarrollo de la aplicación Clientes-Facturas. Voy a explicar como agregar un nuevo formulario que me permita insertar facturas para un cliente seleccionado, y también cómo puedo pasar información de un formulario al otro. Esto último es tan sencillo como modificar el constructor de la clase Form2 (del formulario para insertar facturas). A parte voy a utilizar el control “ErrorProvider”, que es un control no visual, y me permitirá indicar al usuario cuando un valor introducido no es correcto.
Hay que tener cuidado a la hora de validar las entradas del usuario, ya que es muy fácil que salte un excepción, y si no es correctamente manejada puede hacer que la aplicación se cierre y provocar una pérdida de datos. El típico ejemplo es el campo que le pide al usuario un número y el usuario entra un texto. Pues bien, si el error no se maneja correctamente saltará una excepción al intentar almacenar un valor de tipo String en una variable de tipo Int.
Visual Studio ofrece muchos controles de validación que proporcionan un resultado profesional. De hecho se podría poner el típico label al lado de cada control que mostrara un texto cuando se detectará que lo introducido no es correcto. Creo recordar que en el libro Excel que generaba el fichero para el modelo 115 de la AEAT lo hicé de esta manera, usando el evento LostFocus() del control para hacer la validación. El problema de hacerlo así es que aumentamos las líneas de código de forma ineficiente.

Afortunadamente en Visual Studio tenemos el evento Validating que nos permite cancelar la validación -y la inserción de una nueva factura- si lo introducido por el usuario no es correcto. Para ello basta con escribir e.cancel = true, para cancelar todos los eventos que se producirían tras el evento Validating, como el cambio de foco o el cierre del formulario. Además si queremos que usuario no tenga una sensación de no poder cambiar el foco y de estar prisinero por la aplicación, debemos establecer la propiedad AutoValidate del formulario en EnableAllowFocusChange. Y por último si queremos que un componente no genere eventos de validación se puede establecer la propiedad CausesValidation a false. El ejemplo típico es el botón de cancelar de un formulario, ya que al cancelar, como estoy desechando los datos, no quiero validarlos.

Bueno el proyecto entero con su código en C# está disponible aquí para descarga y aquí abajo el video donde voy a explicar de forma práctica todo la anterior.

2ª Parte de la aplicación Clientes-Facturas usando LINQToSQL from Raúl González on Vimeo.

Pues bien en el siguiente post me voy a centrar en el IVA, pero no desde un punto de vista fiscal ni contable (ese ya es para mí el pan nuestro de cada día), sino programando. Programando un sitio web ASP.NET, que posteriormente subiré al ISS ,y que nos permitirá obtener el fichero del modelo 303 de la AEAT.

1 comentario:

  1. hola!
    he visto tu video en youtu
    era justo l oq necesitaba jeje
    tngo algunas preguntas..
    podes agregarme al msn por favor?
    te lo dejo, ok?
    lizzyta_0_0@hotmail.com

    gracias
    bye

    ResponderEliminar