Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Código SQL [-]
CREATE TABLE CAJA (
    ID        INTEGER NOT NULL,
    REGISTRO  VARCHAR(20),
    CONCEPTO  VARCHAR(100),
    CLIENTE   VARCHAR(20),
    USUARIO   VARCHAR(20),
    LIBRE     VARCHAR(80),
    CARGO     VARCHAR(100),
    FECHA     DATE,
    CANTIDAD  NUMERIC(15,4)
);

Código SQL [-]
ALTER TABLE CAJA ADD CONSTRAINT PK_CAJA PRIMARY KEY (ID);
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Código SQL [-]
CREATE TABLE MOVIMIENTO (
    ID        INTEGER NOT NULL,
    REGISTRO  VARCHAR(20),
    CONCEPTO  VARCHAR(100),
    CLIENTE   VARCHAR(20),
    USUARIO   VARCHAR(20),
    LIBRE     VARCHAR(80),
    CARGO     VARCHAR(100),
    FECHA     DATE,
    CANTIDAD  NUMERIC(15,4)
);


Código SQL [-]
ALTER TABLE MOVIMIENTO ADD CONSTRAINT PK_MOVIMIENTO PRIMARY KEY (ID);
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #3  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Esta es la tabla nueva


Código SQL [-]
CREATE TABLE ETIQUETAS (
    ID             INTEGER NOT NULL,
    FECHA          DATE,
    UNIDAD         VARCHAR(20),
    TITULO         VARCHAR(20),
    CODIGO_BARRAS  VARCHAR(20),
    USUARIO        VARCHAR(20),
    IMPRIMIDO      DOMSN /* DOMSN = CHAR(1) CHECK (VALUE IN ('S','N')) */
);

Código SQL [-]
ALTER TABLE ETIQUETAS ADD CONSTRAINT PK_ETIQUETAS PRIMARY KEY (ID);
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #4  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Creamos la tabla USUARIO y añadimos los campos telefono y movil, con esta de momento y esperemos que siga así están nuestras tablas

Código SQL [-]
CREATE TABLE USUARIO (
    ID        INTEGER,
    NIVEL     INTEGER,
    CODIGO    VARCHAR(20) NOT NULL,
    NOMBRE    VARCHAR(80),
    CLAVE     VARCHAR(100),
    TELEFONO  VARCHAR(20),
    MOVIL     VARCHAR(20),
    EMAIL     VARCHAR(120),
    LIBRE     VARCHAR(80),
    NOTAS     BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    FOTO      BLOB SUB_TYPE 0 SEGMENT SIZE 80
);


Código SQL [-]
ALTER TABLE USUARIO ADD CONSTRAINT PK_USUARIO PRIMARY KEY (CODIGO);
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #5  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Antes de proseguir con el tutorial nos toca algunas explicaciones para los más novatos , sobre todo algunos términos que suelo usar.

Los módulos de altas bajas y modificaciones o (ABM), son los módulos principales donde introduciremos los datos, pero algunos no tendrán muchas veces todas estas opciones aun así usare este termino muchas veces. Podréis encontrar otro tutorial mio sobre este tema y aplicare algunos de los conceptos en el en este.

Ahorraremos código usando un dbnavigator sólo para los movimientos entre registros, no teniendo que controlar así el Fist, Prior, Next y Last.

También usaremos un Dtasourse llamado Dsprincipal en cada formulario que mueva datos, añadiendo los restantes para otras tablas.

Por supuesto usaremos un Datamodule, que en mi caso llamare DM, donde tendremos nuestra base de datos y ibdataset principales, por cierto usaremos los componente IBX que vienen de forma nativa con delphi en este tutorial ya que como dije no quiero usar componentes de terceros ni míos propios.

Como vamos a trabajar con la idea de una pantalla táctil, usaremos botones grandes y por ello si es necesario, crearemos sistemas algo más complejos para ciertos campos debido a las limitaciones de ciertos componentes para usar en estos sistemas.

Para evitar ciertos errores comunes usaremos un sistema de paneles que nos evitaran ciertos quebraderos de cabeza, su distribución sera la siguiente:

Panel botornera: será el panel donde estarán todas las acciones posibles sobre movimiento, edición, creación y borrado de nuestra tabla/s, así como otras opciones como búsqueda, imprimir, etc.

Panel de datos: en este encontraremos los apartados los campos a rellenar y los grid con información, pero dentro de estos estarán dos paneles que haremos visibles en ciertas condiciones.

Panel ocultable: dentro de Panel de datos para información que será visible según elñ nivel del usuario.

Panel Confirmación: dentro de Panel de datos permite confirmar o cancelar los cambios o creación de datos

Panel de búsqueda: quedará fuera del panel de datos al igual que el de botonera y sólo se mostrará en el caso de querer hacer búsquedas, simples o más complejas.


¿Por que este lió de paneles y su control? por el simple motivo de que por un error podemos registrar los cambios en una tabla sin querer al pulsar sobre un botón deseado, o entrar en edición de un registro al pulsar sobre uno de sus campos, errores mucho más típico de lo que pensamos. Debo decir que para evitar estas cosas uso normalmente un componente mio que podéis buscar en los foros llamado panelDB, este nos ahorraría bastante código y trabajo, ya que esta conectado al datasource que queremos controlando de esta manera, que esta visible , editable, etc... automáticamente.


Creo que ya comente las colecciones de iconos usados, por lo que no usare ninguno que no este dentro de estas colecciones, si hace falta diré donde se encuentran.


Por su puesto explicaré las cosas una vez salvo que alguien no lo entienda, por lo que los primeros módulos serán algo más extensos que los siguientes.

Al estar diseñado para táctil, usaremos un menú basado en botones, pero también usare un menú normal, junto con un actionlist, para controlar las ejecuciones y no tener que estar repitiendo código. Para este motivo también usaremos muchas funciones.

Todas las funciones irán dentro de un módulo que llamaremos UFunciones.Pas, así no estarán desperdigadas por el programa y será más fácil controlarla.

En el modulo DM (Data module) también insertaremos varias variables , para ciertas operaciones que nos permitirán movernos de un form a otro sin tener que estar recordando donde estaba esa variable, llamándolas variables fijas.

Haré especial hincapié en ciertas partes de código sobre todo algunas funciones, ya que de estas dependerán partes del programa.

Por último usaremos ciertos diálogos estándar en operaciones, como crear, editar, borra y las transacciones de error al grabar, aparte de estos habrá otros más que ya iremos viendo.

Después de todo esto, comenzamos con la aplicación de nuestro sistema en el tutorial, como tengo que ir creándolo lo iré explicando según vaya terminan dolo. haciendo alguna anotación especial sobre ciertos procesos antes.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Bueno ya estoy con el menú trabajando y debo deciros algunas cosas comunes para todos nuestros forms.

En todos llevaremos un statusbar en la parte baja y haremnos algunas cosas con el ya las iremos viendo más delante.

Todos nuestros paneles deben aparecer inicialmente centrados por lo que usaremos la propiedad position a poScreenCenter

También activaremos a true la propiedad Keypreview, para que detecte las pulsaciones del teclado en nuestro form

Y por supuesto usaremos mucho la propiedad aling, para distribuir nuestros componentes

Y el fom tendra un height de 800 por un width de 1000 en estado normal
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 21-02-2015
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: 23
José Luis Garcí Va camino a la fama
Se que dije que primero haría el menú, pero para explicar ciertas características primero debo explicar el data module (DM) y como lo vamos con formando.

Lo primero lo creamos gracias al repositorio de Delphi, en el delphi 10 es Flie>New>Otther y luego dentro de Delphi File

Una vez lo tengamos añadimos el componente IBDataBase de la pestaña interbase, cambiamos su propiedad name por DB y en vez de rellenar las propiedades aquí hacemos lo siguiente




Rellenamos este pequeño formulario teniendo en cuenta lo siguiente



Después de esto añadimos un componente IBTransaction de la misma pestaña cambiamos el name por IBT y pulsamos en la propiedad defaultDatabase seleccionando DB, luego pulsamos dos veces con el botón derecho sobre el y seleccionamos como en la siguiente imagen




Con esto ya tenemos configurado la base de datos y la transacciones (quienes se aseguran de grabar los datos en las tablas)

Ahora añadimos dos IBDataSet uno sera para la configuración y otra para el usuario llamándolos IBDConfiguracion y IBDUsuarios, los seleccionamos a ambos y rellenamos su propiedad Database seleccionando DB con lo que nos rellena automáticamente la propiedad transaction con IBT.

Seleccionamos IBDUsuarios y pulsamos sobre SelectSQL haciendo lo siguiente



Seguimos sobre la misma tabla y pulsamos en GeneratorFiled rellenando el siguiente formulario



Con esto activamos los campos auto incremento, por lo que debemos usar el generador adecuado a nuestra tabla, el campo de incremento, la cantidad a incrementar (Incrment By) y por último seleccionar el evento On Post para realizar este. Pulsamos Ok y esto también está configurado para esta tabla.

Seguimos en la misma tabla y pulsamos sobre el IBDUsuario con el ratón derecho saliendo el popmenu del el seguimos los siguientes pasos



En rojo y en más grande los números de los pasos a seguir, por lo que ahora explico el paso 3 y el 4, dentro del paso 3 tenemos las siguientes opciones:

[1] Elegimos el campo clave en este caso código
[2] Seleccionamos todos los campos sobre los que queremos actuar, normalmente todos
[3] Seleccionamos el Quoters Identifirs, para que nos registre adecuadamente los campos y sus valores
[4] Seleccionamos el generate SQl con lo que nos muestra la pantalla 4 con los códigos necesarios para modificar, insertar, borrar y refrescar los datos en sus diversos apartados
[5] realmente debería ir en la siguiente pantalla con esto confirmamos los cambios

Ya nos quedan dos pasos con esta tabla y terminamos, el siguiente aunque lioso nos permite mejorar la vista de nuestros datos y el siguiente es mucho más sencillo lo prometo.

Para el primero volvemos a pulsar sobre el IBDUsuario con el ratón derecho saliendo el popmenu, seleccionamos la primera opción y seguimos los siguientes pasos




[1] Es el formulario que nos sale tras elegir la opción, pulsamos con el botón derecho del ratón saliendo un nuevo popmenu
[2] Elegimos añadir todos los campos
[3] Así nos queda ahora con los campos de nuestra taba añadidos
[4] Ahora podemos usar el inspector de objeto y cambiar campos como los siguientes

DisplayLabel: la etiqueta con la que aparecerá nuestros campos
DisplayWidth: el número de caracteres a mostrar de nuestra etiqueta
EditFormat: el formato de entrada y mostrar nuestros datos usando máscaras para ellos como #,##0.00

Hay muchas más pero no es que nos interesen demasiado ahora salvo tal vez el Maxvalue y Minvalue para cierto campo que ya veremos

Bueno con esto sólo quedaría ahora activar nuestra tabla colocándonos nuevamente sobre el IBDUsuario y pulsando sobre la propiedad active a true, si no ha habido problemas así se quedará.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 21-02-2015 a las 16:45:39.
Responder Con Cita
Respuesta



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
Obtener fotograma de video. Video Finish rabata2001 Varios 0 07-05-2014 12:02:30
segundo video tutorial delphi cacu La Taberna 4 21-02-2012 14:30:26
Video Tutorial Delphi Para Novatos cacu Varios 4 22-11-2011 07:41:30
crear video tutorial glrjola Varios 7 28-04-2011 12:08:56
Video Tutorial para instalar Apache + MySQL + PHP desde 0 !!! Hagen PHP 0 07-02-2007 12:57:45


La franja horaria es GMT +2. Ahora son las 18:59:56.


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