Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
teoría de un TPV

Voy a intentar tratar la teoría de como funciona un TPV, en este caso sólo voy a dar conceptos y algún trozo de código, pero no voy a poner el programa ni todo el código, ya que me llevaría mucho tiempo, como siempre lo que doy son ideas y explicaciones de por que hago las cosas de una determinada manera, soys libres como siempre de corregirme, contradecirme, añadir, etc.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
como el compañero manuel fontanot me hizo una pregunta que va relacionado con lo que voy a explicar empiezo por aquí, su pregunta fue

Cita:
Empezado por manuel fontanot
Estimado Jose Luis, vi el secuencial de tu respuesta en referencia al procedimiento para la pantalla tactil (no entendoi nada) pero loq ue yo necesito es que acabo de comprar una PC de pantalla tactil con la finalidad de usarla en mi restaurante en la parte de la entrada para que mis clientes puedan ver mi menu y las imagenes de mis platillos, asi como los especiales etc, el protector de pantalla lo usare con imagenes de mi negocio y algunos platillos, eso no creo tener problema, pero no se que es lo que necesito para esto, me gustaria que hubiera unos botones de Menu, galeria, especiales, etc, y te suplico me recomiendes software o la manera paso a paso de como le hago, de antemano muchas gracias y feliz 2014.
Manuel con respecto a recomendarte un software que lo haga no se que decirte, creo que otros compañeros te pueden ayudar mejor que yo.

Con respecto a la pantalla táctil, hace dos funciones básicas, la de monitor y la de sistema de introducción de datos, estas pantallas llevan normalmente un cable para la entrada de vídeo, uno para los altavoces y un último cable para la comunicación de datos de la pantalla al pc, suele ser un cable USB, realmente funciona como si hiciéramos todo por ratón, pero usando normalmente nuestro dedo, al hacer un programa para pantalla táctil debemos tener en cuenta las siguientes pautas:

1) Todos los botones deben tener un buen tamaño (ya que tanto el acierto de dar en el sitio por parte del usuario como la sensibilidad del monitor pueden jugar en
nuestra contra)
2) Todos los textos y campos a rellenar deben hacerse grandes ya que debemos preparar el programa para que todas las entradas se hagan por pantalla, ya que puede
darse el caso de que el usuario no use ningún otro método de introducción de datos
3) este punto deriva del anterior, debemos usar componentes que nos permitan introducir los diferentes campos, algunos ejemplos de esto lo podeis ver en mi anterior
hilo http://www.clubdelphi.com/foros/showthread.php?t=83837, debo enumerar alguno de estos y su funcionalidad:
a) teclado en pantalla (nos permitirá la entradas de textos)
c) El TCalendar de la pestaña samples para las fechas (usar este y no el montCalendar, ya que este es redimensionable y funciona bien)
c) algún componente para entrada de integer, floats, date, time, etc. Comercial conozco el TAdvSmoothSpinner y luego algunos que he hecho yo, algunos van mejor
que otros, pero se puede hacer con un poco de código y componentes más o menos normales, os pongo un ejemplo

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  label1.Caption:=IntToStr(StrToInt(Label1.Caption)-1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Font.Size:=36;
  Label1.Font.Style:=[fsBold];
  Label1.Caption:='0';
  Button1.Font.Size:=36;
  Button2.Font.Size:=36;
  Button1.Font.Style:=[fsBold];
  Button2.Font.Style:=[fsBold];
  Button1.Caption:='+';
  Button2.Caption:='-';
end;

end.


y una imagen


como este se pueden hacer varios, para nuestro uso, claro esta si tenemos componentes, que lo hagan nos ahorramos mucho código
Siguiendo con el punto 3, el tamaño de los campos de entrada debe ser lo suficiente ancho como para que podamos pulsar en el y nos salga un editor de entradas
(uso este método ya que en un sólo modulo y con una variable global respondemos a todos los campo, ya lo daré más adelante.

Esta respuesta es para el compañero manuel fontanot, pero como se va a dar en este tema lo único que hago es anticiparla.

Manuel creo que tu pregunta viene dada por esta imagén que publique en el tema "Necesito vuestra opinión sobre mi TPV"



Esta imagen es del TPV que tengo a medio montar, el aspecto definitivo, no es este pero si es muy parecido, les comento que el componente con fondo negro y texto desplazable hacia arriba se trata de un componente freeware al que le he hecho unas modificaciones para mi uso (poder cambiar el color y tamaño de algunas frases y añadir de manera simplificada una linea), no lo he publicado ya que no he obtenido el permiso del autor original, lo único que hago es definir el textos con mi editor y seleccionar la velocidad de desplazamiento y listo.

En cuanto a mostrar los platos, lo hago a través de una base de datos independiente a la del programa, en una tabla están estas imágenes y el texto, se eligen de manera aleatoria, en la tabla configuración de la base de datos del programa, establezco el intervalo en milisegundos y los componentes usados son un timer, un ibquerry un Tdataset y claro esta los componentes de conexión de la base de datos y el panel que pone "Saltar a otra imagen", que lo que hace es poner el timer a 0 y saltar a una imagen aleatoria mente.

Pro que uso una base de datos independiente de la del programa, fácil, por el tamaño que puede coger esta, ya que puede contener imágenes de gran tamaño (no lo aconsejo), pudiendo saturar el programa y a la hora de hacer las copias de seguridad, se nos pueden hacer bastante grandes y tediosas. Ya se tratará el por que guardo las imágenes en tablas y no en ficheros independientes.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #3  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Necesidades de un TPV: en este caso voy a tratar sobre un TPV, bastante especifico para una cafetería, piscolabis, bar, etc.
En un tpv de estas características puede hacerse con pantallas livianas o pesadas, me refiero con esto a que tenga pocas o muchas opciones, de que va a depender esto, pues de las necesidades del cliente, pongamos ejemplos para entenderlo mejor:

Caso 1 nuestro cliente es un restaurante, donde los camareros tienen un terminal o incluso terminales portátiles, el gerente tiene su propio terminal, la cocina tiene otro y por último la caja tiene el suyo propio, en este caso:
El camarero. solo necesita los productos, y la ubicación de las mesas y si acaso pasar notas a cocina o caja para la cuenta, el resto le sobra.
El gerente necesitará saber la entrada y salida de productos, los pedidos, el balance de como va el día etc.
En cocina necesita saber los pedidos y si existe alguna anotación sobre ese pedido, ejemplo que el cliente sea alérgico a un alimento o condimento
La caja sólo necesita tener control de los tickets y del dinero y cobros, sean por talones, vales, cupones, tarjeta, efectivo, etc.

Caso 2 Tenemos un bar con servicio de plancha y algo de cocina, pero trabajan la mujer y el marido únicamente
En este caso lo más probable es que necesiten una pantalla que les permita hacer todo (o casí) para no tener que perderse en múltiples pantallas.

En el caso 1 necesitamos varias pantallas adecuadas a cada puesto (livianas) en cambio en el segundo caso necesitamos una pantalla genérica con casi todas las opciones (pesada).

Esto no tiene nada que ver con la rapidez y funcionalidad del programa, ya que de ello va a depender de como lo planteemos y lo codifiquemos, según mi humilde opinión después de haber tenido un bar con cocina, la situación en el mismo eran las siguientes

1: El bar tenia varias horas muertas, en las que había muy pocos clientes o no había clientes.
2: El bar tenia sus horas (desayunos, almuerzos y medias tardes) en que entraban varias personas y se animaba algo pero eran periodos de 2 horas a 3 horas como mucho, el trabajo era más intensivo, pero sin agobiar.
3: El bar tenia algún evento cercano y la entrada de clientes era bastante fluida
4: El bar estaba junto a la entrada del estadio de fútbol, la entrada horas antes y después del partido eran brutales, podías tener ochenta o más pedidos a la vez, en estos casos era estresante y necesitaba personal auxiliar

claro según fuese el día y la situación necesitabas mayor o menor rapidez y el software que tenia no era precisamente super veloz, se trataba de un software que no tenia imágenes y con muy pocas opciones, poco atractivo y aunque en principio parecía que sería rápido resulto no ser lo suficiente el software tenía las siguiente opciones.

8 colores para distinguir las familias y artículos
Nombre, familia y precio del artículo
Total de ventas
No tenía password ni de acceso y ni de nada

sencillo y rápido pensé yo, claro los problemas eran los siguientes

Tenia múltiples pantallas de bebidas, con lo que buscar una en un momento determinado se volvía una locura y como lo único que podías era poner un color y el texto y por pantalla podías tener 24 artículos y muchas veces eran casi idénticos, ejemplo (chupito Ron Telde, Vaso Ron Telde, Chupito Ron Abana oro, vaso Ron Abana oro, etc) y eso sólo el ron que podía ser color malva y tenia 8 tipos de ron diferentes y se pedían en los diferentes formatos que estaba puesto, pues los fui creando según se iban pidiendo, salvo algunos que eran más genéricos y los cree de entrada. Esto lo hacía tedioso y lento

A la hora de cobrar te preguntaba el importe entregado por el cliente, sacaba el calculo de la devolución y preguntaba si imprimir ticket, despues de esto si optabas o no por imprimir el ticket, abría el cajón, imprimía el ticket (si habías decidido hacerlo y mantenía la pantalla 5 segundos +/- con el importe de la consumición, el entregado por el cliente y la devolución no permitiendo hacer nada durante este tiempo, lo cual paralizaba bastante.

Principalmente estos factores, junto con no controlar el stock, que al sacar el cierre si le decías imprimir te lanzaba todos los ticket y no tenia opción de un resumen y que no tenia configuración salvo para los datos de la empresa, el no tener control de clientes, etc, demostraron la mala elección del programa, pero no me voy a a quejar. (a toro pasado)

según siempre mi opinión una de las mayores faltas en lo programas de TPV son la de diferencias diversos modos de trabajo y la de tener la opción de familias y productos únicamente Sobre este último time trataré en el siguiente hilo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #4  
Antiguo 29-12-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Una magnífica iniciativa, José Luís. Ahora tengo un poco de prisa, pero quizá más adelante aporte yo también algo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Una magnífica iniciativa, José Luís. Ahora tengo un poco de prisa, pero quizá más adelante aporte yo también algo.
Perfecto entre más ideas y opiniones mejor.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
intento subir un vídeo pequeño hecho de mi programa como ejemplo espero se pueda ver

__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 29-12-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Tratando la pantalla principal del TPV trataremos el combate entre

(1)Familias y productos contra (2)Familias. Subfamilias y productos


Ventajas e inconvenientes de cada sistema:

Ventajas de 1, menos pulsaciones, Desventajas caos de productos y probablemente múltiples pantallas de una familia
Ventajas de 2, mas control y mejor visualización de los datos, Desventajas, que como mínimo habrá que pulsar una vez más

veamos como podemos organizar los siguientes grupos de artículos ( lo que encontréis entre paracentesis será el número de artículos relacionados a este grupo que puede contener ejemplo cerveza (botellin marca 1, botellin marca 2, botella marca 1, botella marca 2, botella marca 1 sin alcohol, botella marca 2 sin alcohol, media caña, caña, caña grande))

Menús (4), Primeros(20), segundos(20), aguas(6), refrescos(4), zumos(3), batidos(6), helados(10), hamburguesas(4), perritos(3), entrantes(20), vinos(8), rones(6), cervezas(10), coñacs(3), whisky(4), Ginebra(3), Cremas(2), Licores(4), Tequila(2) bocadillos(10), Cafés(10), sandwiches(4), patatas de paquete(3), chicles(12), chocolates(5), flanes(2), fruta(1), bollería(6), etc

Priero definiremos que en un pantalla nos puede mostrar unos 16 artículos a la vez

Hagamos un árbol de familias para el sistema 1 y su contenido

Comidas con (Menús (4), Primeros(20), segundos(20), entrantes(20), helados(10), flanes(2), fruta(1))=77 artículos/16= 5 pantallas
Bebidas alcohólicas con (vinos(8), rones(6), cervezas(10), coñacs(3), whisky(4), Ginebra(3), Cremas(2), Licores(4), Tequila(2))=42 artículos/16= 3 pantallas
Otras Bebidas con ( aguas(6), refrescos(4), zumos(3), batidos(6),Cafés(10))=29 artículos/16= 2 pantallas
Golosinas con ( patatas de paquete(3), chicles(12), chocolates(5))=20/16 = 2 pantallas
Bollería y bocadillos (bocadillos(10), , sándwiches(4), , bollería(6))=20/16= 2 pantallas
Comida rápida (hamburguesas(4), perritos(3))=7/16= 1 pantalla

Hay que tomar esto como lo que es un ejemplo ya se que podríamos dividirlo más para que quedara más disuelto, e incluso poner parte de los artículos de bebidas alcohólicas en otras bebidas (algunos licores y cervezas sin ) y viceversa (café irlandés), pero creo como ejemplo queda claro y eso que faltan muchísimos artículos, como pizzas, burritos, bebidas, postres etc.

Hagamos el árbol de familias del sistema 2, recordad que tiene subfamilia y dentro de esta los artículos

Comidas con (Menús (4)/16=1 pantalla
Primeros(20)/16=2 pantallas
segundos(20)/16=2 pantallas
entrantes(20)/16=2 pantallas
helados(10)/16=1 pantalla
flanes(2)/16=1 pantalla
fruta(1)/16=1 pantalla )
)

Bebidas con (vinos(8)=1 pantalla
rones(6)=1 pantalla
cervezas(10)=1 pantalla
coñacs(3)=1 pantalla
whisky(4)=1 pantalla
Ginebra(3)=1 pantalla
Cremas(2)=1 pantalla
Licores(4)=1 pantalla
Tequila(2)=1 pantalla
aguas(6)=1 pantalla
refrescos(4)=1 pantalla
zumos(3)=1 pantalla
batidos(6)=1 pantalla
Cafés(10)=1 pantalla)

Golosinas con (patatas de paquete(3)=1 pantalla
chicles(12)=1 pantalla
chocolates(5)=1 pantalla)

Bollería y bocadillos con (bocadillos(10)=1 pantalla
sándwiches(4)=1 pantalla
bollería(6)=1 pantalla)

Comida rápida con (hamburguesas(4)=1 pantalla
perritos(3)=1 pantalla)

Como podemos ver podemos ver los artículos casi siempre en una única pantalla, salvo excepciones, por lo que será visualmente más rápido, pongo una imagen para que quede más claro

Primero veamos una cogida al azar de internet del sistema 1 (espero no vulnerar derechos algunos, la pongo a modo de ejemplo simplemente)



y ahora del sistema que yo propongo el 2




Realmente no se si existen en usos ya este sistema en otros TPV, de momento yo no lo he visto.

Debo de de decir que ambos sistemas consiguen el mismo fin, pero personalmente creo que es mucho más rápido el 2 que el primero.

Por hoy no voy a seguir pero hay aun un puñado de temas que creo deberían tocarse y procurare hacerlo en los próximos días.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Teoría del Infierno fidel Humor 5 28-10-2016 01:00:14
Teoria y Practica jcarteagaf Humor 0 18-08-2008 16:32:34
Teoría sobre Archivos de Recursos MaMu OOP 3 15-04-2008 12:36:31
Frameworks, Persistencia: ¿Teoria? Delphius OOP 8 12-04-2008 23:27:24
Teoría del Salario obiwuan Humor 0 06-05-2003 22:00:43


La franja horaria es GMT +2. Ahora son las 11:38:59.


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
Copyright 1996-2007 Club Delphi