Dynamically generate charts with OWC server-side components

xiaoxiao2021-03-06  42

I used to have some articles here to talk about the problem of generating dynamic charts in the ASP, but some methods mentioned in those articles have certain restrictions. If you need to install Office2000 or install OWC on the client, some will It is possible that there is no problem in intranet, but when accessible through the Internet, it may have a phenomenon that cannot work properly (this is related to SQL Server security settings). So how do we avoid these problems? There is a good way to convert the charts generated in the ASP to the image file to save on the server so that the user finally see the gif picture format chart, I want to watch any browser now watch GIF picture There is no problem when it is. :) Perhaps the only possible problem is how to process the problem of these temporary picture files, about this problem in the end we will discuss. Below we will use a specific example to illustrate this method. The program's test environment is: NT4.0 (SP5) IIS4.0 SQL Server 7.0 IE5.0, to run the following ASP program, save the following code COPY to a virtual directory in your virtual directory, Create a subdirectory TMP in this virtual directory (you may modify the path in the code to match your own path), set the read permissions in IIS, pay attention, in NT you must set this TMP directory at least Changed permissions. Create a PUBS DSN point to the PUBS database of SQL Server.

Here is the code: chart.asp <% Function ExportChartToGIF (cspace) Dim fso Dim sFilePath Dim sFileName 'generates a temporary file name set fso = CreateObject ( "Scripting.FileSystemObject") sFilePath = Request.ServerVariables ( "PATH_TRANSLATED") sFilePath = LEFT (sfilepath, "/")) sfilepath = sfilepath & "tmp/" sfilename = fso.getTempName () sfilename = sfilename & ".gif" set fso = nothing 'converts Chart into GIF files Save in temporary directory m_cspace.ExportPicture sFilePath & sFileName, "gif", 200, 150 'will be generated temporary Bild exist session in order to delete session ( "TC:" & sFilePath & sFileName) = sFilePath & sFileName ExportChartToGIF = sFileNameEnd FunctionSub BindChartToDSC (cspace , Svalues ​​DIM CHT DIM Ser SET C = CSPACE.CONSTANTS CSPACE.CLEAR 'Binding Data Source Set Cspace.DataSource = DSC CSPACE.DATAMEMBER = SrsName Set Cht = Cspace.Charts.add () CHT. Haslegend = true cht.type = c.chcharttypepie s et ser = cht.SeriesCollection.Add () ser.SetData c.chDimCategories, 0, sCategories ser.SetData c.chDimValues, 0, sValues ​​set dls = ser.DataLabelsCollection.Add () dls.HasPercentage = True dls.HasValue = FalseEnd Sub%> Using OWC Dynamically generated chart < / Title> </ head> <body> <% set m_cspace = server.createObject ("owc.chart"</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-71092.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="71092" 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.050</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 = '9ZTiLazoL8TcRFGvIO9jgkXaNPw6Tk5OgqcCg6fxhqGgiy_2B7BB_2BR5DYguqqiIq8ePy2USfAzM3KQBiYgg719pQ_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>