domingo, 24 de enero de 2010

Impresión directa

Amigos,

He realizado una clase para imprimir directamente a impresoras matriciales (no he checado con otro tipo de impresoras), esto es, sin importar si son Paralelas, Seriales, USB, WIFI u otras, siempre y cuando estén instaladas en windows.

AQUI LA DESCARGA

Sin más preambulo, aquí un ejemplo de uso:

#include

FUNCTION main()
LOCAL oTck
LOCAL nRow := 1

oTck := TDirectPrint():new()
? oTck:cIncos, oTck:cCredits
oTck:nCopy := 1

oTck:say( nRow++, 10, "William morales" )
oTck:say( nRow++, 12, "Gladys sanchez" )
oTck:say( nRow++, 00, "" )
oTck:jump( 10 )

oTck:sendtoprinter()

? "Termino de imprimir"

RETURN NIL

En el archivo de descarga viene la LIB, EXE y el PRG de ejemplo.
Y aquí un desgloce de lo que hasta ahora contiene.

DATAS
cIncos.- Nombre y versión de la clase
cBuild.- Fecha de creación de la LIB
cCredits.- Créditos de autoría y tester
nRow.- Línea de impresión
nCol.- Columna de impresión
cPrinter.- Nombre de la impresora a enviar
cDocument.- Nombre del documento que aparece en el Spooler de windows
nCopy.- Número de copias del documento a imprimir

new( cPrinter ).- Inicialización de la clase y (opcional) pasar nombre de la impresora, si no se pasa, se tomará la que este predeterminada en el momento.
printerdefault().- Asigna la impresora default a cPrinter
setlpt( nLpt ).- Asigna a cPrinter la impresora que esté asignada al puerto indicado
jump( nJump ).- Salta n lineas
say( nRow, nCol, cText ).- Imprime en la línea, columna especificada el texto enviado
opencash( cPrinter, nCash ).- Abre un cajón de dinero, pasandole que impresora se usa. "epson", "star" y el número de cajón a abrir.
sendtoprinter().- Envía a la impresora
checkport( nPort ).- Checa si en el puerto LPT especificado hay impresora asignada
eject().- Aplica un salto de página

Distintos envíos de secuencias de ESC a la impresora.
beginprint().- Inicializa la impresora, por si se imprimió antes un grafico
endprint().- Finaliza la impresión
bold( lOnOff ).- Habilita o deshabilita negritas
condensed().- Habilita condensada
normal().- Habilita o coloca impresión a texto normal
expansive( lOnOff ).- Habilita o deshabilita letras grandes
superscript( lOnOff ).- Habilita o deshabilita superscript
subscript( lOnOff ).- Habilita o deshabilita subscript
underline( lOnOff ).- Habilita o deshabilita underline

Bueno, es solo el principio, se aceptan sugerencias, críticas, etc.

Desde luego, espero comentarios o adiciones para poder haciendola estable y mas potente.

Por mi no se detengan a comentar o usar, si necesitan algo específico hagamos los comentarios y evaluamos.

Saludos y realmente espero podamos ahora si, poder comentar o sugerir.

Sinceramente.
William Morales

miércoles, 20 de enero de 2010

TMYSQL (backup-restore)

Amigos,

He adicionado el modulo de respaldos y restauración a la clase TMySQL, sin mas preámbulo aquí la manera de usarlo.

** BACKUP **

aSelect := { "barras", "productos", "usuarios" }
cFile := "incos.sql"
lDrop := .t.
lOver := .t.
MSGRun( "Generando respaldo, espere por favor...",, {|oDlgsql| nItem := oCon:backup( aSelect, cFile, lDrop, lOver, oDlgsql )} )

Aquí la descripción de los datos a pasar.

aSelect.- Arreglo unidimensional conteniendo la lista de tablas a respaldar.
cFile.- Nombre de archivo con extensión en donde se guardará el respaldo.
lDrop.- Valor lógico donde se define si se incluye la instrucción DROP TABLE y la creación de la tabla.
lOver.- Valor lógico donde indica si el archivo de respaldo se sobreescribe o no.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

Valores que retorna en este caso guardado en la variable nItem.

0.- Ejecutado correctamente.
1.- No hay contenedor seleccionado (base de datos)
2.- Si el archivo de respaldo existe
3.- No selecciono tablas para respaldar.

** RESTORE **

aSelect := { "barras" }
cFile := "incos.sql"
MSGRun( "Restaurando información, espere por favor...",, {|oDlgsql| nItem := oCon:restore( aSelect, cFile, oDlgsql )} )

Descripción de datos a pasar.

aSelect.- Arreglo unidimensional que contiene las tablas a restaurar. Cabe mencionar que se puede seleccionar que tablas restaurar.
cFile.- Nombre del archivo que contiene el respaldo.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

AQUI LA DESCARGA

Sería importante comentar su uso y si está funcionando todo bien. Acá hicimos pruebas, pero algo pudo pasarse.

Espero comentarios pues son inyecciones de ánimo.

Saludos

William Morales

viernes, 1 de enero de 2010

Feliz año 2010

Amigos,

Mis mas sinceros deseos para este año que inicia y que todos nuestros proyectos sean exitosos.

Que la dicha, prosperidad, amor y sobre todo salud se derramen en cada uno de nosotros y nuestras familias.

saludos

sinceramente