Este scrip nos permite guardar en PDF un reporte, ya que con el dw.saveas() si bien figura en la lista el formato, no guarda, o guarda pero al querer abrirlo nos da un Error.
Como primer paso debes tener Instalado una impresora Virtual, podria se el PDFCreator, cuando ya lo tengas instalado, renombralo con "PDF" (en el scrip llamaremos a esa impresora, si lo nombras de otra manera no lo encontrará), luego instalas el gs871w32.exe para S.O. de 32bits, y el gs871w64.exe para S.O. de 64bits, lo puedes descargar de algun sitio de internet, mas adelante sugeriré el sitio de donde yo lo descargué.
Y a continuación el Scrip, que yo lo puse en el evento clicked de un boton, cada uno verá donde ubicarlo de acuerdo a sus necesidades.
//por fativilla 27.06.2012 \m/
string ls_arc_pdf
CreateDirectory(GetCurrentDirectory( ) +'\PDF\') //SI no existe la carpera lo crea en el directorio del app
ls_arc_pdf= GetCurrentDirectory( ) +'\PDF\carta_oferta.pdf'
tabpage_5.dw_10.Object.DataWindow.Export.PDF.Method = Distill!
tabpage_5.dw_10.Object.DataWindow.Printer = "PDF"//PDF Nombre de la impresora virtual
tabpage_5.dw_10.Object.DataWindow.Export.PDF.Distill.CustomPostScript="YES" // Permitir Postscript
if tabpage_5.dw_10.SaveAs(ls_arc_pdf,PDF!,true) <> 1 then
messagebox("Error","Hubo un error al generar el archivo PDF~n~r"+&
"1. Puede que no haya instalado gs871w32.exe~n~r"+&
"2. Puede que no tenga una impresora virtual con el nombre 'PDF'~n~r", StopSign!)
else
messagebox("Atención","El archivo se generó con EXITO!!~n~r"+&
ls_arc_pdf)
end if
* Sitio de donde puedes descargar el gs871w32.exe
http://es.sourceforge.jp/projects/sfnet_ghostscript/downloads/GPL%20Ghostscript/8.71/gs871w32.exe/
Sabias que si comentas un blog estas incentivando a que cada dia haya mas información que podria ser importante para tí o los demas?... :) Espero les pueda ser de utilidad el mio.
viernes, 29 de junio de 2012
martes, 26 de junio de 2012
Para saber relaciones de una tabla específica, cambias "AJUSTE" por la tabla de la cual quieres averiguar.
SELECT * FROM RDB$RELATION_CONSTRAINTS WHERE RDB$CONSTRAINT_NAME NOT STARTING WITH 'INTEG'
AND RDB$RELATION_NAME = 'AJUSTES'
AND RDB$RELATION_NAME = 'AJUSTES'
Obtener directorio de la aplicación
Si quieres extraer el direcctorio donde se encuentra tu app, en mi caso lo busque para colocar el logo de la empresa en un reporte.
string ls_direcctorio_aplicacion
ls_direcctorio_aplicacion = GetCurrentDirectory( )
tabpage_5.dw_10.object.p_logo.Filename=ls_direcctorio_aplicacion+'\CR_Superior.JPG'
tabpage_5.dw_10.object.p_logo1.Filename=ls_direcctorio_aplicacion+'\CR_Inferior.JPG'
string ls_direcctorio_aplicacion
ls_direcctorio_aplicacion = GetCurrentDirectory( )
tabpage_5.dw_10.object.p_logo.Filename=ls_direcctorio_aplicacion+'\CR_Superior.JPG'
tabpage_5.dw_10.object.p_logo1.Filename=ls_direcctorio_aplicacion+'\CR_Inferior.JPG'
lunes, 7 de mayo de 2012
Crear Archivos .txt y/o .sql
En el ejemplo creo un archivo .sql a partir de un mle_1.text, ya le daran la utilidad que deseen y dependiendo del requerimiento de cada uno. En mi caso lo hice en el evento clicked de un boton.
//Exportar a un archivo
Int li_archivo
String ls_registro ,as_path_salida,as_archivo
as_path_salida ='C:\Trigger\'
as_archivo = 'generado.sql'
CreateDirectory ( as_path_salida ) //crea la carpeta si no existe
//borramos el archivo si existiera
FILEDELETE(as_path_salida + as_archivo )
//Abrimos el archivo
li_archivo= FileOpen(as_path_salida + as_archivo ,LineMode!,Write!,lockwrite!)
ls_registro=mle_1.text
FileWrite(li_archivo, ls_registro)
FileClose(li_archivo)
messagebox( "Atención", 'Archivo guardado en: '+as_path_salida)
//Exportar a un archivo
Int li_archivo
String ls_registro ,as_path_salida,as_archivo
as_path_salida ='C:\Trigger\'
as_archivo = 'generado.sql'
CreateDirectory ( as_path_salida ) //crea la carpeta si no existe
//borramos el archivo si existiera
FILEDELETE(as_path_salida + as_archivo )
//Abrimos el archivo
li_archivo= FileOpen(as_path_salida + as_archivo ,LineMode!,Write!,lockwrite!)
ls_registro=mle_1.text
FileWrite(li_archivo, ls_registro)
FileClose(li_archivo)
messagebox( "Atención", 'Archivo guardado en: '+as_path_salida)
miércoles, 9 de noviembre de 2011
Como Restaurar una Base de Datos FIREBIRD
Es muy sencillo. Les dejo como hacerlo esto lo deben de grabar en un archivo .bat, lo ejecutan y ya.
Agradeceria comentarios y/o puntuacion asi puedo saber si les fue de provecho y seguir posteando.
c:\trabajo\gbak -r -n -user SYSDBA -password masterkey c:\trabajo\backup_de_la_BD.fbk c:\trabajo\BD_RESTAURADA.fdb
Aclaro que deben de cambiar la ruta, nombre de usuario y pass de acuerdo a la BD de uds... pueden consultar si no esta claro.
Agradeceria comentarios y/o puntuacion asi puedo saber si les fue de provecho y seguir posteando.
c:\trabajo\gbak -r -n -user SYSDBA -password masterkey c:\trabajo\backup_de_la_BD.fbk c:\trabajo\BD_RESTAURADA.fdb
Aclaro que deben de cambiar la ruta, nombre de usuario y pass de acuerdo a la BD de uds... pueden consultar si no esta claro.
miércoles, 28 de septiembre de 2011
Mas orden en DataWindow
// Permite ordenar ascendentemente o descendentemente la columna sobre la cual se ha hecho doble clic...
String ls_header, ls_temp, is_lastheader , is_order
// Para el caso que la columna sea de tipo texto...
IF dwo.Type = "text" THEN
ls_header = dwo.Name
IF ls_header = is_lastheader THEN
IF is_order = "D" THEN
is_order = "A"
ELSE
is_order = "D"
END IF
ELSE
is_lastheader = ls_header
END IF
// Como los títulos de las columnas por defecto son <campo>_t recortamos los dos últimos caracteres
ls_temp = Left(ls_header, Len(ls_header) - 2) + " " + is_order
This.SetRedraw(False)
This.SetSort(ls_temp)
This.Sort()
This.SetRedraw(True)
END IF
String ls_header, ls_temp, is_lastheader , is_order
// Para el caso que la columna sea de tipo texto...
IF dwo.Type = "text" THEN
ls_header = dwo.Name
IF ls_header = is_lastheader THEN
IF is_order = "D" THEN
is_order = "A"
ELSE
is_order = "D"
END IF
ELSE
is_lastheader = ls_header
END IF
// Como los títulos de las columnas por defecto son <campo>_t recortamos los dos últimos caracteres
ls_temp = Left(ls_header, Len(ls_header) - 2) + " " + is_order
This.SetRedraw(False)
This.SetSort(ls_temp)
This.Sort()
This.SetRedraw(True)
END IF
miércoles, 24 de agosto de 2011
Colores PowerBuilder
Algunos truquitos numericos para colorear text o backgroup
* Cambie la numeracion por el color que desea segun tabla de colores
this.Modify( ls_dia+".Background.Color='12632256'")
this.Modify( ls_dia+".Color='12632256'")
Color Red Green Blue
* Cambie la numeracion por el color que desea segun tabla de colores
this.Modify( ls_dia+".Background.Color='12632256'")
this.Modify( ls_dia+".Color='12632256'")
- Colores Especiales
| Button Face | 79741120 | |||
| Text | 33554432 | |||
| Background | 1090519039 | |||
| App. Workspace | 276856960 |
- Colores Clásicos
Color Red Green Blue
| Black | 0 | 0 | 0 | 0 |
| White | 255 | 255 | 255 | 16777215 |
| Gray | 192 | 192 | 192 | 12632256 |
| Dark Grey | 128 | 128 | 128 | 8421504 |
| Red | 255 | 0 | 0 | 255 |
| Dark Red | 128 | 0 | 0 | 128 |
| Green | 0 | 255 | 0 | 65280 |
| Dark Green | 0 | 128 | 0 | 32768 |
| Blue | 0 | 0 | 255 | 16711680 |
| Dark Blue | 0 | 0 | 128 | 8388608 |
| Magenta | 255 | 0 | 255 | 16711935 |
| Dark Magenta | 128 | 0 | 128 | 8388736 |
| Cyan | 0 | 255 | 255 | 16776960 |
| Dark Cyan | 0 | 128 | 128 | 8421376 |
| Yellow | 255 | 255 | 0 | 65535 |
| Brown | 128 | 128 | 0 | 32896 |
Suscribirse a:
Entradas (Atom)