SOLUCIONADO Cambio de Apariencia En Gestion

Hola gente, necesitariamos que nos orienten para cambiar la apariencia en los colores del sistema de Gestión, dado que es una inquietud planteada por los usuarios cuando tienen instalada la versión productiva y la versión de Testeo y la sugerencia nos pareció viable dado que presta a confusión para ellos.
Estuvimos haciendo algunas pruebas con algunas variables del archivo ini pero no se prodcuen ningun cambio.
Nos podrìan orientar un poco con el tema?

Desde ya muchas gracias
Equipo Guarani La Plata.

Luciano, algo sencillo y rapido que podes hacer es:
En el evento “open” de la ventana “w_principal” modificar el color de fondo de las ventanas, por ej agregar el siguiente codigo al final del script:

This.backcolor = RGB(0, 250, 154)

o el color que desees (podes ver los codigos RGB en http://es.wikipedia.org/wiki/Colores_HTML)
o podes configurar que lea este código desde el archivo ini y que lo setee en el caso de que sea la version de Test.

Todas las ventanas tienen como ancestro a esta ventana.

Saludos

Luciano, en el menú ayuda, opción “acerca de” si presionan la combinación de teclas ctrl+shift y hacen click en el logo de SIU aparece un mensaje con información de conexión. Supongo que las base de datos de producción y la de pruebas se llaman de forma diferente. En esa ventana podrán diferenciarlos. Otra forma es compilar un juego de ejecutables con una ventana de login diferente, y especificar el nombre de esta ventana en el archivo .ini
Espero que les haya ayudado.

Saludos

Damian : muy buena ayuda !!

Hola

Mezclando un poco todo lo antedicho, se puede hacer lo siguiente:

Crear en el archivo siu_guarani.ini una nueva seccion
[colores_base]
base_1=65535
base_2=255

con una linea para cada base que se utilice.

luego en el open de la ventana w_principal poner el siguiente código

string arch_ini
long ll_color

arch_ini = guo_app.uof_GetArchivoInicio()
ll_color = long(ProfileString(arch_ini, “colores_base”, SQLCA.database,‘-1’))

If ll_color > 0 Then
This.backcolor = ll_color
End IF

La ventana de conexión tomará el color de la base de datos que está definida en el ini.
Si se cambia esa base runtime, se modificará el color de fondo de la ventana al establecio en [colores_base]

No es muy lindo las ventanas amarillas y las dw grises…

Emilio

Muchas gracias, esto nos sirve. Lo del Ctrl+shift+click en el logo del siu lo conocíamos y también nos resulta de mucha utilidad, pero para este caso (un usuario que tiene dos aplicaciones abiertas apuntando a bases distintas) nos parece mas adecuado para que evite errores de hacer las cosas en las bases incorrectas con un golpe de vista.
También pensabamos que quizás había alguna opción de configuración de colores en el ini.

Nuevamente, muchas gracias a todos!

Saludos

PD: Justo el foro me avisó de una nueva respuesta:

Esta solución también está buena y permite cambiar los colores desde el ini sin recompilar la aplicación además de poder tener las mismas librerías para varias aplicaciónes.

Si, esta bien la del INI. No sabía que usaban las mismas librerias y se conectaban a diferentes bases. La solución planteada por Emilio resuelve esto.

Si se desea un nivel de sofisticación adicional a la propuesta de Emilio, que se independice del INI y dependa de la base de datos exclusivamente, se puede pensar lo siguiente:

  1. Agregar un parámetro configutable (para cada base de datos)

insert into par_parametros_sis values(“ver_color_fondo”,“Color de fondo”,“Color de fondo”,“L”,“S”,null,null,null);

insert into sga_param_sistema values(“POSGR”,“ver_color_fondo”,“200,200,50”);

En este caso 200,200,50 es un ejemplo RGB y es espantoso y el prefijo ver_color es para que quede al fondo ya que se podrá modificar mediante “Modificación de los parámetros del sistema”

  1. En la librería basicos.pbl
    2.a Agregar la funcion

f_color(string param) returns long
string bc
int r,g,b

if SQLCA.database<>‘’ then
bc = f_param_sistema(‘ver_color_’ + param)
if isnull(bc) then
//Light Gray 12632256
r = 192
g = 192
b = 192
else
r = integer(f_proxparam(bc))
g = integer(f_proxparam(bc))
b = integer(f_proxparam(bc))
end if
Return rgb(r,g,b)
else
return 80269524 //Light Gray
end if

2.b Modificar w_principal evento ue_optar
agregar al final
this.backcolor = f_color(‘fondo’)

2.c Modificar uo_dw funcion uof_set_dataobject
inmediatamente debajo de
This.dw_Impresion = ‘’ (linea 19)
agregar
this.object.DataWindow.Color = f_color(‘fondo’)

Se puede setear el dolor de cualquier objeto que se desee e incluso modificar otros colores ademas del fondo con parametros adicionales

Saludos