Não consegui usar formato livre com consulta + subconsulta.
Tentei fazer assim:
Criei uma consulta baseada em 2 tabelas:
SELECT
f.id_fatura,
f.dt_fatura_fechamento,
f.tb_empresas_id,
f.tb_clientes_id,
f.vlr_total_consumo,
f.vlr_total_diarias,
f.desconto,
f.adicionais,
f.vlr_total,
e.id,
e.quarto,
e.tarifa,
e.dt_checkin,
e.dt_chekout,
e.id_hotel
FROM
tb_fatura f INNER JOIN tb_estadia e ON f.tb_estadia_id = e.id
WHERE f.id_fatura = '[glo_id_fatura]'
Em seguida criei um template HTML pra usar como formato livre:
<table cellspacing="0" border="0" align="center" width="280">
<colgroup width="95"></colgroup>
<colgroup span="3" width="85"></colgroup>
<tr>
<td rowspan=4 height="68" align="center" valign=middle><br><img src="layout-cupom2_html_b6ef7fb51d62bfc3.png" width=82 height=21 hspace=6 vspace=16>
</td>
<td colspan=3 align="center" valign=middle><font face="Verdana" size=0.5>{razao_social}</font></td>
</tr>
<tr>
<td colspan=3 align="center" valign=middle><font face="Verdana" size=0.5>{cnpj}</font></td>
</tr>
<tr>
<td colspan=3 align="center" valign=middle><font face="Verdana" size=0.5>{insc_estadual}</font></td>
</tr>
<tr>
<td style="border-bottom: 1px solid #000000" colspan=3 align="center" valign=middle><font face="Verdana" size=0.5>{endereco}</font></td>
</tr>
<tr>
<td style="border-bottom: 1px solid #000000" height="13" align="right"><b><font face="Verdana" size=0.5>Fatura nº:</font></b></td>
<td style="border-bottom: 1px solid #000000" align="left"><font face="Verdana" size=0.5>{id_fatura}</font></td>
<td style="border-bottom: 1px solid #000000" align="right"><font face="Verdana" size=0.5>Data:</font></td>
<td style="border-bottom: 1px solid #000000" align="left"><font face="Verdana" size=0.5>{data}</font></td>
</tr>
<tr>
<td height="11" align="right"><b><font face="Verdana" size=0.5>Check-in:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{dt_checkin}</font></td>
<td align="right"><b><font face="Verdana" size=0.5>Check-out:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{dt_checkout}</font></td>
</tr>
<tr>
<td height="12" align="right"><b><font face="Verdana" size=0.5>UH:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{uh}</font></td>
<td align="right"><b><font face="Verdana" size=0.5>Tarifa:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{tarifa}</font></td>
</tr>
<tr>
<td height="13" align="right"><b><font face="Verdana" size=0.5>Empresa:</font></b></td>
<td colspan=3 align="left" valign=middle><font face="Verdana" size=0.5>{empresa}</font></td>
</tr>
<tr>
<td style="border-bottom: 1px solid #000000" height="13" align="right"><b><font face="Verdana" size=0.5>Cliente:</font></b></td>
<td style="border-bottom: 1px solid #000000" colspan=3 align="left" valign=middle><font face="Verdana" size=0.5>{cliente}</font></td>
</tr>
<tr>
<td colspan=4 height="12" align="center" valign=middle bgcolor="#EEEEEE"><b><font face="Verdana" size=0.5>Consumo/Serviços</font></b></td>
</tr>
<tr>
<td height="12" align="left"><b><font face="Verdana" size=0.5>Item/Produto</font></b></td>
<td align="center"><b><font face="Verdana" size=0.5>Qtde</font></b></td>
<td align="right"><b><font face="Verdana" size=0.5>Vlr. Unit.</font></b></td>
<td align="right"><b><font face="Verdana" size=0.5>Subtotal</font></b></td>
</tr>
<tr>
<!-- BEGIN bl2 -->
<td height="17" align="left"><font face="Verdana" size=0.5>{item_produto}</font></td>
<td align="center"><font face="Verdana" size=0.5>{qtde}</font></td>
<td align="right"><font face="Verdana" size=0.5>{vlr_unit}</font></td>
<td align="right"><font face="Verdana" size=0.5>{subtotal}</font></td>
<!-- END bl2 -->
</tr>
<tr>
<td style="border-bottom: 1px solid #000000" colspan=4 height="17" align="center" valign=middle><br></td>
</tr>
<tr>
<td colspan=3 height="17" align="right" valign=middle><b><font face="Verdana" size=0.5>V.T. Consumo:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{total_consumo}</font></td>
</tr>
<tr>
<td height="17" align="right"><b><font face="Verdana" size=0.5>Diárias:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{qtde_diarias}</font></td>
<td align="right"><b><font face="Verdana" size=0.5>V. T. Diárias</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{vlr_diarias}</font></td>
</tr>
<tr>
<td colspan=3 height="17" align="right" valign=middle><b><font face="Verdana" size=0.5>Descontos:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{descontos}</font></td>
</tr>
<tr>
<td colspan=3 height="17" align="right" valign=middle><b><font face="Verdana" size=0.5>Adicionais:</font></b></td>
<td align="left"><font face="Verdana" size=0.5>{adicionais}</font></td>
</tr>
<tr>
<td style="border-bottom: 1px solid #000000" colspan=3 height="17" align="right" valign=middle><b><font face="Verdana" size=0.5>Total:</font></b></td>
<td style="border-bottom: 1px solid #000000" align="left"><font face="Verdana" size=0.5>{total_fatura}</font></td>
</tr>
<tr>
<td colspan=4 height="17" align="center" valign=middle><b><i><font face="Verdana" size=0.5>Agradecemos a preferência! Volte sempre!</font></i></b></td>
</tr>
</table>
Depois no evento onRecord da consulta, realizo um select em outra tabela para listar os consumos referentes a tabela estadia:
//Selecionando os dados do consumo da estadia
sc_select(meus_dados, "SELECT
tb_produtos_id_produto, qtde, valor_unit, valor_total
FROM
tb_consumo
WHERE
tb_estadia_id = '{e.id}'
");
if ({meus_dados} == false)
{
sc_error_message("Erro ao acessar a base de dados!");
}
else
{
while (!$meus_dados->EOF){
{produto} = $meus_dados->fields[0];
{qtde} = $meus_dados->fields[1];
{vlr_unit} = $meus_dados->fields[2];
{subtotal} = $meus_dados->fields[3];
$meus_dados->MoveNext();
}
$meus_dados->Close();
}
O problema está em que só é exibido um registro, não vai para próximo, pois a estadia possui mais de um consumo cadastrado.
Alguém sabe me dizer o que eu estou fazendo de errado?