Opciones en Sistema

176 views
Skip to first unread message

PabloZa

unread,
Apr 27, 2021, 11:34:10 AM4/27/21
to Comunidad de Visual Foxpro en Español
Hola a todos. Yo sigo en la tarea de aggiornar mi sistema de ventas que ya tiene unos cuantos años y obviamente, me van surgiendo dudas con respecto a la organización de las tablas, relaciones, entre otras cuestiones.
Este sistema lo están usando unos cuantos clientes y cada uno quiere que sus ventanas sean de un color o que el campo tal acepte nros negativos o que en tal informe no muestre el encabezamiento o que los importes sean con 2 o 3 decimales y así todo el tiempo.
Claro, tengo una tabla "opciones" donde voy parametrizando cada una de estas cuestiones pero cada vez que alguien me pide algo en particular tengo que agregar un campo en opciones y luego revisar todo el código.
Se me hizo larga la explicación, ahora, mi consulta es si me pueden guiar o dar ideas con respecto a como mejorar el mecanismo de parametrización para evitar estar modificando el código todo el tiempo y haciendo nuevos controles.
Desde ya muchas gracias. Saludos

Erick Lezama

unread,
Apr 27, 2021, 11:42:29 AM4/27/21
to publice...@googlegroups.com
Yo trabajo para una compañia que tiene un software hecho en VFP y lo que ellos hacen para mostrar o apagar opciones es simplemente usar un form donde tienes varias pestañas con distintos checkboxes que puedes apagar o encender a voluntad y guardan toda la configuración en un archivo .mem. De esa manera cada usuario puede apagar o encender a voluntad. Cuando un usuario desea algo que no esta o no existe en el programa les cobran por agregarlo y le llaman una customización. para encender o apagar una customización pagada por un cliente puedes usar algun archivo creado por ti mismo y verificas via codigo si el archivo existe o no. Al final del día es un poco complicado complacer a todos los clientes.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/1b8ff33a-0b37-404b-876b-ae9d32f5045en%40googlegroups.com.

Zarlu

unread,
Apr 27, 2021, 12:28:08 PM4/27/21
to Comunidad de Visual Foxpro en Español
Buenos días pabloluiszanini !

Cómo dicen los abogados "Hay cuestiones de fondo y cuestiones de forma"
La apariencia/diseño/colores se puede prever con algo como menciona el colega. Por decir.
Pero las cuestiones de fondo se complican ya que se tienen que ir agregando conforme cada cliente.
Se podrían ir considerando como opción cada que surgen, pero es amplio el universo y sin duda en algún momento dará lugar a modificación de código.
Cada solicitud de un usuario da lugar a una aplicación personalizada. Es el diario vivir de los programadores.

zarlu
Chetumal, Quintana Roo, México

Octavio Rodriguez

unread,
Apr 27, 2021, 1:58:54 PM4/27/21
to publice...@googlegroups.com
Buenas tardes PabloZa

Existen varias formas de hacerlo:

1. Una forma es como lo vienes haciendo, con una tabla en la que guardas la configuración de cada variante, luego la validas en el módulo donde la tengas que usar.
2. Otra forma es crear un proyecto para cada cliente, nos es muy convencional, pero esto te permite un desarrollo a la medida de cada cliente, así no mezclas peras con manzanas. La desventaja es que cuando quieres reutilizar código, el proceso se hace más laborioso.
3. Otra forma es manejar un solo proyecto para todos tus clientes, solo que a cada cliente le asignan un identificador , y cuando ejecutes un proceso (formulario, programa, función, procedimiento, informe, etc) válidas a que cliente pertenece y es el proceso que ejecutas. La desventaja es que creas un proyecto más grande y no es recomendable cuando deseas estandarizar y vender de manera masiva. Pero en tu caso se adapta porque como comentas que son pocos clientes.

Y de que se tiene que programar no hay vuelta de hoja.

Saludos!




Carlos Alfaro

unread,
Apr 27, 2021, 2:48:31 PM4/27/21
to publice...@googlegroups.com

Saludos cordiales PabloZa:

 

Tengo un programa de transacciones de bascula para pesar camiones, la mayoría de los clientes usan la versión estándar, pero hay otros que solicitan funciones especificas.

 

Yo tengo una copia por cada cliente y cuando necesito alguna función para otro cliente, tomo lo que me pueda servir.

 

Ya son más de 25 años de hacerle mejoras al programa.

 

Buen día.

 

Carlos Alfaro

Antonio Meza

unread,
Apr 27, 2021, 2:58:24 PM4/27/21
to Comunidad de Visual Foxpro en Español
Si manejaste clases en vez de programar directo sobre los formularios el proceso es sencillo!!! porque simplemente creas una subclase de tu clase base y agregas lo que te pide cada cliente, es decir si la mejora que te piden le sirve a todos tus clientes lo haces en tu clase base, si no es así, entonces creas una subclase y en esa agregas la mejora especifica de cada cliente, de esta forma no repites código y es una buena practica!!!  algo así:

misclases.vcx
   Form_Base - Lo que es común para todos
      Form_Base_Cliente1 - Le agregaste un color de fondo al gusto del cliente
      Form_Base_Cliente2 - Te pidió mostrar decimales a 4 dígitos
      Form_Base_Cliente3 - Te pidió poder capturar números negativos
     etc

Pero si programaste directo sobre los formularios entonces toma las recomendaciones que te han dado y que la fuerza te acompañe!!! jejejeje

saludos
Antonio Meza

David Castelari

unread,
Apr 28, 2021, 8:56:35 AM4/28/21
to Comunidad de Visual Foxpro en Español
Hola Pablo,

En mi caso, para ello tengo 2 Forms en mi sistemas. Uno para parametrizaciones "locales", es decir, afectan solo a la Terminal, y otro para parametrizaciones "globales", afectan a todos los equipos que usan el sistema.
Cada Form, a su vez, tiene Pestañas según el área del sistema (Facturacion,Clientes,Proveedores,etc), donde se agrupan los distintos parametros.
Para los parametros "Locales" utilizo un archivo de texto INI.
Para los parametros "globales" utilizo un archivo de la DB.
Para todos mis clientes utilizo una UNICA plataforma, que según cada cliente, configuro unas "variables" publicas que hacen diferente comportamiento, ya que tengo clientes muy variados, desde Talleres Mecanicos, Veterinarias, Empresas de Logistica hasta Cooperativas Electricas y telefonicas.
Este ultimo punto es "interno", es decir, es un modulo que solo YO puedo acceder y configurar. Por ejemplo, puedo hacer que el sistema sea un Responsable Inscripto o Monotributista, o "aparezca" todas las opciones del Modulo Logistica en el Menu principal de la aplicacion.
Sinceramente, debo decir, que haberle hecho todas estas opciones al sistema, agrego mucho código y muchas verificaciones adicionales cuando se ejecuta. Al principio puede parece hasta inutil, pero a medida que pasa el tiempo y organizas bien tu codigo...MANTENER y ACTUALIZAR tu sistema pasa a ser casi una pavada con el consiguiente ahorro de tiempo.
Nota adicional:
- El sistema lleva "embebido" todas las actualizaciones, es decir, cada agregado o modficiaciones de Tablas estan incluidas en este modulo y es automatico. Se basa en un control de versiones (pe:2.001, 2.002, 2.003...). Esto es importantisimo, ya que "nos" olvidamos de que tablas debemos actualizar o modificar.
- El propio sistema busca en un FTP (carpeta asignada al Cliente) si existe una nueva version al arrancar, si la hay, la descarga (es un archivo ZIP), la descomprime en el equipo del usuario y sobreescribe los archivos.  Al volver a arrancar con el nuevo EXE, éste tiene la version embebida y la coteja con el valor guardado en la DB, y actua en consecuencia actualizando a la nueva version.
- Tambien el propio sistema nos envia los errores que se hayan producido durante el uso del sistema (en un archivito HTML), que es verificacado su existencia al iniciar, y si existe, nos lo envia por mail a una cuenta especifica.

Bueno cualquier duda pregunta!

Saludos,
Sergio Castellari

Victor L. Lujan C.

unread,
Apr 28, 2021, 1:15:38 PM4/28/21
to publice...@googlegroups.com

En mi caso uso un form donde el usuario se encarga de usar la configuración que se requiera. De acuerdo a lo que tenga tu software vas usando y/o activando… Uso un solo form (es decir no tengo versiones de las opciones para cada uno de ellos) para todos mis clientes.

 

Espero haberte ayudado.

 

Atentamente

 

 

Luis Lujan

Saludos desde Lima, Perú

 

 

 

 

--

image001.png
image002.png
image003.png
image004.png
Reply all
Reply to author
Forward
0 new messages