Soporte - Premium Soft

Este foro esta orientado a intercambiar experiencias sobre el soporte técnico en las aplicaciones Premium Soft.

http://www.premium-soft.com/bitacora.htm enterate de todos los cambios sobre los productos, mantente al dia
Sabias que un ALIADO DE NEGOCIOS puede tener su propia red de distribuidores Premium Soft y ganar mucho dinero? solicita información hoy mismo a info@premium-soft.com

    Reporte con Agrupamiento y filtrado de registros.

    Comparte

    b1nar10

    Cantidad de envíos : 67
    Edad : 36
    Localización : Barinas
    Fecha de inscripción : 11/04/2009

    Reporte con Agrupamiento y filtrado de registros.

    Mensaje  b1nar10 el Jue Jul 19, 2012 6:10 pm

    Buen día, me gustaría saber si hay alguna forma de modificar la clausula WHERE que condiciona los registros que van a determinado reporte.

    El caso es que estoy intentando hacer un reporte en el que solo se muestren registros de 2 ("000001" y "000002") de los 5 Grupos de Inventario con sus totales (es un desglose complementario a la factura).

    He copiado el reporte de factura y estoy utilizando "nombregrupo" como parametro de agrupación de los registros...



    Además de los condicionales para la impresión de cada uno de los campos.



    "nombregrupo" es alias de "grupos.NOMBRE" y "grupoart" de "opermv.GRUPO".

    Sin embargo, cuando en la factura no se ingresan en orden los registros de cada grupo, el reporte asume que se trata de otro grupo y se imprime incorrectamente el reporte, como sucede en este caso con el grupo de "MEDICAMENTOS", ya que entre el CARDIOPRIL y la CLINDAMICINA se ingresaron otros registros no pertenecientes a este grupo de inventario.



    El reporte completo de puede descargar del siguiente link

    https://www.dropbox.com/s/5na0rcqx71elmem/relmatymed2.pdf

    Creo que la solución pasaría por algún parámetro que estoy obviando en el agrupamiento del reporte o por la modificación de la clausula WHERE del mismo, para asi recuperar solo los registros que serán utilizados en el reporte y evitar el salto.

    Si alguien sabe como resolverlo de una forma u otra, le agradezco de antemano la información que pueda facilitarme al respecto.

    Saludos.

    b1nar10

    Cantidad de envíos : 67
    Edad : 36
    Localización : Barinas
    Fecha de inscripción : 11/04/2009

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  b1nar10 el Miér Jul 25, 2012 5:10 pm

    Pude resolver el problema creando un Informe Adicional, con una copia de los reports y query de la FACTURA STANDAR y modificando de la siguiente forma las condiciones del mismo.






    syhcomputacion

    Cantidad de envíos : 367
    Edad : 42
    Fecha de inscripción : 18/02/2008

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  syhcomputacion el Miér Jul 25, 2012 5:38 pm

    creo que con ordenar el cursor resultante tienes por "nombregrupo" tienes...

    en el dataenviroment en el procedure init, alli capturas el cursor y lo ordenas por ese campo "nombregrupo", ej:


    w_allias=alias()

    select * from &w_alias order by nombregrupo into cursor &w_alias
    go top

    prueba e informas..

    Saludos


    b1nar10

    Cantidad de envíos : 67
    Edad : 36
    Localización : Barinas
    Fecha de inscripción : 11/04/2009

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  b1nar10 el Jue Jul 26, 2012 9:49 pm

    Buen día Richard.
    Agradezco tu respuesta. La verdad en Visual Fox Pro no tengo nada de experiencia; he intentado modificar el Data Environment tomando como referencia el ejemplo que me diste y no logro que se ordenen los registros de la forma deseada.

    El Data Evironment que corresponde al formato que necesito modificar es una copia del Factur01

    Código:

    PROCEDURE Init
    *INITBLOCK
    *------------------
    * Parametros de seteo de entorno
    initset()
    select alias()
    lnameAlias=alias()
    cm_documento=documento
    ** para obtener las formas de pago del documento, si el cursor devuelve al menos un registro es porque tiene abonos
    ** adicionalmente si posee mas de un abono sera sumado en cada forma de pago correspondiente, la estructura del cursor es identica a la de operclit
    **
    ArmaFormaPago("FAC",cm_documento,3) && 1= traer formas de pago , 2=trae el vuelto, 3=devuelve copia de operclit pero con los saldos acumulados
    SELECT formapago

    *
    * Este bloque permite exportar en un archivo texto los parámetros que requiere el centro de impresión fiscal
    * la idea es que por la reimpresión de factura (NO FISCAL) el usuario puedo crear un archivo plano para que otro software pueda
    * tomar la información de la factura hecha en Premium Soft y registrarlo en su producto de software que use
    *
    *!*   SELECT(lnameAlias)
    *!*   cDocumentoCIF="FACTI"+ALLTRIM(documento)
    *!*   cArchivoTi="FACTI"+ALLTRIM(documento)+".txt"
    *!*   cArchivoMv="FACMV"+ALLTRIM(documento)+".txt"
    *!*   cRutaInArchivo="C:\x\Gary\" &&&&& ACA SE MODIFICA LA RUTA DONDE SE GENERARA EL ARCHIVO (2)
    *!*   *
    *!*   create cursor cursor_operti (documento  c(20),;
    *!*      nombrecli  c(80),;
    *!*      rif        c(15),;
    *!*      direccion  c(150),;
    *!*      totdescuen n(19,2),;
    *!*      totpagos  n(19,2),;
    *!*      totalfinal n(19,2),;
    *!*      recargos  n(19,2),;
    *!*      recargoprc n(19,2),;
    *!*      efectivo  n(19,2),;
    *!*      cheque    n(19,2),;
    *!*      tcredito  n(19,2),;
    *!*      tdebito    n(19,2),;
    *!*      ncredito  n(19,2),;
    *!*      otrotipo  n(19,2),;
    *!*      Tipodoc    c(3),;
    *!*      totneto    n(19,2),;
    *!*      totimpuest n(19,2),;
    *!*      alicuota  n(19,3),;
    *!*      baseimpo1  n(19,2),;
    *!*      baseimpo2  n(19,2),;
    *!*      baseimpo3  n(19,2),;
    *!*      notas      c(100),;
    *!*      aplicadoa  c(20),;
    *!*      fechadev  d(8),;
    *!*      horadev    c(5),;
    *!*      serialprint c(25),;
    *!*      facfiscal  c(8))

    *!*   **
    *!*   * Tabla de movimientos de factura
    *!*   *
    *!*   create cursor cursor_opermv (documento  c(20),;
    *!*      codigo    c(25),;
    *!*      nombre    c(80),;
    *!*      unidad    c(20),;
    *!*      cantidad  n(19,4),;
    *!*      preciofin  n(19,2),;
    *!*      timpueprc  n(19,3),;
    *!*      agrupado  n(3),;
    *!*      baseimpo1  n(19,3),;
    *!*      baseimpo2  n(19,3),;
    *!*      baseimpo3  n(19,3))

    *!*   *--- encabezado
    *!*   select cursor_operti
    *!*   append blank

    *!*   replace documento  with cDocumentoCIF
    *!*   replace nombrecli  with &lnameAlias->nombrecli
    *!*   replace rif        with &lnameAlias->rif
    *!*   replace direccion  with &lnameAlias->direccion
    *!*   replace totpagos    with &lnameAlias->totpagos
    *!*   replace totalfinal  with &lnameAlias->totalfinal
    *!*   replace efectivo    WITH formapago.efectivo
    *!*   replace cheque      WITH formapago.bcocheqmto
    *!*   replace tcredito    WITH formapago.mtotarjeta
    *!*   replace tdebito    WITH formapago.tardebmto
    *!*   replace otrotipo    WITH formapago.otrotipo
    *!*   replace totimpuest  with &lnameAlias->totimpuest
    *!*   replace totdescuen  WITH &lnameAlias->totdescuen

    *!*   *--- movimiento
    *!*   select * from (lnameAlias) where 1=1 into cursor opermv_export readwrite
    *!*   select opermv_export
    *!*   go top

    *!*   do while !eof()
    *!*      select cursor_opermv
    *!*      append blank
    *!*      replace documento  with cDocumentoCIF
    *!*      replace codigo    with opermv_export.codigo
    *!*      replace nombre    with opermv_export.nombre
    *!*      replace unidad    with opermv_export.unidad
    *!*      replace cantidad  with opermv_export.cantidad
    *!*      replace preciofin  with opermv_export.preciofin
    *!*      replace timpueprc  with opermv_export.timpueprc
    *!*      *--
    *!*       select opermv_export
    *!*      skip
    *!*   ENDDO

    *!*   select cursor_operti
    *!*   GO top
    *!*   * Copiando archivo de encabezado
    *!*   COPY TO (cRutaInArchivo+cArchivoTi) DELIMITED WITH tab

    *!*   select cursor_opermv
    *!*   GO top
    *!*   COPY TO (cRutaInArchivo+cArchivoMV) DELIMITED WITH tab


    *
    * Fin del proceso
    *
    *

    SELECT (lnameAlias)
    GO top
    ENDPROC

    Cualquier orientación adicional al respecto será bien recibida.
    Saludos.

    syhcomputacion

    Cantidad de envíos : 367
    Edad : 42
    Fecha de inscripción : 18/02/2008

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  syhcomputacion el Jue Jul 26, 2012 9:54 pm

    contactame y te ayudo en eso...

    Saludos

    b1nar10

    Cantidad de envíos : 67
    Edad : 36
    Localización : Barinas
    Fecha de inscripción : 11/04/2009

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  b1nar10 el Jue Jul 26, 2012 9:59 pm

    Acabo de hacer una prueba y funcionó.

    Solo sustituí la línea

    Código:
    SELECT (lnameAlias)

    Por
    Código:
    SELECT * from &lnameAlias order by nombregrupo into cursor &lnameAlias

    Gracias Richard, una vez mas!

    syhcomputacion

    Cantidad de envíos : 367
    Edad : 42
    Fecha de inscripción : 18/02/2008

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  syhcomputacion el Jue Jul 26, 2012 10:20 pm

    Excelente Marco, esa es la idea de este foro ayudarnos y aprender todos..

    Saludos

    Contenido patrocinado

    Re: Reporte con Agrupamiento y filtrado de registros.

    Mensaje  Contenido patrocinado Hoy a las 9:21 pm


      Fecha y hora actual: Dom Dic 04, 2016 9:21 pm