una pregunta de principiante, por favor

71 views
Skip to first unread message

Jose Mario

unread,
Aug 12, 2026, 1:35:48 PM (2 days ago) Aug 12
to Comunidad de Visual Foxpro en Español
tengo un cpm x cantidad de registro
placas 
mb 1151 
mb 1150
mb 1130
mb 1400.
.
etc.
.
.
mb 6890
mb 7500

deseo colocarlas en liineas que se puedan imprimir no se cuando quepan horizontalmente (TRANSPONER)

MB 1151, MB 1150, MB1130. MB 1400, ETC MB 1200
LA UNICA CONDICION ES POR MEDIO DE UNA VARIABLE DECIRLE SOLO DESEO 
QUE EN UNA LINEA QUEPAN 25 Y QUE NO CORTE MB EN LA PRIMER LINEA Y LOS NUMEROS EN LA SEGUNDA LINEA, QUE SIMPRE VALLAN MB 1140

GRACIAS

Jose Mario

unread,
Aug 12, 2026, 1:39:18 PM (2 days ago) Aug 12
to Comunidad de Visual Foxpro en Español
* --- CONFIGURACIÓN DE LÍNEA ---
LOCAL lnMaxLongitud, lcTextoFinal, lcLineaActual, lcSeparador, lcPlacaActual
* Define cuántos caracteres máximos entran por línea en tu reporte/impresión
lnMaxLongitud = 40  && Cambia este valor al ancho de tu línea
lcSeparador   = ", "
lcTextoFinal  = ""
lcLineaActual = ""
* --- PROCESAMIENTO ---
SELECT Placas
GO TOP
SCAN
    lcPlacaActual = ALLTRIM(placa)
    * Si la línea actual está vacía, agregamos la primera placa
    IF EMPTY(lcLineaActual)
        lcLineaActual = lcPlacaActual
    ELSE
        * Evaluamos si la nueva placa + separador cabe en la línea actual
        IF LEN(lcLineaActual + lcSeparador + lcPlacaActual) <= lnMaxLongitud
            lcLineaActual = lcLineaActual + lcSeparador + lcPlacaActual
        ELSE
            * No cabe: pasamos la línea actual al texto final con salto de línea
            lcTextoFinal  = lcTextoFinal + lcLineaActual + CHR(13) + CHR(10)
            * La nueva línea comienza con la placa que no cupo
            lcLineaActual = lcPlacaActual
        ENDIF
    ENDIF
ENDSCAN
* Agregar la última línea procesada
IF NOT EMPTY(lcLineaActual)
    lcTextoFinal = lcTextoFinal + lcLineaActual
ENDIF
* --- RESULTADO ---
*****? "--- LISTADO DE PLACAS AL FINAL ---"
? lcTextoFinal

Zarlu

unread,
Aug 12, 2026, 5:18:14 PM (2 days ago) Aug 12
to Comunidad de Visual Foxpro en Español
Buenas tardes José Mario!

Considerando los datos que proporcionas como ejemplo me atrevo a opinar....
Sin sintaxis sólo la idea general

Ancho de línea=40
Cada dato + coma + espacio de separación=9
Datos que caben por línea = Int(40/9)
Recorrer el cursor/tabla 
clLinea=""
Scan
clLinea= clLinea +dato+","+Space(1)
If mod(recno(),4)=0
?  clLinea= clLinea +dato+","+Space(1)&&almacenar para impresión en su caso
clLinea=""&&limpia para nuevos datos
EndIf
EndScan

Faltaría implementar los sobrantes que queden fuera del multiplo

Suerte
zarlu
Chetumal, Quintana Roo, México

Mario Alfredo Oviedo Carranza

unread,
Aug 12, 2026, 5:30:05 PM (2 days ago) Aug 12
to publice...@googlegroups.com
GRACIAS

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/-5pIviBIB0w/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/8d980049-c445-4af6-90d1-1e12d1000fb9n%40googlegroups.com.

Ivan Martinez

unread,
Aug 13, 2026, 12:23:21 AM (yesterday) Aug 13
to publice...@googlegroups.com
Definitivamente sois unos genios yo ni siquiera he entendido cual es el problema?????
Ivan Martinez :)

Libre de virus.www.avg.com

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/67377cd7-582a-4739-9456-2f630bc1760bn%40googlegroups.com.

Mario Alfredo Oviedo Carranza

unread,
Aug 13, 2026, 11:30:22 AM (yesterday) Aug 13
to publice...@googlegroups.com
CLOSE DATABASES
USE equipos IN 0
SELECT equipos
cllinea=""
SCAN
lcequipo="MB "+ALLTRIM(placa)
clLinea=clLinea +lcequipo+","+Space(1)
If LEN(cllinea)>40
*clLinea= clLinea +lcequipo+","+Space(1)
*cllinea=""
?CHR(13)+CHR(10)
EndIf
ENDSCAN
?cllinea

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/-5pIviBIB0w/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/CALeA14vkc1MCG--FmbkQ6-%3Daq0neHi5o42_R5n6tSaxgJ4AJtw%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages