|
CON ESTE PROCEDIMIENTO VISUALIZO REPORTES PRN
** p1 nombre de archivo a visualizar ** p2 fila inicial ** p3 columna inicial ** p4 fila final ** p5 columna final ** p6 color de fondo #include 'inkey.ch' PROCEDURE VIEWER(P1, P2, P3, P4, P5, P6) LOCAL L7, L8, L9, L10, L11, L12, L13, L14 := .F. LOCAL L15, L16, L17 := 0 LOCAL L18 := 1 LOCAL L19, L20, L21, L22 IF P2 == NIL .OR. P2 < 0 P2 := 0 ENDIF IF P3 == NIL .OR. P3 < 0 P3 := 0 ENDIF IF P4 == NIL .OR. P4 > MAXROW() P4 := MAXROW() ENDIF IF P5 == NIL .OR. P5 > MAXCOL() P5
:= MAXCOL() ENDIF P6 := SETCOLOR(P6) IF (L7 := FOPEN(P1, 32)) <> -1 SCROLL(P2, P3, P4, P5) SETPOS(P4, P3) L22 := "" * AEVAL({86, 73, 69, 87, 69, 82, 32, 49, 46, 48, 32, 115, 104, 97, 114,; * 101, 119, 97, 114, 101, 46, 32, 80, 108, 101, 97, 115, 101, ; * 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 105, 116, 46}, ; * {|BL1|L22 := L22 + CHR(BL1)}) DISPOUT(SUBSTR( L22, 1, P5 - P3 + 1)) L22 := NIL
--P4 L8 := FSEEK(L7, 0, 2) L11 := P4 - P2 + 1 L12 := P5 - P3 + 1 L9 := {} L10 := {FSEEK(L7, 0, 0)} L13 := 0 DO WHILE L13 < L11 .AND. ATAIL(L10) < L8 AADD(L9, NEXTLINE(L7) ) AADD(L10, FSEEK(L7, 0, 1)) ++L13 ENDDO L16 := L11 := L13 DO WHILE !L14 IF L17 <> 0 L18
:= MAX(L18 + L17, 1) DISPBEGIN() FOR L13 := 1 TO L11 SETPOS(P2 + L13 - 1, P3) DISPOUT(PAD( SUBSTR(L9[ L13], L18), L12)) NEXT DISPEND() L17 := 0 ENDIF IF L16 <> 0 SCROLL(P2, P3, P4, P5,
L16) IF L16 > 0 L20 := L11 ELSE L20 := 1 ENDIF L21 := L16 / ABS(L16) L19 := L20 - L16 + L21 FOR L13 := L19 TO L20 STEP L21 SETPOS(P2 - 1 + L13,
P3) DISPOUT(SUBSTR( L9[L13], L18, L12)) NEXT L16 := 0 ENDIF L15 := INKEY(0) ************ ********* ** L15 VARIABLE DE ENTRADA DE TECLADO DO CASE CASE LASTKEY()=K_ SH_F5 DI='LPT1' SAVE SCREEN TO VIEW DO BORDE WITH 17,16,20,64,
0,'LS' SET CURSOR ON @18,18 SAY 'Nombre de Archivo :' GET P1 @19,18 SAY 'Dispositivo Salida :' GET DI VALID BUSQUED_('O' ,'2') READ IF LASTKEY()<>27 COPY FILE &P1 TO &DI ENDIF RESTORE SCREEN FROM VIEW CASE L15 == 27 L14 :=
.T. CASE L15 == 24 L16 := 1 CASE L15 == 5 L16 := -1 CASE L15 == 3 L16 := L11 CASE L15 == 18 L16 := -L11 CASE L15 == 30 IF ATAIL(L10) < L8 L10[1] :=
L8 L16 := -L11 ENDIF CASE L15 == 31 IF L10[1] > 0 L10[L11 + 1] := 0 L16 := L11 ENDIF CASE L15 == 4 L17 := 1 CASE L15 ==
19 L17 := -1 CASE L15 == 2 L17 := 10 CASE L15 == 26 L17 := -10 CASE L15 == 6 L17 := MAX(AMAX(L9) - L12 + 1, 1) - L18 + L17 CASE L15 == 1 L17 := 1 - L18 END CASE IF L16 >
0 FSEEK(L7, ATAIL(L10), 0) L13 := 0 DO WHILE L13 < L16 .AND. ATAIL(L10) < L8 ADEL(L9, 1)[L11] := NEXTLINE(L7) ADEL(L10, 1)[L11 + 1] := FSEEK(L7, 0, 1) ++L13 ENDDO L16 := L13 ELSEIF L16 <
0 FSEEK(L7, L10[1], 0) L13 := 0 DO WHILE L13 > L16 .AND. L10[1] > 0 AINS(L9, 1)[1] := PREVLINE(L7) AINS(L10, 1)[1] := FSEEK(L7, 0, 1) --L13 ENDDO L16 := L13 ENDIF
ENDDO FCLOSE(L7) ENDIF SETCOLOR(P6) RETURN /* ------ RESCUE5 1.00(D) (C) APTWARE 1993,94 ------ NAME: NEXTLINE PARAMS: P1 RETURN: STRING EXAMPLE: NEXTLINE(P1) ............ ......... ......... ......... ......... ......... ......... ........ */ STATIC FUNCTION NEXTLINE(P1) LOCAL L2, L3, L4 := "" LOCAL L5 := 0 LOCAL L6, L7 := .F. LOCAL L8 := .F. LOCAL L9, L10 DO WHILE !(L7 .OR. L8) L2 := SPACE(160) L7 := (L6 := FREAD(P1, @L2, 160)) < 160 L4 := L4 + SUBSTR(L2, 1, L6) L5 := L5
+ L6 L9 := AT(CHR(13)+CHR( 10), L4) L10 := AT(CHR(12), L4) IF L9 == 0 .OR. L10 == 0 L3 := MAX(L9, L10) ELSE L3 := MIN(L9, L10) ENDIF IF L8 := L3 > 0 FSEEK(P1, L3 - L5 + IF(L3 == L9, 1, 0), 1) L4 := SUBSTR(L4, 1, L3 - 1) ENDIF ENDDO RETURN L4 /* ------ RESCUE5 1.00(D) (C) APTWARE 1993,94 ------ NAME: AMAX PARAMS: P1
RETURN: NUMBER EXAMPLE: AMAX(P1) ............ ......... ......... ......... ......... ......... ......... ........ */ STATIC FUNCTION AMAX(P1) LOCAL L2 := 0 AEVAL(P1, {|BL1|L2 := MAX(L2, LEN(BL1))}) RETURN L2 /* ------ RESCUE5 1.00(D) (C) APTWARE 1993,94 ------ NAME: PREVLINE PARAMS: P1 RETURN: STRING EXAMPLE: PREVLINE(P1) ............ ......... ......... ......... ......... ......... ......... ........ */ STATIC FUNCTION PREVLINE(P1) LOCAL L2, L3, L4 := "" LOCAL L5 := 0 LOCAL L6, L7 := .F. LOCAL L8 := .F. LOCAL L9, L10 IF FSEEK(P1, 0, 1) > 0 FSEEK(P1, -1,
1) L2 := " " FREAD(P1, @L2, 1) IF L2 == CHR(12) FSEEK(P1, -1, 1) ELSEIF L2 == CHR(10) FSEEK(P1, -2, 1) ENDIF ENDIF DO WHILE !(L7 .OR. L8) L7 := (L6 := MIN(160, FSEEK(P1, 0, 1))) < 160 L2 := SPACE(L6) FSEEK(P1, -L6, 1) FREAD(P1, @L2, L6) FSEEK(P1, -L6, 1) L4 := L2 + L4 L5 := L5 + L6 L9 :=
RAT(CHR(13)+ CHR(10), L4) L10 := RAT(CHR(12), L4) L3 := MAX(L9, L10) IF L8 := L3 > 0 FSEEK(P1, L3 + IF(L3 == L9, 1, 0), 1) L4 := SUBSTR(L4, L3 + 1 + IF(L3 == L9, 1, 0)) ENDIF ENDDO RETURN L4
SALUDOS
DANTE
--- El lun 8-jun-09, Hector Jhon Guillen Liendo <hectorjhon59@ yahoo.com. ar> escribió:
De: Hector Jhon Guillen Liendo <hectorjhon59@ yahoo.com. ar> Asunto: Re: [CA-Clipper] Programa que lee archivos .PRN A: DesarrolloClipper@ gruposyahoo. com.ar Fecha: lunes, 8 junio, 2009, 12:29 pm
|
Hola amigos...utilizo el README.COM para mostrar unos reportes en pantalla, sin
embargo este programita me pone lento el sistema cuando se inicia cualquier otra
aplicacion clipper.
Alguno de ustedes conoce otro programa que haga las mismas funciones que el README.COM.
Saludos y gracias anticipadas por su apoyo.
Un abrazo
--- El lun 25-may-09, DesarrolloClipper@ gruposyahoo. com.ar <DesarrolloClipper@ gruposyahoo. com.ar> escribió:
De: DesarrolloClipper@ gruposyahoo. com.ar <DesarrolloClipper@ gruposyahoo. com.ar> Asunto: [CA-Clipper] Se ha cargado un nuevo archivo en DesarrolloClipper Para: DesarrolloClipper@ gruposyahoo. com.ar Fecha: lunes, 25 de mayo de 2009, 6:37 am
|
Yahoo! Cocina Recetas prácticas y comida saludable Visitá http://ar.mujer. yahoo.com/ cocina/
|