{"id":158,"date":"2007-11-08T13:39:00","date_gmt":"2007-11-08T13:39:00","guid":{"rendered":"\/lisa\/post\/2007\/11\/08\/UtilityReportListener-docoid-posted-today.aspx"},"modified":"2021-08-30T14:54:17","modified_gmt":"2021-08-30T21:54:17","slug":"utilityreportlistener-docoid-posted-today","status":"publish","type":"post","link":"https:\/\/spacefold.com\/lisa\/2007\/11\/08\/utilityreportlistener-docoid-posted-today\/","title":{"rendered":"UtilityReportListener docoid posted today"},"content":{"rendered":"<p>[Please reference <a title=\"VFP-TMM introductory post\" href=\"\/lisa\/2007\/10\/17\/What-LSN-was-Not-Allowed-to-Do-What-LSN-Plans-to-Do-About-It-Now-and-What-You-and-I-Will-Never-Call-It\/\">this post<\/a> if you\u00a0have not previously read about VFP-TMM.]<\/p>\n<p>I&#8217;m quite excited about this one: <a title=\"UtilityReportListener - TMM\" href=\"\/articles\/tmm\/tmm-utilitylistener\">ReportListener Utility and File-handling Foundation Class<\/a>.<\/p>\n<p>Although you don&#8217;t usually instantiate the UtilityReportListener\u00a0class directly, or haven&#8217;t so far,\u00a0it provides a whole lot of important functionality within the FFC reporting group.<\/p>\n<p>In SP2, it received the one major change that I can think of that doesn&#8217;t relate even indirectly to the FX subsystem: the ability to generate page image files as a secondary process while creating other report output.\u00a0 This is huge, and if you don&#8217;t see why,\u00a0 or think we did it just for the convenience of HTMLListener, please take a close look at the two examples I&#8217;ve provided in this docoid.<\/p>\n<p>The major concepts introduced herein include the idea of a <em>reportlistener proxy<\/em>, fully-worked in one of the examples.<\/p>\n<p>Referenced briefly in the same example is a very slight update to Report Preview application which works sensationally well with the new UtilityReportListener capabilities although, as you&#8217;ll see in the comments to the example, that update was hardly needed, you could do this with about three lines of code before.<\/p>\n<p>Another concept I dearly wish you to grok is the idea that any application of any type that understands EMFs can serve as a preview container.\u00a0(Of all the\u00a0allowable page image types, EMFs are going to\u00a0give you the highest quality printing, so it&#8217;s what I&#8217;d choose.\u00a0 HTMLListener, meanwhile, requests GIFs by default, if I remember correctly.\u00a0 This is all settable by design.) \u00a0In the other example in that docoid, I&#8217;ve just used a VFP form and an image control but .NET and WPF can host images too, so it makes no never mind.<\/p>\n<p>In the\u00a0 VFP form embedded-preview example, I use NET4COM to implement a &#8220;print&#8221; button.\u00a0 However, you can do a much better job than that if you want to print EMFs and are using .NET components as part of the process.\u00a0When I get some time and when TMM is more complete I will have to provide a better example, but it&#8217;s completely off the roadmap for now.\u00a0 Besides, this is something other people can show you how to do &lt;g&gt;.\u00a0 Maybe they&#8217;ll do it by building a better NET4COM implementation, that would be very nice and not very difficult.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Please reference this post if you\u00a0have not previously read about VFP-TMM.] I&#8217;m quite excited about this one: ReportListener Utility and File-handling Foundation Class. Although you don&#8217;t usually instantiate the UtilityReportListener\u00a0class directly, or haven&#8217;t so far,\u00a0it provides a whole lot of important functionality within the FFC reporting group. In SP2, it received the one major change<a class=\"more-link\" href=\"https:\/\/spacefold.com\/lisa\/2007\/11\/08\/utilityreportlistener-docoid-posted-today\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-158","post","type-post","status-publish","format-standard","hentry","category-vfp-tmm"],"_links":{"self":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":4,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"predecessor-version":[{"id":425,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts\/158\/revisions\/425"}],"wp:attachment":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}