Bases de Datos > Crystal Reports
Opciones de grupo del cross-tab con programacion
(1/1)
			mikelm3:
			
			Hola a toda la comunidad
Espero me puedan ayudar
Yo necesito manipular con programación un cross-tab de tal manera que por codigo yo pueda cambiar las opciones de grupo de un campo fecha que se encuentra como columna y asi poder sacar el reporte por día, mes y semana.
Esto con el reporte es muy sencillo hacerlo pero el problema es que no quiero un reporte por cada opcion del grupo del cross-tab, tengo 24 reportes diferentes y si hago la ultima opción tendría 72 reportes los cuales tendría que editar cada uno de ellos y sería muy laborioso.
Estoy usando Visual Basic 2005 y Crystal Reports XI developer, ya busque el objeto de opcion de grupo para el cross-tab pero no lo encuentro.
¿Es posible hacer esto por medio de codigo?
En su defecto ¿que otra opción me recomiendan que nos sea hacer un reporte por cada opción de grupo?
Les doy el ejemplo de como esta estructurado uno de los reportes
Estos reportes son de ventas
Cross-Tab por día                           
   02/03/2009   03/03/2009   04/03/2009   05/03/2009   06/03/2009   07/03/2009   09/03/2009   12/03/2009   16/03/2009
Articulo                           
0050   12   1   10   2   5   8   5   4   2
0100   1   2   5   10   6   8   9   10   5
0500   5   8   9   10   15   5   6   4   2
                           
Cross-Tab por semana                           
   01/03/2009   08/03/2004   15/03/2009                  
Articulo                           
0050   38   9   2                  
0100   32   19   5                  
0500   52   10   2                  
                           
Cross-Tab por mes                           
   Mar-09                        
Articulo                           
0050   49                        
0100   56                        
0500   64
		
			rlcobos:
			
			Hola,
Tengo exactamente el mismo problema.
Como lo resolviste al final.??
Gracias
Raúl
		
			mikelm3:
			
			Encontre un codigo de un  store procedure de sql server que es el siguiente:
CREATE procedure CrossTab (@Select varchar(1000), 
    @PivotCol varchar(100),
    @Summaries varchar(100), 
    @GroupBy varchar(100),
    @OtherCols varchar(100) = Null)
AS
 
set nocount on
set ansi_warnings off
 
declare @Vals varchar(8000);
set @Vals = '';
 
set @OtherCols= isNull(', ' + @OtherCols,'')
 
create table #temp  (Pivot varchar(100))
 
insert into #temp
exec ('select distinct convert(varchar(100),' + @PivotCol + ') as Pivot FROM (' + @Select + ') A')
 
select @Vals = @Vals + ', ' + 
    replace(replace(@Summaries,'(','(CASE WHEN ' + @PivotCol + '=''' + 
            Pivot +  ''' THEN '),')[', ' END) as [' + Pivot )
from #Temp 
order by Pivot
 
drop table #Temp
 
EXEC ( 'select ' + @GroupBy + @OtherCols + @Vals + 
       ' from (' + @Select + ')  A GROUP BY ' + @GroupBy)
 
set nocount off
set ansi_warnings on
GO
los parametros que le paso al store procedure son las consultas de unas vistas que se generan dinamicamente mediante codigo en el programa de VB, despues el resultado del store procedure lo bajo a un table adapter para ligarlo a un grid y en el grid presento el reporte pero si quieres tambien lo puedes vaciar en un reporte de crystal reports con origen de datos mediante store procedure.
Espero te sirva de algo
Suerte........
		
Navegación
Ir a la versión completa