GeneXus - Registros repetidos

 
Vista:
sin imagen de perfil

Registros repetidos

Publicado por Jesus Ivan (7 intervenciones) el 25/07/2015 19:46:45
Estoy trabajando con Ev2 .NET ... Tengo un reporte en el cual se muetra informacion relacionada con siembras de semillas con varios datos como, nombre de agricultor, especie, variedad, lote, semillas sembradas, etc... pero son demasiados registros en el reporte. Mi duda es, Como puedo de alguna manera totalizar o agrupar los registros?

Supongamos que tengo:

Agricultor1 Especie1 Variedad1 123456(lote) 10000(Semillas Sembradas)
Agricultor2 Especie2 Variedad2 22222(lote) 10000(Semillas Sembradas)
Agricultor1 Especie1 Variedad1 123456(lote) 10000(Semillas Sembradas)
Agricultor2 Especie2 Variedad2 22222(lote) 10000(Semillas Sembradas)
Agricultor1 Especie1 Variedad1 123456(lote) 10000(Semillas Sembradas)
Agricultor1 Especie1 Variedad1 123456(lote) 10000(Semillas Sembradas)

Lo que quiero es que quede de esta manera:

Agricultor1 Especie1 Variedad1 123456(lote) 40000(Semillas Sembradas)
Agricultor2 Especie2 Variedad2 22222(lote) 20000(Semillas Sembradas)

No se si me di a entender....
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
Imágen de perfil de Ruperto

Registros repetidos

Publicado por Ruperto (23 intervenciones) el 27/07/2015 00:13:32
Mira se me ocurre que puedas utilizar los llamado cortes de control, es basicamente hacer for each sobre for each está es una buena manera de trabajar los reportes con n número de registros resulta útil y te ahorras mucho espacio en tu reporte. Podrias consultar como construirlos en este link:
https://www.youtube.com/watch?v=e_xfkNYJARs

Espero y te ayude. Saludos
Melher :)
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
sin imagen de perfil

Registros repetidos

Publicado por Jesus Ivan (7 intervenciones) el 27/07/2015 18:20:04
Creo no fui claro necesito que si tengo registros con el mismo nombre, especie, variedad, lote, etc y que solo tengan en diferente las cantidades, que me agrupe los registros y me imprima solamente una linea con el nombre, especie, variedad, lote, etc y que las cantidades las sume para en la misma linea imprimir el total, esto para que de 20 registros iguales pero con diferentes cantidades, me queden en una sola linea pero con las cantidades ya sumadas.

Dejo de igual forma mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
MB 3
 
&Titulo    = 'AGRICOLA DEL NAINARI'
&Subtitulo = 'REPORTE DE MAQUILAS'
 
for each //<------ Busqueda de Sustratos y Sumatoria
	&SustratosItem             = new()
	&SustratosItem.SusID       = SusID
	&SustratosItem.SusDescrip  = SusDescrip
	&SustratosItem.SusCantidad = 0
 
	&Sustratos.Add(&SustratosItem)
endfor
 
Header //<------ Encabezado del reporte
	print P_Encabezado
	print Columnas
end
 
&OTCantSemillas(4) += &OTCantSemillas(1)
for each
	defined by AgriNombre
	&VariID            = nullvalue(&VariID)
	&EspeID            = nullvalue(&EspeID)
	&OTCantSemillas(1) = 0
	&OTCantSemillas(2) = 0
	&OTCantSemillas(3) = 0
	&temp              = 0
	for each order SubID EspeID VariID OTFecha
		where OTFecha >= &OTFechaFrom
		where OTFecha <= &OTFechaTo
		if &temp = 0
			print Agricultor
		endif
		&temp = 1
		if VariID <> &VariID
			if &OTCantSemillas(3) <> 0
				print SubtotalVariedad
				&OTCantSemillas(3) = 0
			endif
		endif
		if EspeID <> &EspeID
			if &OTCantSemillas(2) <> 0
				print SubtotalEspecie
				&OTCantSemillas(2) = 0
				&OTCantSemillas(3) = 0
			endif
		endif
		&VariID = VariID
		&EspeID = EspeID
		if &res <> 0
			&cantcharolas = &cantcharolas + 1
		endif
		&SusDescCor = ""
		for each
			&SusDescCor += '['+trim(SusDescCor)+'='+trim(SusCantidad.ToString())+'] '
			for &i = 1 to &Sustratos.Count
				if &Sustratos.Item(&i).SusID         = SusID
					&Sustratos.Item(&i).SusCantidad += SusCantidad
				endif
			endfor
		endfor
 
		&OrdenCantPendientes=OrdenCantPendientes
		if &OrdenCantPendientes<=0
			&OrdenCantPendientes=0
			&status='S.TERMINADA'
		else
			&status=''
		endif
	for each
		print Detalle
		&OTCantSemillas(3) += OTCantSemillas //<------Sumatoria de Semillas
		&OTCantSemillas(2) += OTCantSemillas
		&OTCantSemillas(1) += OTCantSemillas
		&OTCantSemillas(4) += OTCantSemillas
		endfor
	endfor
	if &OTCantSemillas(3) <> 0
		print SubtotalVariedad
	endif
	if &OTCantSemillas(2) <> 0
		print SubtotalEspecie
	endif
	if &OTCantSemillas(1) <> 0
		print Subtotal
	endif
endfor
 
		if &OTCantSemillas(4) <> 0
			print total
		endif
 
	&Sustratostotalgral = 0
	for &SustratosItem in &Sustratos
		&SustratoDesc     = &SustratosItem.SusDescrip
		&SustratoCantidad = &SustratosItem.SusCantidad
		if &SustratoCantidad <> 0
			print totalsustratos
			&Sustratostotalgral += &SustratoCantidad
		endif
	endfor
 
	if &Sustratostotalgral<>0
		print totalgralsus
	endif
 
Footer //<------ Pie de Pagina
	print P_Pie
end

Y este es un ejemplo del reporte que se genera:
(LO QUE APARECE EN ROJO ES UN EJEMPLO DE LO QUE QUIERO QUE SE AGRUPE EN UNA SOLA LINEA, SI... HAY DATOS DIFERENTES PERO ESO YA LO IRE ACOMODANDO YO, SIMPLEMENTE NECESITO SABER LA FORMA DE HACER LA AGRUPACION, GRACIAS!)

Sin-titulo
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 Fede

Registros repetidos

Publicado por Fede (2 intervenciones) el 11/08/2015 19:55:15
Ya lo pudiste solucionar? Por lo que entiendo lo que queres hacer es aquellos registros que sean iguales, pero que tengan cantidades diferentes, que te los agrupe? es así?
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
sin imagen de perfil

Registros repetidos

Publicado por Jesus Ivan (7 intervenciones) el 11/08/2015 20:02:05
Ya lo resolvi, solamente queria que si tenia 3 registros con la misma cantidad de semillas solicitadas me imprimiera unicamente el primer registro para no confundir los dos siguientes y de alguna u otra manera agruparlos como mencionas o ver que se trata de una misma orden.

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