GeneXus - Pregunta sobre SDT y GRID

   
Vista:

Pregunta sobre SDT y GRID

Publicado por Alexander Mejia (2 intervenciones) el 03/07/2009 20:39:13
Hola Amigos Del Foro , Soy Algo nuevo en esto de Genexus , estoy desarrollando una aplicacion en genexus 9 con db MySql para WIN , tengo una transaccion llamada partida que consta de dos niveles en el nivel uno se ingresa el numero de partida, la fecha , usuario y detalle ese es el encabezado , el nivel dos es un grid donde se ingresa el codigo contable ,automaticamente genexus infiere el nombre de la cuenta , e ingreso un campo Dc el cual es para ingresar un 1 si el campo es un debito y un dos si es un credito , luego el campo monto,

el hecho es el siguiente , el usuario no puede generar la partida si esta esta desbalanceada es decir si la suma de los montos con uno no es igual a la de los montos con dos(debitos y creditos) eso practicamente ya lo tengo y lo hago en el evento isvalid de la ultima columna de la grilla , guardo en una variable los montos que pertenecen a 1 &sumadebitos y en otra los de dos , &sumacreditos despues en la variable &Diferencia guardo la diferencia de estas variables, luego con un boton valido

if &Diferencia<>0
msg('Partida no cuadra No se Generará...')

else

comprobar.Visible=0
btn_enter.Visible=1
endif

es decir si &Diferencia es distinto a cero tira el mensage que la partida no cuadra y no habilita el boton para generar los datos de lo contrario si lo hace
ahora bien el usuario deberia modificar los valores que ingreso malos para que &diferencia quede en cero , lo malo es que no he encontrado la forma de que cuando se modifique ese valor se borre de &sumadebitos o &sumacreditos el valor anterior sin afectar los otros valores sumados a la variable segun sea 1 o 2 y sume el valor correcto
Si me pueden ayudar , les agradecere sobremanera
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pregunta sobre SDT y GRID

Publicado por cesar (2 intervenciones) el 09/07/2009 15:40:13
Porque en ves de de usar variables no utizas tres funciones.
ParTotDeb SUM(Impdeb)
ParTotHab SUM(ImpHab)
ParDif ParTotDeb - PartotHab

Ademas en ves utlizar una columna que indique si es debito o credito, porque no pones dos columnas una que tenga el importe del debito y otra el importe del credito; y colocas un noaccept si la otra columna es distinta de cero.

Creo que es la solucion mas eficiente. Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Patricio Ojeda V

RE:Pregunta sobre SDT y GRID

Publicado por Patricio Ojeda V (454 intervenciones) el 10/07/2009 01:39:27
Alexander,

Lo mejor que puedes hacer es usar la formulas SUM que ofrece GeneXus... pues eso que estas haciendo con variables la verdad no es para nada optimo... ademas estas sumando y restando "a mano" siendo que GeneXus puede realizar eso sin mayores problemas...

Saludos

Patricio Ojeda V
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta sobre SDT y GRID

Publicado por Alexander Mejia (2 intervenciones) el 14/07/2009 00:05:57
Gracias a los Dos por sus respuestas , creanme que ya lo habia intentado de esa forma , pero no se porque la funcion Sum no me funciona sobretodo como yo lo quiero hacer , los valores en una misma columna diferenciados por un digitode la columna anterior para eso puse una formula sum de esta forma
Sum(Monto)if PartidaDc=1
Sum(Monto)if partida Dc=2

y no me funciono no suma nada , si las pongo separadas las columnas si funciona solo que no es la forma que yo deseo , de todas formas lo que hice fue agregar dos atributos en el primer nivel de sumaDeb y sumaCred y con la regla Add sumo los valores , no es lo que yo queria porque no queria guardar esos totales en la DB pero funciona . Les agradesco mucho y si tiene otra sugerencia con el tema les agradecere su tiempo asi como hasta ahora les agradesco

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar