<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.2900.5512" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Lees el valor en el procedimiento BeginBand y lo
asignas en el procedimiento GetValue</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Una cosa muy importante, o mejor dicha obligatorio
en el pie del grupo tienes que poner el campo a calcular</FONT></DIV>
<DIV><FONT face=Arial size=2>Si no quieres el pie visible lo ocultas en el
segundo pase</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Te paso un procedimiento de leer que tengo, en este
ejemplo el control se llama rpt</FONT></DIV>
<DIV><FONT face=Arial size=2>En este ejemplo los campos de la BD son:
nat, debe, haber y saldo</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>procedure Tflbal.rptBeginBand(Band:
TfrBand);<BR>var<BR> i, j: integer;<BR>begin<BR>
if rpt.FinalPass then begin</FONT></DIV>
<DIV><FONT face=Arial size=2> // SEGUNDO PASE<BR></FONT></DIV>
<DIV><FONT face=Arial size=2> // aqui ocultas los pies si no los quieres
visibles y inicializas los indices del arreglo</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> if ((Band.Name='GroupFooter1')
or (Band.Name='GroupFooter2') or (Band.Name='GroupFooter3') or
(Band.Name='GroupFooter4') or (Band.Name='GroupFooter5') or
(Band.Name='GroupFooter6')) then<BR> Band.Visible :=
false;<BR></FONT><FONT face=Arial size=2> if
(Band.Name='GroupHeader1') then begin<BR> // reset
index<BR> sctaindex :=
-1;<BR> capindex :=
-1;<BR> scapindex :=
-1;<BR> eleindex :=
-1;<BR> empindex :=
-1;<BR> inc(ctaindex);<BR> end
else if (Band.Name='GroupHeader2') then<BR>
inc(sctaindex)<BR> else if (Band.Name='GroupHeader3')
then<BR>
inc(capindex)<BR> else if (Band.Name='GroupHeader4')
then<BR> inc(scapindex)<BR> else
if (Band.Name='GroupHeader5') then<BR>
inc(eleindex)<BR> end else if
(Band.Name='GroupHeader6') then<BR>
inc(empindex);<BR></FONT><FONT face=Arial size=2></FONT></DIV>
<DIV><FONT face=Arial size=2> // PRIMER PASE<BR> end else if
Band.IsDataBand then begin<BR> if
(UpperCase(dm.rssc7.FieldByName('nat').AsString) = 'A') then
begin<BR> dhaber := dhaber +
dm.rssc7.FieldByName('saldo').AsFloat;<BR>
dmhaber := dmhaber + dm.rssc7.FieldByName('haber').AsFloat -
dm.rssc7.FieldByName('debe').AsFloat;<BR> end else
begin<BR> ddebe := ddebe +
dm.rssc7.FieldByName('saldo').AsFloat;<BR>
dmdebe := dmdebe + dm.rssc7.FieldByName('debe').AsFloat -
dm.rssc7.FieldByName('haber').AsFloat;<BR>
end;<BR> ddif := ddebe -
dhaber;<BR> dmdif := dmdebe -
dmhaber;<BR> if
((dm.rssc7.FieldByName('saldo').AsFloat = 0) and
(dm.rssc7.FieldByName('debe').AsFloat = dm.rssc7.FieldByName('haber').AsFloat))
then<BR> Band.Visible :=
false<BR>
else<BR> Band.Visible :=
true;<BR> end else if (Band.name='GroupHeader1') then
begin<BR> i :=
Length(Hdrs);<BR> SetLength(Hdrs,
i+1);<BR> end else if (Band.Name='GroupFooter1') then
begin<BR> i :=
Length(Hdrs)-1;<BR> Hdrs[i].Sum :=
frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].Debe :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].Haber :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end else if (Band.Name='GroupFooter2')
then begin<BR> i :=
Length(Hdrs)-1;<BR> j :=
Length(Hdrs[i].sascta);<BR>
SetLength(Hdrs[i].sascta, j+1);<BR>
SetLength(Hdrs[i].pdscta, j+1);<BR>
SetLength(Hdrs[i].phscta, j+1);<BR>
Hdrs[i].sascta[j] := frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].pdscta[j] :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].phscta[j] :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end else if (Band.Name='GroupFooter3')
then begin<BR> i :=
Length(Hdrs)-1;<BR> j :=
Length(Hdrs[i].sacap);<BR>
SetLength(Hdrs[i].sacap, j+1);<BR>
SetLength(Hdrs[i].pdcap, j+1);<BR>
SetLength(Hdrs[i].phcap, j+1);<BR>
Hdrs[i].sacap[j] := frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].pdcap[j] :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].phcap[j] :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end else if (Band.Name='GroupFooter4')
then begin<BR> i :=
Length(Hdrs)-1;<BR> j :=
Length(Hdrs[i].sascap);<BR>
SetLength(Hdrs[i].sascap, j+1);<BR>
SetLength(Hdrs[i].pdscap, j+1);<BR>
SetLength(Hdrs[i].phscap, j+1);<BR>
Hdrs[i].sascap[j] := frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].pdscap[j] :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].phscap[j] :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end else if (Band.Name='GroupFooter5')
then begin<BR> i :=
Length(Hdrs)-1;<BR> j :=
Length(Hdrs[i].saele);<BR>
SetLength(Hdrs[i].saele, j+1);<BR>
SetLength(Hdrs[i].pdele, j+1);<BR>
SetLength(Hdrs[i].phele, j+1);<BR>
Hdrs[i].saele[j] := frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].pdele[j] :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].phele[j] :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end else if (Band.Name='GroupFooter6')
then begin<BR> i :=
Length(Hdrs)-1;<BR> j :=
Length(Hdrs[i].saemp);<BR>
SetLength(Hdrs[i].saemp, j+1);<BR>
SetLength(Hdrs[i].pdemp, j+1);<BR>
SetLength(Hdrs[i].phemp, j+1);<BR>
Hdrs[i].saemp[j] := frParser.Calc('SUM([dm.rssc7."SALDO"],
MasterData1)');<BR> Hdrs[i].pdemp[j] :=
frParser.Calc('SUM([[dm.rssc7."DEBE"]-[dm.rssc7."HABER"]],
MasterData1)');<BR> Hdrs[i].phemp[j] :=
frParser.Calc('SUM([[dm.rssc7."HABER"]-[dm.rssc7."DEBE"]],
MasterData1)');<BR> end;<BR>
end;<BR>end; <BR></DIV></FONT><FONT face=Arial
size=2></FONT>
<DIV><FONT face=Arial size=2>Saludos Reiterados</FONT></DIV>
<DIV>--<BR>Ismael<BR>Devuan User: <A
href="http://distrowatch.com/table.php?distribution=devuan">http://distrowatch.com/table.php?distribution=devuan</A></DIV>
<DIV>Personal Web Site: <A href="http://www.sisconge.byethost15.com"
target=_blank
rel="noopener noreferrer">http://www.sisconge.byethost15.com</A></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=lazarus-es@lists.lazarus-ide.org
href="mailto:lazarus-es@lists.lazarus-ide.org">Iván Lugo Herrera via
Lazarus-es</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=lazarus-es@lists.lazarus-ide.org
href="mailto:lazarus-es@lists.lazarus-ide.org">Spanish version of Lazarus
List</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=ivanlugoh@gmail.com
href="mailto:ivanlugoh@gmail.com">Iván Lugo Herrera</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, May 11, 2020 2:45 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Lazarus-es] Lectura de
tabla en scrip de LazReport</DIV>
<DIV><FONT face=Arial size=2></FONT><BR></DIV>
<DIV dir=ltr>
<DIV>Buenas tardes Ismael. Gracias por atender mi consulta.</DIV>
<DIV>Suena ingenioso lo del reporte en dos pases, sobre todo para acumulados y
paginación.</DIV>
<DIV><BR></DIV>
<DIV>Tengo un inconveneinte en la aplicación de tu propuesta:</DIV>
<DIV> - cuando hago el primer pase no tengo un valor que guardar en el
arreglo porque no lo he buscado en sqlCuentas</DIV>
<DIV> - si uso el valor actual de CTANOM en sqlCuentas siempre será el
mismo</DIV>
<DIV><BR></DIV>
<DIV>Lo que quisiera hacer es una lectura por clave a una tabla desde el
reporte.</DIV>
<DIV><BR></DIV>
<DIV>Gracias nuevamente.</DIV>
<DIV><BR></DIV>
<DIV>ILH<BR></DIV></DIV>
<DIV id=DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2><BR>
<TABLE style="BORDER-TOP: #d3d4de 1px solid">
<TBODY>
<TR>
<TD style="WIDTH: 55px; PADDING-TOP: 18px"><A
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
target=_blank><IMG style="WIDTH: 46px; HEIGHT: 29px" height=29 alt=""
src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif"
width=46></A></TD>
<TD
style="FONT-SIZE: 13px; WIDTH: 470px; COLOR: #41424e; LINE-HEIGHT: 18px; PADDING-TOP: 17px; FONT-FAMILY: Arial,Helvetica,sans-serif">Libre
de virus. <A style="COLOR: #4453ea"
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
target=_blank>www.avast.com</A> </TD></TR></TBODY></TABLE><A
href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" height="1"
width="1"></A></DIV><BR>
<DIV class=gmail_quote>
<DIV class=gmail_attr dir=ltr>El lun., 11 may. 2020 a las 14:13, Ismael L.
Donis Garcia via Lazarus-es (<<A
href="mailto:lazarus-es@lists.lazarus-ide.org">lazarus-es@lists.lazarus-ide.org</A>>)
escribió:<BR></DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><U></U>
<DIV bgcolor="#ffffff">
<DIV><FONT face=Arial size=2>En las opciones del reporte lo debes definir
como de 2 pasos, en el primero guardas el valor en un arreglo y en el
segundo pase asignas el valor tomándolo del arreglo.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Saludos</FONT></DIV>
<DIV>--<BR>Ismael<BR>Devuan User: <A
href="http://distrowatch.com/table.php?distribution=devuan"
target=_blank>http://distrowatch.com/table.php?distribution=devuan</A></DIV>
<DIV>Personal Web Site: <A href="http://www.sisconge.byethost15.com"
target=_blank
rel="noopener noreferrer">http://www.sisconge.byethost15.com</A></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV style="BACKGROUND: rgb(228,228,228); FONT: 10pt arial"><B>From:</B>
<A title=lazarus-es@lists.lazarus-ide.org
href="mailto:lazarus-es@lists.lazarus-ide.org" target=_blank>Iván Lugo
Herrera via Lazarus-es</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=lazarus-es@lists.lazarus-ide.org
href="mailto:lazarus-es@lists.lazarus-ide.org"
target=_blank>lazarus-es@lists.lazarus-ide.org</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=ivanlugoh@gmail.com
href="mailto:ivanlugoh@gmail.com" target=_blank>Iván Lugo Herrera</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, May 08, 2020 7:33
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [Lazarus-es] Lectura de
tabla en scrip de LazReport</DIV>
<DIV><BR></DIV>
<DIV dir=ltr>
<DIV>Recién me inscribo en esta lista de correo dedicada a Lazarus IDE,
con el interés de progresar en esta herramienta de desarrollo de
software.</DIV>
<DIV>Me alegra encontrar información sobre Lazarus el español.</DIV>
<DIV>La mayoría de las fuentes que he encontrado en los dos años que llevo
estudiando esta paltaforma son: inglés, portugués (bastante), francés
(algo) y poco en español.</DIV>
<DIV>Aunque jamás utilicé Delphi, he apoyado mi aprendizaje con diversos
consejos en español para este equivalente comercial.</DIV>
<DIV><BR></DIV>
<DIV>No descubrí la manera de consultar en la lista los temas tratados
previamente, así que quizá mi consulta ya haya sido respondida en el
sitio.</DIV>
<DIV></DIV>
<DIV>Consulta LazReport:<BR>Desde un script en LazReport ¿puedo leer un
registro de una tabla que es visible desde el reporte?<BR>Algo
como:<BR><BR> if
[sqlCuentas.Locate('CTACOD',[Cuenta],[loPartialKey])] then ;<BR>
Text:= [sqlCuentas.FieldByName('CTANOM').AsString] ;<BR>
else Text:= 'No identificada';<BR><BR>- La instrucción anterior
(locate) está en un cuadro de texto en la banda GroupHeader (Condición:
[sqlMovim."CTACOD"])<BR>- en la banda MasterData tengo la tabla
"sqlMovim"<BR>- "sqlCuentas", con todos sus campos, es visible desde el
reporte en modo "design"<BR>- "Cuenta" en una variable (Otras) que
contiene [sqlMovim."CTACOD"] que tiene su equivalente en sqlCuentas<BR>He
probado con "begin // end", he incluido "uses db;"<BR><BR>invariablemente
el resultado es "No identificada"<BR><BR>hay un cuadro de texto que
contiene sqlCuentas.CtaNom y siempre muestra el primer registro<BR><BR>¿es
posible lo que pretendo?<BR>si lo es, ¿cómo debo realizarlo? o ¿cuál es mi
error?</DIV>
<DIV><BR></DIV>
<DIV>Nota: el pase de parámetros con ParName - ParValue o con FindVariable
no es una opción</DIV>
<DIV>porque se pretende que el reporte no esté atado a un
formulario.<BR></DIV>
<DIV><BR></DIV>
<DIV>De antemano, gracias.</DIV>
<DIV><BR></DIV>
<DIV>Iván Lugo Herrera</DIV>
<DIV>Valencia, Venezuela<BR></DIV></DIV>
<P></P>
<HR>
<P></P>_______________________________________________<BR>Lazarus-es
mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus-ide.org"
target=_blank>Lazarus-es@lists.lazarus-ide.org</A><BR><A
href="https://lists.lazarus-ide.org/listinfo/lazarus-es"
target=_blank>https://lists.lazarus-ide.org/listinfo/lazarus-es</A><BR>
<P></P></BLOCKQUOTE></DIV>_______________________________________________<BR>Lazarus-es
mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus-ide.org"
target=_blank>Lazarus-es@lists.lazarus-ide.org</A><BR><A
href="https://lists.lazarus-ide.org/listinfo/lazarus-es" target=_blank
rel=noreferrer>https://lists.lazarus-ide.org/listinfo/lazarus-es</A><BR></BLOCKQUOTE></DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>Lazarus-es mailing
list<BR>Lazarus-es@lists.lazarus-ide.org<BR>https://lists.lazarus-ide.org/listinfo/lazarus-es<BR></BLOCKQUOTE></BODY></HTML>