FoxPro/Visual FoxPro - Exportar distintos querys en distintas hojas de excel

 
Vista:
Imágen de perfil de Yogui

Exportar distintos querys en distintas hojas de excel

Publicado por Yogui (79 intervenciones) el 08/07/2014 16:54:45
Hola a todos nuevamente, mi consulta es la siguiente: Yo exporto datos de un query a excel, pero tengo otro query, que quiero que se exporte al mismo excel sin sobreescribirse (en otra pestaña por ejemplo)
No sé si eso sea posible, exportar diferentes querys (con la sentencia sqlexec() ) a un solo documento ed excel.
¡¡¡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

Exportar distintos querys en distintas hojas de excel

Publicado por Saul (728 intervenciones) el 09/07/2014 20:40:58
Nuevamente te equivocas Yogui.

Que necesitas pasar los Querys ??

o pasar los datos de una consulta (Query), es que segun tengo entendido es cuestion de que hagas dos consultas y las puedas pasar a dos hojas diferentes, eso no hay problema con Visual Fox y Excel
Revisa este codigo hace lo que quieres, solo llama 2 hojas diferentes.

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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
 
lcTextFile = xd+"\TuCarpeta\Excel\Archivo_Excel.xls"
 
SELECT Integrantes
SET ORDER TO ICCC2   && CODIGO_INT
 
crutinaerroractual = ON("Error")
lhuboerror = .F.
ON ERROR LHUBOERROR = .T.
oexcel = CREATEOBJECT("Excel.Application")
ON Error &cRutinaErrorActual
IF lhuboerror
     nresp = MESSAGEBOX( ;
             "¿Desea generar una lista sin formato?",  ;
             35,  ;
             "Excel NO esta instalado en esta computadora." ;
             )
     IF nresp = 6
          generacsv()
     ENDIF
ELSE
     GeneraHojaElectronica()
ENDIF
RETURN
ENDPROC
 
**Genera un Hoja
PROCEDURE GeneraCSV
 
	carchivo = GETFILE("Hoja excel:XLS", "Libro de compras.", "Grabar", 0)
 
	IF EMPTY(carchivo)
	     = MESSAGEBOX("Debe seleccionar un nombre de archivo.", 64, "Error")
	ELSE
	     COPY TO (carchivo) TYPE XLS
	     = MESSAGEBOX("El archivo fue grabado satisfactoriamente",  0, "")
	ENDIF
ENDPROC
 
 
**
PROCEDURE GeneraHojaElectronica
	WAIT WINDOW NOCLEAR NOWAIT  "Generando Libro Excel, Espere un momento por favor."
	*oexcel.workbooks.add()
	oexcel.workbooks.Open(lcTextFile,,.t.)
 
	**DATOS PARA LA HOJA NUMERO 3 DISTRUCION
	WITH oexcel.worksheets(1)
 
	WAIT WINDOW NOCLEAR NOWAIT  "Generando Hoja No. 3 Distribucion, Un momento por favor."
 
		.range("C3").value = rCodigoBan+" "+rNomBanco
	    .range("E4").value = rCiclo
	    .range("C5").value = rDireccion
	    .range("E7").value = rAColocado
	    .range("E8").value = rAAnterior
 
	    *.range("H8").value = rAAnterior
	    .range("I8").value = rDistribucion
 
	    **Barre toda la Tabla
	     SELECT Dist_Utilidad
	     GOTO TOP
	     j = 12		&&Linia Inicial
	     _Orden = 1
	     _Nombre   = ""
	     _Apellido = ""
	     _Cedula   = ""
		 _Activida = ""
 
	     SCAN ALL
	          cj       = ALLTRIM(STR(j, 10, 0))
 
	          SELECT Integrantes
	          IF SEEK(Dist_Utilidad.Integra)
	          	 _Nombre   = ALLTRIM(Integrantes.Nombre_int)
	          	 _Apellido = ALLTRIM(Integrantes.Apellido_int)
	          	 _Cedula   = ALLTRIM(Integrantes.Cedula_int)
 
				  _Activida = IIF(SEEK(Activieco_int,'ActividadEconomica','ICCC12'),ActividadEconomica.Nombre_ace,"ACTIVIDAD NO EXISTE")
	          ENDIF
 
	          .range("A" + cj).value = _Orden
	          .range("B" + cj).value = _Nombre
	          .range("C" + cj).value = _Apellido
	          .range("D" + cj).value = _Activida
	          .range("E" + cj).value = _Cedula
	          .range("F" + cj).value = Dist_Utilidad.TAho_Acumula
	          .range("G" + cj).value = Dist_Utilidad.PAho_coloca
	          .range("H" + cj).value = Dist_Utilidad.PGanancia
	          .range("I" + cj).value = Dist_Utilidad.Ganancia
	          .range("J" + cj).value = Dist_Utilidad.Ahorrado
	          .range("K" + cj).value = Dist_Utilidad.TAhorrado
 
	          j = j + 1
 
		     _Orden = _Orden + 1
 
	          SELECT Dist_Utilidad
	     ENDSCAN
 
	     **Totales de la hoja
	     ii = j - 1
	     cj = ALLTRIM(STR(j, 10, 0))
	     ci = ALLTRIM(STR(ii, 10, 0))
	     .range("F" + cj).value = "=SUBTOTAL(9,F12:F" + ci + ")"
	     .range("G" + cj).value = "=SUBTOTAL(9,G12:G" + ci + ")"
	     .range("I" + cj).value = "=SUBTOTAL(9,I12:I" + ci + ")"
	     .range("J" + cj).value = "=SUBTOTAL(9,J12:J" + ci + ")"
	     .range("K" + cj).value = "=SUBTOTAL(9,K12:K" + ci + ")"
 
	     oexcel.selection.font.bold = .T.			&&Negrita la Lina de Totales
 
		 **Total Ultima Linea
	     .range("B" + cj).value = "TOTALES"
	     .range("B" + cj + ":B" +  cj).select()
	      WITH oexcel.selection
	          .font.name = "Arial"
	          .font.bold = .T.
	          .font.size = 16
	     ENDWITH
 
	     **Formato de Numeros
	     .range("F12:K" + cj).select()
	     oexcel.selection.numberformat = "#,##0.00;[Red](#,##0.00);;@"
 
 
		*********************MARCO**************************
	     .range("A12:K" + cj).select()		&&Todo el Marco
 
		 **Hacer el Marco con Lineas
		 oexcel.Selection.Borders(5).LineStyle = -4142
		 oexcel.Selection.Borders(6).LineStyle = -4142
 
		 With oexcel.selection
		 	 .Borders(7).LineStyle = 1	 &&Lado Izquierdo
		     .Borders(7).Weight = 2
		 EndWith
 
		 With oexcel.selection
		 	 .Borders(8).LineStyle = 1	 &&Lado Arriba
		     .Borders(8).Weight = 2
		 EndWith
 
		 With oexcel.selection
   		 	 .Borders(9).LineStyle = 1	 &&Lado Abajo
		     .Borders(9).Weight = 2
		 EndWith
 
		 With oexcel.selection
   		 	 .Borders(10).LineStyle = 1	 &&Lado Derecho
		     .Borders(10).Weight = 2
		 EndWith
 
		 With oexcel.selection
   		 	 .Borders(11).LineStyle = 1	 &&Vertical
		     .Borders(11).Weight = 2
		 EndWith
 
		 With oexcel.selection
   		 	 .Borders(12).LineStyle = 1	 &&Lado Izquierdo
		     .Borders(12).Weight = 2
		 EndWith
  		*********************FIN MARCO**************************
 
	ENDWITH
	******************FINAL DISTRIBUCION********************
 
 
	oexcel.visible = .T.
	RELEASE oexcel
	WAIT CLEAR
	= MESSAGEBOX("La hoja fue generada satisfactoriamente.", 0, "")
ENDPROC
**
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 Yogui

Exportar distintos querys en distintas hojas de excel

Publicado por Yogui (79 intervenciones) el 14/07/2014 17:14:15
Gracias Saul, claro, me refería a exportar el resultado que me arroja el query a excel :)
Estoy empezando a dudar de mi capacidad comunicativa jeje
Voy a probar tu código, gracias, te pasaste :)
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