INFO: O Office XP Chart Component de vincular a uma fonte de dados

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 288907
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
O componente gráfico do Microsoft Office 2003 e o componente gráfico do Microsoft Office XP podem vincular a um objeto Recordset do ActiveX Data Objects (ADO), todos os outro Office Web components (a planilha do componente, o componente Tabela dinâmica e o componente da fonte de dados) e outros controles que oferecem suporte a interface de IDataSource . Este artigo descreve os conceitos básicos de criação de gráficos que são ligados a dados e como você pode usar diferentes propriedades e métodos diferentes para o objeto ChartSpace designar dados como vinculados são plotados em um ou mais gráficos em ChartSpace . Para fins de ilustração, um conjunto de registros é usado como fonte de dados no código de exemplo. No entanto, os conceitos apresentados neste artigo sobre vinculação de dados podem ser aplicados a qualquer outro tipo de fonte de dados que o componente de gráfico pode vincular a.
Mais Informações
Você pode vincular o componente de gráfico a uma fonte de dados em uma das seguintes maneiras:
  • Defina a propriedade DataSource do objeto ChartSpace para um controle Office DataSourceControl , um controle de planilha , um controle de tabela dinâmica do Office ou um recordset ADO aberto que você criar em tempo de execução. Dados de fontes que são vinculados a um gráfico usando a propriedade DataSource são fontes de dados externos.
  • Defina a propriedade ConnectionString e a propriedade CommandText do objeto ChartSpace para criar uma fonte de dados para uso pelo componente de gráfico. Uma fonte de dados que é criada dessa maneira é considerada uma fonte de dados interno.
Depois de vincular o componente de gráfico, em seguida, você pode definir uma ou mais propriedades do objeto ChartSpace para designar como os dados são plotados:
  • propriedade HasMultipleCharts : definir essa propriedade como TRUE ou FALSE para indicar se ChartSpace especificado contém vários gráficos.
  • método SetData : usar SetData para indicar os campos e totais que devem representar categorias e valores para os gráficos. SetData também fornece nomes para a série de gráfico.
  • propriedade PlotAllAggregates : define a propriedade PlotAllAggregates para designar como os dados são plotados em um ou mais gráficos no ChartSpace.

Vinculado ChartSpace com um único gráfico

Considere um ChartSpace está vinculado a um recordset ADO que contém uma coluna para categorias de produto e quatro colunas que representam as vendas trimestrais para cada categoria. Se você desejar exibir um único gráfico com as vendas de cada trimestre são plotados como uma série no gráfico, você pode definir HasMultipleCharts para Falso e PlotAllAggregates para chPlotAggregatesSeries com o seguinte código:

Set CSpace.DataSource = oRs   'Where oRs is an ADODB.Recordset object.    CSpace.HasMultipleCharts = False    CSpace.PlotAllAggregates = c.chPlotAggregatesSeries    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2", "Qtr 3", "Qtr 4")
Se você alterar PlotAllAggregates no código de exemplo anterior para chPlotAggregatesCategories , você ainda tem apenas um gráfico, mas você tem uma série em vez de quatro. As categorias do gráfico têm dois níveis: um nível para o NomeDaCategoria campo e outro nível para os trimestres. As ilustrações a seguir mostram as diferenças em como dados são plotados quando PlotAllAggregates é chPlotAggregatesSeries ou chPlotAggregatesCategories :

Illustration of a Chart where PlotAllAggregates is chPlotAggregatesSeries.

Illustration of a Chart where PlotAllAggregates is chPlotAggregatesCategories.

Vinculado ChartSpace com vários gráficos

Usando o recordset ADO mesmo descrita na seção anterior, você pode exibir um gráfico para as vendas de cada trimestre se você definir HasMultipleCharts para TRUE e PlotAllAggregates para chPlotAggregatesCharts . Por exemplo, o resultado do código a seguir é quatro gráficos, onde cada gráfico contém uma única série (um gráfico para um gráfico para Trim 2, Trim 1, um gráfico para Trimestre 3 e um gráfico para Trim 4):

 Set CSpace.DataSource = oRs   'Where oRs is an ADODB.Recordset object.    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesCharts    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2", "Qtr 3", "Qtr 4")
Illustration of a Chart where		  PlotAllAggregates is chPlotAggregatesCharts.

Quando você cria um ChartSpace multichart definindo PlotAllAggregates como chPlotAggregatesCharts , campos (ou totais) na fonte de dados ligados sempre aparecem como uma seqüência em seu próprio gráfico. Não há nenhuma maneira de ter dois ou mais campos da fonte de dados plotados no mesmo gráfico. Por exemplo, não há nenhuma maneira de modificar o código anterior para que os dados acoplados para "Trim 1" e "Trim 2" aparecem em um gráfico e os dados acoplados para "Trim 3" e "Trim 4" seja exibida em outro gráfico. Se você precisar que os dados seja apresentado dessa maneira, talvez você precise usar uma combinação de dados ligados e dados literais de gráficos ou apenas usar dados literais completamente.

Vários gráficos também podem ser plotados em um ChartSpace, definindo a dimensão chDimCharts com o método SetData . Usando uma dimensão chDimCharts , você pode dividir (ou filtrar) a série entre vários gráficos é com base nos valores em outro campo. Considere novamente o ADO recordset que contém colunas para categorias de produtos e vendas trimestrais e, em seguida, suponha que haja uma coluna adicional que indica se o quarta trimestre de vendas aumentaram do terceira trimestre de vendas. A coluna adicional pode ser usada para dividir série entre vários gráficos a série de grupo que mostram um aumento de trimestre quarto em um gráfico e a série de grupo que mostram uma diminuição de trimestre quarta em outro gráfico:

Set CSpace.DataSource = oRs   'Where oRs is an ADODB.Recordset object    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesSeries    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 3", "Qtr 4")    CSpace.SetData c.chDimCharts, c.chDataBound, "Qtr4Increase"
O resultado é um gráfico que tenha todas as seqüências plotadas em gráficos de duas. O primeiro gráfico contém a série onde aumentaram o quarta trimestre de vendas e o segundo gráfico contém a seqüência onde diminui o quarta trimestre de vendas. A ilustração a segue representa os gráficos são criados:

Illustration of a Chart with a		  chDimCharts Dimension.

Usar o método SetData com gráficos vinculados

No modelo de objeto Owc10, o ChartSpace, um gráfico e uma série todos expõem um método SetData . Quando o ChartSpace é vinculado a uma fonte de dados, você pode usar somente o método SetData do objeto ChartSpace para adicionar valores ou séries da fonte de dados ligada. Se você tentar usar SetData para um gráfico ou uma série que tenha sido criada como resultado da ligação, você receberá um dos seguintes erros de tempo de execução:
  • Erro em tempo de execução '-2147467259 (80004005) ':
    Falha do método SetData do objeto 'ChChart'.
  • Erro em tempo de execução '-2147467259 (80004005) ':
    Falha do método SetData do objeto 'ChSeries'.
Uma diretriz geral para gráficos vinculados a dados é que o método SetData pode ser aplicado a um gráfico individual ou para uma série Se você adicionado o gráfico ou a série para o ChartSpace usando o Adicionar método e você está carregando dados literais (seqüências de caracteres delimitada por vírgulas ou matrizes) para o gráfico adicionado ou para a série.

Set CSpace.DataSource = oRs   'Where oRs is an ADODB.Recordset object.    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesCharts    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2")    'Add an additional series based on literal data to each of the charts    'in the ChartSpace.    Dim oChart, oSeries    For Each oChart in CSpace.Charts       Set oSeries = oChart.SeriesCollection.Add       oSeries.SetData c.chDimSeriesNames, c.chDataLiteral, "Goal"       oSeries.SetData c.chDimValues, c.chDataLiteral, Array(30000, 20000, 25000)    Next   
O código anterior plota vendas "Trim 1" e "Trim 2" vendas em gráficos separados, adiciona uma série adicional para cada gráfico e, em seguida, carrega a nova série com dados literais:

Illustration of a Bound ChartSpace with		  an Added Series for Literal Data

Demonstração

O exemplo seguinte demonstra vincular um gráfico a um conjunto de registros que é obtido do banco de dados de exemplo Northwind do Access. Você pode criar o conjunto de registros de uma das três maneiras:
  • Use um conjunto de registros ADO.
  • Use a propriedade ConnectionString e a propriedade CommandText do objeto ChartSpace .
  • Use o Office DataSourceControl (DSC).
Os gráficos que o resultado são as mesmas independentemente da fonte de dados digite que você selecione. Depois que o gráfico estiver vinculado a uma fonte de dados, os dados acoplados são plotados usando combinações diferentes de propriedade HasMultipleCharts , a propriedade PlotAllAggregates e o método SetData para mostrar como cada pode afetar o resultantes gráficos e séries no ChartSpace.
  1. Copie o seguinte código HTML para um editor de texto e, em seguida, salve-o como BoundChart.htm . Se necessário, você pode modificar a atribuição para a variável sConn na função conectar para que o caminho do Northwind.mdb coincide com a instalação do Office.

    Observação O código a seguir usa o objeto DataSourceControl 10.0 e o objeto ChartSpace 10.0. Para a versão do Office System 2003 do objeto DataSourceControl e do objeto ChartSpace , você deve substituir cada valor do clsid com a versão do Office Web Component 2003 respectivamente.

    O identificador programático para o objeto DataSourceControl 11.0 é CLSID:CLSID:0002E55B - 0000 - 0000 - C000 - 000000000046.

    O identificador programático do objeto ChartSpace 11.0 é CLSID:0002E55D - 0000 - 0000 - C000 - 000000000046.

    <html><head><style>  td {font-size:'x-small';font-family:'Sans-Serif'}  select {font-size:'x-small';font-family:'Sans-Serif'}  button {font-size:'x-small';font-family:'Sans-Serif'}</style><object classid="clsid:0002E553-0000-0000-C000-000000000046" id="DSC"></object></head><body><table align="Center" cellspacing="5"><tr>  <td>One Chart with a Series for Each Quarter</td>  <td><button id="btnSeriesOnOneChart" style = "width:100">Go!</button> </td></tr><tr>  <td>One Chart with One Series and Quarters As a Subordinate Category Level</td>  <td><button id="btnCategoriesOnOneChart" style="width:100">Go!</button></td></tr><tr>  <td>Multiple Charts with One Chart Per Quarter</td>  <td><button id="btnMultiChart" style="width:100">Go!</button></td></tr><tr>  <td>Multiple Charts with Plots Divided By Qtr4 Increase/Decrease</td>  <td><button id="btnDivideSeries" style="width:100">Go!</button></td></tr><tr>  <td>Series Loaded from Literal Data on Bound Chart</td>  <td><button id="btnCustom" style="width:100">Go!</button></td></tr>  <tr>  <td ColSpan="2">  Select a DataSource: &#xa0;&#xa0;  <select id=DataSourceType size=1>	<option selected value=0>Bind to an ADO Recordset</option>	<option value=1>Use ChartSpace ConnectionString/CommandText Properties</option>	<option value=2>Bind to a DataSourceControl</option>  </select>  </td></tr></table><p align="Center"><object classid="clsid:0002E556-0000-0000-C000-000000000046" id="CSpace" width="85%" height="50%"></object></p></body><script language="VBScript">Dim cSet c = CSpace.ConstantsDim oRSFunction Connect()    sSQL = "SELECT [Product Sales for 1997].CategoryName, " & _             "Sum(IIf([ShippedQuarter]='Qtr 1',[ProductSales],0)) AS [Qtr 1], " & _             "Sum(IIf([ShippedQuarter]='Qtr 2',[ProductSales],0)) AS [Qtr 2], " & _             "Sum(IIf([ShippedQuarter]='Qtr 3',[ProductSales],0)) AS [Qtr 3], " & _             "Sum(IIf([ShippedQuarter] = 'Qtr 4', [ProductSales], 0)) As [Qtr 4], " & _             "IIf([Qtr 4]>[Qtr 3],'Increase in Qtr4','Decrease in Qtr4') AS Qtr4Increase " & _             "From [Product Sales for 1997] GROUP BY [Product Sales for 1997].CategoryName " & _             "HAVING (CategoryName='Confections' Or CategoryName='Meat/Poultry' Or CategoryName='Beverages')"    sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _             "Data Source=c:\program files\microsoft office\office10\samples\northwind.mdb"           CSpace.Clear                Select Case CLng(DataSourceType.value)    Case 0:              'Bind to an ADO Recordset that is built at runtime.      Set oRS = CreateObject("ADODB.Recordset")      oRS.Open sSQL, sConn, 3, 3      Set CSpace.DataSource = oRS    Case 1:              'Bind to a Recordset by using the CommandText/ConnectionString properties.      CSpace.ConnectionString = sConn      CSpace.CommandText = sSQL    Case 2:              'Bind to a DataSourceControl (DSC).      DSC.ConnectionString = sConn      If DSC.RecordsetDefs.Count < 1 Then         DSC.RecordsetDefs.AddNew sSQL, DSC.constants.dscCommandText, "QuarterlySales"      End If      Set CSpace.DataSource = DSC      CSpace.DataMember = "QuarterlySales"           End Select    End FunctionFunction FormatChart(CSpaceTitle, bShowLegend)    'Hide field buttons.    CSpace.DisplayFieldButtons = False        'Add the ChartSpace Title.    CSpace.HasChartSpaceTitle = True    CSpace.ChartSpaceTitle.Caption = CSpaceTitle    CSpace.ChartSpaceTitle.Font.Size = 9    CSpace.ChartSpaceTitle.Font.Bold = True          If bShowLegend Then       For Each oChart in CSpace.Charts          oChart.HasLegend = True          oChart.Legend.Position =  c.chLegendPositionBottom          Next    End IfEnd FunctionFunction btnSeriesOnOneChart_OnClick()    Connect        'One Chart with four series (one series per Quarter)    CSpace.HasMultipleCharts = False    CSpace.PlotAllAggregates = c.chPlotAggregatesSeries    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2", "Qtr 3", "Qtr 4")    CSpace.Charts(0).Type = c.chChartTypeBarClustered        sTitle = "PlotAllAggregates = chPlotAggregatesSeries"    FormatChart sTitle, True    End FunctionFunction btnCategoriesOnOneChart_OnClick()    Connect        'One Chart with One Series and Quarters As a Subordinate Category Level    CSpace.HasMultipleCharts = False    CSpace.PlotAllAggregates = c.chPlotAggregatesCategories    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2", "Qtr 3", "Qtr 4")    CSpace.Charts(0).Type = c.chChartTypeBarClustered    CSpace.Charts(0).SeriesCollection(0).Caption = "Sales"        sTitle = "PlotAllAggregates = chPlotAggregatesCategories"    FormatChart sTitle, True    End FunctionFunction btnMultiChart_OnClick()    Connect        'Four Charts with One Chart Per Quarter    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesCharts    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 1", "Qtr 2", "Qtr 3", "Qtr 4")    CSpace.ChartWrapCount = 4    sTitle = "PlotAllAggregates = chPlotAggregatesCharts"    FormatChart sTitle, False    End FunctionFunction btnDivideSeries_OnClick()    Connect        'Build two charts (one for Qtr3 and one for Qtr4) and then divide    'the plots based on Qtr4 increase/decrease. The result is    'four charts.    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesSeries    CSpace.SetData c.chDimCategories, c.chDataBound, "CategoryName"    CSpace.SetData c.chDimValues, c.chDataBound, Array("Qtr 3", "Qtr 4")    CSpace.SetData c.chDimCharts, c.chDataBound, "Qtr4Increase"    CSpace.ChartWrapCount = 4    sTitle = "PlotAllAggregates = chPlotAggregatesSeries" & vbCrLF & _             "chDimCharts Dimension for Increase/Decrease in Fourth Quarter"    FormatChart sTitle, True    End FunctionFunction btnCustom_OnClick()    Connect        'Build two charts (one chart each for Qtr1 and Qtr2 sales).    CSpace.HasMultipleCharts = True    CSpace.PlotAllAggregates = c.chPlotAggregatesCharts    CSpace.SetData c.chDimCategories, 0, "CategoryName"    CSpace.SetData c.chDimValues, 0, Array("Qtr 1", "Qtr 2")    CSpace.Charts(0).SeriesCollection(0).Caption = "Qtr 1"    CSpace.Charts(1).SeriesCollection(0).Caption = "Qtr 2"        'Add an additional series that is based on literal data to each of the charts    'in the ChartSpace.    Dim oChart, oSeries    For Each oChart in CSpace.Charts       Set oSeries = oChart.SeriesCollection.Add       oSeries.SetData c.chDimSeriesNames, c.chDataLiteral, "Goal"       oSeries.SetData c.chDimValues, c.chDataLiteral, Array(30000, 20000, 25000)    Next         sTitle = "Bound ChartSpace With An Added Series For Literal Data"    FormatChart sTitle, True    End Function</script></html>
  2. Inicie o Internet Explorer e, em seguida, mova para BoundChart.htm.
  3. Cada botão na página da Web para examinar cada uma das combinações de gráfico diferente.

    Observação Você também pode selecionar os tipos de fonte de dados diferentes. Os gráficos resultantes são os mesmos independentemente do tipo de fonte de dados que você seleciona.
Referências
Para obter informações adicionais sobre como usar o Office Web componentes, visite o seguinte site da Microsoft:Para obter informações adicionais sobre o Office Developer Center, visite o seguinte site:Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
286320COMO: Vincular o gráfico do Office XP componente a uma tabela dinâmica
webchart dinâmica tabela owc

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 288907 - Última Revisão: 12/06/2015 00:33:02 - Revisão: 2.4

Microsoft Office XP Web Components, Microsoft Office 2003 Web Components

  • kbnosurvey kbarchive kbmt kbdatabinding kbgraphxlink kbinfo KB288907 KbMtpt
Comentários