<!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>