Power Builder - IMPRIMIR CONTENIDO DE CAMPO varbinary, EN POWER BUILDER

 
Vista:

IMPRIMIR CONTENIDO DE CAMPO varbinary, EN POWER BUILDER

Publicado por JOEL LEZCANO (5 intervenciones) el 21/09/2017 06:29:03
Hola amigos de la web del programador, tengo una consulta, estoy elaborando una aplicación para almacenar todos los documentos que emite una institución, ya logre almacenar los archivos en la BD, ahora mi problema es, una vez guardado y autorizado por el jefe, necesito que este documentos me muestre en un ole (hasta ahí lo he hecho), pero e aquí el detalle, quiero imprimir la información que esta almacenado en el campo de la base de datos director sin modificar (el campo varbinary ). Ademas debo precisar que el contenido del ole que guardo en la BD, edito con OpennOffice - write versión 4...., si alguien me puede ayudar, os agradecería muchísimo. de ante mano Gracias, por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.
Val: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

IMPRIMIR CONTENIDO DE CAMPO varbinary, EN POWER BUILDER

Publicado por Leonardo Daniel A. (481 intervenciones) el 23/09/2017 03:10:11
Hola

1. Los objetos OLE si haces doble click en el... edita el documento ahi mismo en la ventana....
2. Los objetos OLE incrustasdos no se pueden modificar, imprimir, ni guardar por medio de codigo

tu opcion seria extraer el objeto incrustado..guardarlo temporalmente en el disco duro y luego crear un objeto ole programable, y conectarlo a Word, abrirlo, mandarlo a imprimir, cerrarlo y borrarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

IMPRIMIR CONTENIDO DE CAMPO varbinary, EN POWER BUILDER

Publicado por Joel (5 intervenciones) el 15/10/2017 02:03:40
Amigo. Leonardo Daniel, si me pudieras ayudar, con algun scrip que me extraiga el objeto incrustado - ole y mandarlo a imprimir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

IMPRIMIR CONTENIDO DE CAMPO varbinary, EN POWER BUILDER

Publicado por Leonardo Daniel A. (481 intervenciones) el 16/10/2017 18:19:01
Hola, no tengo nada para extraer de un objeto ole, lo que hice en una aplicacion al subir documentos puse el boton VER y extrae el archivo de la base de datos y lo abre en la aplicacion asociada a esa extencion, es una funcion que recibe como parametros el id_del archivo y el nombre con el que se guardara ( que esta oculto en el dw ).... ni idea de la automatizacion en OpenOffice, en Microsoft office tendrias que buscar en la web, Word VBA, y luego buscar PowerBuilder OLE automatizacion

Funcion f_ver_archivo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
blob lblob_File
 
SELECTBLOB archivo into :lblob_File FROM archivos_digitales
	WHERE id_archivo = :al_id_archivo;
 
 
IF sqlca.SQLNRows = 0 then
	f_mensaje("A", "Could not download the file")
	return
end if
if SQLCA.SQLCode = -1 then
	f_mensaje("A", "SQL error" + ln+ SQLCA.SQLErrText)
	return
end if
 
 
// crear path y nombre de archivo de donde se guardara fisicamente
ls_Path = "C:\temp\" + as_nombre
 
if FileExists( ls_path ) then
   if FileDelete( ls_path ) = false then
		f_mensaje("A", "The file " + ls_path + " is open, you can not continue")
		return
	end if
end if
 
 
//se extrae el binary y se crea el archivo fisico
li_File = FileOpen(ls_Path, StreamMode!, Write!, LockWrite!, Append!)
 
If li_File > 0 Then
	//Determine how many times to call FileWrite
	ll_FileLen = Len(lblob_File)
	FileWriteEx( li_File, lblob_File, ll_FileLen  )
else
	f_mensaje("E", "Could not open the file")
	FileClose(li_File)
	return
end if
FileClose(li_File)
wf_ejecutar_archivo( ls_path )


Declarar en Local External Functions
1
2
FUNCTION long ShellExecute(ulong ihwnd,string lpszOp,string lpszFile,string lpszParams,&
              string lpszDir,int wShowCmd ) LIBRARY "shell32.dll" ALIAS FOR "ShellExecuteW"

Declara funcion de ventana wf_ejecutar_archivo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//-------------------------------------------------------------------------
// Propósito  : Ejecuta un fichero, sea lo que sea (doc, pdf, xls, mp3...)
// Parámetros : spRuta.- Ruta del fichero a ejecutar.
// Devuelve   : 1.- Todo bien
//             -1.- Hay error.
//-------------------------------------------------------------------------
Long   lRetorno
String sError, sNulo
 
SetNull(sNulo)
// Se ejecuta la ruta pasada.
lRetorno = ShellExecute(Handle(this), sNulo, spRuta, sNulo, sNulo, 3)
//El último argumento es el estilo de la ventana:
//SW_HIDE 0
//SW_SHOWNORMAL 1
//SW_NORMAL 1
//SW_SHOWMINIMIZED 2
//SW_SHOWMAXIMIZED 3
//SW_MAXIMIZE 3
//SW_SHOWNOACTIVATE 4
//SW_SHOW 5
//SW_MINIMIZE 6
//SW_SHOWMINNOACTIVATE 7
//SW_SHOWNA 8
//SW_RESTORE 9
//SW_SHOWDEFAULT 10
//SW_MAX 10
 
IF lRetorno <= 32 THEN
 // Hay error
 CHOOSE CASE lRetorno
  CASE 2
   sError = "Fichero no encontrado"
  CASE 3
   sError = "Ruta no encontrada"
  CASE 5
   sError = "Acceso denegado"
  CASE 8
   sError = "Fuera de memoria"
  CASE 32
   sError = "DLL no encontrada"
  CASE 26
   sError = "A sharing violation occurred"
  CASE 27
   sError = "Asociación a fichero no válida o incompleta"
  CASE 28
   sError = "DDE Time out"
  CASE 29
   sError = "DDE transaction failed"
  CASE 30
   sError = "DDE busy"
  CASE 31
   sError = "No existe ninguna asociación a la extensión del fichero"
  CASE 11
   sError = "Invalid EXE file or error in EXE image"
  CASE ELSE
   sError = "Error desconocido"
 END CHOOSE
 Messagebox("Error..." + String(lRetorno),sError)
 Return -1
END IF
 
// Todo bien.
Return 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar