Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

VB6-Generar listado

Estas en el tema de VB6-Generar listado en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/05/2006, 05:35
Avatar de mullins  
Fecha de Ingreso: mayo-2006
Ubicación: Zaragoza
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
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
  #2 (permalink)  
Antiguo 31/05/2006, 11:07
Avatar de jm00092  
Fecha de Ingreso: mayo-2005
Ubicación: Ronda
Mensajes: 106
Antigüedad: 19 años
Puntos: 0
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
  #3 (permalink)  
Antiguo 01/06/2006, 08:41
Avatar de mullins  
Fecha de Ingreso: mayo-2006
Ubicación: Zaragoza
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:48.