Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Aplicación de ingresos por impresión de fotografías Propuesta de aplicación Un cliente ingresa a nuestra casa de desarrollo de software, y nos indica que requiere de un programa que controle los ingresos por la impresión de fotos que el cliente selecciona en Maneja diferentes tamaños de fotos y a color y blanco/negro, cada tamaño tiene su precio tanto en color como en blanco/negro. Requiere una opción donde se capture lo que selecciono el cliente y guardarlo, imprimir el ticket con los datos del cliente, la fecha, etc. Una opción de re impresión de ticket por si lo pierde el cliente Un reporte donde se indique los ingresos del día Un reporte donde capturemos 2 fechas y nos muestre lo que se vendió Un reporte donde se muestre en pantalla los clientes que han venido a imprimir sus fotos del día. Los tamaños de fotos que maneja son: color b/n 10 x 15 1.80 1.40 13 x 18 2.10 1.70 15 x 20 3.00 2.50 Análisis de sistema General 1.- Captura de ingresos de acuerdo a los tamaños de las fotos y color 2.- Reimpresion de ticket 3.- reporte de ventas diarias 4.- Reporte de ventas en un rango de fechas 5.- Reporte de catalogo de clientes Especifico 1.- En la CAPTURA se debe conocer los tipos de tañamos que maneja la empresa y sus precios, identificar los eleméntenos que intervendrán en la captura 2.- Solo si se capturo un ticket se puede re imprimir, el cliente debe dar su nombre para poder buscarlo y reimprimir 3.- Este reporte se debe enviar a pantalla y los datos los debe tomas del arreglo de fotos que se crea y solo deben mostrarse aquellos que sean del día que tenga marcada la computadora 4.- El programa debe pedirnos dos campos fechas para poder identificar aquellos ticket que cumplan con el rango de fechas capturado y mostrar en pantalla 5.- Item Registro Folio Nombre Fecha Tam_10x15C Tam_10x15N Tam_13x18C Tam_13x18N Tam_15x20C Tam_15x20N Total Registro Folio Int Nombre String Fecha Date Tam_10x15c Int Tam_10x15n Int Tam_13x18c Int Tam_13x18n Tam_15x20c Tam_15x20n Total Int int Int double Identificamos estos datos Analizamos nuestro objeto, sus atributos y tipo de datos Tamaños Existe otra clase para esta aplicación Precio_10x15c Precio_10x15n Precio_13x18c Precio_13x18n Precio_15x20c Precio_15x20n Tamaños Precio_10x15c double Precio_10x15c double Precio_13x18c Double Precio_13x18n double Precio_15x20c Double Precio_15x20n double class { Public double Precio_10x15c {get;set;} Public double Precio_10x15n {get;set;} Public double Precio_13x18c {get;set;} Public double Precio_13x18n {get;set;} } Tamaño Ejercicio 1a Creamos una clase llamada “Registro” Busque el nombre del proyecto Buscamos la opción “agregar” y seleccionamos la opción “clase” . using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FotoNet { class Registro { public int Folio { get; set; } public string Nombre { get; set; } public string Fecha { get; set; } public int Tam_10x15c { get; set; } public int Tam_10x15n { get; set; } public int Tam_13x18c { get; set; } public int Tam_13x18n { get; set; } public int Tam_15x20c { get; set; } public int Tam_15x20n { get; set; } public double Total { get; set; } } } Registro Folio Int Nombre String Fecha Date Tam_10x15c Int Tam_10x15n Int Tam_13x18c Int Tam_13x18n Tam_15x20c Tam_15x20n Total Int int Int double Descriptores de acceso Se activa cuando recibe un datos, sino se especifica , es de lectura Se ejecuta cuando se lee el atributo, sino se especifica, será de solo escritura el atributo FORM de CAPTURA Busque el nombre del proyecto Buscamos la opción “agregar” y seleccionamos la opción “Formulario (Windows form)” . Creamos un nuevo FORM para la aplicación en curso, en este nuevo form vamos a capturar información que se guardara primero en cada “propiedad” del registro en curso. El nombre del “FORM” no lo cambiaremos, vamos a dejar el que nos muestre que es: “Form2.cs” Aparece este cuadro de dialogo para nombrar y confirmar el nuevo formulario Esta imagen representa la INTERFAZ GRAFICA DE USUARIO (GUI) Las herramientas que se usaran para el desarrollo de esta GUI son: Label Button DatetimePicker GroupBox Desarrolle este formulario de tal forma que al termino quede igual que la imagen que esta a la izquierda https://icon-icons.com/es/categoria/Comercio-electrónico-y-Compras/12 Link para bajar iconos para su aplicación Ejecutar FORM 2 desde Menú Y CAMBIO DE IDIOMA PARTE 3 1.- Cambien los dos picturebox (las banderas) al PANEL llamado “PANELSIDEMENU”, colóquelo en la parte inferior a la derecha 2.- Cambie el LABEL de lenguaje a un costado a la izquierda de donde puso las “banderas” 3.- Agregar un nuevo panel sobre el “FORM1” (el principal) 3.1.- en la propiedad DOCK, seleccione FILL 3.2.- Cambie el nombre a “panelFormHijo”(respete las mayúsculas en el nombre) 4.- Creamos una “CLASE”, la llamamos Idioma_del_sistema 4.1.- Codificamos una única “propiedad” llamada Idioma (respete las mayúsculas), será de tipo BOOLEAN, debe indicar “get y set”. 5.- Codifique un constructor para esa clase, quedando codificado de la siguiente forma: public class Idioma_del_sistema // Se crea una clase con ese nombre { public Boolean Idioma { get; set; } // solo contendra un atributo public Idioma_del_sistema() // este es su constructor { this.Idioma = false; // El valor inicial del atributo de la clase se declara falso // para indicar que empiece con lenguaje en español } } 6.- Creamos un objeto llamado “ingles” en el FORM1 dentro de la clase Fotografias como se muestra a continuación: public partial class Fotografias : Form { Idioma_del_sistema ingles = new Idioma_del_sistema(); } 7.- Creamos una variable tipo “FORM” en la siguente línea , después del objeto llamado ingles private Form FormActivo = null; 8.- VERIFIQUE que en el FORM1 , en el evento “CLIC” de los 2 picturebox(donde están las banderas) para la bandera de México este la instrucción: ingles.Idioma = false; y para la bandera de EU, sea, ingles.Idioma = true; antes de las instrucciones que ya existe en ese evento. 9.- Codificamos el siguiente método: private void AbrirFormHijo(Form FormHijo) { if (FormActivo != null) FormActivo.Close(); FormActivo = FormHijo; FormHijo.TopLevel = false; FormHijo.FormBorderStyle = FormBorderStyle.None; FormHijo.Dock = DockStyle.Fill; panelFormHijo.Controls.Add(FormHijo); panelFormHijo.Tag = FormHijo; FormHijo.BringToFront(); FormHijo.Show(); } 10.- PASAMOS A LA CODIFICACION EN EL FORM 2 (QUE ES EL DE CAPTURA) 11.- Vaya al modo DISEÑO del FORM2, identifique el BOTON “salir” , con el raton de doble “clic” 11.1.- Dentro de este EVENTO, teclee la instrucción this.Close() 12.- Dentro del método principal de la clase del FORM2 el cual es : public partial class Form2 : Form { 12.1.- Creamos una variable de tipo boolean llamada lenguaje boolean lenguaje; 13.- Identifique el EVENTO principal del FORM2, debe ser: public Form2() 13.1.- Entre los paréntesis, pasamos como parámetro la variable que se creo en el paso anterior boolean lenguaje 13.2.- Debe quedar de la siguiente forma: public Form2(boolean lenguaje) 14.- Localice la instrucción ya programada : InitializeComponent(); y debajo de esa instrucción escriba: this.lenguaje = lenguaje; 15.- Todas estas instrucciones (empezando por el punto 12) deben quedar de la siguiente forma: public partial class Form2 : Form { Boolean lenguaje; public Form2(Boolean lenguaje) { InitializeComponent(); this.lenguaje = lenguaje; } Paso 12.1 Paso 13.1 Paso 14 16.- En el EVENTO Form2_Load(object sender, EventArgs e), codifique: if (lenguaje == true) { label1.Text = "Date:"; label2.Text = "Ticket:"; label3.Text = "Name customer:"; label7.Text = "Coulor:"; label8.Text = "Black/white"; label9.Text = "TOTAL"; groupBox1.Text = "Size of pictures"; groupBox2.Text= "Select"; groupBox3.Text = "General date"; button1.Text = "SAVE"; button2.Text = "PRINTER"; button3.Text = "CANCEL"; } 17.- Verifique que las bibliotecas para este FORM2 sean las mismas que se muestran aquí: using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static System.Net.Mime.MediaTypeNames; Si en su proyecto le falta una biblioteca, debe anexarla porque sino, algunas instrucciones no se reconoceran
Compartir