un dialogo con dos xbrowse

Post Reply
norte_67
Posts: 46
Joined: Mon Jul 31, 2006 7:02 pm

un dialogo con dos xbrowse

Post by norte_67 »

Estimados, estoy haciendo un dialogo que contenga dos browse con datos de dos bases de datos (dbf), sin ordenar estos archivos, el tema es que una base llamada documentos tiene 1 registro y la otra base llamada arqueo tiene 9 registros, cuando presento el dialogo, me muestra 9 lineas con el mismo registro en documentos y 9 lineas en arqueo, es decir, me muestra la cantidad de lineas del xbrowse activo con mayor dato que seria arqueo, no me respeta y muestra lo que corresponde a cada archivo.

dejo parte de mi codigo

Contador := 0
Select 90
SET ORDER TO 2
Vta_Vfa1->(OrdScope(0, cFecha1 ))
Vta_Vfa1->(OrdScope(1, cFecha2 ))
Seek cFecha1
If Found()
Do While .not. eof()
If Vta_Vfa1->Fem_Fac >= cFecha1 .and. Vta_Vfa1->Fem_Fac <= cFecha2
Tot_Venta := Tot_Venta + Vta_Vfa1->Tot_Fac
Contador ++
Endif
Select 90
skip
Enddo
Endif

If Contador # 0
Select 55
Append Blank
Replace (Archi)->Tip_Doc with "FVE"
Replace (Archi)->Nro_Doc with Contador
Replace (Archi)->Tot_Doc with Tot_Venta
Endif

DEFINE FONT oFon2 NAME "Arial" SIZE 0,-10 Bold

DEFINE DIALOG oDlg2 RESOURCE "CIERRE_CAJA" Title "RESUMEN DE LAS VENTAS DEL DIA.."

Select 55
Go top
oBrw1:=TxBrowse():New(oDlg2)
oBrw1:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw1:nColDividerStyle := LINESTYLE_RAISED
oBrw1:nRowDividerStyle := LINESTYLE_RAISED
oBrw1:lColDividerComplete := (.T.) // (.T.) Mantiene siempre llena la pantalla
oBrw1:nHeaderHeight := 35 // Altura de los encabezados
oBrw1:nRowHeight := 25 // Altura del renglón
oBrw1:nHeaderLines := 2 // Número de líneas de encabezados
oBrw1:nDataLines := 2 // Número de líneas de detalle
oBrw1:nFooterHeight := 20 // Altura del footer
oBrw1:nFooterLines := 2 // Número de líneas en el footer
oBrw1:lFooter := (.T.) // Sí queremos línea de footer
oBrw1:lHScroll := (.T.) // Quitamos el scroll horizontal
oBrw1:oFont := oFon2
oBrw1:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw1:bClrFooter := {|| { nRGB(000,000,000), nRGB(150,200,200) } }
oBrw1:bClrSel := {|| { nRGB(000,000,000), nRGB(128,255,128) } }

oCol1 := oBrw1:AddCol()
oCol1:bStrData := { || (Archi)->Tip_Doc }
oCol1:cHeader := "T/Doc."
oCol1:nHeadStrAlign := AL_CENTER //LEFT
oCol1:nDataStrAlign := AL_RIGHT //LEFT
oCol1:nWidth := 50

oCol1 := oBrw1:AddCol()
oCol1:bStrData := { || Transform((Archi)->Nro_Doc,"999999999") }
oCol1:cHeader := "Numero"+CRLF+"Docto."
oCol1:nHeadStrAlign := AL_CENTER //LEFT
oCol1:nDataStrAlign := AL_RIGHT //LEFT
oCol1:nWidth := 70

oCol1 := oBrw1:AddCol()
oCol1:bStrData := { || Transform( (Archi)->Tot_Doc,"@E 999,999,999") }
oCol1:cHeader := "Total"
oCol1:nHeadStrAlign := AL_CENTER //LEFT
oCol1:nDataStrAlign := AL_RIGHT //LEFT
oCol1:nWidth := 70
oBrw1:CreateFromResource(1000)


SELECT 52
GO TOP
oBrw5:=TxBrowse():New(oDlg2)
oBrw5:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw5:nColDividerStyle := LINESTYLE_RAISED
oBrw5:nRowDividerStyle := LINESTYLE_RAISED
oBrw5:lColDividerComplete := (.t.) // (.T.) Mantiene siempre llena la pantalla
oBrw5:nHeaderHeight := 35 // Altura de los encabezados
oBrw5:nRowHeight := 25 // Altura del renglón
oBrw5:nHeaderLines := 2 // Número de líneas de encabezados
oBrw5:nDataLines := 2 // Número de líneas de detalle
oBrw5:nFooterHeight := 10 // Altura del footer
oBrw5:nFooterLines := 1 // Número de líneas en el footer
oBrw5:lFooter := (.F.) // Sí queremos línea de footer
oBrw5:lHScroll := (.F.) // Quitamos el scroll horizontal
oBrw5:oFont := oFon2
oBrw5:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw5:bClrFooter := {|| { nRGB(000,000,000), nRGB(150,200,200) } }
oBrw5:bClrSel := {|| { nRGB(000,000,000), nRGB(128,255,128) } }

oCol5 := oBrw5:AddCol()
oCol5:bStrData := { || ARQUEO->COD_PAGO }
oCol5:cHeader := "Codigo"
oCol5:nHeadStrAlign := AL_CENTER //LEFT
oCol5:nDataStrAlign := AL_RIGHT //LEFT
oCol5:nWidth := 70

oCol5 := oBrw5:AddCol()
oCol5:bStrData := { || ARQUEO->NOM_PAGO }
oCol5:cHeader := "Nombre.."
oCol5:nHeadStrAlign := AL_CENTER //LEFT
oCol5:nDataStrAlign := AL_LEFT //LEFT
oCol5:nWidth := 250

oCol5 := oBrw5:AddCol()
oCol5:bStrData := { || Transform( ARQUEO->STOTAL,"@E 999,999,999") }
oCol5:cHeader := "Total"
oCol5:nHeadStrAlign := AL_CENTER //LEFT
oCol5:nDataStrAlign := AL_RIGHT //LEFT
oCol5:nWidth := 70

oCol5:=oBrw5:AddCol()
oCol5:AddResource("BOTONSI");oCol5:AddResource("BOTONNO")
oCol5:cHeader := "Ct"
oCol5:nDataStrAlign := AL_RIGHT
oCol5:bBmpData := { || iif( ARQUEO->SUMARQUEO, 1, 2) }

oBrw5:CreateFromResource(1001)






FWH 8.12, bcc55, xHarbour
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: un dialogo con dos xbrowse

Post by Armando »

Luis:

Prueba especificando en cada Browse la DBF que debe tomar, no uso DBFs pero con Tablas
es así:

oBrw:SetAdo(oRsHdr)

Supongo que debe ser algo como

oBrw5:SetDbf(cAlias)
oBrw5:CreateFromResource(1001)

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: un dialogo con dos xbrowse

Post by FranciscoA »

Como dice Armando, debes establecer el alias para cada uno de los browses.

Code: Select all

local cAlias1, cAlias5

Select 55
Go top
cAlias1:=Alias()
oBrw1:=TxBrowse():New(oDlg2)
oBrw1:cAlias := cAlias1


SELECT 52
GO TOP
cAlias5:=Alias()
oBrw5:=TxBrowse():New(oDlg2)
oBrw5:cAlias := cAlias5

 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply