我的程式碼
using OWC10;
private string GenerateChart(Statistics.CTypeEnum CType, string
ChartCaption, string Categories, string Series, string FileName, double
MajorUnit, double MinorUnit)
{
string rtn = "";
ChChart Chart = null;
FileName = (FileName == null) ? "TMP" : FileName.Trim();
string[] ExcelFileInfo = GetTempFileInfo(FileName, ".gif");
try
{
int ChartWidth = 580, ChartHeight = 900;
gChartSpace = new ChartSpaceClass();
gChartSpace.HasChartSpaceTitle = true;
gChartSpace.ChartSpaceTitle.Caption = ChartCaption;
gChartSpace.ChartSpaceTitle.Font.Bold = true;
gChartSpace.ChartSpaceTitle.Font.Size = 16;
Chart = gChartSpace.Charts.Add(0);
if (MajorUnit != 0.0)
{
Chart.Axes[1].HasAutoMajorUnit = false;
Chart.Axes[1].MajorUnit = MajorUnit;
}
if (MinorUnit != 0.0)
{
Chart.Axes[1].HasAutoMinorUnit = false;
Chart.Axes[1].MinorUnit = MinorUnit;
}
Chart.Axes[0].Font.Color = "blue";
Chart.Axes[0].Font.Size = 12;
Chart.Axes[1].Font.Color = "blue";
Chart.Axes[1].Font.Size = 12;
switch (CType)
{
case Statistics.CTypeEnum.RadarChart :
Chart.Type = ChartChartTypeEnum.chChartTypeRadarLineMarkers;
ChartWidth = 590;
ChartHeight = 900;
break;
case Statistics.CTypeEnum.BarChart :
Chart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
ChartWidth = 590;
ChartHeight = 600;
break;
default :
Chart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
ChartWidth = 590;
ChartHeight = 600;
break;
}
ChSeries oSeries = Chart.SeriesCollection.Add(0);
oSeries.SetData(ChartDimensionsEnum.chDimCategories, (int)
ChartSpecialDataSourcesEnum.chDataLiteral, Categories) ;
oSeries.SetData(ChartDimensionsEnum.chDimValues, (int)
ChartSpecialDataSourcesEnum.chDataLiteral, Series);
gChartSpace.ExportPicture(ExcelFileInfo[0], "gif", ChartWidth,
ChartHeight);
rtn = ExcelFileInfo[1];
}
catch (Exception ex)
{
this.Response.Write("產生圖檔失敗!!<BR>" + ex.Message);
rtn = "";
}
finally
{
Chart = null;
gChartSpace = null;
}
return rtn;
我不是用 Server.CreateObject 也不是用 CreateObject
另外請教一個問題,我在畫雷達圖的時候,Categories的文字會影響圖的大小 (Categories
字短一點,圖就會大一點),有辦法讓他不會發生這樣的問題嗎?
"璉璉" 來函:
我沒看到你的原始碼,無法判斷,我猜想你可能是用
Server.CreateObject ,才有權限問題。
我是直接用 CreateObject ,所以我在 Win2k/XP/2003 上都沒有改程式碼的問題。
註:arrOWC 是 OWC 9/10/11 的字串物件陣列,由新版試圖建立,以便使用最新版本的 OWC 。
Public Function CreateChartSpace() As Object
Dim ibo As Integer
If IsNothing(nIndexOWCVer) Then
On Error Resume Next
For ibo = UBound(arrOWC) To LBound(arrOWC) + 1 Step -1
CreateChartSpace = CreateObject(arrOWC(ibo)(owc.ClassId))
If Err.Number = 0 Then
nIndexOWCVer = ibo
Exit For
Else
Err.Clear()
End If
Next
On Error GoTo 0
Else
CreateChartSpace = CreateObject(arrOWC(nIndexOWCVer)(owc.ClassId))
End If
End Function
於 news:0A40E8B9-3101-4022-9298-CD24217954B8%40microsoft.com 發表
對不起可能我沒說很清楚
我是在 WinXP + ASP.NET 1.1 下,用 OWC 10 動態產生圖檔,在網頁中的 <IMG> 指定 SRC 連到該圖。
我將程式複製到 Win2000 + ASP.NET 1.1 環境下執行會出現 「介面 OWC10.ChChartSpace 的
QueryInterface 失敗」的錯誤訊息。再網頁上加上 ASPCompat="true" 設定後,就可以正常執行。
"璉璉" 來函:
我在 ASP/ASP.NET 1.1/DHTML 都沒要求要加這個設定... (Win2000/2003)
ASP.NET 2.0 我忘掉有沒有測到 OWC ,.Net 2.0 在 Windows Form 這部份也可以直接執行。
我現在還不知道你是用在 Server 端還是用在 client 端。
用在 Server 端的,你可以試試這個位置:
http://140.116.133.237/
中間台灣地圖內,各測站的觀測歷線是用 OWC 11 畫。(ASPNET 1.1, Win2003 SP1, 前 3 個月才換到 Win2003 上,先前在 Win2k 上跑)
用在 client 端:
http://tlcheng.twbbs.org/TLCheng/Basic/vbs/WebChart/client.htm
從 2002 年開始放上去,除了 domain name 外,大概都差不多,中間有更新範例跟支援 OWC 版本偵測。
於 news:6B40E1C6-140A-41DC-99CF-F25FBBBC7C10%40microsoft.com 發表
我試過用CreateObject的方法來建立物件,他會要求在該網頁設定 ASPCompat="true"。
測試的結果是加了這個設定後,不管是用參照的 new 寫法還是 CreateObject 的不參照寫法都不再出現 QueryInterface 失敗。
我不懂的是為什麼在 WinXP 的環境下不需要加這個設定,在Win2000需要加這個設定?什麼樣的COM會有這樣的問題,除了增加
ASPCompat="true" 設定還有其他解法嗎?這個設定會將該網頁以STA模式執行,這是否會對效能有影響?
"璉璉" 來函:
1. 寫 OWC 的程式改為不用參照,則不綁 OWC 版本、電腦。
2. 你可能是用參照寫 OWC ,則你需要確認 Win2k 那台有 OWC 10 ,且 bin 子目錄的 dll 也需一併散佈。
其它:
放到 html 寫 script 則是屬於使用者版本須與崁入物件版本一致。
於 news:3C524827-91C9-4D12-A1EF-6A785DADD6C7%40microsoft.com 發表
Dear MVP
請問有沒有人知道 APS.NET 在使用 COM 元件時,會出現呼叫元件的 Interface 失敗的原因。
例如,我在WinXP + VS 2003 撰寫網頁時用到 OWC 元件,測試結果 OK,但將程式複製到 Win2000 + .NET Framwork
1.1 的環境下,卻出現下面的錯誤訊息
介面 OWC10.ChChartSpace 的 QueryInterface 失敗
我將程式改寫成 html 理 vbscript 放該環境執行,卻是正常的,請問有人知道原因嗎?
--
風禹科技驗證有限公司 ASP.NET Web News Reader 0.2.3 UTF-8 Beta
網站地圖 http://tlcheng.twbbs.org/wwwmap.htm
流域防洪/區域水資源/徐昇網/玫瑰圖/語音通訊 文章與程式
Basic/Fortran/Windows API/.Net/輔助說明檔 原始碼、文章與討論
微軟程式設計新討論區 MSDN 技術論壇,網友回覆後即時簡訊、電子郵件通知:
http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14
--
ASPNET News Reader http://tlcheng.twbbs.org/News/Reader.aspx
RSS 2.0 http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=microsoft.public.tw.dotnet.framework.aspnet