Usuario
facturacion con crystal reports

Pregunta
-
hola a todos!!! soy nueva en crystal reports. tengo la version que viene para SAP BUSINESS ONE, CR Developer version 12.1.3.1028
Tengo ya creada la factura pero quisiera poder aplicarle la funcion de que solo pueda imprimir una original y 2 copias que digan la palabra 'COPIA' pero después de terminar con estas hojas no permita imprimir mas y empiecen a salir en blanco
Espero me puedan colaborar
saludos
Todas las respuestas
-
Alguien que me pueda ayudar?????? necesito urgenteeee podria solucionar definiendo un contador para que me lleve el numero de impresiones, en mi base de datos existe un campo que se llama printed donde si esta en Y saldria ORIGINAL y si tiene N saldria copia, pero necesitaria el contador para decirle que despues de 3 impresiones no salgan datos....=(
o simplemente decirle que si el campo printed es Y entonces no me muestre datos impresos pero no sabria hacerlo- Editado jcarito miércoles, 16 de mayo de 2012 21:12
-
Hola!!!
Verás, desde el crystal no vas a poder controlar el numero de veces que se ha mandado a imprimir un registro, esto lo tendras que hacer desde la BBDD. Yo lo que haría sería:
1.- Ponerle un parametro al informe que se llame copia. Según este parametro, pondría original o copia.
2.- Mandaría una impresion con el parametro a false para que me pusiese el original
3.- Mandaría dos impresiones con el parametro a true para que me pusisese copia.
4.- Marcaría la factura como ya impresa, para que no se pueda volver a imprimir.
Un saludo.
-
Hola, gracias por tu respuesta
Como decia anteriormente dentro de mi base de datos existe un campo llamado printed que guarda el estado de impresion de la factura:
Y : si ya se ha impreso
N: No se ha impreso
En crystal utilice este campo dentro de una formula que inserte en el layout donde le dije:
if {OINV.Printed}='y' then "Copia" else if {OINV.Printed}='N' then ""
pero ps necesito controlar la impresion de algun modo, deben salir solo la original y dos copias y no permitir imprimir mas o salir en blanco
No entiendo lo de los parametros, me podrias explicar un poco mas??? no se mucho de crystal entonces no sabria como utilizarlo
te lo agradeceria mucho
saludos!!!
- Editado jcarito jueves, 17 de mayo de 2012 14:52
-
-
Buenos dias,
A ver, te explico como creo que podrías solucionarlo (no tiene que ser la mejor opcion)
Por lo que yo entiendo, lo que quieres controlar es que cuando se impriman las 3 copias de la factura ya no se pueda imprimir mas veces.
Yo haría lo siguiente:
1.- Dentro del informe, me crearía un parametro, por ejemplo le llamaria Escopia. (Para hacer esto te vas al explorador de campos, sobre campos de formula boton derecho, Nuevo, y lo crearía de tipo booleano)
2.- Me crearía un campo de formula, que sería donde pondria el texto "COPIA" con una formula que sería mas o menos if Escopia=true then "COPIA" else "ORIGINAL"
3.- Haría tres llamadas al informe, en la primera, le pasaria al parametro escopia un false, Informe.SetParameterValue("Escopia", True) y en las dos siguientes Informe.SetParameterValue("Escopia", False)
4.- Una vez lanzadas estas 3 impresiones, marcaría el campo OINV.Printed = True, y no dejaría hacer impresiones si ese campo esta a true.
Espero haberte ayudado.
Un saludo.
-
-
-
¿Como estas lanzando ahora mismo el informe?
informe.PrintToPrinter(1, False, 0, 0)
Estarás haciendo esto mas o menos. Pues ahora deberías hacer:
'Primera llamada a original
informe.setparametervalue("Escopia",False)
informe.printtoprinter(1,false,0,0)
'Segunda llamada a copias
informe.setparametervalue("Escopia",True)
informe.printtoprinter(2,false,0,0)
Mas o menos sería algo asi.
Un saludo.
-
-
-
-
-
-
-
bueno mi duda es... en la interfaz no puedo modificar codigo por restricciones, y a la hora de mandar a imprimir veo solo el icono de la impresora, asi que esas llamadas de las que hablas no podria hacerlas (no se si te refieras a hacerlas desde mi interfaz o desde crystal???)
-
en el formato que trabajaba dentro de SAP lo podia hacer de la siguiente forma:
tenia un campo formula con la siguiente condición: (F_202!='Copia') y los demás campos se enlazaban a este asi que si no se cumplia no los mostraba
pero para mejor presentacion y facilidad lo transforme a crystal pero solo me queda pendiente esto
Se podria enlazar de alguna forma a esta condicion en crystal?
- Editado jcarito viernes, 18 de mayo de 2012 16:10
-
Perdona, pero pensaba que estabas trabajando desde Visual Basic .Net, por lo que me comentas no puedes ni acceder al codigo que llama al informe, ni modificar campos de BBDD. Siendo asi, lo siento pero no puedo ayudarte, ya que no conozco la programacion en SAP.
Un saludo.
-
mmm pero algo se podria hacer...por ahi estuve leyendo de segun la condicion se cambia el color del texto
se podria cambiar a blanco por ejemplo
algo asi :
if {OINV.Printed}='y' then CrWhite
else CrBlackse llama propiedad de atributo condicional...sabes de esto?
porque debe haber algo donde diga que no traiga datos jajaja
- Editado jcarito viernes, 25 de mayo de 2012 15:40
-
Si sobre un campo de texto pulsas boton derecho, dar formato a objeto, en la pestaña de comun, al lado del checkbox de suprimir hay un boton con un "x-2" si pulsas sobre este puedes escribir una formula en la que con poner el {OINV.Printed} ya te valdría.
Un saludo.
-
mmm si acabe de leerlo en otro lado!!!
si en la formula le dije donde oinv.printed ='y'
y ya esta por ahora, porque ahora el problema es que necesito que al usuario que imprima le salgan 3 veces la impresion una con original y dos que digan copia....necesito un contador de impresiones para aplicar el de suprimir a la 4 impresion
-