Make Reports Quickly with asp.net and xml

xiaoxiao2021-03-06  50

[Download Code] | [Run Sample] Sometimes you need to create reports quickly You might not always have time to format fancy reports containing graphs Or maybe you need to create a report that does not need graphs By reusing one ASP.... NET web page you can quickly make reports that are stored in XML files. The sample that is included in the download demonstrates how you can display up to three different database queries, using three DataGrids, on the same page. Each report is an XML file That Contains a Title for the Web Page and A Subtitle, Connection String, SQL SELECT Statement, And Page Size for Each Database Query.

EXAMPLE XML Report File:

Products </ Title></p> <p></ Page></p> <p><Repert></p> <p><Title> Product List </ title></p> <p><ConnectionProvider = Microsoft> .jet.Oledb.4.0; data source = / products.mdb; </ connection></p> <p><SQL> Select ProductId, ProductName, Unitprice from Products; </ SQL></p> <p><PageSize> 10 </ pageSize></p> <p></ Report></p> <p><Repert></p> <p><Title> Product summary </ title></p> <p><ConnectionProvider = Microsoft> .jet.Oledb.4.0; data source = / products.mdb; </ connection></p> <p><SQL> SELECT Count (ProductID) AS [Product Count] from Products; </ SQL></p> <p><PageSize> </ pagesize></p> <p></ Report></p> <p></ Xmlreport></p> <p>The name of the report (XML file) is sent in the QueryString without the file extension (.xml) For example:. Reports.aspx report = reportname The XML report is loaded and the "Reports" table is iterated to bind data?. to the DataGrids. This would be a perfect place to use a control array, but ASP.NET does not support control arrays. The sample shows a way around this handicap.OleDb is used to connect to the data sources so you can use any OleDb . database Another neat feature is that each report has its own connection string This allows you to display reports from different databases on the same page Each report has a setting for page size;.. if left blank paging will not be enabled for that report.</p> <p>The download is a complete working solution that I am currently using in-house. The download contains an Access database and a test report (Test.xml) that displays a product list and a summary. Now, when you want to create a report, just create an XML report file and save it in the reports directory. Then create a link to the reports.aspx page with your new file name (minus the extension) and your report is made. If you create many reports that do not require Graphs you will save much time..</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-117612.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="117612" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.034</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'OC9sOhl_2BWsoJOSpqJJTR_2B9gB0EMO335vuVMN7PyU8at_2BVVFZfED8xRBvE0onnC95WRICEOsVNV7pcGwTcidQ2g_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>