FoxPro/Visual FoxPro - Informes modificables

 
Vista:

Informes modificables

Publicado por es_binario (757 intervenciones) el 03/09/2010 23:41:43
Segun esto no vasta tener un modify en el menu para modificar un informe sino que hay que quitarlo del exe. lo lei en un articulo en ingles pero no da un ejemplo o un codigo, entonces no se como es que se quita.

la situacion es que tengo que permitirle al usuario que mueva unas lineas abajo o arriba el formto de impresion de una factura y no se como, bueno hacerlo sin tener que recompilar el exe en fin, que el usuario lo haga y no requiera de mi asesoria entendiendo el build reports.

gracias por las sugerencias esto seria en vfp 9
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

RE:Informes modificables

Publicado por xx (378 intervenciones) el 04/09/2010 03:26:03
El reporte es una simple tabla o DBF (FRX) con su respectivo archivo donde almacena los campos memo (FRT), puedes excluir el reporte de tu proyecto y lo compilas sin dicho reporte y acompañas al nuevo EXE con los dos ficheros del reporte el FRX y FRT: ahora para la modificación del reporte desconozco si el VFP9 permite MODIFY REPORT en tiempo de ejecución si es asi ya tienes todo resuelto al menos el VFP6 no te lo permite, si el VFP9 no te permite lo unico que resta es modificar los registros del reporte por programación esto seria localizar el registro y tocar las campos que corresponden a la posición.

Yo te recomendaria utilizar ??? en lugar de reportes, yo tengo un sistema en la que imprimo las facturas para varios negocios con diferentes formatos de facturas y lo que hago es poner las reglas de impresión en un PRG externo y acompaño al EXE con el archivo compilado es decir FXP que se encarga de impresión de factura.

Pd. creo que en portalfox hay un codigo que te muestra como cambiar propiedades de los objetos de un reporte en tiempo de ejecución.
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

RE:Informes modificables

Publicado por Leo Maraza (15 intervenciones) el 04/09/2010 03:50:21
Saludos Sres.
amigo XX, podrias detallar mas acerca de usar ???, Yo intento imprimir con @ say una factura de media pagina (33 lineas por facrura), cuando lanzo a imprimir una factura, termina de imprimir y me lanza una pagina mas, de tal forma que si envio otra impresion esta saldria descentrada. Otra cosa que no puedo estar retrocediendo la hoja para hacer otra impresion esto eso no me gusta nada, asi que me tiene entrampado con eso de imprimir con @ say.

Desde ya gracias por cualquier ayuda.

saludos.
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

RE:Informes modificables

Publicado por xx (378 intervenciones) el 04/09/2010 15:35:25
Las disculpas al caso por desviarnos de la pregunta original correspondiente a este nodo.

Suponiendo siempre que se trabaja con impresoras matriciales epson lx-300 o similares
aca pego el codigo que imprime en una hoja 11pulgadas(alto) x 25 cm de (ancho) seccionadas por la mitad seria 5,5 pulgadas x 25cm de (ancho) es decir hojas troqueladas:

*//
*// IMPRESION DE RECIBOS, CONFIGURADO ESPECIFICAMENTE PARA EPSON LX-300 DEBERIA FUNCIONAR
*// EN CUALQUIER OTRA EPSON
*//
_Sprint=.F. &&.F. envia a archivo de texto, .T. a impresora


*//--------------------------------------------------------------------------------
*//
*// ACTIVACION DE LA IMPRESORA
*//
PUBLIC _cmbi, _csma, _cnor, _cbig, _eol, _logo1, _logo2, _npage, _cecn, _cdcn

_cecn=CHR(27)+CHR(69)
_cdcn=CHR(27)+CHR(70)
_cmbi=CHR(15)+CHR(14)
_csma=CHR(18)+CHR(15)
_cnor=CHR(18)
_cbig=CHR(18)+CHR(14)
_eol =CHR(13)+CHR(10)

SET CONSOLE OFF
IF !_Sprint
DELETE FILE [SALIDA.TXT]
SET PRINTER TO FILE [SALIDA.TXT] ADDITIVE
SET PRINTER ON TO PROMPT
ELSE
_printer=GETPRINTER()
IF EMPTY( _printer )
MESSAGEBOX( [PRINT CANCEL!], 64, [WARNING!] )
RELEASE _cmbi, _csma, _cnor, _cbig, _eol, _logo1, _logo2, _npage
RETURN .F.
ENDIF
SET PRINTER TO NAME (_printer)
ENDIF
SET DEVICE TO PRINTER
*//--------------------------------------------------------------------------------


DIMENSION _lin[3]
_lin[1]=""
_lin[2]=""
_lin[3]=""

*//
*// ENVIAMOS RECIBO A IMPRESORA
*//
??? _eol
??? _cbig+[* LIQUIDACION DE SALARIOS (Art.236CL) *]+_eol+_eol
??? _cmbi+[Empleador ]+"LOS PALITOS"+[ N. Patronal ]+" 0"+_eol
??? _cmbi+[Trabajador ]+STRTRAN("000000000"," ","0")+"-"+CPCONVERT(1252,437,"XXXXXXXXXXXXXXXXX")+_cnor+_eol
??? _cnor+[Periodo ]+"092010"+[ L.]+STRTRAN(" 0"," ","0")+_cnor+_eol+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[ |DiasT|Salario B. |Sub Total |Horas Ext. |Comisiones |Otros ingr.|Total Sal. |Retenc. IPS|Otras Ret. |Total Desc.|Saldo |]+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[ |]+STR(0,5,2)+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+SPACE(10)+[0|]+SPACE(10)+[0|]
??? TRANSFORM(0+0+0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]
??? TRANSFORM(0+0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[OBS: ]+CPCONVERT(1252,437,"ASÑLDKJFÑALSKJDFÑLKJ")+_eol
??? _csma+[Detalle Descuento: ]+TRANSFORM(0,"999 999 999")+_eol

*// ENVIO DE ANTICIPOS DETALLADOS
??? _csma+_lin[1]+_eol
??? _csma+_lin[2]+_eol
??? _csma+_lin[3]+_eol+_eol+_eol+_eol+_eol+_eol+_eol+_eol

??? [FECHA DE PAGO: ]+DTOC(DATE())
??? SPACE(54)+[...............................]+_eol
??? SPACE(80)+[ FIRMA ]+_eol+_eol+_eol+_eol+_eol+_eol

*// REINICIALIZA LA IMPRESORA
??? CHR(27)+[@]
_plineno=0
_pcolno =0

*//
*// ENVIAMOS RECIBO A IMPRESORA
*//
??? _eol
??? _cbig+[* LIQUIDACION DE SALARIOS (Art.236CL) *]+_eol+_eol
??? _cmbi+[Empleador ]+"LOS PALITOS"+[ N. Patronal ]+" 0"+_eol
??? _cmbi+[Trabajador ]+STRTRAN("000000000"," ","0")+"-"+CPCONVERT(1252,437,"XXXXXXXXXXXXXXXXX")+_cnor+_eol
??? _cnor+[Periodo ]+"092010"+[ L.]+STRTRAN(" 0"," ","0")+_cnor+_eol+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[ |DiasT|Salario B. |Sub Total |Horas Ext. |Comisiones |Otros ingr.|Total Sal. |Retenc. IPS|Otras Ret. |Total Desc.|Saldo |]+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[ |]+STR(0,5,2)+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+SPACE(10)+[0|]+SPACE(10)+[0|]
??? TRANSFORM(0+0+0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]
??? TRANSFORM(0+0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+TRANSFORM(0,"999 999 999")+[|]+_eol
??? _csma+[ -------------------------------------------------------------------------------------------------------------------------------]+_eol
??? _csma+[OBS: ]+CPCONVERT(1252,437,"ASÑLDKJFÑALSKJDFÑLKJ")+_eol
??? _csma+[Detalle Descuento: ]+TRANSFORM(0,"999 999 999")+_eol

*// ENVIO DE ANTICIPOS DETALLADOS
??? _csma+_lin[1]+_eol
??? _csma+_lin[2]+_eol
??? _csma+_lin[3]+_eol+_eol+_eol+_eol+_eol+_eol+_eol+_eol

??? [FECHA DE PAGO: ]+DTOC(DATE())
??? SPACE(54)+[...............................]+_eol
??? SPACE(80)+[ FIRMA ]+_eol+_eol+_eol+_eol+_eol+_eol

*// REINICIALIZA LA IMPRESORA
??? CHR(27)+[@]
_plineno=0
_pcolno =0


*//-------------------------------------------------------------------------
*//
*// APAGADO DE IMPRESORA
*//
RELEASE _cmbi, _csma, _cnor, _cbig, _eol
SET PDSETUP TO
SET PRINTER OFF
SET DEVICE TO SCREEN
SET CONSOLE ON
SET PRINTER TO 'LPT1'
*//-------------------------------------------------------------------------

RETURN

Deberias bajarte el manual de referencia de epson alli por ejemplo te enseñan como setear la longitud de pagina en pulgadas es decir:

*por ejemplo mis facturas son 6pulgadas de largo
pulgadas=6
??? CHR(27)+"C"+CHR(0)+CHR(pulgadas)
??? "IMPRIMES UNAS LINEAS"+CHR(13)+CHR(10)
....
EJECT
* y deberia saltar exactamente a la siguiente pagina
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

RE:Informes modificables

Publicado por es_binario (757 intervenciones) el 04/09/2010 22:05:52
Muchas gracias, pero ese codigo que usas, es para cualquier impresora en windows o solo con matriz de puntos, te comento por lo de las funciones que le mandas. gracias de nuevo.
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

RE:Informes modificables

Publicado por Leo Maraza (15 intervenciones) el 04/09/2010 22:34:16
Gracias amigo lo voy a probar y luego comento.

Saludos.
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

RE:Informes modificables

Publicado por Juanma Cruz (512 intervenciones) el 06/09/2010 11:48:03
Chungo asunto el de dejar al usuario que le meta mano a las tripas de un programa, reporte, ventana, consulta, etc.

En todo caso, dentro del administrador del proyecto, dale al reporte elegido con clic derecho y selecciona la opción EXCLUIR. Esto te asegurará que no esté 'embutido' dentro del EXE final, y pueda ser modificado.

Yo me curaría en salud, guardando un backup del reporte (recuerda que son dos archivos, el FRX y el FRT) antes de cada modificación.

Saludos y suerte.
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