Software FX Posted April 10, 2000 Report Share Posted April 10, 2000 >> However when I set the series legend text after I assigned the recordset to the chart object my >> series legend displayed my desired text. Is this what you expect and if so why? Yes. When reading the data from ADO we will use the field names as the series labels, if you want to overwrite them you need to set them after the ADOResultset statement. There is a property called DataStyle that allows you to change this behavior but it is usually easier to set the labels after the ADOResultset >> Can I have two series legends? One for each Y axis? No >> The AdjustScale parameter doesn't appear to work on AXIS_Y2 Please try adjusting the scale after the data has been passed to the chart. >> Is there an existing Command (e.g. CFX_ID_HORZGRID) for toggling the AXIS_Y2 grid? No. >> Do I have to write my own command? Please note that this will only work in Internet Explorer >> I tried via the example in the docs but what I've done doesn't work. There are a couple of details in your code, handling the UserCommand needs to be done at the client level, I am including sample code that shows how to do this <%@ Language=VBScript %> <HTML> <BODY> <!-- #include virtual="/Include/CfxIE.inc" --> <script LANGUAGE="VBScript"> <!-- Sub Chart1_UserCommand(wParam,lParam,nRes) If wParam = 1 then Chart1.Axis(1).Grid = Not Chart1.Axis(1).Grid End If End Sub --> </script> <% Set ChartFX1 = Server.CreateObject("ChartFX.WebServer") ChartFX1.Chart3D = False ChartFX1.Gallery = LINES ChartFX1.OpenDataEx COD_VALUES,2,1 ChartFX1.CloseData COD_VALUES ChartFX1.Series(0).YAxis = AXIS_Y ChartFX1.Series(1).YAxis = AXIS_Y2 ChartFX1.OpenDataEx COD_VALUES,2,5 For i = 0 to 1 For j = 0 to 5 ChartFX1.ValueEx(i,j) = Rnd() Next Next ChartFX1.CloseData COD_VALUES 'Toolbar control ChartFX1.ToolBar = true 'Add command to control Axis_Y2 grid ChartFX1.Commands.AddCommand 1 ChartFX1.Commands(1).Style = CBIS_TWOSTATE ChartFX1.Commands(1).Picture = 9 ChartFX1.Commands(1).Text = "Horizontal grid axis Y2" ChartFX1.Commands(1).Enabled = true ChartFX1.ToolBarObj.AddItems 1,9 'Assign the command id to added button ChartFX1.ToolBarObj(9).CommandID = 1 'Remove toolbar items ChartFX1.ToolBarObj.RemoveItems 1,0 ChartFX1.ToolBarObj.RemoveItems 4,1 ChartFX1.ToolBarObj.RemoveItems 7,5 ChartFX1.ToolBarObj.RemoveItems 4,7 %> <%=ChartFX1.GetHtmlTag("100%","75%","Auto","Chart1")%> </body> </html> -----Original Message----- From: David Patrick [ mailto:dpatrick@msotech.com] Posted At: Saturday, April 08, 2000 1:16 AM Posted To: Client Conversation: Dual Y Axis questions Subject: Dual Y Axis questions I'm working with the IE 2000 server demo and have a few questions. I'm running on an NT4.0 SP6 box acting as both client and server. My data is coming from an Access database via a ADO recordset. The data set contains six fields, five series with each series having 3,232 points. The sixth series is the X coordinate. I'm using a Line type chart. 1. The series legend kept defaulting to the field names from my SQL query instead of what I thought I was setting it to via the ChartFX1.Series(0).Legend = "DC Voltage" statement. However when I set the series legend text after I assigned the recordset to the chart object my series legend displayed my desired text. Is this what you expect and if so why? 2. Can I have two series legends? One for each Y axis? 3. The AdjustScale parameter doesn't appear to work on AXIS_Y2 if it is also applied to AXIS_Y. I get "nice" values on AXIS_Y but not AXIS_Y2. Shouldn't I expect to get "nice" values on AXIS_Y2? 4. Is there an existing Command (e.g. CFX_ID_HORZGRID) for toggling the AXIS_Y2 grid? I 've added a button to the toolbar for such a command. Do I have to write my own command? I tried via the example in the docs but what I've done doesn't work. Following is the asp page contents. Regards, David <%@ Language=VBScript %> <!-- #include virtual="/Include/CfxIE.inc" --> <% ' VI 6.0 Scripting Object Model Enabled %> <!--#include file="_ScriptLibrary/pm.asp"--> <% if StartPageProcessing() Then Response.End() %> <form name="thisForm" METHOD="post"> <html> <head> <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <link REL="stylesheet" TYPE="text/css" HREF="stylesheets/SCE%20Hydran.css"> <title>Monitoring System</title> </head> <% Set CBAconn = Server.CreateObject("ADODB.Connection") CBAconn.ConnectionTimeout = Application("CBADATA_ConnectionTimeout") CBAconn.CommandTimeout = Application("CBADATA_CommandTimeout") CBAconn.Open Application("CBADATA_ConnectionString"), _ Application("CBADATA_RuntimeUserName"), _ Application("CBADATA_RuntimePassword") set rstTrendData = Server.CreateObject("ADODB.Recordset") rstTrendData.ActiveConnection = CBAconn sqlstmt = "select ch1_value,ch2_value,ch3_value,ch4_value,ch5_value, " &_ "event_record_number from rtr008_olm_ev_data where " &_ "event_header_id = 138;" rstTrendData.Open sqlstmt %> <% Private Sub ChartFX1_UserCommand(wParam,lParam,nRes) Response.Write "Now we're in here" If wParam = 1 then If nRes = 1 then ChartFX1.Commands(1).Picture = 10 Y2Axis.Grid = 1 Else Y2Axis.Grid = 0 End If End If End Sub %> <body> <h1> Monitoring System</h1> <div id="NavBar"> <a HREF="default.htm">Logout</a> <a HREF="search.htm">Search</a> <a HREF="heartbeat.asp">Heartbeat</a> <a HREF="monitordetails.asp">Monitor Details</a> <br> </div> <br> <% Set ChartFX1 = Server.CreateObject("ChartFX.WebServer") Set YAxis = ChartFX1.Axis(AXIS_Y) Set Y2Axis = ChartFX1.Axis(AXIS_Y2) Set XAxis = ChartFX1.Axis(AXIS_X) 'Set number of series and points per series ChartFX1.OpenDataEx COD_VALUES,5,3232 ChartFX1.CloseData COD_VALUES 'Left Y axis settings YAxis.AutoScale = false YAxis.AdjustScale YAxis.Grid = true 'Right Y axis settings Y2Axis.AutoScale = false Y2Axis.AdjustScale Y2Axis.Grid = true 'X axis settings XAxis.AutoScale = false XAxis.AdjustScale 'Data series formating ChartFX1.DataType(0) = CDT_VALUE ChartFX1.DataType(1) = CDT_VALUE ChartFX1.DataType(2) = CDT_VALUE ChartFX1.DataType(3) = CDT_VALUE ChartFX1.DataType(4) = CDT_VALUE ChartFX1.DataType(5) = CDT_LABEL ChartFX1.MarkerShape = MK_NONE 'Assign series to right Y axis ChartFX1.Series(3).YAxis = AXIS_Y2 ' General Settings ChartFX1.Gallery = LINES ChartFX1.Chart3D = 0 ChartFX1.Rgb2DBk = RGB(204,204,204) ChartFX1.AllowResize = false 'Toolbar control ChartFX1.ToolBar = true 'Add command to control Axis_Y2 grid ChartFX1.Commands.AddCommand 1 ChartFX1.Commands(1).Style = CBIS_TWOSTATE ChartFX1.Commands(1).Picture = 9 ChartFX1.Commands(1).Text = "Horizontal grid axis Y2" ChartFX1.Commands(1).Enabled = true ChartFX1.ToolBarObj.AddItems 1,9 'Assign the command id to added button ChartFX1.ToolBarObj(9).CommandID = 1 'Remove toolbar items ChartFX1.ToolBarObj.RemoveItems 1,0 ChartFX1.ToolBarObj.RemoveItems 4,1 ChartFX1.ToolBarObj.RemoveItems 7,5 ChartFX1.ToolBarObj.RemoveItems 4,7 'Grid settings XAxis.Grid = True YAxis.Grid = True 'Need to figure out toolbar button to enable/disable 'right y axis grid 'Y2Axis.Grid = True ChartFX1.ADOResultset rstTrendData rstTrendData.Close 'Series legend settings 'MUST come after assigning recordset to chart object ChartFX1.SerLegBox = true ChartFX1.SerLegBoxObj.Moveable = false ChartFX1.Series(0).Legend = "DC Voltage" ChartFX1.Series(1).Legend = "Circuit" ChartFX1.Series(2).Legend = "Event" ChartFX1.Series(3).Legend = "Current" ChartFX1.Series(4).Legend = "Spare Ch 5" %> <%=ChartFX1.GetHtmlTag("100%","75%")%> <br> </body> <% ' VI 6.0 Scripting Object Model Enabled %> <% EndPageProcessing() %> </form> </html> Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.