Power Builder - Enviar archivo a excel

   
Vista:

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 20/05/2016 17:24:43
Hola Amigos! tengo una duda, yo tengo que enviar un archivo a excel, pero necesito que en el excel no se vea una columna.....hay forma de ocultarla desde power builder? Hasta ahora la unica forma que encontré es copiar todas las filas a otro dw que sea tal cual se ve en excel (es decir, otro dw pero que no contenga esa columna) hay alguna otra manera de hacerlo?
Yo estoy trabajando con Power Builder 9.0 y SQL Server Express
Gracias!
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

Enviar archivo a excel

Publicado por Rodrigo rmendezg@gmail.com (28 intervenciones) el 23/05/2016 15:30:02
Hola Carolina.

Puedes intentar con 2 opciones.

1. Ocultar la columna y guardar la información con formato HTML y luego abrir el archivo en Excel.
2. Utilizar el comando DESTROY para eliminar la columna del datawindow antes de guardar la información en formato Excel.

Slds.

Rodrigo
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

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 24/05/2016 20:02:40
Hola Rodrigo, antes que nada MUCHAS GRACIAS POR TU AYUDA! ,me interesa la opción del DESTROY pero con el destroy estoy eliminando todo el datawindow o no? hay una opción para eliminar solo la columna? la verdad no lo se como sería?
.....perdoname pero no vei esa opción veo el destroy pero solo para un objeto no para la columna del datawindow
Muchas gracias nuevamente!!!!
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 24/05/2016 20:18:02
Hola Carolina.

No tienes nada que agradecer, con mucho gusto.

El destroy permite eliminar distintos datos del datawindow, desde textos, columnas, objetos, etc. Para eliminar una columna, puedes usar esta sintaxis:

dw_cust.Modify("destroy column salary")

donde "dw_cust" es la datawindow del usuario y "salary" es la columna que deseas eliminar.

Si deseas profundizar un poco más en esta opción, puedes ubicar la ayuda en el tema "Datawindow control", en la función "Modify".

Cualquier otra consulta, no dudes en escribirme.

Slds.
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

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 24/05/2016 20:26:33
Hola Rodrigo que rapidez!!!!! que bueno!!!!!!
Justo me meto en el foro para decirte que estuve buscando aca mismo y encontré la sintaxis del destroy entonces las puse en mi script y me quedó así (este es el script que tiene el botón para enviar el archivo a excel):

1
2
3
4
5
6
7
datawin.Modify("destroy t_4")
datawin.Modify("destroy fi_ult_cont")
If datawin.saveas('',EXCEL!, TRUE) = 1 then
		Messagebox("Atención!", "El archivo se ha generado correctamente!")
	else
		Messagebox("Atención", "Ha ocurrido algun error o el usuario ha cancelado la operación.El archivo no ha sido generado correctamente")
End if

Y me genera el archivo perfecto pero no me elimina esta columna en excel (en power builder si, cuando clickeo ese botón la columna desaparece si está visible) pero me la sigue llevando a excel.

Muchas gracias!!!!
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 24/05/2016 20:38:06
Hola...

Prueba agregando la palabra "column" dentro de la sintaxis de la siguiente manera. Favor avisarme si te sirve.

datawin.Modify("destroy column t_4")
datawin.Modify("destroy column fi_ult_cont")

Por otro lado, según sea la necesidad, también puede funcionarte guardar la información en formato HTML. La ventaja del HTML (entre otras), es que te permite guardar también campos computados (computed).

Saludos desde Costa Rica...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 24/05/2016 22:29:39
Hola Rodrigo!!! ahora SI ME FUNCIONOOO!!!!!! MUCHAS GRACIASSSSS!!!!!!!!!!!!!!!
Despues voy a ver lo del formato HTML ya que también se pueden guardar los campos computados pues en otro de los modulos (el contable) tengo que guardar campos computados
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 24/05/2016 22:34:22
Me alegro mucho que te funcionara. Por ahí te queda mi correo electrónico por si puedo ayudarte a futuro.

Slds.
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

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 24/05/2016 22:59:17
UN MILLON DE GRACIAS!!!!!!!
DESDE ARGENTINA!
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

Enviar archivo a excel

Publicado por Carolina (11 intervenciones) el 25/05/2016 15:32:47
Otra pregunta, vos sabés como hacer para que los campos que son los titulos y subtotales los pueda ver en excel con el texto en negrita? y los campos que son moneda formateados como $3.00 por ejemplo?
yo en power builder los veo bien pero no puedo formatearlos para que el usuario abra el archivo excel y ya vea los campos con el formato que los ve en power builder
Muchas gracias!!!!!!
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

Enviar archivo a excel

Publicado por Elvito (18 intervenciones) el 27/05/2016 17:16:59
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

Enviar archivo a excel

Publicado por Carolina (74 intervenciones) el 27/05/2016 18:07:31
Hola Elvito, gracias por tu respuesta!
Perfecto ahi lo probé y funcionó ahora tengo que ver de donde saco la documentación porque no me guarda bien los encabezados y pie de grupos, etc...
Muchas gracias!!!!!!
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 27/05/2016 18:16:52
Buenos días.

Carolina, perdona que no contestara ayer pero estuve ausente.

Elvito, muchas gracias por esta recomendación. Ya compilé mi sistema con el nuevo PBD y no me dio problemas. Voy a probar el guardado a excel.

Carolina, según el link enviado por Elvito, en teoría con esta otra función se puede trabajar grupos, encabezados, sumarios, etc.

Acá transcribo la ayuda que está en el archivo llamado "uf_save_ds_as_excel_parm.htm" que está dentro del directorio "DOC" del zip descargado.

Voy a probarlo y les estoy comunicando los resultados.

uf_save_ds_as_excel_parm() function

Converts datastore into excel file. Allows to specify some options for process of converting.

Syntax

uf_save_ds_as_excel_parm ( ds, filename, parm )
Parameters

ds A reference to the datastore object
filename A string whose value is the name of the file you want to create. If filename is not on the operating system's search path, you must enter the fully qualified name
parm A reference to the n_dwr_service_parm object which contain a set of parameters for process of converting
Return value

Integer. Returns 1 if it succeeds and -1 if an error occurs.

Examples

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
integer li_ret
n_dwr_service_parm lnvo_parm
lnvo_parm = create n_dwr_service_parm
lnvo_parm.ib_header = false         //skip header band 
lnvo_parm.ib_summary = false        //skip summary band 
lnvo_parm.ib_footer = false         //skip footer band 
lnvo_parm.ib_group_header = false   //skip all group headers 
lnvo_parm.ib_group_trailer = false  //skip all group trailers 
 
li_ret = uf_save_ds_as_excel_parm(ds_1, 'c:\doc\report.xls', lnvo_parm)
if li_ret = 1 then
   //success
   //...
else
   //fail
   //...
end if
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

Enviar archivo a excel

Publicado por Carolina (74 intervenciones) el 27/05/2016 20:23:41
Hola Rodrigo, sos un fenomeno, muchas gracias!!!!!!
Justo vi el mensaje, ahora tengo que irme pero cuando regrese lo voy a probar si no es hoy en la semana que viene y luego te aviso, pero no voy a tardar mucho porque hace rato que quiero esto......gracias nuevamente!!!!!!!
Un saludo desde Argentina, y buen fin de semana!!!!!!!!
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

Enviar archivo a excel

Publicado por Carolina (74 intervenciones) el 30/05/2016 16:13:21
Hola Rodrigo!!!!!
Estuve probando esta funcion de enviar a excel con los parametros, y, si no hice las cosas mal me da el siguiente error y no puedo guardar mi funcion ni tampoco ejecutarla, el error que me da es el siguiente:
"C0174 Type of actual parameter cannot be ancestor of formal reference parameter type"

Yo lo que hice fue, descomprimir el zip en un directorio, luego agregar el pbd a mi aplicación y luego el código tal cual me lo enviaste, no se si está todo bien......
Pero , para descartar, probé nuevamente la función que no tiene el parametro y lo ejecuta bien, asique es el parametro
Bueno, igual mientras espero tu respuesta sigo probando

Gracias!!!!!!
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

Enviar archivo a excel

Publicado por Carolina (74 intervenciones) el 30/05/2016 17:53:25
Hola Rodrigo nuevamente!!!!!
Bueno probando al final ME FUNCIONO!!!!! de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Integer li_ret
n_dwr_service_parm lnvo_parm
String ls_path, ls_file
 
lnvo_parm = create n_dwr_service_parm
lnvo_parm.ib_header = True
lnvo_parm.ib_footer = True
lnvo_parm.ib_summary = false
lnvo_parm.ib_group_header = True
lnvo_parm.ib_group_trailer = True
 
 
 
If GetFileSaveName ( "Guardar Como", ls_path, ls_file, "XLS","XLS Files (*.XLS),*.XLS" , "C:\", 32770) = 1 then
	li_ret = uf_save_dw_as_excel_parm(datawin, ls_file, lnvo_parm)
	if li_ret = 1 then
			Messagebox("Atención!", "El archivo se ha generado correctamente!")
		else
			Messagebox("Atención", "Ha ocurrido algun error o el usuario ha cancelado la operación.El archivo no ha sido generado correctamente")
	End if
End if


Pero como no puedo compilar, desde power builder me funciona correctamente pero tengo errores al compilar y todavía no he podido compilar bien esta aplicacion.
Pero de esta forma me funciona correctamente, me envia a excel el archivo tal cual lo veo en la windows de Power Builder!!!!!
Si podes fijate que yo explique mi error con el titulo "urgente! Error al compilar" pero todavía nadie ha podido responderme (no debe ser muy comun este error que yo tengo!!!)
Saludos, Carolina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 02/06/2016 20:49:13
Hola nuevamente Carolina.

Según lo que comprendo en Internet de este incidente, tienes alguna especie de problema con la ventana que estás usando que al parecer es heredada y hay un conflicto en la forma en que estás pasando los parámetros a la función uf_save_dw_as_excel_parm.

Revisa y prueba cambiando el tipo de variables (local, global, etc). Creo que el problema está en la definición de las variables datawin y lnvo_parm.

Lamentablemente no he tenido aún la necesidad de utilizar esta función, solamente empecé a utilizar la otra llamada "uf_save_dw_as_excel" y me permitió compilar bien en la versión 9.0 de PB.

Haz algunas pruebas con esos cambios y me avisas, por favor.

Slds.
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 02/06/2016 20:52:37
Hola Elvito.

¿Por casualidad has utilizado esta librería para el PB 6.5 Build 444?.

Al compilar me da una serie de errores relacionados con la inexistencia de varios archivos fuente.

Agradezco cualquier comentario.

Slds.
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

Enviar archivo a excel

Publicado por Rodrigo (28 intervenciones) el 02/06/2016 21:00:49
Hola.

Esto lo encontré en otro sitio, a ver si le llegas según tu proyecto.


Normally what this means is that a parameter is declared as a descendant
type and you are trying to pass an ancestor type.

Slds.

Rodrigo.
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

Enviar archivo a excel

Publicado por ElvitoMhg (18 intervenciones) el 04/06/2016 23:26:21
Hola

Que parámetros tienes para el compilado. Hay que poner la compilación incremental

y donde declaraste la librería.
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

Enviar archivo a excel

Publicado por cristian (21 intervenciones) el 02/06/2016 19:09:06
tendrias que hacer otra dw sin ese campo esconder que yo sepa no se puede
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

Enviar archivo a excel

Publicado por Carolina (74 intervenciones) el 02/06/2016 20:17:42
Hola Cristian!!!! No se a que me contestaste que no se puede, pero si es por lo de que no se exporte a excel algun campo del datawindows que tengo en la pantalla, SI SE PUEDE, con el comando Destroy que está arriba a mi me funciona perfectamente.
Si no es por esto no se porque pusiste lo de hacer otra dw??
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