Visual Basic - Break de Registros

Life is soft - evento anual de software empresarial
   
Vista:

Break de Registros

Publicado por Krystian  (4 intervenciones) el 25/01/2010 14:04:40
Hola buen día.

Me encuentro haciendo lo siguiente.

Estoy leyendo una tabla que contiene el detalle de las facturas y necesito hacer un salto de linea cada vez que cambien de numero de documento y no he encontrado una manera que me sirva. Les adiciono el código para que tengan una idea.

Open OutArch For Output As Numfile Len = 5000
With RstCargarD
' RstCargarD.Open ' El Recorset
If .EOF And .BOF Then
.MoveFirst
Else
Do While Not .EOF

KIHDC = Trim(RstCargarD.Fields("KIHDC"))
KICKC = Trim(RstCargarD.Fields("KICKC"))
KIAN8 = RstCargarD.Fields("KIAN8")
KIDOC = RstCargarD.Fields("KIDOC")
KIDCT = RstCargarD.Fields("KIDCT")
KIEFTJ = RstCargarD.Fields("KIEFTJ")
KIDIVJ = Trim(RstCargarD.Fields("KIDIVJ"))
KIVINV = RstCargarD.Fields("KIVINV")
'Monto = RstCargarD.Fields("MONTO")
KKALPP = Trim(RstCargarD.Fields("KKALPP"))
DIR1 = Trim(RstCargarD.Fields("DIR1"))
DIR2 = Trim(RstCargarD.Fields("DIR2"))
'
For cnt = 0 To RstCargarD.Fields.Count - 1
TEMP = KIDOC & " " & KIDCT & " " & KIEFTJ & " " & KIDIVJ & " " & KIVINV & " " & "PROVEEDOR:" & " " & KKALPP
Next cnt
Print #Numfile, TEMP
.MoveNext
Loop
End If
RstCargarD.Close ' el Recorset
End With

Siendo KIDOC el campo que contiene el numero de factura.

De antemano muchas gracias.

Krystian.
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

RE:Break de Registros

Publicado por ChidUng (44 intervenciones) el 25/01/2010 17:21:29
Hola Kris!

Mira en tu Tabla lo que recuperas son campos (logicamente,datos), por lo que vero deseas enviar a un archivo de texto esa información ordenada por numero de factura.

Cuando lleges al ultimo reg. de la factura solo coloca al final de la cadena que escribes en el archivo & vbcrlf

esto es para realizar el salto de línea o ENTER .

Saludos.
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

RE:Break de Registros

Publicado por Krystian  (4 intervenciones) el 25/01/2010 20:13:36
Q hay Chid.

Hice lo que me comentas y la verdad no me funciona.. de hecho como comente anteriormente lo que necesito es que cada vez que cambien el numero de la factura el me haga el salto.

Por ejemplo:

0000000
0000000
0000000
0000000
Salto
0000001
0000001
0000001
Salto

Eso es lo que necesito hacer....

Saludos y gracias por la anterior propuesta...
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

RE:Break de Registros

Publicado por Quique Gavilán (4 intervenciones) el 26/01/2010 15:57:39
Bueno, vamos a revisar tu código:
Declara una variable para la factura actual, según tu campo KIDOC

Dim lnKIDOC as Long ' O del tipo que sea tu campo.

Open OutArch For Output As Numfile ' Len = 5000 ¿esto para qué?
With RstCargarD
' RstCargarD.Open ' El Recorset
If .EOF And .BOF Then
.MoveFirst ' Acabas de abrir el Recordset, si acaso EOF fuese VERDADERO
es que no hay registros.
Else
lnKIDOC = RstCargarD.Fields("KIDOC") ' La inicializas.
Do While Not .EOF
If RstCargarD.Fields("KIDOC") <> lnKIDOC Then
Print #Numfile ' Esto te deja una línea en blanco
lnKIDOC = RstCargarD.Fields("KIDOC")
End If
KIHDC = Trim(RstCargarD.Fields("KIHDC"))
KICKC = Trim(RstCargarD.Fields("KICKC"))
KIAN8 = RstCargarD.Fields("KIAN8")
KIDOC = RstCargarD.Fields("KIDOC")
KIDCT = RstCargarD.Fields("KIDCT")
KIEFTJ = RstCargarD.Fields("KIEFTJ")
KIDIVJ = Trim(RstCargarD.Fields("KIDIVJ"))
KIVINV = RstCargarD.Fields("KIVINV")
'Monto = RstCargarD.Fields("MONTO")
KKALPP = Trim(RstCargarD.Fields("KKALPP"))
DIR1 = Trim(RstCargarD.Fields("DIR1"))
DIR2 = Trim(RstCargarD.Fields("DIR2"))
'
For cnt = 0 To RstCargarD.Fields.Count - 1
TEMP = KIDOC & " " & KIDCT & " " & KIEFTJ & " " & KIDIVJ & " " & KIVINV & " " & "PROVEEDOR:" & " " & KKALPP
Next cnt
Print #Numfile, TEMP
.MoveNext
Loop
End If
RstCargarD.Close ' el Recorset
End With
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

RE:Break de Registros

Publicado por Krystian  (4 intervenciones) el 01/02/2010 15:13:37
Hola Quique,

Muchisimas gracias por tu respuesta, en efecto me funciono como yo deseaba.

Krystian.
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