............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Ayuda con reporte en Excel

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda con reporte en Excel

Mensaje por glainez el Miér Jul 01, 2009 11:23 am

Tengo problemas como se ven los reportes

Asi se deberia ver el reporte
[Tienes que estar registrado y conectado para ver este vínculo]

Lo normal seria que la columna Dias de Stock se vea asi, los valores que ahi se muestran son decimales pero se redondean, a lado de dicho valores, en la columna Saldo Rojo se deberia marcar un "*" dependiendo de una condicion que esta en el SQL que genera esa informacion, pero el reporte se me muestra de esta manera.

[Tienes que estar registrado y conectado para ver este vínculo]

donde los valores que se ponen en la columna Saldos Rojos son los decimales de los valores Dias Stock.

Ahora este archivo reporte yo no le he puesto ningun codigo VB, estos reportes ya estaban mucho antes de que tome el puesto, lo unico que hice fue cambiar la consulta SQL que te la detallo al final

Y esto solo ocurre en una maquina, las otras maquinas que utilizan el mismo archivo, y digo mismo porque todos lo toman de una unidad de red compartida, no tienen este problema.

Espero me puedas orientar mejor, GRACIAS

Código:

@c:\aplic\excel\inicia_reporte
set linesize 320
column Gye      format 99999999
column Cua      format 99999999
column Tot      format 99999999
column marca    format A60 truncated
column E    format A1 truncated
column producto    format A50 truncated
column contenido    format A15 truncated
break on marca  skip 1 nodup
compute sum of Gye  on marca
compute sum of Cua  on marca
compute sum of Tot  on marca
prompt Existencias de Producto Terminado &2
prompt
prompt
prompt Marca,Producto,Contenido,Categoria  ( A-B-C ),Guayaquil,Cuarentena,Total,Dias de Stock,Saldo Rojo
select
    marca,
    producto,
    contenido,
    categoria,
    Gye,
    Cua,
    Tot-Cua Tot,
    decode(nvl(Plan,0),0,0,(Tot-Cua)*30/plan) Dias_Stock,
    (CASE   
        WHEN prod_origen=1 AND decode(nvl(Plan,0),0,0,(Tot-Cua)*30/plan)< 30 THEN '*'
        WHEN prod_origen=2 AND decode(nvl(Plan,0),0,0,(Tot-Cua)*30/plan)< 75 THEN '**'
        WHEN prod_origen=3 AND decode(nvl(Plan,0),0,0,(Tot-Cua)*30/plan)< 15 THEN '***'
        ELSE ' '
    END) saldorojo
from
(
    select
        max(rtrim(mapr_descripcion)||': '||rtrim(grpr_descripcion)||chr(13)) marca,
            max('"'||decode(prod_fecha_expiracion,null,' ','*'))||
        max(to_char(prod_codigo,'999999')||' '||rtrim(prod_descripcion)||'"') producto,
        max(to_char(degr_contenido)||' '||degr_unidad_medida||'.') contenido,
        max(prod_abc) categoria,
        sum(decode(AEPR_CODIGO_BODEGA,7,
            nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0),0)) Gye,
        sum(decode(AEPR_CODIGO_BODEGA,8,
            nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0),0)) Qui,
        sum(decode(AEPR_CODIGO_BODEGA,10,
            nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0),0)) Cue,
        sum(decode(AEPR_CODIGO_BODEGA,11,
            nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0),0)) Man,
        sum(decode(AEPR_CODIGO_BODEGA,13,
            nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0),0)) Cua,       
        sum(nvl(AEPR_INV_INICIAL,0)
            +nvl(AEPR_MES_1,0)
            +nvl(AEPR_MES_2,0)
            +nvl(AEPR_MES_3,0)
            +nvl(AEPR_MES_4,0)
            +nvl(AEPR_MES_5,0)
            +nvl(AEPR_MES_6,0)
            +nvl(AEPR_MES_7,0)
            +nvl(AEPR_MES_8,0)
            +nvl(AEPR_MES_9,0)
            +nvl(AEPR_MES_10,0)
            +nvl(AEPR_MES_11,0)
            +nvl(AEPR_MES_12,0)) Tot,
        max(plan) plan,
        --Voy agregar prod_origen
        prod_origen
    from   
        in_producto,
        ve_desc_grupos,
        in_marca_producto,
        in_acum_existencia_producto,
        in_grupo_producto,
        (
            select
                plpr_codigo_producto producto,sum(nvl(plpr_cantidad,0)) plan
            from
                ve_plan_produccion
            where
                plpr_anio = to_number(to_char(SYSDATE,'YYYY'))
            group by
                plpr_codigo_producto
        )
    where
        AEPR_ANIO            = to_number(to_char(SYSDATE,'YYYY'))
            and aepr_codigo_bodega        not in (98,99)
        and prod_codigo        = aepr_codigo_producto + 0
        and prod_codigo_grupo        = degr_codigo
        and mapr_codigo_marca        = degr_codigo_marca
        and mapr_grupo            = 1
        and prod_grupo          = grpr_codigo_grupo
        and prod_estado        = 'A'
        and prod_codigo        = producto (+)
        and prod_ocultar_en_existencias <> 'S'
            and prod_tipo            = decode(&1,1,&1,3,&1,prod_tipo)
        and prod_fecha_expiracion is null
        --Voy agregar prod_codigo: aqui se listan todos los codigos de los productos que no se
        --se quieren que se muestre en el reporte
        --and prod_codigo            not in (5402,1702,8312,1815,3111,7100,7102,8622)
    group by
        mapr_quiebre_marca,
        degr_secuencia_grupo,
            prod_fecha_expiracion,
        degr_secuencia_reporte,
        degr_codigo_grupo,
        prod_contenido,
        prod_codigo,
        --Voy agregar prod_origen
        prod_origen
)
/
@c:\aplic\excel\termina_reporte

glainez

Masculino Cantidad de envíos : 4
Edad : 34
Ciudad - Pais : Guayaquil - Ecuador
Version de Excel : 97-2000-xp-2003-2007
Fecha de inscripción : 30/06/2009

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por GalileoGali el Miér Jul 01, 2009 1:42 pm

En la PC del problema, puedes probar
Abrir Excel
Boton de office
Avanzadas
Utilizar Separadores del sistema Operativo, si esta tildado: destildarlos
y luego invertirlos valores de Separador Decimal, por punto a coma y viceversa. Contraponer la eleccion del separador de millares

Probar la consulta despues de guardar estos cambios

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por glainez el Miér Jul 01, 2009 4:04 pm

GalileoGali escribió:En la PC del problema, puedes probar
Abrir Excel
Boton de office
Avanzadas
Utilizar Separadores del sistema Operativo, si esta tildado: destildarlos
y luego invertirlos valores de Separador Decimal, por punto a coma y viceversa. Contraponer la eleccion del separador de millares

Probar la consulta despues de guardar estos cambios

Gracias por tu pronta respuesta, pero lastimosamente aun no soluciono el problema, me sigue dividiendo esa columna en dos, no se si me podrian ayudar con alguna otra sugerencia.

Gracias

glainez

Masculino Cantidad de envíos : 4
Edad : 34
Ciudad - Pais : Guayaquil - Ecuador
Version de Excel : 97-2000-xp-2003-2007
Fecha de inscripción : 30/06/2009

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por GalileoGali el Miér Jul 01, 2009 6:25 pm

Podrias explicar claramente donde se encuentra o de donde extrajiste el codigo que transcribiste???
Forma parte de un archivo Excel?
si la respuesta es afirmativa: podras colgar una copia de ese archivo, que no incluya datos?????

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por glainez el Miér Jul 01, 2009 7:31 pm

Te explico, manejo principalmente dos archivos, uno de excel que es un archivo con botones que ejecuta un archivo .sql que hace el SELECT a la base de datos, el codigo q puse fue del archivo .SQL

Ahora te pongo el codigo del boton del archivo de menu de excel
Código:
Private Sub Consulta_de_existencias_Click()

anio = InputBox("1.Profesional 2.Todo 3.Publico 4.Promociones")
If anio = 1 Then
  titulo = "(Linea_Profesional)"
ElseIf anio = 2 Then
  titulo = "."
ElseIf anio = 3 Then
  titulo = "(Linea_Publico)"
Else
  titulo = "PROMOCIONES"
End If
Call Ejecutar_Consulta("oexistencias_profesionales", "" + anio + " " + titulo)

End Sub
Este codigo es el codigo que se ejecuta al dar clic en el boton, ahora pongo el codigo del metodo Ejecutar_Consulta()

Código:
Sub Ejecutar_Consulta(consulta, parametros As String)
    Dim Id, Datos, Reporte, Directorio, DatosOk, Query
   
    Directorio = "C:\aplic\excel\"
    Datos = Directorio + "datos.csv"
    Datos2 = Directorio + "datos2.csv"
    Reporte = Directorio + "reporte.xls"
    DatosOk = Directorio + "datos.ok"
    Query = Directorio + consulta + ".sql"
    Query1 = Directorio + consulta
   
    If Dir(DatosOk) <> "" Then Kill DatosOk
   
    If Dir(Reporte) <> "" Then
        Workbooks.Open Filename:=Reporte
        ActiveWindow.Close
        Kill Reporte
    End If
   
    If Dir(Datos) <> "" Then
        Workbooks.Open Filename:=Datos
        ActiveWindow.Close
        Kill Datos
    End If
   
    If Dir(Query) = "" Then
        Ok = MsgBox("La consulta " + consulta + " no ha sido creada aún.", vbOKOnly)
        End
    End If
   
    Application.StatusBar = "Procesando la consulta, espere por favor ..."
 
    Id = Shell("Plus80w garbu/garbu @" + Query + " " + parametros, vbMaximizedFocus)
    While Dir(DatosOk) = ""
    Wend
     
    Workbooks.Open Filename:=Datos
 
    With ActiveSheet.PageSetup
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .BottomMargin = Application.InchesToPoints(0.9)
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .LeftHeader = "&""Arial,Negrita""&12Laboratorios Garbu"
        .CenterHeader = ""
        .RightHeader = "&""Arial,Negrita""&12Departamento de Sistemas"
        .LeftFooter = "&D"
        .CenterFooter = "Pagina &P"
        .RightFooter = "&T"
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0.433070866141732)
        .BottomMargin = Application.InchesToPoints(0.47244094488189)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintTitleRows = "$1:$4"
        .PrintTitleColumns = ""
    End With
       
    Rows("4:4").Select
    Selection.Font.Bold = True
    Selection.Font.ColorIndex = 25
    Selection.HorizontalAlignment = xlGeneral
    Selection.VerticalAlignment = xlBottom
    Selection.WrapText = True
    Selection.Orientation = 0
    Selection.ShrinkToFit = False
    Selection.MergeCells = False
   
    If consulta = "ventas" Or consulta = "ventasco" Or consulta = "ventaser" Then
      Columns("B:AZ").Select
      Selection.NumberFormat = "#,##0.00"
      Columns("B:AZ").EntireColumn.AutoFit
    Else
      If consulta = "ventas_detalle" Then
      Columns("J:AZ").Select
      Selection.NumberFormat = "#,##0.00"
      Columns("B:AZ").EntireColumn.AutoFit
      Else
      Columns("B:AZ").Select
      Selection.NumberFormat = "#,##0"
      Columns("B:AZ").EntireColumn.AutoFit
    End If
    End If
    Range("A1").Select
   
    If consulta = "consulta_de_existencias_con_dias_de_stock_por_agencia" Then
        Columns("B:B").Select
        Selection.ColumnWidth = 41
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 80
    End If
   
    If consulta = "ventas_en_unidades_y_sucres_por_cliente" Then
        ActiveSheet.PageSetup.Zoom = 75
    End If
   
    If Left(consulta, 23) = "consulta_de_existencias" Then
        Columns("B:B").Select
        Selection.ColumnWidth = 41
        Columns("I:I").Select
        Selection.ColumnWidth = 11
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 60
    End If
   
    If Left(consulta, 25) = "existencias_profesionales" Then
        Columns("B:B").Select
        Selection.ColumnWidth = 41
        Columns("I:I").Select
        Selection.ColumnWidth = 11
        ActiveSheet.PageSetup.Zoom = 60
    End If
   
    If consulta = "productos_con_bajo_stock" Then
        Columns("B:B").Select
        Selection.ColumnWidth = 41
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 80
    End If
   
    If consulta = "ventas_en_unidades_koleston" Then
        Columns("B:B").Select
        Selection.ColumnWidth = 1
    End If

    If consulta = "ventas_en_unidades_por_marca_y_grupo" Then
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 85
    End If
   
    If consulta = "ventas_en_sucres_por_fecha" Then
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 85
    End If
   
    If consulta = "ventas_en_sucres_por_marca_y_grupo" Then
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 85
    End If
   
    If consulta = "ventas_en_sucres_por_marca" Then
        ActiveSheet.PageSetup.Orientation = xlLandscape
        ActiveSheet.PageSetup.Zoom = 85
    End If
   
    If consulta <> "ventas" And consulta <> "ventasco" And consulta <> "ventaser" And consulta <> "ventas_detalle" Then
      Columns("A:A").Select
      Selection.ColumnWidth = 1
      Selection.Font.Bold = True
      Selection.Font.ColorIndex = 25
    Else
      Rows("1:5").Select
      Selection.Font.Bold = True
      Selection.Font.ColorIndex = 25
      Columns("E:M").Select
      Selection.ColumnWidth = 20
      Columns("A:A").Select
      Selection.ColumnWidth = 16
    End If
   
    Rows("1:1").Select
    Selection.Font.ColorIndex = 9
    Selection.Font.Bold = True
    Selection.Font.Name = "Arial"
    Selection.Font.Size = 18
    Selection.Font.ColorIndex = 9
       
    Rows("4:4").Select
    Selection.Font.Bold = True
    Selection.Font.ColorIndex = 25
    Selection.HorizontalAlignment = xlGeneral
    Selection.VerticalAlignment = xlBottom
    Selection.WrapText = True
    Selection.Orientation = 0
    Selection.ShrinkToFit = False
    Selection.MergeCells = False
       
    ActiveSheet.Protect DrawingObjects:=True, Contents:= _
        True, Scenarios:=True
    ActiveWorkbook.SaveAs Filename:= _
        Reporte, FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
   
    If Dir(Datos) <> "" Then Kill Datos
    If Dir(DatosOk) <> "" Then Kill DatosOk
         
    Range("A1").Select
    Application.StatusBar = ""
       
End Sub

Ahora este codigo NUNCA LO ESCRIBI YO, este codigo ya estaba en los archivos estos cuando ocupe el cargo, estos codigos estan en el archivo de MENU

Al dar clic en el boton del archivo de menu ejecuto las sentencias SQL que puse en mi primer post de este hilo estas sentencias estan dentro del archivo oexistencias_profesionales.sql y hace q se pinte el otro reporte, no se como hace q se abra la ventana con el otro archivo de excel que muestra el resultado como esta en las imagenes que puse en este hilo.

Si con esto me puedes ayudar te quedare en deuda, si necesitas mas informacion dimela q vere como la consigo o averiguo.

Gracias

glainez

Masculino Cantidad de envíos : 4
Edad : 34
Ciudad - Pais : Guayaquil - Ecuador
Version de Excel : 97-2000-xp-2003-2007
Fecha de inscripción : 30/06/2009

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por GalileoGali el Miér Jul 01, 2009 8:25 pm

Sobrevolando en lo que refieres basta con considerar, por lo menos esta linea
Id = Shell("Plus80w garbu/garbu @" + Query + " " + parametros, vbMaximizedFocus)

para darnos cuenta de que Excel es usado como receptor de la consulta y para ordenar la activvacion de otro Programa. En apariencia el problema no lo genra Excel, sino la forma en que esta plantaeada la consulta en SQL....Tanto en este como en tantos otros foros abundan foristas que comparten conocimientos de distintos programas, asi como en algun foro de Botanica, tambien puede encontrarse alquien que conozca de física cuantica, que no e s mi caso. Tal vez si aparecen P@li o samros que conocen de de Manejadores de bases de Datos, tal vez te puedan dar una mano, por ahora aqui seguimos como Foro de Excel, y bienvenido sera cualquier aporte que pueda acrecentar la interrelacion de Excel con otras herramientas, pero por ahora, creo que orientaras mejor tu solucion si consultas en un foro de SQL.....

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por glainez el Jue Jul 02, 2009 11:40 am

GalileoGali escribió:Sobrevolando en lo que refieres basta con considerar, por lo menos esta linea
Id = Shell("Plus80w garbu/garbu @" + Query + " " + parametros, vbMaximizedFocus)

para darnos cuenta de que Excel es usado como receptor de la consulta y para ordenar la activvacion de otro Programa. En apariencia el problema no lo genra Excel, sino la forma en que esta plantaeada la consulta en SQL....Tanto en este como en tantos otros foros abundan foristas que comparten conocimientos de distintos programas, asi como en algun foro de Botanica, tambien puede encontrarse alquien que conozca de física cuantica, que no e s mi caso. Tal vez si aparecen P@li o samros que conocen de de Manejadores de bases de Datos, tal vez te puedan dar una mano, por ahora aqui seguimos como Foro de Excel, y bienvenido sera cualquier aporte que pueda acrecentar la interrelacion de Excel con otras herramientas, pero por ahora, creo que orientaras mejor tu solucion si consultas en un foro de SQL.....


Agradesco a todos su predisposicion por ayudarme, en efecto tenias razon, el problema no se debio al Excel ni a ningun problema de configuracion, la solucion fue hacerle una reinstalacion a las instancias del Oracle, y redireccionar:

Id = Shell("Plus80w garbu/garbu @" + Query + " " + parametros, vbMaximizedFocus)
a
Id = Shell("c:/orawin6i/bin/Plus80w garbu/garbu @" + Query + " " + parametros, vbMaximizedFocus)

eso soluciono el problema, espero que esta respuesta les sirva para futuras consultas.

Gracias a todos

glainez

Masculino Cantidad de envíos : 4
Edad : 34
Ciudad - Pais : Guayaquil - Ecuador
Version de Excel : 97-2000-xp-2003-2007
Fecha de inscripción : 30/06/2009

Volver arriba Ir abajo

Re: Ayuda con reporte en Excel

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.