@Anser
Dear Anser,
Thank you for your contribution, and greetings from us to all of you.
Has Ayen started programming?
I can't describe it better.
page break
I solve the page break similar to EasyReport.
I specify an area height and then count the loops and make a break when it is reached.
  // insert a table
  cHtml += memoread("table_th.htm")
  for I := 1 to 25
    if I = 10
      cText := "</table>" + CRLF
      cText += "<div style='page-break-after: always;'></div>" + CRLF
      cText += "<div> " + CRLF
      cText += "</div>" + CRLF
      cText += "<table>" + CRLF
      cText += "Second page (This will be printed in the second page)" + CRLF
      cHtml += cText
    endif
 Â
    cText := "<tr>" + CRLF
    cText += "<td>Nr. " + str(I) + "</td>" + CRLF
    cText += "<td>Represent a machine-readable format of the <time> element</td>" + CRLF
    cText += "</tr>" + CRLF Â
    cHtml += cText
  next
 Â
  cHtml += memoread("table_end.htm")
 Â
  cText := "<div style='break-after:page'></div>" + CRLF
 Â
  cText += " page (This will be printed in the second page)" + CRLF
  cHtml += cText
  memowrit(cHtmlOrUrl, cHtml)
 Â
  PrintHtml(cHtmlOrUrl,1,.t.)
But I think that if Cristobal releases the Edge based web control, then you can easily check it with javascript.
With HTML as output format for the reports, you can easily do everything with standard software.
Open with WORD and export to EXCEL, ...
@Jose
You can also use a designer with HTML. There are so many options here that one currently has the problem of choosing the best (online-offline) and easiest option.
Take the invoice that Leandro posted. Do you really seriously believe that you can let an end user get in with the WYSIWYG editor and make changes?
@Mark, I sent you my email address yesterday. Just send me the test - prg.
@Endico, "maximum power and versatility" that's just an assertion that you have to prove in a comparison and competition.

I know you are a superb web programmer.
Let's make a list of the appearance of the reports, simplicity of the source code, time it takes to create the reports, etc. and start the race.
Best regards,
Otto