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
**********************************************************************
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
Publicar un comentario