Power Builder - Formatear campos para excel desde Power Builder

 
Vista:

Formatear campos para excel desde Power Builder

Publicado por Carolina (11 intervenciones) el 11/05/2016 21:43:57
Hola amigos! tengo un problema tengo que exportar un listado que tengo hecho en power builder a Excel.Me lo exporta OK pero, un campo del listado es el valor de la reserva y es de tipo moneda en el atributo format de la columna del datawindow tiene seteado "$#,##0.00;[RED]($#,##0.00)" el tema es que, cuando los decimales son cero no me formatea en excel ese campo me lo deja sin los ceros y me están pidiendo que los ponga.
Por ejemplo si el valor es : $200.00 a excel me lo lleva como 200 no me escribe el sigo monetario ($) ni tampoco los ceros decimales, yo necesito que en excel se vea asi: "$200.00" IGUAL QUE COMO LO VEN EN EL REPORTE DE POWER BUILDER y no encontré la manera de hacerlo
Esto con Power Builder 9 BUIL 5507 y SQL Server
Muchas gracias a quien pueda ayudarme!
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

Formatear campos para excel desde Power Builder

Publicado por Leopoldo Taylhardat (710 intervenciones) el 13/05/2016 17:12:44
Saludos...
Ese formato es de PowerBuilder...

Cuando conviertes a Excel, los datos son convertidos tal como vienen de la base de datos...

si tienes una función en la base de datos (no dices cual usas) que formatea valores numéricos debes hacer el "select" con la data formateada a traves de la función...
si nó... tienes que hacer la función o buscar una función en interner que realice formateo de cantidades para la base de datos que usas...

Espero que te sirva...
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

Formatear campos para excel desde Power Builder

Publicado por Carolina (11 intervenciones) el 16/05/2016 20:36:15
Hola Leopoldo, la base de datos es SQL Server esxpress.Pero no me doy cuenta cual es la función mirá la vista es:

SELECT hmcv_asientos_maestro_cg.id_asiento, hmcv_asientos_maestro_cg.fecha, hmcv_asientos_maestro_cg.tipo_asiento, hmcv_asientos_detalle_cg.id_imputacion, hmcv_asientos_detalle_cg.id_cuenta,hmcv_asientos_detalle_cg.n_cuenta,
hmcv_asientos_detalle_cg.debe, hmcv_asientos_detalle_cg.haber, getdate() as fecha_ini, getdate() as fecha_fin, hmcv_asientos_detalle_cg.nro_op, hmcv_asientos_detalle_cg.nro_rec, hmcv_asientos_maestro_cg.id_asiento_ds,hmcv_asientos_maestro_cg.id_asiento_ps
FROM hmcv_asientos_maestro_cg,hmcv_asientos_detalle_cg,hmcv_plan_cuentas
WHERE ( hmcv_asientos_maestro_cg.id_asiento = hmcv_asientos_detalle_cg.id_asiento ) and
( hmcv_asientos_detalle_cg.id_cuenta = hmcv_plan_cuentas.id_cuenta )

yo tengo que formatear los campos: hmcv_asientos_detalle_cg.debe y hmcv_asientos_detalle_cg.haber pero si le pongo por ejemplo Cast(hmcv_asientos_detalle_cg.debe AS Money) me los devuelve con decimales también pero no formateado con el signo ($)

Muchas gracias igual voy a probar un poco mas hasta ver si ves cual es la funcion

GRACIAS NUEVAMENTE POR TU AYUDA!!!!!!
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

Formatear campos para excel desde Power Builder

Publicado por Leopoldo Taylhardat (710 intervenciones) el 18/05/2016 15:39:05
Saludos...

esta función es para sqlserver que la conseguí hace tiempo y te permite formatear números con varios tipo y ponerle sufijos, prefijos y definir cuantos decimales... etc...
yo la modifiqué para la bd con la cual trabajo...
Espero que te sirva...

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
65
create procedure
dba.FN_FORMAT_NUMBER(@VALOR decimal(20,10),@PREFIJO varchar(10)= '',@SUFIJO varchar(20)= '',@DECIMALES integer)
--DECIMALES A MOSTRAR
--SEPARADOR DE MILES
--SEPARADOR DE DECIMALES
--PREFIJO EJEMPLO '$ '
--SUFIJO EJEMPLO ' PESOS'
as
begin
  declare @STR_VALOR_INTEGER varchar(100),
  @STR_VALOR_DEC varchar(100),
  @STR_VALOR varchar(100),
  @STR_MILES varchar(100),
  @POS_X integer,
  @SEP_DECIMALES char(1),
  @SEP_MILESCHAR char(1)
  -- REDONDEO DECIMALES
  select @VALOR=ROUND(@VALOR,@DECIMALES)
  select @STR_VALOR=convert(varchar(100),@VALOR)
  select @SEP_DECIMALES=','
  select @SEP_MILESCHAR='.'
  --- POSICION DEL PUNTO
  select @POS_X=CHARINDEX('.',@STR_VALOR)
  print '1'
  if @POS_X<>0
    begin
      select @STR_VALOR_INT="LEFT"(@STR_VALOR,@POS_X-1)
      select @STR_VALOR_DEC="RIGHT"(@STR_VALOR,LENGTH(@STR_VALOR)-(@POS_X+1))
    end
  else
    begin
      select @STR_VALOR_INT=@STR_VALOR
      select @STR_VALOR_DEC=''
    end
  print '2'
  select @STR_VALOR_DEC="LEFT"(@STR_VALOR_DEC+'0000000000',@DECIMALES)
  select @STR_MILES=''
  print '3'
  while @STR_VALOR_INT<>''
    print '4'
  if LENGTH(@STR_VALOR_INT)>3
    begin
      select @STR_MILES=@SEP_MILES+"RIGHT"(@STR_VALOR_INT,3)+@STR_MILES
      select @STR_VALOR_INT="LEFT"(@STR_VALOR_INT,LENGTH(@STR_VALOR_INT)-3)
    end
  else
    begin
      select @STR_MILES=@STR_VALOR_INT+@STR_MILES
      select @STR_VALOR_INT=''
    end
  select @STR_VALOR_INT=@STR_MILES
  print '5'
  if @VALOR<0 and @PREFIJO='(' and @SUFIJO=')'
    begin
      select @STR_VALOR=@PREFIJO+@STR_MILES+@SEP_DECIMALES+@STR_VALOR_DEC+@SUFIJO
    end
  else
    begin
      select @STR_VALOR=@PREFIJO+@STR_MILES+@SEP_DECIMALES+@STR_VALOR_DEC+@SUFIJO
    end
  return @STR_VALOR
end
---------------------------------------------
-- CARLOS ESQUIVEL campeon_1@hotmail.com  ---
---------------------------------------------
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

Formatear campos para excel desde Power Builder

Publicado por Carolina (11 intervenciones) el 20/05/2016 01:03:00
ok gracias! lo voy a probar luego!!!
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