Ayuda en Programacion en FoxPro 2.6

Publicado en 'Programación' por Yanguito72, 16 Ene 2009.





  1. Yanguito72

    Yanguito72 Miembro frecuente

    Registro:
    22 Dic 2008
    Mensajes:
    200
    Likes:
    0




    Amigos necesito una ayuda en la programación en foxpro 2.6, bueno el sistema que hay en mi trabajo esta hecho en Foxpro 2.6 no teniamos problemas en lo que eran reportes pero ahora tenemos que imprimir boletas he hecho un programa pero cada vez que envio a imprimir una boleta acepto la impresion y me demora 30 seg. para que recien empiece a imprimir, alguien puede ayudarme en esto por favor...., les envio el programita , es mas les voy a copiar aqui

    Por favor ayudenme o denme ideas como hacerlo

    SET DEVI TO PRINT
    use impreci
    go bott
    cr=recn()
    go top
    @ 0,02 SAY CHR(27)+CHR(18)
    @ 0,5 say chr(27)+chr(51)+chr(33.5)
    @ 1,1 say chr(27)+chr(77)
    @ 1,2 SAY CHR(27)+CHR(15)
    l=6
    di=substr(dtoc(diaaa),1,2)
    me=substr(dtoc(diaaa),4,2)
    an=substr(dtoc(diaaa),7)
    @ l,9 say nombr
    @ l,9+49 say ' '+di+'/'+me+'/'+an
    l=l+1
    @ l,5 say chr(27)+chr(51)+chr(42)
    l=l+2
    m=0
    nn=1
    imt=0
    if cr<=1
    @l,1 say ndpro
    @l,1+15 say conce
    @l,1+70 say str(imtot,10,2)
    l=l+14
    imt=imtot
    else
    do whil .not. eof()
    @l,1 say ndpro
    @l,1+15 say conce
    @l,1+70 say str(imtot,10,2)
    imt=imt+imtot
    l=l+1
    skip
    endd
    l=l+(14-cr)
    endi
    l=l+1
    @ l,5 say chr(27)+chr(51)+chr(41)
    l=l+1
    @ l,71 say str(imt,10,2)
    @ l,81 say chr(27)+chr(51)+chr(39)
    l=l+1


    mess=val(me)
    if mess=1
    mes='ENERO '
    endi
    if mess=2
    mes='FEBRERO '
    endi
    if mess=3
    mes='MARZO '
    endi
    if mess=4
    mes='ABRIL '
    endi
    if mess=5
    mes='MAYO '
    endi
    if mess=6
    mes='JUNIO '
    endi
    if mess=7
    mes='JULIO '
    endi
    if mess=8
    mes='AGOSTO '
    endi
    if mess=9
    mes='SETIEMBRE'
    endi
    if mess=10
    mes='OCTUBRE '
    endi
    if mess=11
    mes='NOVIEMBRE'
    endi
    if mess=12
    mes='DICIEMBRE'
    endif
    @ l,36 say di+' '+mes+' '+substr(an,4,1)
    eject


    SET DEVI TO SCRE
    EJEC
     


  2. hramonm

    hramonm Miembro nuevo

    Registro:
    20 Set 2007
    Mensajes:
    47
    Likes:
    0
    Hola estas haciendo un go bottom, podrias decirme cuantos registros tiene esa tabla?

    Ademas para los meses no seria mejor usar un case en ves del if.???
     
  3. Yanguito72

    Yanguito72 Miembro frecuente

    Registro:
    22 Dic 2008
    Mensajes:
    200
    Likes:
    0
    Tienes razon, lo voy a pasar a do case, el numero de registros no pasa de 6... si quieres te envio el programa y las bases de datos para que verifiques...:(
     
  4. Dr_Greg_House

    Dr_Greg_House Suspendido

    Registro:
    13 Abr 2008
    Mensajes:
    146
    Likes:
    1
    Creo que es un lenguaje que existia en los tiempos de pierola o del charlestone. Mejor usen java o visual basic 6
     
  5. Yanguito72

    Yanguito72 Miembro frecuente

    Registro:
    22 Dic 2008
    Mensajes:
    200
    Likes:
    0
    El problema es que el sistema ya esta hecho en esta aplicacion y los fuentes los tengo, entoces lo que tengo que hacer es agregar mas opciones. Te imaginas si lo paso a Visual seria trabajo de medio año es bastante inmenso el sistemita...:(
     
  6. Dr_Greg_House

    Dr_Greg_House Suspendido

    Registro:
    13 Abr 2008
    Mensajes:
    146
    Likes:
    1
    Si pues eso es lo malo en esos sistemas, agregar mas funciones, conectividad con viejas bases de datos, generar archivos temporales en cada pc, waaaa si me acuerdo cuando hacia mantenimiento de software basado en 2.6, toda una porkeria estresante.

    Dios te bendiga tu paciencia, creo que un curso de fox 2.6 hay en el instituto metropolitano.
     
  7. Slayer_X

    Slayer_X Miembro frecuente

    Registro:
    1 Set 2008
    Mensajes:
    74
    Likes:
    0
    Por que no te creas una rutina en otro lenguaje solo para imprimir? solo necesitas sacar la data de las tablas de fox y ya :D

    Claro, yo que tu, haria un nuevo sistema :P
     
  8. Yaraher

    Yaraher Miembro maestro

    Registro:
    26 Mar 2007
    Mensajes:
    313
    Likes:
    2
    Totalmente de acuerdo con Slayer_X. Un script en Ruby o Python lo haces en un par de horas y probablemente mucho más eficiente que lo que ya tengas hecho. Además te evitas de trastocar algo ya existente.
     
  9. Yanguito72

    Yanguito72 Miembro frecuente

    Registro:
    22 Dic 2008
    Mensajes:
    200
    Likes:
    0
    pueden enviarme un ejemplo?
     
  10. Yaraher

    Yaraher Miembro maestro

    Registro:
    26 Mar 2007
    Mensajes:
    313
    Likes:
    2
    Si nos indicas qué lenguajes manejas, te podríamos dar una ayuda más completa.

    Básicamente se reduce a conectarte a las tablas de Fox, seleccionar los datos que necesitas, aplicarle los formatos que desees o requieras y mandarlo a la impresora. Los detalles de implementación y su facilidad en hacerlo depende del lenguaje.
     
  11. Yanguito72

    Yanguito72 Miembro frecuente

    Registro:
    22 Dic 2008
    Mensajes:
    200
    Likes:
    0
    Amigo Yaraher saludos, conozco Visual Basic, Visual Fox y los antiguos como el c, pascal, entre otros pero los programas que me dices no los conosco aunque me gustarian meterme a conocerlos, no me hago problemas ustedes me dan un ejemplo y yo sigo pa delante.
    El problema que en la emp`resa donde laboro, hicieron hacer un sistema en Foxpro 2.6 ya creo desde antes del 2000 y se ha venido trabajando en ese y como ellos hicieron hacer dejaron los fuentes y son los que ahora tengo y me han pedido que le agregue una opcion de impresion de boletas. como ustedes dicen derepente pueda creao un nuevo programita que solamente haga la impresion de bolestas y jale esas bases
     
  12. ecch

    ecch Miembro nuevo

    Registro:
    30 Set 2009
    Mensajes:
    3
    Likes:
    0
    Hola

    Yo creo que tu problema esta en la forma que envias los datos hacia la impresora, estas escribiend directamente a LPT1 u eso creo solo se permitia hasta windows 98, a partir de Windows Nt la cosa cambia. Porque no verificas primero como lo hacen los otras opciones de impresion, si es Foxpro 2.6 para windows puede que utilice Report Form con formatos predefinidos *.frx. ya que tienes los fuentes el asunto se simplifica para ti.

    Una cosa mas, se que el post ya tiene mas de medio año, pero si te interesa te puedo indicar como pasar todo ese codigo fuente de Foxpro 2.6 a Visual Foxpro 6 o superior incluso 9, en un par de dias, es muy rapido y no tiene muchas complicaciones, lo unico que tiene que cuidar es el ambito de las variables, claro es cierto que el Visual Foxpro esta dejando de ser soportado pero es una heramienta mucho mas moderna en la que puedes trabajar tranquilamente en los proximos 10 años y en ese tiempo seguramente ya podran hacer o adquirir una nueva aplicacion.

    Nusca en Google FacTurLinEx o en Sourceforge.net, podras ver en dearrollo, una aplicacion Open source de Facturacion, Punto de venta. escrita en free pascal/Lazarus, muy interesante.

    Saludos

    Pd a propisoto esta linea me parece extraña
    @ 0,5 say chr(27)+chr(51)+chr(33.5)
    Porque el 33.5 ?, no deben ser todos enteros, claro, estas enviando caracteres de control directos a la impresora, pero eso debe sera al puerto LPT1 de una impresora matricial y eso a partir de Windows Nt comenzo a ser un poco dificil de manejar, ya que el Windows tiene su propio controlador de impresion incluido para formato nativo RAW, no es como DOS que envia directamente los caracteres al puerto Paralelo (LPT1) o el que le indiques
     
    Última edición: 30 Set 2009
  13. DarioPeo

    DarioPeo Miembro nuevo

    Registro:
    6 Oct 2009
    Mensajes:
    2
    Likes:
    0
    Hola ecch: Lei que sabes o tenes el sof para convertir un viejo programa desarrollado en FoxPro 2.6 DOS, a Visual Foxpro 6.0 o 9.0, serias tan amable de facilitarme la forma que lo haces?
    Saludos
    Gracias igualmente
     
  14. ecch

    ecch Miembro nuevo

    Registro:
    30 Set 2009
    Mensajes:
    3
    Likes:
    0
    Hola

    No se trata de un sof, se trata de convertir el codigo, esto lo hace la misma herramienta visual foxpro, no he comprobado con aplicaciones foxpro 2.6 DOS, si con eplicaciones Foxpro 2.6 windows, pero creo que siendo la misma version deben ser lo mismo.
    ¿Como o hago? Para trasformarlos basicamente tengo dos pasos. La primera convertir el proyecto (*.pjx) con el mismo Visual Foxpro 6 o superior, la misma herramienta te pregunta si necesitas conversion Funcional o conversion visual. con la obción que mejores resultados he obtenido es con la Visual, asi que la aplico, te pregunta donde poner todo el codigo asiciado a los formularios, le tienes que dar un nombre de archivo yo generalmente le pongo el mimso nombre de proyecto y le agrego lib o lib01, cuidando no dar un nombre de programa (*.prg) que ya exista porque lo puede sobreescribir, luego la misma herramienta te pregunta si quieres convertir los reportes ya sea de windows o DOS, en esta parti si es posibel que los Report (*.frx) los dejar sin conversion ya que si los conviertes a windows los resultados tendras que retocarlos y basicmanete si tienes formularios DOS es porque imprimes en matricial y si los conviertes a windows el resultado sera indeseado. una ultima acotacion es en el momento de empezar a convertir, no marco la opcin de repaldar los datos antiguos ya que lo unico que hace es confundirte con mas archivos, en su lugar, dese luego, debes tener una copia entera de proyecto original, siempre a la mano.
    Con el nuevo proyecto resultante, lo unico que haces es abrirlo con ya como unn proyecto Vusal foxpro y darle a compilar, te vana a salir ciertos errores, eso ya es cuestion de irlos reparando poco a poco, bascamente el nuevo proyecto te compilara e incluso se ejecutara
    La segunda parte consiete en afinar el projecto convertido, es posible que tengas problemas con las variables ya que Foxpro 2.6 considera los diez primeros caracteres de una variable y Visual Foxpro te permita nombres de variables mucho mas grandes. Esto hace que en el proyecto antiguo puedas tener nombre de variables por ejemplo: dDiadelaSemana y en alguna parte del codigo este dDiadelaSe, esto el Foxpro 2.6 lo identifica como la misma variable y no protesta, incluso trabaja bien como si fuera la misma variable, en cambio Visual Foxpro te dara mensajes de error relacionaods a este problemas, "la variable no se encuentra", etc. ya que para el son variables distintas, como que lo son; si el programador fue cuidadoso con estos nombres no tendras problemas, luego viene la adecuacion de los formularios, generalmente trabajan bien pero la estetica no es muy buena, pero esta primera conversion una vez solucionado el alcance de las variables es bastante funcional, cuanto triemp te invierte seguramente no mas de unas horas.
    Luego viene ya la adecuacion de la interfaz de usuario, peudes hacerlo tan complejo como el tiempo te lo permita, ya que es posible que te quedes com las pantallas transformado pero no podras modificarlas salvo que ingreses a modifdicar diredctamente sobre las tablas *.scx, Foxpro tiene esa gran ventaja, sus formaulariso, proyectos, reportes todo son tablas y si hay objetos que dan erro simplemente abres el compoenete por ejemplo un formaulario, abre el archivo *.scx y te abrira como una tabla, el erro mas comun es la propiedad colorsource que hay valores que la version windows no las acepta, ali tienes dos alterantivas entra en la tabla buscar la columna que se refiere al codigo de compoenente que te da el error y cam,biar ese valor por uno que si acepte o simplemente quitas la linea que te el error generalmente son de esta forma, hay varias lineas entre ellas: ColorSource = 3, puedes reemmplazarla por ColorSource = 4 si te lo permite el objeto o de lo contario si sigue arrojando el error, simplemente vuelves a ingresar y borras totalmente esa linea. Ojo una vez editada la tabla del formaulario
    debes cerrarla (Use) para poder aditar el formaulario com modify Form.

    De aqui en adelante, ya todo es prueba de la aplicacion, para ver que funcione de acuerdo a lo esperado, pero ya tiene un proyecto Visual Foxpro funcional. Es todo

    Por lo general no tiene mucho problema, quizas ya la sabias, tal vez te sea de ayuda.

    saludos

    ecch.
     
  15. DarioPeo

    DarioPeo Miembro nuevo

    Registro:
    6 Oct 2009
    Mensajes:
    2
    Likes:
    0
    Gracias lo voy a probar, no creo que funcione con el codigo DOS, ya que si bien es la misma version 2.6, el concepto de programacion entre uno y otro es distinto.
    Gracias por tu atencion
    Saludos
     
  16. ecch

    ecch Miembro nuevo

    Registro:
    30 Set 2009
    Mensajes:
    3
    Likes:
    0
    Hola Dario

    Nada cuesta probar, aunque yo em atreveria a decir que si te va a funcionar ya que si bien el convepto de programacion es distinto, Visual foxpro tiene soporte para ese tipo de programacion, decer los @ say y @ get, que es lo que diferencia a DOS de windows, pero si los soprta Visual foxpro, en estos casos, luego de una primera compilacion y adecuacion pede venir ua etapa mas letna pero segura de conversion de la interfaz de usuario, eso y lo haces sin presiones ya que el codigo base debe estar funcionando bien y la mejora natural es migrar a la interfaz orientada a eventos que soportan los lenguajes de progrmacion para windows

    Suerte

    ecch
     
  17. WarpaRuna

    WarpaRuna Miembro nuevo

    Registro:
    23 Oct 2009
    Mensajes:
    8
    Likes:
    0
    No creo que sea muy sencillo pasar desde Foxpro 2.6 DOS al Visual Foxpro. Desde windows supongo que ya es más fácil y mas sencillo. Hay que tener en cuenta que hay un espacio, el Foxpro para Windows, para pasar a Visual FoxPro.
    Yo la verdad usé Foxpro 2.6, para contabilidad hasta windows 98; y me fue bien y me va bein ahora en Visual Foxpro, incluso usandolo a nivel de Red.
    Pero en verdad, yo lo que hice fue reescribir el programa en Visual Foxpro, manteniendo el esquema de mis tablas y demás. Foxpro es muy bueno para trabajar manipulando datos de contabilidad, ni vuelta que dar, incluso para usarlo como interface para abrir y usar la base de datos de SQL.
    A mí me costó mucho hacer el cambio. :plop:Pero es logico que haya sido así, para una persona que no estudió programación, lo aprendí a punta de leer Tutores, Cursos y el libro de un profe. de la UNI, más los aportes de la gente del Grupo de Noticias de Microsoft especificamente de Visual Foxpro.
    Para un programador, no creo que te sea muy dificil re escribir en Visual Foxpro lo que tienes en Foxpro 2.60. ... Ah.., el grupo de Microsoft, es muy bueno. La verdad yo aprendi mucho con ellos. Además está PortalFox, donde vas a encontrar mucha información. El zorro tiene para rato ....:wow: yo tengo por allí mis rutinas de impresión en Foxpro 2.6 para DOS. Podríamos intercambiar algo.:yeah:
     
  18. Meyruce

    Meyruce Miembro nuevo

    Registro:
    15 Nov 2009
    Mensajes:
    1
    Likes:
    0
    Yanguito. Lo mas facil es convertir dicho a codigo ya no dierctamente a impresora, porque en windows recorre mucho espacio. Lo ideal es adpatarlo a un reporte frx, de acuerdo al modelo de boleta. Cualquiera consulta, me la puedes hacer.
     
  19. serverdecolombi

    serverdecolombi Miembro nuevo

    Registro:
    17 Nov 2009
    Mensajes:
    1
    Likes:
    0
    Hola Ecch

    Tengo una consulta con respecto a una aplicacion contable... esta hecha en foxpro 2.6 DOS y el dilema es que la impresion de los reportes la manda al puerto LPT1 y las nuevas boards o portatiles no traen ese puerto... estoy usando un emulador llamado DOSPrint pero en las versiones de windows vista y windows 7 ya no funcionan... un grupo de contadores estan apegados al programita por que es muy sencillo y les lleva lo que necesitan de todas sus empresas pero el problema es la impresion... como puedo solucionar eso?

    De antemano muchas gracias por las sugerencias que me puedan aportar.

    Victor Hugo.
     
  20. zivajaiva

    zivajaiva Miembro nuevo

    Registro:
    2 Dic 2009
    Mensajes:
    2
    Likes:
    0
    escribeme a mi email zivajaiva de gmail punto com.

    Te puedo ayudar.

    ----- mensaje añadido, 02-dic-2009 a las 12:55 -----

    escribeme a mi email zivajaiva de gmail punto com.

    Te puedo ayudar.