Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi everybody. I´ve been studying QV for a few weeks, and now, in the work, i have to fix an application. (or should i say to improve 1 item in an application)
It has a lots of tables, and a lots of tabs with code, and im a little lost, i think is easier to create than improve an app.
Do you have any recomends to analyse a big app? Reading the code and testing with small tables, or i don´t know, something like that.
Thank you.
Cheers.
I would try to understand the data-sources and how it looks within the data-model (CTRL + T for the tableviewer) and then I would use the debugger where you could reduce the amount of rows if it neccessary and could look on the load-execution by every step including variables-values, sub-routines, loops or include-variables.
- Marcus
Qué tenés que agregar exactamente? Una tabla al script?
Tengo que modificar una parte de la aplicacion en donde hay cuentas pasivas corrientes y no corrientes, y las muestra todas como corrientes. Cuando pasan los 12 meses se hacen no corrientes, entonces lo que tengo que hacer (dicho muy por arriba) es dividir las cuentas. Que muestren los primeros 12 meses como corrientes, y luego se pasen a otra solapa que sean no corrientes.
Esta dicho medio por arriba por que todavia no termine de entender funcionalmente que es lo que debo hacer. Hoy trato de entender mas su funcionalidad y la parte de codigo y puedo agregar mas.
I´ll try to translate this to english.
I have to modify a part of the app. There are liabilty accounts. And they can be current or non-current but the app shows all the accounts as current.
When 12 months pass, an account is non-current, then what i have to do is divide the accounts. The app must show the first 12 months like current, and then the surplus months go to the non-current part of the table.
Im speaking without knowing the app, i didn´t understaund well the app, and i´m trying to analize it.
Estuve todo el día ocupado.
Lo de corrientes y no corrientes es un campo que te lo dice? Si es asi, es una pavada.
Jeremias, seguramente el pasaje de corriente a no corriente lo puedas determinar por la fecha de creacion de las cuentas, ahi tendras que hacer algunas banderas en el script, me refiero a la creacion de flags :
if(fecha_alta_cuenta>....., 'corrientes', 'no corrietes') y deberas trabajar con este tipo de logica para establecer si una cuenta es corriente o no corriente.
luego si puedes explicar mas a detalle que es lo que necesitas para que podamos ayudarte, estaria estupendo
slds.
Fernando
Hola, disculpen mi tardanza, estube enfermo.
Así es Fernando. Lo que pasa es que todas las cuentas de pasivos se ponen en una pivot table como corriente. Lo que hay que hacer es "abrir" las cuentas (son 6 ) que tienen mas de 12 meses (desde la fecha que yo elija) y poner 12 meses como corrientes y luego los restantes en la parte no corriente. (Esto no estoy seguro, pero creo que si el de la cuenta se atraso y no pago, esos meses se acumulan en el corriente para pagar). Me gustaria poner el codigo donde se hace pero son como 5 paginas jajajaja, trato de ver la parte clave a ver si lo encuentro.
No planeaba pedir ayuda todavia acerca de la aplicacion en si, pero buenisimo!
Jeremias, perfecto
si podes poner una imagen de como quedaria (aparte del codigo) para que puedamos ayudarte tambien nos sirve
abrazo y cualquier consulta a las ordenes
Ok, Mira aca pongo los que se usan como dimensiones ( en la foto por ahi se entiende mejor)
La aplicación es larga en codigo pero por ahora entiendo que va guardando los saldos y luego los suma dividiendolos entre pasivos no pasivos y patrimonio neto con esas dimensiones puestas ahi
LOAD | ||
CUENTA, | ||
//GRUPO 1 | ||
LEFT(CUENTA,1) AS GRUPOID_1, | ||
lookup('CUEN_NOMBRE', 'CUENTA_AUX',LEFT(CUENTA,1), 'CUENTAS_TMP') AS GRUPO_NOMBRE_1, | ||
//GRUPO 2 | ||
LEFT(CUENTA,2) AS GRUPOID_2, | ||
IF(LEN(CUENTA)>2,lookup('CUEN_NOMBRE', 'CUENTA_AUX',LEFT(CUENTA,2), 'CUENTAS_TMP')) AS GRUPO_NOMBRE_2, | ||
//GRUPO 3 | ||
LEFT(CUENTA,4) AS GRUPOID_3, | ||
IF(LEN(CUENTA)>3, lookup('CUEN_NOMBRE', 'CUENTA_AUX',LEFT(CUENTA,4), 'CUENTAS_TMP')) AS GRUPO_NOMBRE_3, | ||
//GRUPO 4 | ||
LEFT(CUENTA,6) AS GRUPOID_4, | ||
IF(LEN(CUENTA)>=4, lookup('CUEN_NOMBRE', 'CUENTA_AUX',LEFT(CUENTA,6), 'CUENTAS_TMP')) AS GRUPO_NOMBRE_4 |
Resident CUENTAS_TMP
WHERE CUEN_IMPUTABLE=1 AND
MATCH (LEFT(CUENTA,1),'1','2','3')>0;
Esto se usa para poner dimensiones para poder ir dividiendo los pasivos/activos en categorias.
=IF(ISNULL(GRUPO_NOMBRE_1),'PATRIMONIO NETO', GRUPO_NOMBRE_1) etc...
la foto es esta
y aca se va sumando el saldo creo
TMP_SALDOSINICIALES:
FOR i = 1 TO $(vTotal)
load
EMPRESA,
DIVISION_A,
CUENTA,
// MAESTRO,
INSTANCIA,
SALDO AS SALDOINICIAL,
// AÑOMESCONTINUO AS AÑOMESCONTINUOORIGEN,
(AÑOMESCONTINUO + $(i)) as AÑOMESCONTINUO
RESIDENT TMP2;
NEXT i;
DROP TABLE TMP2;
SDOSINICIALES:
LOAD
EMPRESA,
DIVISION_A,
CUENTA,
// MAESTRO,
INSTANCIA,
AÑOMESCONTINUO,
SUM(SALDOINICIAL) AS SALDOSINICIALES
RESIDENT TMP_SALDOSINICIALES
GROUP BY
EMPRESA, //CHEQUEAR
DIVISION_A,
CUENTA,
// MAESTRO,
INSTANCIA,
AÑOMESCONTINUO;