Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Demo programa táctil (https://www.clubdelphi.com/foros/showthread.php?t=83837)

José Luis Garcí 04-08-2013 08:45:07

Demo programa táctil
 
Hola compañeros, el compañero A-CLICK me solicito en una serie de mensajes privados que le ayudara en un programa TOUCH (táctil), para ello le he montado una demo de un programa totalmente táctil, no tendremos por que usar para nada ni teclado ni ratón, pero si una pantalla de este tipo.

Primero os pongo los mensajes que me ha mandado

Cita:

Hola Jose 1/2
Disculpa que te escriba por aquí en privado, pero considero que cuando lo haga por el foro que inicie sea aportando información jejeje...

Te cuento en mis inicios con Delphi ya logre conectarme a la base de datos y hacer la primera parte del pequeño sistema que estoy programando... pero me quede en la parte mas importante del sistema touch... te lo explico de nuevo por pasos

1.- Introduzco el numero de "Tarjeta" ( esto es simplemente un numero de pedido manual asignado a un cliente)

2.- Muestra: "Nombre del Cliente" y Numero de la "Tarjeta" asociada perfecto, abajo abra un grid que muestra en blanco si no se le a asignando un servicio o si ya tiene servicios cuales tiene...

Ejm:

Cliente: Maria Mora
Trajeta:1121

Servicio - Servidor
Lavado - Ana Pachecho
Corte - Jesus Aguilera

pero aquí debe haber un botón que diga [AGREGAR SERVICIO]

"AQUI COMIENZA MIS DUDAS"

3.- En un Formulario Nuevo o Ventana Nueva me da las opciones

Formulario Servicios

[LAVADOS] [CORTES] [TINTES] [COMBOS] [PROMOCIONES]

//Pueden ser muchos mas... aquí me gustaría un botón adelante y atras com me dijiste se podia hacer y que muestre por pagina max 10 botones por decir algo...


Bien....

3.- Selecciono [TINTES]

desaparecen el primer grupo de botones y aparecen

[TINTE BÁSICO] [MECHAS] [REFLEJOS]

Selecciono la opción [TINTE BASICO] y allí sale un menú con todos los servicios de ese tipo

-Tinte cabello corto
-Tinte Cabello largo
-Tinte Marca WELLA
-Tinte Marca STILE
-Tinte blablabla

recuerda que es en touch

Ingrese su "Código de Servidor" (es la persona que hace el servicio)

// TOMO EL VALOR DEL BOTON Y EL CODIGO DEL SERVIDOR Y LO ANEXO EN EL GRID ASOCIADO AL CLIENTE

// Puede llegar a haber un nuevo nivel antes de asignar el servicio ojo
Cita:

Hola Jose 2/2
MUUUUY FACIL JAJAJAJAJA (PARA TI )
Ahora te explico de donde provienen
TABLA CLASIFICACION DE SERVCIOS
CodInsta - Descripcion - Nivel - InsPadre
1 LAVADOS - 1 - 0
2 CORTES - 1 - 0
3 TINTES - 1 - 0
4 COMBOS - 1 - 0
5 PROMOCIONES - 1 - 0
6 TINTE BASICO - 2 - 3
7 MECHAS - 2 - 3
8 REFLEJOS - 2 - 3

HAY OTRA TABLA DE SERVICIOS

CodServ - DescServ - Insta - Precio
TC01 - Tinte cabello corto - 2 - 700,00
TC02 - Tinte Cabello largo - 2 - 900,00
TC03 - Tinte Marca WELLA - 2 - 1500,00
TC05 - Tinte blablabla - 3 - 1650,00
CC01 - Corte de Cabello Corto - 2 - 180,00
CC02 - Corte de Cabello largo - 2 - 250,00

Fíjate que los servicios pueden estar asociados a un Nivel 1 ó 2
Pero no mezclados eso es una condición que yo pondré

Me comentaste de unos controles pero la verdad o no se o me perdi
me dijiste q agrupara los botones... pero te soy sincero no se como hacerlo

Me gustaría que los caption de los botones provengan directamente de los valores de las tablas de la base de datos y que la cantidad de botones sea definida al espacio del formulario ejemplo máximo por decir 10 botones x pantalla, si son mas de 10 aparezca el botón siguiente. cuando seleccione el nivel 1 del menu paso al menu 2 o al menu de servicios selecciono el q voy a agregar... paso a una pantalla de confirmacion donde me muestra

JESUS AGUILERA (EL SERVIDOR)

DESEA AGREGAR: Tinte Marca WELLA

AL CLIENTE: Maria Mora
[CONFIRMAR] [ANULAR]

si anulo voy a la pantalla principal obvio si Confirmo allí es cuando guardo en la base de datos que se muestra en el grid principal

me ayudas paso a paso???

Gracias de Antemano
Cita:

Re: Hola Jose 1/2
Buenisimo... estas autorizado... todo lo que venga de ayuda es bueno... luego de todo eso voy a construir un turorial en word o pdf paso a paso con las pantallas identificando cada componente o cada cosa... que haga, eso si... colocandote los creditos que te mereces...

bueno manos a la obra...

nota: el delphi 2010 es el Embarcadero XE2 ???
He de decir, que la demo esta hecha de manera rápida, así que es probable, que pueda tener algún error, que la he hecho en firebird, que esta con componentes estándar + el imagengrid de los componentes del Clubdelphi y los míos propios, tanto los del ccd como los míos son totalmente gratuitos.

La demo es eso una demo, lo que muestro es como aplicar un programa a los sistemas táctiles, el tamaño de las pantallas es de 800 x 1000, me he basado en el texto del compañero A-CLICk sólo en ciertos puntos, lo que he hecho es una visión personal de como hacer este tipo de programas, espero os sea útil y sirva para algo.

Os pondré algunas pantallas y comentarios, así como la estructura d las tablas, y subiré al final el programa al FTP del club.

José Luis Garcí 04-08-2013 08:48:19

Comenzamos con las 12 tablas, no haré comentarios, si existe alguna duda ya sabéis comentar, e intentare ser explicito

Cita:

CREATE TABLE CITAS (
ID INTEGER NOT NULL,
FECHA DATE,
HORA TIME,
CLIENTE VARCHAR(20),
TRABAJO VARCHAR(80),
OPERARIO VARCHAR(20)
);
Cita:

CREATE TABLE CLIENTES (
ID INTEGER NOT NULL,
NOMBRE VARCHAR(80) NOT NULL,
TELEFONO VARCHAR(20),
ANOTACION VARCHAR(150),
CODIGO VARCHAR(20)
);
Cita:

CREATE TABLE TRABAJOSDETALLE (
ID INTEGER NOT NULL,
IDENTIFICADOR INTEGER,
TRABAJO VARCHAR(20),
OPERARIO VARCHAR(20),
FECHA DOUBLE PRECISION,
HORA TIME,
CANTIDAD INTEGER,
IMPORTE NUMERIC(15,4),
DESCUENTO NUMERIC(15,4),
IMPUESTO NUMERIC(15,4)
);

José Luis Garcí 04-08-2013 08:50:46

Seguimos con la segunda tandada de tablas

Cita:

CREATE TABLE CONFIGURACION (
ID INTEGER NOT NULL,
IMPUESTO1 NUMERIC(15,4),
IMPUESTO2 NUMERIC(15,4),
IMPUESTO3 NUMERIC(15,4),
IMPUESTO4 NUMERIC(15,4),
NOMBREDELIMPUESTO VARCHAR(20),
NOMBREIMPUESTO1 VARCHAR(20),
NOMBREIMPUESTO2 VARCHAR(20),
NOMBREIMPUESTO3 VARCHAR(20),
NOMBREIMPUESTO4 VARCHAR(20),
NUMERO VARCHAR(20),
SERIE VARCHAR(3),
COLORA VARCHAR(20),
COLORB VARCHAR(20),
COLORACTIVO VARCHAR(20),
COLORNOACTIVO VARCHAR(20)
);
Cita:

CREATE TABLE CORTES (
ID INTEGER NOT NULL,
CODIGO VARCHAR(20) NOT NULL,
CORTE VARCHAR(80) NOT NULL,
IMPORTE NUMERIC(15,4) NOT NULL,
IMAGEN BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
Cita:

CREATE TABLE EMPLEADOS (
ID INTEGER NOT NULL,
CODIGO VARCHAR(20),
NOMBRE VARCHAR(80),
COMISION NUMERIC(15,4),
IMAGEN BLOB SUB_TYPE 0 SEGMENT SIZE 80
);

José Luis Garcí 04-08-2013 08:53:08

La tercera de tablas

Cita:

CREATE TABLE LAVADOS (
ID INTEGER NOT NULL,
CODIGO VARCHAR(20) NOT NULL,
LAVADO VARCHAR(80) NOT NULL,
IMPORTE NUMERIC(15,4) NOT NULL
);
Cita:

CREATE TABLE PEINADOS (
ID INTEGER NOT NULL,
CODIGO VARCHAR(20) NOT NULL,
PEINADO VARCHAR(80) NOT NULL,
IMAGEN BLOB SUB_TYPE 0 SEGMENT SIZE 80,
IMPORTE NUMERIC(15,4)
);
Cita:

CREATE TABLE PROMOCIONES (
ID INTEGER NOT NULL,
CODIGO VARCHAR(20),
PROMOCION VARCHAR(80),
IMPORTE NUMERIC(15,4)
);

José Luis Garcí 04-08-2013 08:56:07

A por la última de tablas

Cita:

CREATE TABLE TINTES (
ID INTEGER,
CODIGO VARCHAR(20),
TINTE VARCHAR(80),
IMPORTE NUMERIC(15,4)
);
Cita:

CREATE TABLE TRABAJOS (
ID INTEGER NOT NULL,
NUMERO VARCHAR(20) NOT NULL,
CLIENTE VARCHAR(20) NOT NULL,
FECHA DATE,
HORA TIME,
PAGADO VARCHAR(1),
SUBTOTAL NUMERIC(15,4),
IMPUESTOS NUMERIC(15,4),
DESCUENTOS NUMERIC(15,4)
);
Cita:

CREATE TABLE TRABAJOSDETALLE (
ID INTEGER NOT NULL,
IDENTIFICADOR INTEGER,
TRABAJO VARCHAR(20),
OPERARIO VARCHAR(20),
FECHA DOUBLE PRECISION,
HORA TIME,
CANTIDAD INTEGER,
IMPORTE NUMERIC(15,4),
DESCUENTO NUMERIC(15,4),
IMPUESTO NUMERIC(15,4)
);
Estas dos últimas están con un FORINGKEY del IDENTIFICADOR=ID

José Luis Garcí 04-08-2013 09:02:48

Como podemos ver son tablas muy simples, cortas, ya que debemos tener en cuenta que al ser un programa táctil, debe contener la menor cantidad de datos a rellenar por el usuario, ni estoy usando todos los campos en el programa, pero sería los menos que necesitaríamos, por supuesto, para un programa comercial, faltan campos e incluso más tablas, pero recordar que es una demo.

Ahora comenzare con las pantallas, ya se que no estáis muy de acuerdo con el diseñe de las mismas, pero diré que en este caso, no podemos usar componentes pequeños.

El código, esta casi sin comentarios y si pongo algo en los siguientes post, será algo muy determinado.

Si existen dudas, ya sabéis, preguntar aquí e intentaré explicarme.

José Luis Garcí 04-08-2013 09:21:07

he subido la demo, la encontrareis en http://terawiki.clubdelphi.com/Delph...oriales_Demos/
con el nombre DEMOTOUCH-2, dentro veréis, varios zip los DEMOTOUCH y DEMOTOUCH-1, son el ejecutable y la base de datos, las fuentes e imágenes usadas están en los otros dos zip

José Luis Garcí 04-08-2013 09:32:57

Comenzamos con el menú



como es un programa táctil, no podemos usar un menú convencional, por lo que he optado, por botones directos, pero se pueden usar componentes para ellos como el ouctloockbar, toolbar, coolbar, Rainbow, etc para nuestros menús, recordar que sólo estoy dando ciertos concejos.

Como veréis puse un MonthCalendar, al pulsar en un día nos dirá las citas que tenemos en el Listiview, seria mucho más practico poner un Calendar y cambiar con Botones SPIN tanto el mes como el año, pero ya tenia esto avanzado cuando me acorde, así que os lo dejo así, pero ya comento que no es lo más adecuado.

También podéis a preciar, que sólo tenemos dos opciones de trabajo, que son citas y facturar/cobrar, ya iremos comentando cada una

José Luis Garcí 04-08-2013 09:37:17

Ahora toca al módulo de empleados



Como podéis ver sencillo y sin pretenciones, como siempre tiene los botones cargar imagen y pegar desde el clipboard la imagen, fuera de esto nada que destacar

José Luis Garcí 04-08-2013 09:40:59

El módulo clientes



en esta destacar aún menos, si acaso, que aquí al igual que la anterior si deberíamos tener algún dato más si fuera un programa terminado y no una demo.

José Luis Garcí 04-08-2013 09:46:14

El módulo de cortes de pelo



Como veis es casi siempre más o menos lo mismo, lo único, es que yo no me di cuenta hasta más tarde, en los códigos, debería haber usado un sistema más identificativo, despues lo arregle pero los código debían haber sido como "Cor-xx"

José Luis Garcí 04-08-2013 09:53:04

Módulo lavar



muy básico

José Luis Garcí 04-08-2013 09:56:53

Módulo de peinados



debo decir¡que a mi generalmente me gusta pantallas grandes y que ocupen toda la pantalla, también es cierto que yo trabajo con resoluciones muy altas, pero creo que estas pantallas son bastante proporcionales a los componentes que estamos usando.

José Luis Garcí 04-08-2013 10:01:10

Módulo de tintes



por cierto, como siempre los botones de impresión no tienen código asociado.

José Luis Garcí 04-08-2013 10:05:10

módulo de Combos



Si os dais cuenta en el Statusbar, sigue apareciendo a las 8:20 de la mañana buenas noches, se trata de cambiar los indices de tiempos en el evento timer, referidos a este apartado, seguro que de este tipo de errores encontrareis varios

José Luis Garcí 04-08-2013 10:07:09

El módulo promociones


José Luis Garcí 04-08-2013 10:10:52

el módulo configuración



Los módulos que vienen ahora son un poco más extensos.

José Luis Garcí 04-08-2013 10:41:04

el módulo citas, que lo vamos a dividir en varias partes



Esta es la pantalla principal, como podemos ver tenemos varios datos y acciones posible



1) Como podemos ver rellenamos la fecha, hora y el operario (empleado) y damos al botón buscar cita

2) Si encuentra la cita nos posiciona, en caso contrario, nos da la opción de crearla



Veamos ahora las diferentes pestañas, de trabajo posibles, iguales a estas las usaremos en el siguiente módulo, a excepción de la primera

1) nos muestras las citas del día según el registro de citas y donde estemos posicionados, es la pestaña por defecto de este pageControls, en varias opciones de este módulo

2) los botones nos permiten movernos por las pestañas del pageControl, con más facilidad que pulsando en sus pestañas

3) Pestaña de cortes, este es el componente imagenGrid de los componentes ccd podéis bajarlos de http://componentes.clubdelphi.com/

4) Pestaña de lavados

5) Pestaña de Peinados

6) Pestaña de Tintes

7) Pestaña de Combos

8) Pestaña de promociones


Claro esta en algunas tenemos un DBNavigator, podríamos poner un campo edit y hacer búsquedas o filtros, pero esa es una opción

Casimiro Notevi 04-08-2013 10:48:23

Trabajo extra y además en domingo, esto se cobra al doble de su precio ;)

José Luis Garcí 04-08-2013 10:58:15

Vamos con el último módulo Facturar




como podemos ver lo hemos dividido en varias partes

1) botones de la tabla maestro

2) Botones para cambiar entre las pestañas de maestro y detalle y botones de la tabla detalle

3) Datos a rellenar para la tabla maestro

4) Pagecontrol con varias pestañas, que vimos en el módulo anterior, salvo la primera, que nos muestra la tabla detalle en grid y el apartado 6

5) Datos del trabajo actual y descripción del operario y el cliente

6) Cálculos del presente trabajo y si esta cobrada o no

7) Datos necesarios para el detalle

8) Botones con el valor de los impuestos que hemos puesto en configuración

9) Subtotal del detalle activo en ese momento

10) botonera para las pestañas, ya la vimos en el módulo anterior

A parte de esto tenemos en la parte inferior izquierda dos botones, el de impresión (para imprimir) y el de cobrara, este lo único que hace es marcar como cobrada el presente trabajo (Factura)


La franja horaria es GMT +2. Ahora son las 16:39:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi