Page 1 of 1

un dialogo con dos xbrowse

PostPosted: Thu Nov 26, 2015 9:23 pm
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

Re: un dialogo con dos xbrowse

PostPosted: Fri Nov 27, 2015 12:09 am
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

Re: un dialogo con dos xbrowse

PostPosted: Fri Nov 27, 2015 4:50 am
by FranciscoA
Como dice Armando, debes establecer el alias para cada uno de los browses.

Code: Select all  Expand view
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