none
facturacion con crystal reports RRS feed

  • 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

    lunes, 7 de mayo de 2012 22:06

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
    miércoles, 16 de mayo de 2012 20:06
  • 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.

    jueves, 17 de mayo de 2012 11:12
  • 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
    jueves, 17 de mayo de 2012 14:32
  • en que lenguaje lo estas haciendo disculpa????

    Irwin Romero (IrJaKe)

    jueves, 17 de mayo de 2012 18:32
  • 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.

    viernes, 18 de mayo de 2012 7:31
  • la Base de datos esta en SQL Server 2008R2
    viernes, 18 de mayo de 2012 14:41
  • hola, me podrias explicar un poco mas el paso 3 , como le hago las 3 llamadas al informe??
    viernes, 18 de mayo de 2012 14:58
  • ¿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.

    viernes, 18 de mayo de 2012 15:06
  • tienes skype? mi usuario es ing_caritoararat

    viernes, 18 de mayo de 2012 15:11
  • Lo siento, no tengo Skype.
    viernes, 18 de mayo de 2012 15:14
  • messenger?? ing_caritoararat@hotmail.com
    viernes, 18 de mayo de 2012 15:16
  • Perdona, pero estoy en el trabajo y no puedo ponerme el messenger
    viernes, 18 de mayo de 2012 15:17
  • Si tienes alguna duda comentamela y tratare de responderte en cuanto me sea posible.

    Un saludo.

    viernes, 18 de mayo de 2012 15:21
  • que pena!! =( es que queria que me ayudaras remotamente
    viernes, 18 de mayo de 2012 15:21
  • 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???)
    viernes, 18 de mayo de 2012 15:45
  • 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
    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.

    viernes, 18 de mayo de 2012 16:17
  • 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 CrBlack

    se 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
    jueves, 24 de mayo de 2012 21:39
  • 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.

    
    viernes, 25 de mayo de 2012 17:07
  • 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

    viernes, 25 de mayo de 2012 21:16
  • Hola que tal??

    El problema es que desde crystal reports no creo que puedas actualizar ningun campo de la BBDD.

    Un saludo.

    martes, 29 de mayo de 2012 14:11