Power Builder - Problemas exportacion a texto

 
Vista:
sin imagen de perfil

Problemas exportacion a texto

Publicado por Lazaro (5 intervenciones) el 13/09/2016 15:42:21
Buenas gente.
Tengo el siguiente problema, a la hora de exportar un datawindows a texto, me encuentro que cuando éste es demasiado extenso la exportación se realiza de manera incompleta.
Aqui adjunto el codigo donde doy formato a la linea y la escribo.

Tienen alguna sugerencia???

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
for j = 1 to li_cant
	ls_fila = ""
 
	//recorro los campos seleccionados
	for i = 1 to 8
		ls_campo = i_str_format.campo[i]
 
		//de acuerdo al campo que selecciono
		Choose case ls_campo
		//legajos				
		case 'legajo'
			ls_valor = dw_rp1.getitemstring(j,'legajo')
			 if isnull(ls_valor ) then ls_valor = ""
 
		//tarjeta
		case 'tarjeta'
			 ls_valor = dw_rp1.getitemstring(j,'tarjeta')
			 if isnull(ls_valor ) then ls_valor = ""
 
		//conceptos
		case 'causa'
			 ls_valor = dw_rp1.getitemstring(j,'causa')
			 if isnull(ls_valor ) then ls_valor = ""
 
		//fecdesde
		case 'ent'
			 ldt_ent = dw_rp1.getitemdatetime(j,'ent')
			 ls_valor = string(date(ldt_ent),ls_formatdate) + " " + string(time(ldt_ent),ls_formattime)
 
		case 'sal'
			 ldt_sal = dw_rp1.getitemdatetime(j,'sal')
			 ls_valor = string(date(ldt_sal), ls_formatdate) + " " + string(time(ldt_sal),ls_formattime)
 
		//horasjustif
		case 'horas'
 
			 ll_cant = dw_rp1.getitemnumber(j,'hsjustif')
			 if isnull(ll_cant) then ll_cant = 0
 
			 ld_cant  = round(ll_cant / 60,0)
			 li_resto = mod(ll_cant,60)
 
			 ls_formato = i_str_format.formato
 
			 choose case ls_formato
				case 'hhhh:mm'
					 ls_valor = string(ld_cant,'0000') + ':' + string(li_resto,'00')
 
				case  'hh:mm'
					 ls_valor = string(ld_cant,'00') + ':' + string(li_resto,'00')
 
				case  'h:mm'
					 ls_valor = string(ld_cant,'0') + ':' + string(li_resto,'00')
 
				case 'hhhhmm'
					ls_valor = string(ld_cant,'0000') + string(li_resto,'00')
 
				case 'hhhh.hh'
						//divido la cant por 60 y coloco formato con 2 dec separados por un punto
						ls_valor = string(ld_cant,'0000') + "." + string(li_resto,'00')
				case 'mmmm'
						ls_valor = string(ll_cant,'0000.00')
 
			end choose
 
		//tothslab
		case 'horaslab'
 
			 ll_cant = dw_rp1.getitemnumber(j,'hslab')
			 if isnull(ll_cant) then ll_cant = 0
 
			 ld_cant  = round(ll_cant / 60,0)
			 li_resto = mod(ll_cant,60)
 
			 ls_formato = i_str_format.formato
 
			 choose case ls_formato
				case 'hhhh:mm'
					 ls_valor = string(ld_cant,'0000') + ':' + string(li_resto,'00')
 
				case  'hh:mm'
					 ls_valor = string(ld_cant,'00') + ':' + string(li_resto,'00')
 
				case  'h:mm'
					 ls_valor = string(ld_cant,'0') + ':' + string(li_resto,'00')
 
				case 'hhhhmm'
					ls_valor = string(ld_cant,'0000') + string(li_resto,'00')
 
				case 'hhhh.hh'
						//divido la cant por 60 y coloco formato con 2 dec separados por un punto
						ls_valor = string(ld_cant,'0000') + "." + string(li_resto,'00')
				case 'mmmm'
						ls_valor = string(dw_rp1.getitemnumber(j,'cant'),'0000.00')
			end choose
 
		case 'dias'
 
			ld_cant = dw_rp1.getitemnumber(j,'dias')
			ls_valor = string(ld_cant)
 
 
		//cant de dias laborables	
		case 'diaslab'
 
			ld_cant = dw_rp1.getitemnumber(j,'diaslab')
			ls_valor = string(ld_cant)
 
		End choose
 
		 if i_str_format.fijo = 'S' then
			//tomo el largo a recortar
			li_largo = i_str_format.largo[i]
 
			//calculo dif
			li_dif = li_largo - len(trim(ls_valor))
 
			//si faltan caract agrego espacios sino recorto al largo definido
			if li_dif >=0 then
				choose case ls_campo
					case 'tarjeta', 'legajo', 'ent', 'sal', 'horas', 'horaslab', 'dias', 'diaslab'
						ls_valor =  space(li_dif)+trim(ls_valor)
					case 'causa'
						ls_valor = space(li_dif)+ trim(ls_valor)
				end choose
			else
				ls_valor = left(trim(ls_valor),li_largo)
			end if
 
		else
			ls_valor = trim(ls_valor)
		end if
 
	 	if i = 8 then
			ls_fila = ls_fila + ls_delimitador  + ls_valor + ls_delimitador
		else
			ls_fila = ls_fila + ls_delimitador  + ls_valor + ls_delimitador + ls_separador
		end if
 
	next
	garbageCollect()
	ls_fila = ls_fila + '~r~n'
	li_rta = FileWriteEx(li_file, ls_fila)
	n++
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
sin imagen de perfil

Problemas exportacion a texto

Publicado por Lazaro (5 intervenciones) el 13/09/2016 16:52:31
El error se encontraba en la declaracion de la variable que controla la cantidad de filas.

Tuve que declararla de tipo "longlong" ya que era de tipo "long".

Comento por si alguien tiene problema similar.
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