consultas tbrowse en harbour

07/04/2010

Se modifica el programa menu_val que hace la presentacion de las
consultas por pantalla para que se ajuste el modelo de presentaciobn
con TBroese, para tal efecto se creo un archivo intermedio llamado
presenta el cual se llena con la informacion como se quire ver en
pantalla y luego se ejecuta el procedimiento Tbrowse para que la
despliegue , fue un tanto engorroso porque estas consultas estaban
hechas de forma independiente cada una, hacer que mantivieran el mismo
esquema fue un poco engorroso, pero ya esta funcinoando.
un ejemplo de como quedo :

***********************************************************************
* Validacion por soportes *
***********************************************************************
procedure Cons_Sop

LOCAL C[16]

save screen to SVal

do Fecha_DH
do Ano_Val with A_SN
if A_SN = "N"
restore screen from SVal
do BorraInd
return
endif

close databases
store "Entre [ 0 ] en Soporte para Salir" to M1
@ Y(17),X(44) get M1
clear gets
do ventana with Y(18),X(40),Y(22),X(78)
store 0 to Sop_Tmp
@ Y(20),X(53) say "Soporte " get Sop_Tmp picture "999999"
read
if Sop_Tmp = 0
clear
restore screen from SVal
do BorraInd
return
endif

do Inicio with "I"
do Ano_Extr with "CHEQUE = Sop_Tmp" + ".and." + Filtro_Fe

store chr(34) + Arch1 + chr(34) to Archivo1
dbcreate(&Archivo1,{ ;
{"FUENTE" ,"N",02,0}, ;
{"CUENTA" ,"C",10,0}, ;
{"NIT" ,"C",12,0}, ;
{"DOCUMENTO" ,"N",08,0}, ;
{"FECHA" ,"D",08,0}, ;
{"DEBITO" ,"N",18,2}, ;
{"CREDITO" ,"N",18,2}, ;
{"NOMBRE_NIT" ,"C",25,0}, ;
{"DESCRIPCIO" ,"C",50,0} ;
})
select 10
use &Arch1 alias PRESENTA

store 0 to D1
store 0 to D2
store 3 to Contador
store replicate(chr(205),16) to R1

clear
store "FTE CUENTA NIT DOCUME FECHA DEBITO " to Tit1
store Tit1 + " CREDITO " to Tit1

select MOVIMIENTO
index on str(year(FECHA)) + str(month(FECHA)) + str(day(FECHA)) to &Indi0

do ventana with Y(00),X(00),Y(22),X(78)
@ Y(01),X(02) get Tit1
@ Y(02),X(02) say "SOPORTE " get Sop_Tmp picture "999999"
goto top
do while .not. eof()

select NIT
seek left(MOVIMIENTO -> NIT + space(10),10)
if eof()
store space(24) to Nome_Nit
else
store NOMBRE to Nome_Nit
endif

select MOVIMIETO
browse()

select PRESENTA
append blank
store rlock() to verror
replace FUENTE with MOVIMIENTO->FUENTE
replace CUENTA with MOVIMIENTO-CUENTA
replace NIT with MOVIMIENTO-NIT
replace DOCUMENTO with MOVIMIENTO->DOCUMENTO
replace FECHA with MOVIMIENTO->FECHA
do case
case MOVIMIENTO->DEBITOCRED = "D"
replace DEBITO with MOVIMIENTO->VALOR
store D1 + MOVIMIENTO->VALOR to D1
case MOVIMIENTO->DEBITOCRED= "C"
replace CREDITO with MOVIMIENTO->VALOR
store D2 + MOVIMIENTO->VALOR to D2
endcase

replace NOMBRE_NIT with Nome_Nit
replace DESCRIPCIO with MOVIMIENTO -> DESCRIPCIO
unlock
select MOVIMIENTO
skip
enddo

select PRESENTA
goto top

clear
do ventana with Y(01),X(02),Y(21),X(120)
@ Y(01),X(15) say "Soporte ->" + str(Sop_Tmp) COLOR "GR+/B"

do ventana with Y(21),X(02),Y(24),X(120)
@ Y(22),X(09) say "TOTALES"
@ Y(22),X(33) say " Debito " COLOR "GR+/B"
@ Y(22),X(49) say " Credito " COLOR "GR+/B"
@ Y(22),X(68) say " Diferencia " COLOR "GR+/B"
@ Y(23),X(33) say D1 picture "@( 9999,999,999.99" COLOR "W+/B"
@ Y(23),X(49) say D2 picture "@( 9999,999,999.99" COLOR "W+/B"
@ Y(23),X(66) say D1-D2 picture "@( 9999,999,999.99" COLOR "W+/B"

oBr:= TbrowseDb(Y(2),X(3),Y(20),X(120))

oBr:Freeze := 1 // Numero de columnas a la izquierda que giran
oBr:ColorSpec := "W+/B,N/BG"
obr:ColSep := chr(179)
obr:HeadSep := chr(197) + chr(196)

c[1] := TbColumnNew("FUENTE" , FieldBlock("FUENTE") )
c[2] := TbColumnNew("CUENTA" , FieldBlock("CUENTA") )
c[3] := TbColumnNew("NIT" , FieldBlock("NIT") )
c[4] := TbColumnNew("DOCUMENTO" , FieldBlock("DOCUMENTO") )
c[5] := TbColumnNew("FECHA" , FieldBlock("FECHA") )
c[6] := TbColumnNew("Debito" , FieldBlock("DEBITO") )
c[7] := TbColumnNew("Credito" , FieldBlock("CREDITO") )
c[8] := TbColumnNew("Nombre" , FieldBlock("NOMBRE_NIT") )
c[9] := TbColumnNew("Descripcion", FieldBlock("DESCRIPCIO") )

FOR ii = 1 to 9 // Assign columns to TBROWSE
obr:ADDCOLUMN (c[ii])
NEXT

oBr:Configure()
HandlerC(obr)

clear
restore screen from SVal
do BorraInd
return

**********************************************************************

Comentarios

Entradas populares