Amigos:
Base de datos de 30 registros
Los debo mostrar de a 3
cargo los primeros 3 y los restantes con un for pero me muestra
solamente los datos del ultimo registro.
Este es el código
Los datos que conozco de la BD son los 3 _ los otros no
acTituBrw:=DBStruct() estructura de la base de datos
oBrw := TXBrowse():New( oDlg )
oCol:=oBrw:AddCol()
oCol:cHeader:= "Mesa" +CRLF+"Apertura"+""
oCol:bStrData:= {|| DToC((base1)->sesi)+CRLF+(base1)->MESA_1+CRLF+(base1)->MESA_2 }
i :=4
nCampito1:=""
nCampito2:=""
nCampito3:=""
nI1:=0
nI2:=0
nI3:=0
for i := 4 to Len(acTituBrw)
oCol:=oBrw:AddCol()
oCol:cHeader:= "Hora:"+CRLF+SubStr(FieldName(i),2,2 )
//Las cabeceras las carga bien, son _ 3y4 del campo
nCampito1 := (base1)->(FieldName(i) )
nCampito2 := (base1)->(FieldName(i+1) )
nCampito3 := (base1)->(FieldName(i+2) )
* MsgInfo(nCampito1) // muestra bien
* MsgInfo(nCampito2) // muestra bien
* MsgInfo(nCampito3) // muestra bien
nI1:=(base1)->(FIELDGET(FieldPos(nCampito1)))
nI2:=(base1)->(FIELDGET(FieldPos(nCampito2)))
nI3:=(base1)->(FIELDGET(FieldPos(nCampito3)))
* MsgInfo(ni1) // muestra bien
* MsgInfo(ni2) // muestra bien
* MsgInfo(ni3) // muestra bien
oCol:bStrData:= {|| Str(ni1)+CRLF+Str(ni2)+CRLF+Str(ni3) }
oCol:nWidth:= 120
i+=3
next
oBrw:CreateFromResource( 110 )
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oBrw:nHeaderLines := 3
oBrw:nFooterLines := 1
oBrw:nDataLines := 3
oBrw:lFooter := .t.
oBrw:SetRDD()
oBrw:GoTop()
oBrw:Refresh(.t.)
Muchas gracias.
Saludos
Ruben Fernandez.
La estructura es
Mesa1,mesa2,mesa3,;
H00A1,H00A2,H00A3,;
...
H15A1,H15A2,H15A3...
Sigo con xBrowse - Por favor
-
- Posts: 189
- Joined: Sun Jul 08, 2007 1:46 am
- Location: Uruguay
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Ruben,
Tienes que crear un codeblock que traiga los valores. Tú en tu código , traes los valores y los pones dentro del codeblock, es decir *siempre* te va a mostrar los valores de las ni1, ni2 y ni3 que tengan en el momento del pintado, no cuando estas declarando las columnas.
cambia esa línea por
Saludos,
Carlos
creo que no tienes en claro que estas poniendo en los codeblocks. Lo que hace harbour es correcto, responde a lo que le pides.Ruben D. Fernandez wrote:Amigos:
Base de datos de 30 registros
Los debo mostrar de a 3
cargo los primeros 3 y los restantes con un for pero me muestra
solamente los datos del ultimo registro.
oCol:bStrData:= {|| Str(ni1)+CRLF+Str(ni2)+CRLF+Str(ni3) }
Tienes que crear un codeblock que traiga los valores. Tú en tu código , traes los valores y los pones dentro del codeblock, es decir *siempre* te va a mostrar los valores de las ni1, ni2 y ni3 que tengan en el momento del pintado, no cuando estas declarando las columnas.
cambia esa línea por
Code: Select all
oCol:bStrData:= &("{|| FieldGet("+Str( i ) + ")+CRLF+FieldGet("+ Str(i+1)+")+CRLF+FieldGet("+Str(i+2)+") } " )
Carlos
-
- Posts: 189
- Joined: Sun Jul 08, 2007 1:46 am
- Location: Uruguay