Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Cargar Objetos En Runtime
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cargar Objetos En Runtime 
 
Hola amigos.

Tengo la necesidad de crear objetos en tiempo de ejecución para resolver el siguiente problema:

Mi aplicación de contabilidad comercial se utiliza en varias empresas diferentes y suele ocurrir, Ej:
que en una farmacia la entidad CLIENTE requiere el atributo ARS (Administradora de riesgos
de salud) etc., y en otra empresa como una ferretería no se requiere, por tanto hay una redundancia
en el segundo tipo de empresa. Seria interesante crear un pequeño asistente que permitiera
crear un campo para una empresa especifica cuando se requiera, es algo así como GENEXUS.

El asistente debería:
1- permitir crear el campo en la DB con tipo, longitud, default value
2- crear los mensajes de alerta para valores admitidos o rangos
3- definir si es obligatorio
4- definir la ubicación en el formulario (quizás usando drap and drop)
5- agregar en la lista de campos para INSERT y UPDATE
6- definir si se admite duplicidad
7- cargar el dato al consultar la entidad
8- mostrar el dato nuevo en reportes y otros formularios
9- mostrar el campo en formulario en el cual ha sido creado

Los beneficios serian los siguientes:
1- cada empresa podría personalizar el software a su medida (hasta cierto punto)
2- las empresas que no requieren un dato especifico no tendrían que visualizarlo,
y por tanto les resultaría mas fácil su uso
3- el desarrollador tendría que responder menos preguntas (¿A que ser refiere el campo NCS, etc.?)
4- no se corre el riesgo de inestabilizar el software al crear campos nuevos para una empresa especifica
5- se puede resolver un problema de nuevos datos con una llamada telefónica

Gracias por su acostumbrada ayuda.
 



 
alessandri - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cargar Objetos En Runtime 
 
alessandri:

Citar:
Cargar Objetos En Runtime

ufff... el titulo no describe lo que quieres hacer....

Quieres un "asistente" que realmente es un nuevo programa o extensión a tu programa prinicipal,  capaz de modificar la base de datos (más o menos en fácil), pero que también sea capaz de modificar (o añadir ) funciones al programa principal...

Creo que lo fundamental, es ver como tienes hecho el programa principal ("Mi aplicación de contabilidad comercial "), como genera los informes, los formularios, etc... como son las funciones y subrutinas encargadas de insertar/modificar los datos, si lo hacen "al vuelo" (ajustándose a la base de datos/tablas donde trabajan como parámetros de entrada), en plan "generalista" o no

El compañero Shordi, tiene controles hechos en "plan generalista", capaces de mostrar datos, filtros, etc.. pasandole las instrucciones SQL como parámetro.


Yo he creado programas [mabdbvistas], desde otro punto de vista, ya que generan código "ajustado" a la base de datos dada...para luego usarlo insertarlas en el código fuente de las aplicaciones de bases de datos, pero creo que se quedan "a medio camino" de lo que tu quieres...

No se si te he liado más o te he dado alguna idea...


Nota:
Tambien habría que ver si has usado el Modelo Vista Controlador..
http://jsbsan.blogspot.com.es/2013/...c-ejemplos.html
http://codejavu.blogspot.com.es/201...ontrolador.html

En el ejemplo, hay una clase "Lógica" que se encarga mediante distintos métodos de validar los datos introducidos.

Esa clase se podría automatizar para que leyera unas reglas de limitaciones de los valores de los campos de los registros y los validara..(dar true o false)

Por ejemplo:
Tendriamos en un fichero de texto plano, las limitaciones de los valores de los campos
campo: edad       minima: 18  maxima: 99

Y en la clase "logica", tendríamos un método que leyera el archivo de texto plano y que comprobara las reglas para los registros...

De esta manera, se podría añadir fácilmente nuevas reglas o limitaciones a nuevos campos (o campos ya existentes), sin tener que modificar el codigo de la clase lógica.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 29 Junio 2017, 09:40; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cargar Objetos En Runtime 
 
Algo similar hice hace muchos años (en los viejos tiempos del Clipper 5 y las pantallas de texto).
El truco era dejar al final de cada tabla un número par de campos de más (2 o cuatro o 6, según) con los nombres Title1,Value1, Title2, Value2, etc.
uno contenía el nombre a aplicar al campo custom y otro el valor
Los formularios tenían luego la opción de mostrar o no dicho valor en la pantalla o informes según estuviesen rellenos o no.

No recuerdo qué problemas me dió, pero sí que acabé por abandonar la idea.

Al final se aplica el principio del misterio de la construcción de la pirámide: Si haces una rampa para subir las piedras, el trabajo es mayor que el de construir la pirámide en sí misma. O, como se dice por mi pueblo: Demasiada alforja para tan poco viaje. En otras palabras es mucho menos costoso modificar cada aplicación para adecuarla a la empresa concreta que meterte en tal berenjenal... dejando claro que si lo haces y consigues, has hecho algo grande de lo que podrás estar orgulloso.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cargar Objetos En Runtime 
 
Muchas gracias amigos.
 



 
alessandri - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cargar Objetos En Runtime 
 
Modificar la base de datos en tiempo de ejecución no supone problema alguno siempre y cuando se haga con cierta lógica.
Por ejemplo, yo uso una base para Tradukisto que depende del idioma nativo del usuario de turno y los idiomas a los que desea traducir las aplicaciones. Por lo tanto la base  tendrá unos idiomas, unas tablas, unas vistas que muy probablemente difieran de un usuario a otro.
Luego, volviendo a tu aplicación, con "settings" o algo así podes controlar si los campos serán vistos en los formularios o que tipo de datos tendrán etc.
por ejemplo:
unatabla-uncampo = "oculto"
Si en settings tal o cual campo es oculto, simplemente no lo muestras en los formularios.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Runtime 2.20 Bretema General 3 Jueves, 01 Abril 2010, 19:05 Ver último mensaje
Bretema
No hay nuevos mensajes Consulta Acerca De Una Matriz De Objetos: ... santijav General 6 Jueves, 21 Abril 2011, 05:14 Ver último mensaje
soplo
No hay nuevos mensajes Gambas3-Runtime. ¿ Como ? Shell General 1 Miercoles, 16 Enero 2013, 15:03 Ver último mensaje
jguardon
No hay nuevos mensajes Tres Modos De Cargar Iconos, Puestos A Nue... vuott Aplicaciones/Fragmentos de Código 5 Lunes, 06 Octobre 2014, 21:55 Ver último mensaje
didier18
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron