Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 31-may-2006, 05:35   #1 (permalink)
mullins no se puede cailificar en este momento
 
Avatar de mullins
 
Fecha de Ingreso: mayo-2006
Ubicación: Zaragoza
Mensajes: 12
Enviar un mensaje por Skype™ a mullins
Busqueda VB6-Generar listado

Saludos,
Estoy haciendo un par de consultas de categorias y sus subcategorias
Pero para mostrarlas de primeras hegenerado html (con listas,tablas da igual) y elproblema es que quiero optimizar el espacio de esos listados, es decir si se pudiera escribir en dos columnas o algo asi (u otro formato que no sea html).

Este es el codigo para que veais como va imrpiendo (me deja mucho espacio del papel)
necesito ideasss por favor....(ojala el html se pudiera en columnas a lo word )

Dim nF As Integer
nF = FreeFile
Open "C:\listadocat.html" For Output As nF
Print #nF, "<html><head><title>LISTADO</title></head><body>"
Set rs = cmCat.Execute
rs.MoveFirst
While rs.EOF = False
Print #nF, "<table border=1 bordercolor=black width=22%><tr><th align=left><font size=2>" & rs!descrip_esp & "</font></th></tr></table>"

cmSCat.Parameters("par1").Value = Mid(rs!codigo, 1, 2)
Set rs2 = cmSCat.Execute
If rs2.RecordCount <> 0 Then
rs2.MoveFirst
While rs2.EOF = False
Print #nF, "<font size=1>" & rs2!descrip_esp & "</font><br>"

rs2.MoveNext
Wend

End If
rs.MoveNext
Wend
Print #nF, "</body></html>"

Close nF
mullins está desconectado   Responder Citando
Antiguo 31-may-2006, 11:07   #2 (permalink)
jm00092 está en el buen camino
 
Avatar de jm00092
 
Fecha de Ingreso: mayo-2005
Ubicación: Ronda
Mensajes: 79
Creo que esta un poco liado la forma en que vas haciendo la tabla


Al principio, después de HTML HEAD BODY, ... y solo una vez tendrás que hacer el encabezado, algo así como...

Código:
<table>
A continuación, también solo una vez, puedes poner una única fila con el encabezado. Tendrá tantas td como columnas quieras poner. Puedes aprovechar aqui para definir la anchura de cada columna

Código:
<tr><td widht=200>Nombre</td><td width =100>Telefono</td></tr>
Ahora, en tu programa va el WHILE que va recorriendo el archivo de datos

En cada pasada del while, metes una fila, con tantas columnas como las que metiste arriba en el encabezado.

Código:
<tr><td>  ... código VB... </td><td> ...codigo VB... </td></tr>
Y finalmente, después del WEND del bucle, una sola vez, cierras la tabla

Código:
</table>

Finalmente, cierras la pagina /body /html
jm00092 está desconectado   Responder Citando
Antiguo 01-jun-2006, 08:41   #3 (permalink)
mullins no se puede cailificar en este momento
 
Avatar de mullins
 
Fecha de Ingreso: mayo-2006
Ubicación: Zaragoza
Mensajes: 12
Enviar un mensaje por Skype™ a mullins
Sonrisa gracias

gracias por la respuesta,no es que me lie con el html es que queria enmarcar los encabezados con cuadros ya que su destino era serimpreso y asi se veia mejor

al fina idee unas macros en word para que melo fuera mostrando con formato y a partir de ahi ya era libre de mostrarlo en dos o mas columnas.En total son 6 hojas para mil y pico registros a fuente 7 lo que no esta nada mal.

PD:

Cita:
Public sesion As OraSession
Public db As OraDatabase
Public dina As OraDynaset
Public rs As OraDynaset

Sub main()
Set sesion = CreateObject("OracleInProcServer.XOraSession")
Set db = sesion.OpenDatabase("pruebas", "***********", 0&)
Set dina = db.CreateDynaset("select nvl(descrip_esp,descrip) descrip_esp,codigo FROM espri_categorias where tipo='090' and activa='S' and visible!='I' ORDER BY codigo ASC", 0&)
importa
End Sub
Sub importa()
Dim c As Integer
If dina.RecordCount <> 0 Then
dina.MoveFirst
Do Until dina.EOF
c = c + 1

Selection.TypeText Text:=dina.Fields("codigo").Value & " - " & dina.Fields("descrip_esp").Value
Selection.MoveLeft Unit:=wdCharacter, Count:=Len(dina.Fields("codigo").Value & " - " & dina.Fields("descrip_esp").Value), Extend:=wdExtend
Selection.Font.Bold = wdToggle



Selection.EndKey Unit:=wdLine
Selection.TypeParagraph 'pulsar enter
Selection.MoveUp Unit:=wdLine, Count:=1

With Selection.Borders(wdBorderTop)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderLeft)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderBottom)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
With Selection.Borders(wdBorderRight)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
Selection.MoveDown Unit:=wdLine, Count:=1


Selection.Font.Bold = wdToggle


'-------------------------------------------------
Set rs = db.CreateDynaset("select nvl(descrip_esp,'JJJJ') descrip_esp,codigo,descrip,cod_padre FROM espri_categorias where tipo='100' and cod_padre='" & Mid(dina.Fields("codigo").Value, 1, 2) & "' and activa='S' and visible!='I' ORDER BY codigo ASC", 0&)
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do Until rs.EOF
c = c + 1
If rs.Fields("descrip_esp").Value = "JJJJ" Or rs.Fields("descrip_esp").Value = "?" Then
Selection.TypeText Text:=vbTab & rs.Fields("codigo").Value & " - " & rs.Fields("descrip").Value
Selection.TypeParagraph

Else
Selection.TypeText Text:=vbTab & rs.Fields("codigo").Value & " - " & rs.Fields("descrip_esp").Value
Selection.TypeParagraph

End If
rs.MoveNext
Loop
End If
dina.MoveNext
Loop

End If
MsgBox c
End Sub
mullins está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:01.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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