Variable en un reporte

960 views
Skip to first unread message

Arturo Ramos

unread,
Oct 11, 2011, 6:43:23 PM10/11/11
to publice...@googlegroups.com
Hola foro,

Tengo un reporte que imprime unas notas, estas notas están en una variable que no siempre está declarada, depende de desde donde se mande a llamar al reporte, la pregunta es, puedo llamar a un formulario para llenar las 'notas' que se almacenan en la variable si al momento de mandar a imprimir la variable no está definida ?

Algo as, si la variable está definida, imprime su contenido, si no llama por ejemplo a un formulario para llenar las notas que van en la variable y luego las imprime, pero que se haga desde el llamado del reporte ?

Espero haberme explicado,

Gracias por su tiempo

Saludos.

Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México.

MarceloBuenosAires

unread,
Oct 11, 2011, 7:45:55 PM10/11/11
to publice...@googlegroups.com
Hola Arturo

Si la variable esta vacia o no declarada
llamas al form para completarla

Sino, imprimis y listo

Saludos
MarceloBuenosAires
__________________

Oscar Calderon Fuentes

unread,
Oct 11, 2011, 11:35:21 PM10/11/11
to publice...@googlegroups.com
De todos modos la variable la declaras y la llenas antes de llamar al reporte, por lo tanto, si la variable tiene data llamas al reporte e imprimes, de lo contrario, si la variable no está declarada o no tiene data (nula o vacía) llamas al formulario, declaras y/o llenas la variable y posteriormente llamas al reporte e imprimes.
--
Oscar Calderón Fuentes
Santiago - Chile
 

Arturo Ramos

unread,
Oct 12, 2011, 11:47:05 AM10/12/11
to publice...@googlegroups.com
Marcelo y Oscar,

Gracias por su respuesta... en realidad no lo he intentado, debería hacer eso antes de preguntar pero bueno, la cosa es, puedo llamar al formulario desde la llamada del reporte ?

REPORT FORM ...

y si dentro del reporte la variable no está declarada se lanza el formulario para declararla y llenarla con las notas y luego continua la vista previa o la impresión del reporte ?, se puede ?, cómo ?

Gracias por su tiempo.

Saludos

elkin dario uribe torres

unread,
Oct 12, 2011, 12:00:32 PM10/12/11
to publice...@googlegroups.com
Arturo cuando expresas "Tengo un reporte que imprime unas notas, estas notas están en una variable que no siempre está declarada, depende de desde donde se mande a llamar al reporte, la pregunta es, puedo llamar a un formulario para llenar las 'notas' que se almacenan en la variable si al momento de mandar a imprimir la variable no está definida ?" te refieres a que este reporte lo lanzas desde diferentes partes y de acuerdo a como se lanza se necesita o no la variable notas?

Si la respuesta es "SI" solo deberias declarar la variable notas y le asignas espacios para que te permita mostrar el reporte y no te saque errores y en el reporte le coloca una condicional para que de acuerdo a un flag (bandera) se muestre el campo o no.

Esto lo utilizo mucho en mis reportes y de acuerdo  al tipo se mostraran unos campos y otros no.

Saludos


Elkin Uribe
Medellin - Colombia

Arturo Ramos

unread,
Oct 12, 2011, 12:28:09 PM10/12/11
to publice...@googlegroups.com
Gracias Elkin por tu tiempo,

Bien así es el caso completo, es un reporte de una factura digital, este reporte se puede mandar a imprimir desde los campos de la base de datos al momento de generar el comprobante, aquí es dónde el contenido de las notas lo puedo obtener del campo de notas de la base de datos y también este reporte se puede mandar a imprimir tomando los valores del contenido del archivo XML del comprobante, osea, sin entrar a la base de datos, pero las notas no son parte del archivo XML, esas notas pueden ser como: "Entregar en la casa del cliente." o "10 pz en sucursal centro y 10 en sucursal norte.", cosas así, anotaciones internas que no son de importancia para el comprobante.

La idea es que si se manda a imprimir al momento de emitir, tome las notas del campo y si se manda desde el archivo XML 'lanzar' un formulario para llenar las notas pero que se haga desde la llamada a REPORT FORM.

Lo que no quiero es poner un DO FORM antes del REPORT FORM por que esto se mostraría a todos los usuarios y no todos requieren imprimir notas en sus comprobantes, mi idea es que 'personalizo' el reporte del que quiera imprimir notas y desde ahí se llame al formulario.

Saludos.

Intel Man

unread,
Oct 12, 2011, 12:38:04 PM10/12/11
to publice...@googlegroups.com
Hola, pero si puedes usar el DO FORM

pero algo asi talvez:

if type("tu_variable_nota")="U"
  do form xxxxxxx
endif
report from

Esto solo abrira el formulario si tu_variable_nota no existe.

Saludos



Date: Wed, 12 Oct 2011 09:28:09 -0700
From: irc...@gmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Variable en un reporte

elkin dario uribe torres

unread,
Oct 12, 2011, 1:14:35 PM10/12/11
to publice...@googlegroups.com
Para lo que te entiendo quieres hacer yo colocaria un campo logico donde el usuario selecciona si quiere imprimir notas o no:

Si selecciona que si le puedes dar la opcion de colocar las notas que fueron guardadas al momento de generar el comprobante hace lo de la opcion  a) y si lo que quiere es llenar otras hace la opcion b)

a). Si lo que quieres es traer las notas que no se encuentran en el XML (me imagino que es una factura electronica) pero no quieres invocar un "DO FORM antes del REPORT FORM por que esto se mostraría a todos los usuarios y no todos requieren imprimir notas en sus comprobantes", deberia traer del XML el numero del comprobante y a partir de ahi haces la consulta a la base de datos y la declaras como una variable y en ese momento lanzas el REPORT FORM.

b). Invocas el DO FORM llenas las notas y cuando el usuario la guarda lanzas el REPORT FORM.

Si no desea imprimir notas haces lo que los compañeros te han recomendado declaras la variable vacia y lanzas el REPORT FORM..



Saludos


Elkin Uribe
Medellin - Colombia

El 12 de octubre de 2011 11:28, Arturo Ramos <irc...@gmail.com> escribió:

Rogelio Medrano Pérez

unread,
Oct 12, 2011, 1:59:02 PM10/12/11
to Grupo fox
buena tardes
 
Aqui en México hay un sistema llamada SAE de ASPEL, yo tengo la necesidad abir sus archivos de inventarios para leer las compra de materia prima e incorporar a mi sistemas de producción.

alguien tiene alguna rutina para abrilos y leerlo o para pasarlos a una tabla temporal.

 
 
Atte,
 
Rogelio Medrano
 
Saludos


Hugo Carlos Aguilar Zapata

unread,
Oct 12, 2011, 2:33:31 PM10/12/11
to publice...@googlegroups.com
Cecha este codigo arturo, lo uso en el codigo del evento BeforeOpenTables en el Dataenvironment del Reporte
crea un formulario, y le agrega un objecto OLE,
 
no se si te sirva pra t ucaso, peor pdorias a gregar un objeto editbox o textbox  para capturar los datos de la variable,
 
 
frmTemp = createobject("Form")
with frmTemp
 .AddObject("OO","OLEBoundControl")
 .OO.ControlSource = "codigobc.datosbc" && bind it to general field so we will be able to edit properties of the control inside of the general field

 && prepare bar code for each record
 scan all
   && create a barcode in general field
   APPEND GENERAL codigobc.datosbc CLASS ("ANX417.Anx417Ctrl.1")
   && update the control by the current general field content
   .OO.Refresh
   && update the control by the data and adjust its properties if needed.
   && here we just demo how to set few of them, though you can change
   && other properties this way too
   .OO.Object.Data = codigobc.datostxt
*   .OO.Object.BACKCOLOR = RGB(200,200,200)
*   .OO.Object.FORECOLOR = RGB(0,0,255)
   .OO.Refresh
 endscan
 go top in codigobc
    .OO.Refresh
endwith

release frmTemp

Armando Rodríguez Bermúdez

unread,
Oct 12, 2011, 4:18:33 PM10/12/11
to publice...@googlegroups.com

Hace algún tiempo tuve la necesidad de extraer datos de estos sistemas.  La base de datos que utilizan es paradox.  Solo instala el obdc conector para esta base de datos y posteriormente creas vistas a partir de esta conexión.

 

Saludos

Armando Rodríguez

Christian Ascencio

unread,
Oct 12, 2011, 4:20:46 PM10/12/11
to publice...@googlegroups.com
Lo ultimo que supe es que eran cerrados y que puedes exportar la informacion nada mas.

Esta hecho full en C


Saludos

2011/10/12 Rogelio Medrano Pérez <rc...@hotmail.com>

Víctor Hugo Espínola Domínguez

unread,
Oct 12, 2011, 8:42:15 PM10/12/11
to publice...@googlegroups.com
Hola Arturo,

Dentro del report, en la expresión de notas pones Notas(), donde Notas es un prg con la primera línea FUNCTION Notas que RETURN lmNotas. Es como llamar a una función que convierte números a palabras. El concepto es el mismo.

Saludos, Víctor.

Arturo Ramos

unread,
Oct 13, 2011, 2:39:55 PM10/13/11
to publice...@googlegroups.com
Gracias Victor, me diste la pauta, así quedó...

En el reporte puse una etiqueta de texto con esta instrucción

IIF(ISNULL(cNotaReporte), Notas(), cNotaReporte)

En un .prg de utilerias y funciones declare

FUNCTION Notas
   DO FORM notas.scx
RETURN cNotaReporte

En el formulario notas.scx un editbox para escribir las notas, el formulario es modal, al hacer click en aceptar las notas se guardan en cNotaReportes.

cNotaReporte siempre es NULL a menos de que se este llamando al reporte desde donde hay acceso a la base de datos cuando se llena con el texto del campo de notas.

Y lo que se pretendía de que el cambio no afecte a los otros usuarios se cumple por que el formulario sólo se ve si pongo la etiqueta en el reporte con la llamada a Notas().

Muchas gracias por la ayuda.

Víctor Hugo Espínola Domínguez

unread,
Oct 13, 2011, 5:51:27 PM10/13/11
to publice...@googlegroups.com
Para eso estamos en el foro, para ayudarnos.

Saludos, Víctor.
Reply all
Reply to author
Forward
0 new messages