PREGUNTAS CONTESTADAS - Clipper/FiveWin

 Hay un total de 470 Preguntas.<<  >> 

    Pregunta:  2619 - IMPRESION WINDOWS-MSDOS
Autor:  Carlos Vega
Como puedo hacer que un programa realizado en clipper se pueda imprimir bajowindows. Actualmente no puedo imprimir nada, tan solo sale por la impresora una pagina en blanco pero de informe nada.
Gracias
  Respuesta:  Gerardo A. Mendoza
Debes configurar tu impresora (en propiedades) verifica que detalles en configuración del puerto tengas seleccionada la opcion de impresion en cola de MS-DOS y que esté apuntando al puerto en el que quieres imprimir. Uso una rutina así como esta para controlar la impresíon.

Procedure Impresion(lModo,nMargen,cLPTNo)
Local nImpresora := 1
Static cDirTemp

If lModo
cDirTemp := Set(_DIRECTORIO, "C:\")
Set Printer to (cLPTNo)
Set Device to Printer
Set Margin to nMargen
Else
Set Printer to
Set Device to Screen
Set( _DIRECTORIO, (cDirTemp) )
EndIf

Por ejemplo:
...
Impresion(.t., 5, "LPT1") // activo el puerto
@ nFila, 0 Say " .... "
...
Eject
Impresion(.f.) // fin impresion

    Pregunta:  2621 - COMO IMPRIMIR EN FORMA HORIZONTAL EN UNA EPSON FX-870
Autor:  Gonzalo Paredes Quintero
hola espero me puedan ayudar...
como podria imprimir de forma horizontal en una epson fx-870 en clipper 5.2???
si tienen algun ejemplo se los agradezco de antemano..... saludos
  Respuesta:  Hugo Marin
Utiliza la siguiente línea antes de comenzar a imprimir el texto.
@ 0,0 say chr(27)+chr(38)+chr(108)+chr(49)+chr(79) // apaisada

y para volver al estilo vertocal.

@ 0,0 say chr(27)+chr(38)+chr(108)+chr(48)+chr(79) // vertical

Espero que te sirva.

    Pregunta:  2633 - PROBLEMILLA DE CLIPPER
Autor:  Iván Rodríguez Fernández
Hola Clipperos! Espero que alguien me pueda solucionar unos problemillas.

1-Tengo un listado con diferentes tipos de máquinas:
M-löw, p-löw, k-com, v-com
Como se puede hacer un filter para que solo se vea un tipo de máquina?

2- Se puede crear un base de datos poniendole un nombre a la base de datos proviniente de una variable.

Es una pregunta sencilla pero no logro aclararme y espero que me ayudeis.

Gracias
  Respuesta:  Iván Rodríguez Fernández
No se si estan bien programado, pero es una solucion a tus problemas.Es un poco lioso pero funciona,si alguien conoce una mejor manera que me lo diga, porque yo solo se esta.
Haces un FOR que recorra toda las maquinas y de el registro de maquina extraes la primera letra, haces un case para cada maquina (cuatro maquinas que empiezan con 4 letras diferentes)
Y grabas los datos del registro en variables y luego las pasa al fichero x tipo de maquina.
Haces un zap de mlow,kcom,plow,vcom.

ejemplo:

SELECT fichero_de_maquinas
GO TOP
N:=LASTREC()

FOR I:= 1 TO N


nMAQUINA:=MAQUINA
LE:=LEFT(NMAQUINA,1)
DO CASE
CASE LE = ´M´

SELECT MLOW
APPEND BLANK
REPLACE (VARIABLES X REGISTROS)
Select fichero_de_maquinas
SKIP 1

CASE LE = ´P´
SELECT PLOW
APPEND BLANK
REPLACE (VARIABLES X REGISTROS)
Select fichero_de_maquinas
SKIP 1

CASE LE = ´V´
SELECT VCOM
APPEND BLANK
REPLACE (VARIABLES X REGISTROS)
Select fichero_de_maquinas
SKIP 1

CASE LE = ´K´
SELECT KCOM
APPEND BLANK
REPLACE ð/LM/W3SVC/157/Root

    Pregunta:  2697 - COMO MANEJAR INDICES CDX
Autor:  Djconde
¿como puedo abrir un indice cdx desde una aplicacion clipper?, estoy trabajando con clipper 5.2, algun programa de ejemplo o algo con lo que me puedan ayudar, de antemano gracias mil.
  Respuesta:  Victor Reyes
en el archivo de enlazado <cFile.lnk>, en la linea de LIB, tienes que poner los controladores de los cdx

LIB WinApi, Clipper, Extend, DbfNtx, Dbfcdx, _dbfcdx, Terminal

y en tu archivo de inicio de tu aplicacion debes activarlos asi

ANNOUNCE RDDSYS
Init Procedure Inicia
REQUEST DBFCDX
RDDSETDEFAULT(´DBFCDX´)
Return(.T.)

y para crearlos son asi
USE K_prov
// Crear el indice ikp
// Con el campo kp_id
// con el tag kpid

index on kp_id tag kpid to IKp

para abrirlos solamentes es asi
use dbf index nameindex

y como recomendacion utiliza clipper
5.2 D o clipper 5.3 y blinker 5.1

Espero lo entiendas y te sirva
  Respuesta:  J.Fernando Puntel
Para realizar esto acostumbo usar la librería de Successware que se llama SIX (va por la versión 3.0), con ella lo que tienes que hacer es colocar unos headers, linkear la librería y establecer el rdddefault.

    Pregunta:  2711 - PASO A PASO COMO CREAR UNA LIBRERIA
Autor:  Iván Rodríguez Fernández
Necesito que alguien me explique paso a paso, como crear una libreria de clipper. He hecho un programa y me ocupa 5000 lineas y esta todo bien estructurado con procedimientos pero en un mismo prg.Sale que error por falta de memoria, me gustaria que me explicaran como solucionar ese problema.
Un saludo de Barcelona.
  Respuesta:  Manuel Gómez Zamorano
Una libreria se crea con la utilidad LIB.EXE de clipper, lo puedes encontrar en las NG.
El problema de falta de memoria es que tienes que dividir tu programa de 5000 lineas en un prg principal y uno o varios de funciones. Puedes linkar con el EXOSPACE o con el BLINKER.
Si quieres crearte una buena libreria es conveniente que agrupes lal funciones del mismo tipo por categorias dentro de un OBJ, y luego utilizas el LIB.EXE,
1.- escribes LIB y lo ejecutas
2.- te pedirá el nombre de la libreria (por defecto de extension LIB) que vas a crear o modificar en LIBRARY NAME.
3.- escribes :
+ fichero_obj
asi con tantos OBJ´S como quieras añadir.
4.- luego te pedira LIST FILE y si quieres le das un nombre, no es obligatorio, es un fichero que muestra como esta creada la libreria.
5.- y por ultimo OUTPUT LIBRARY : nombre de la libreria que coincide con el LIBRARY NAME y que no es obligatorio.
Y nada mas lo importante es que dividas tu programa compiles y linkes.
Espero haberte servido de ayuda.
  Respuesta:  Gregorio Cobá Gala
La solución a tu problema no es la creación de una librería si no de módulos overline y algunos artilugios de compilación y de estructuración de módulos.

Si necesitas más información de cómo hacerle, envíame un correo ...
  Respuesta:  Gerardo A. Mendoza
Hola!
Considero que tu problema no se soluciona creando una biblioteca, más bien con la aplicacion de algunas recomendaciones para un mejor uso de la memoria como:
- Utiliza variables Locales en vez de Private, Static en vez de Public. Pasa parametros a tus rutinas en vez de variables Private o Public.
- En lo posible es mejor utilizar arreglos en vez de variables. Por ejemplo para acumular tres columnas, no utilices 3 variables mejor UN arreglo de 3 posiciones.
- Declara tus funciones y procedimientos Static cuando solo se deben ver dentro del mismo .PRG.
- Utiliza los "alias" para las tablas (.dbf) con la finalidad de que utilices los mismos nombres de campo cuanda aparece en diferentes tablas. Por ejemplo en una Factura utilizas CveCliente y en el catalogo tambien debes utilizar CveCliente.
- El manejador de memoria de clipper funciona mejor con funciones y procedimientos lo mas pequeños posibles, esto por la paginacion de memoria que hace, esto es que tus rutinas no sean de 1000 lineas, estructuralas en rutinas de menos lineas.
Para hacer una libreria compilas el fuente (.PRG) y con alguna utiliria para crear rutinas como LIB.EXE que venia con QBasic, QuickC, tomas ese modulo .OBJ y creas la libreria por ejemplo para crear MiLib.LIB:
Clipper rutinas /n /m /l /w
Lib MiLib +rutinas MiLib.lst MiLib
Luego para crear la aplicacion
RTLink fi MiApp Lib MiLib
  Respuesta:  Djconde
Esta es la respuesta que amablemente Killer Blade me dio a la misma pregunta, ten en cuenta que debes tener el programa LIB.EXE de microsoft:

Claro, te explicaré cómo lo hago yo:

1) Me compilo el código fuente con la orden CLIPPER MIPROG.PRG /N /M.
Esto lo hago para que el módulo no sea un programa, sino un procedimiento (es decir, que no tenga ningún procedimiento de inicio).

2) Me copio el fichero objeto MIPROG.OBJ en el mismo directorio que la librería.

3) Ejecuto LIB MILIB +MIPROG y el programa se encarga de insertármelo en la librería. LIB te preguntará si quieres crear un fichero de listado, tú sólo pulsa Enter y ya está.

Bueno, no tengo mucho tiempo así que me despido agradeciéndote que te ofrezcas a prestarme ayuda en lo que sea. Lo mismo te digo.

    Pregunta:  2738 - CAMPOS MEMO EN CLIPPER
Autor:  Humberto Ramon Mujica
Desde ya muchas gracias por la atención prestada a la presente, bueno mi problema es el siguiente, tengo un archivo de un solo registro con diferentes tipos de campos Memo, cada uno contiene un formato definido.

El problema es al jalar esta información, me la muestra con los codigos de salto de linea y otros caracteres desconocidos, hay alguna funcion o mandato que me pueda evitar la visualizacion de estos caracteres extraños, mi version del clipper es el 5.3
  Respuesta:  Enrique Linares Ramírez
Existe una función en Clipper que convierte esos caracteres para que no sean visibles, lo que pasa es que el Clipper guarda esos caracteres de una forma "física".

por el momento no recuerdo la función, pero si me envías un mail recordándomelo, tal vez te pueda decir la función

    Pregunta:  2829 - CODIGO DE BARRAS- LEER E IMPRIMIR-
Autor:  Javier Sivori
Agradeceria muchisimo a alguien que me pueda ayudar con la lectura y la impresion de codigos de barra en Clipper 5.01, no se me ocurre ninguna rutina porque no estoy al tanto del procedimiento interno . Estoy desesperado. Muchas gracias.
  Respuesta:  Valentin Cruz Cruz Sanchez
mira te pongo una parte para gerenar las barras, pero aun no tengo el proceso de subida o lector de datos
Mira siempre que inicies una impresion debes iniciarla con una A y cuando la termines se cierra con una Z.

La Diferenciacon la Otra respuesta que tienes es que bueno este es mi codigo y mi impresora es una Termica (Sato M-8400rv) y con esto no tengo ni una bronca.

Si puedo ayudarte puedes contactarme en el momento que quieras por que si esta un poco cañon saber como ba la direccion de la impresion y la generacion de lineas en la divisicion y las orientaciones.

Ok espero te sirva de mucho.

-->@PROW(),PCOL() SAY CHR(27) + "A"
@PROW(),PCOL() SAY CHR(27) + "H64" + CHR27) "V1160"
@PROW(),PCOL() SAY CHR(27) + "%1" + CHR(27) + "$A,24,24,0"
@PROW(),PCOL() SAY CHR(27) + "$=NUM. PARTE"
@PROW(),PCOL() SAY CHR(27) + "H84" + CHR(27) + "V1160"
@PROW(),PCOL() SAY CHR(27) + "%1" + CHR(27) + "$=(P)"
@PROW(),PCOL() SAY CHR(27) + "$A,160,160,0"
@PROW(),PCOL() SAY CHR(27) + "H31" + CHR(27) + "V1000"
@PROW(),PCOL() SAY CHR(27) + "%1" + CHR(27) + "$=" + cNpCliAct
@PROW(),PCOL() SAY CHR(27) + "H166" + CHR(27) + "V1098"
@PROW(),PCOL() SAY CHR(27) + "B103115*P" + cNpCliAct + "*"
@PROW(),PCOL() SAY CHR(27) + "H279" + CHR(27) + "V1196"
@PROW(),PCOL() SAY CHR(27) + "FW03H1176"
<--@PROW(),PCOL() SAY CHR(27) + "Z"
  Respuesta:  Gerardo A. Mendoza
Yo he trabajado con clipper y el código de barras en 2 ocaciones, la primera creabamos un archivo ascii y corriamos la aplicación desde clipper 5.01, actualmente compramos unas impresoras Eltron y desde Windows 9.x con clipper 5.3x manda una secuencia de comandos y los imprime muy bien. Luego entonces te recomiendo que busques una librería que te permita generar e imprimir, o que compres una impresora que te permita desde DOS mandar comandos de impresión para que generes el código.

    Pregunta:  2845 - HORA Y FECHA DEL SERVIDOR
Autor:  Juan Percy Sánchez Samán
Quisiera , saber si existe algun comando que permita capturar la fecha y hora del servidor..
  Respuesta:  Juan Mateluna
en Novell la orde es SYSTIME
en Windows abre una ventana DOS, y escrib NET TIME /?, luego reemplaza los datos requeridos por los de tu configuracion ... :-)
  Respuesta:  G. Fernando Castro Guerrero
Hola.

Primero que nada es necesario que aclares que sistema operativo de red estás usando. Hay una librearía (NETOOS.LIB) la cual te permite controlar casi todo del Novell, y ahí puedes encontrar una función que resuelve tu problema, pero te digo, es para Novell.

Si la necesitas te la puedo mandar, solo mándame tu dirección de e-mail.

    Pregunta:  2952 - COMO IMPRIMIR CON LETRA CONDENSADA
Autor:  Cesar Moreyra Huamaní
Favor les agradeceria enviarme una solucion para imprimir en formularios con letra condensada pues fivewin utiliza las letras y el tamaño de windows.
gracias de antemano
  Respuesta:  Cruz Alfredo Vásqez Ceja
checate con esto

set device to printer

@ 0,0 say chr(15)

.......
  Respuesta:  Juan Mamani
Por qué no le echas una mirada a tu manual de impresora, allí debieras encontrar las secuencias para la activar la impresora y listo!

Chao desde Chile

    Pregunta:  2986 - DONDE PUEDO ENCONTRAR EL ARCHIVO
Autor:  andrea paz nuñez
Hola como estan,
espero que muy bien tengo el siguiente problema
donde puedo encontrar o a que se refiere la siguiente linea para que sirve
optedit nombrearchivo.exe extramin 4096
donde puedo encontrar dicha instruccion.(optedit)
ya que yo no lo encuentro y no se donde buscar
la segunda que significa scrit no se lo que es, ademas esto lo necesito ya que estoy traspasando de clipper 5.2 a 5.3 y me encuentro linkeando con exospace, esto lo lei por ahi y no se lo que significa
  Respuesta:  Gerardo A. Mendoza
Hola!
Optedit es un utileria de exospace con la cual puedes configurar algunas opciones del archivo ejecutable que se produce. Si instalaste correctamente el Clipper 5.3x entonces el el directorio de \Clip53\Bin lo puedes encontrar. Esta es parte de la sintaxis:

OPTEDIT - DOS/16M Option Editor Utility v6.01
Copyright (c) Tenberry Software, Inc. 1987 - 1995

Usage: OPTEDIT [-option [-option...]] [filename] [@response[.opt]]

-AUTOCANCEL = Enables automatic cancellation of aliases. [ON]
-NOAUTOCANCEL = Disables automatic cancellation of aliases.

-AUTOGRAB = Enables memory AUTOGRAB. [ON]
-NOAUTOGRAB = Disables memory AUTOGRAB.

-UMB = Enables loading into UMB. [OFF]
-NOUMB = Disables loading into UMB.

-BANNER = Enables display of DOS/16M banner. [ON]
-NOBANNER = Disables display of DOS/16M banner.

-BUFFER nnnn = Sets size of transfer buffer. [4096]

-EXTRAMIN nnnn = Allocate nnnn kbytes of memory in addition to
the load size of the executable. Program will
not load unless this memory is available. [0]

|<  <<  12 13 14 15 16 17 18 19 20 21 22  >>  >|