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 13-12-2022
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
Niveles de usuarios

En mis programas cada usuario suele tener su propia clave y nivel de usuario, aparte de indicar si está activo o no, ya que así pueden impedir el paso de un usuario, si este ya no es trabajador de la empresa.

Suelo ocupar dos esquemas de niveles, el primero es del 5 al 9 y el segundo del 6 al 9

Primer esquema / Segundo esquema
5- --------------- / usuario básico
6- usuario básico / Usuario avanzado
7- Usuario Avanzado / Supervisor
8- Supervisor / Administrador
9- Administrador / Pide que se repita la clave

Las ventajas de este sistema son que al iniciar el usuario llamo a las claves fijas VfNivel y VfUsuario, al acceder a un apartado, compruebo si el nivel es superior o igual al del apartado dejándole o no entrar.
Por otro lado en el OnShow, mediante mirando este mismo nivel permito que se pueda acceder/ver apartados en los form, al que pueden tener acceso usuarios con menos nivel
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 13-12-2022
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
Pendrive de llave de seguridad

Cada programa en su acerca de Tiene un nº de Serie de 12 dígitos, de los cuales 6 son un identificador (cada uno que lo establezca como quiera), que están en la variable fija VFIdentificador, el problema de este sistema es que tengo que cambiar este número mediante un pequeño programa , en cada compilación del programa, creando un registro de a quien ha sido asignado, y por lo tanto teniendo que compilarlo independiente.

El B.D. en la tabla configuración establezco un campo llamado llave, al que le asigno la letra de la unidad.

Luego en un pendrive, creo una carpeta con el nombre LLAVE [Nombre del programa], y dentro añado tres archivos, dos de ellos no sirven para nada y el tercero contiene un código encriptado, que es el número del identificador del programa.
Al pendrive además cambio el nombre del volumen, al valor del identificador.

Al arrancar el programa, lee la tabla configuración, coge la letra del campo LLAVE, y comprueba que este el archivo y que el valor de este una vez desencriptado sea el mismo que el de VFIdentificador, y también que el volumen del pendrive, sea también igual al de VFIdentificador.

Para ello uso otro pequeño programa que me hace automáticamente esto en los pendrive, o casi completamente. Normalmente entrego dos pendrives por si fastidian uno y suelo usar de estos que son muy cortitos, avisándoles que solo son válidos para ese programa, con ese número de serie en exclusiva, con lo que me evito que puedan hacer varias copias, limitando estas a 1 más. Y por supuesto pido el pendrive que está mal para darle uno nuevo, para evitar engaños.

Por cierto los pendrives los tengo marcados en varios sitios, para que no me engañen.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #3  
Antiguo 13-12-2022
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
Campos por defecto

En las B.D. suelo usar las sedes y dentro de estas puedo meter varios campo que parecen repetidos, pero uno son los datos de la propia sede y el otro los campos por defecto.

Algunos de ellos pueden ser:
PROVINCIA_DEF
POBLACION_DEF
CODIGO_POSTAL_DEF
PAIS_DEF

Al usuario estar en un campo, si pulsa enter sin rellenarlo y tiene asignado un valor por defecto, este se rellena en el campo, ahorrándole trabajo al usuario y permitiendo que sea más rápido. Esto claro está si el campo no va con otro valor.

Y en el onExit de los DbEdit suelo mediante un CASE, comprobar el fieldName del campo y asignar así el valor
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #4  
Antiguo 13-12-2022
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
Pegado de datos de los campos

En este apartado creo un pequeño form bastante estrecho, para poder ponerlo a un lado sin quitar demasiado espacio en la pantalla, con tantos botones como campos necesite, cada botón tiene el nombre del campo, por lo que al pulsarlo copia el valor del contenido de ese campo, permitiendo mediante este método, rellenar una página web, por ejemplo con los datos del clientes/proveedor/etc. que hemos seleccionado.

Simplemente pulsamos en el campo que queremos, y luego en el campo de la página web y le damos a CTRL+V, rellenándolo con el dato.

Pegado de nombre del campos

En el mismo formulario, suelo añadir la opción mediante un radiogrup, que en vez de pegar el contenido del campo, peque el nombre de este, con una apertura y cierre ( ejemplo el campo Código sería [\CODIGO/]), que lo uso para que puedan crearse informes/cartas, etc. con WORD
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #5  
Antiguo 13-12-2022
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
Generador de textos preestablecidos

Este lo suelo usar por ejemplo para rellenar textos para emails, donde el usuario crea un texto en un memo, que archivo como tal, al que puede añadirle los campos de las tablas que se le permite usar para tal fin. Guardándolo en un archivo que puede cargar en cualquier momento, rellenando estos campos con los datos y mandándolo por email o copiándolo al portapapeles.
Estos archivos los guarda en su disco duro y no en ninguna tabla, ya que la experiencia me ha indicado que es mejor que estos los puedan crar ellos individualmente, ya que los que sean estándar de la empresa, suele estar ya metidos en el programa, o por lo menos así los hago yo.

Algunos escritos de este tipo, suelen ser los siguientes:
  • Periodos de vacaciones
  • Email corriente
  • Solicitar documentación
  • Reclamación de pago
  • Entrega de documentación
  • Contestaciones varias
  • etc.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 13-12-2022
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
Tengo muchas más cosas, pero creo que como idea puede servir.
Ahora ya tengo que salir, un saludo a todos.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
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
Como puedo pasar este codigo a delphi el codigo de la imagen es codigo python Javier13 Varios 9 16-11-2017 15:41:33
Convertir código "asm" a código Delphi Stringxpx ASM y Microcontroladores 19 11-08-2016 18:12:57
Porque este código me da error (adjunto código) David JAVA 1 12-03-2009 20:07:27
contraer por codigo, cxGrid (+) los nodos abiertos cerrarlos por codigo sakuragi OOP 6 27-07-2005 18:23:07
de codigo VB a codigo Delphi ingel Impresión 2 20-07-2004 14:15:44


La franja horaria es GMT +2. Ahora son las 21:00:08.


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