ProEssentials是Gigasoft 開發的一個功能十分強大的工業實時繪圖控件,幾乎每一個使用過ProEssentials的人都認爲這是他們所用過的功能最強的圖表控件。它可以運用到金融、科學、工程、商業等行業的實時曲線繪製中。下面慧都小編彙總了開發人員在使用 ProEssentials 時所遇到的一些問題,希望能爲其他使用者提供一點借鑑:
問題一:如何用ProEssentials v6參考線來標記座標數據點
解答:請參考VC示例中105號例子,將其中的CreateDataCursor()函數中的
PEnset(m_hPE, PEP_nCURSORMODE, PEM_DATACROSS);
改爲:
PEnset(m_hPE, PEP_nCURSORMODE, PECM_FLOATINGXY);
就可以實現您要的效果。
問題二:鼠標移動時如何獲取ProEssentials圖表當前點Y軸值
解答:實際上通過鼠標我們能獲取到的是一個double類型的值,並且我們取到的通常不可能是和數據點完全吻合的值。那麼實際上您要取的值我建議您採用取近似值的辦法來獲取,也就是說取到當前點的X,Y座標,並與我們設置的標記點或者數據點進行比較,這樣來得到我們所設置的數據點。
問題三:ProEssentials圖表控件無法響應滑鼠的動作進行放大或者縮小
解答:在這裏呢要提示您一下,該控件的縮放功能並不是您所想的是鼠標中鍵滾動實現縮放,而是中鍵或者左鍵按下後拖動實現。以您所選擇的區域爲中心進行縮放。
也就是說中鍵滾動不會出現效果,而是按下後拖動。請您注意一下,如果您是按我所說的方式理解的,那麼是可以實現的。
問題四:如何在ProEssentials中用映射的方式顯示圖片
用asp.net c#開發的時候,使用ProEssentials控件的方式是這樣的,先在default1.aspx裏拖拽一個控件,然後在default2.aspx裏拖拽一個,其中defautl.aspx實際上是一個圖片,default1連接default2,是程序可以運行,但是當default1上需要拖拽很多個同樣的控件的時候,要用多個default2.aspx還對應嗎,這樣就會產生很多個類似的default2.aspx.
解答:如果您要想用映射的方式來顯示圖片您其實可以在Default2.aspx中使用多個控件,統一映射到Default1.aspx中就可以了,無論如何進行拖拽都不會出現多個頁面.也不需要多個頁面來承載控件,這是沒有必要的.
問題五:如何將ProEssentials的柱狀圖變成線狀圖
解答:您要將柱狀圖改爲線性圖只需要將pego1.PePlot.Method = GraphPlottingMethod.Bar改爲pego1.PePlot.Method = GraphPlottingMethod.Line就可以實現.
要使用水平平行線方式的網格線的話您需要將pego1.PeGrid.LineControl = GridLineControl.Both;改爲Pego1.PeGrid.LineControl = GridLineControl.YAxis;就可以實現您要的效果
請注意:在修改了狀態之後請重新繪製控件,請使用pego1.Refresh();
問題六:用ProEssentials創建多個座標窗口時,如何控制窗口比例大小
解答:ProEssentials控件內部自設置平分圖表區域,目前尚無法控制每個區域大小,只能以平分方式來確定。
問題七:ProEssentials整個X軸能否顯示成24小時的
解答:請您根據以下代碼來設置您的控件:
DateTime dt = new DateTime(2009, 5, 18, 0, 0, 0);//設置開始日期爲2009年5月18日0點整
DateTime dte = new DateTime(2009, 5, 18, 23, 59,59);//設置時間爲2009年5月18日23點59分59秒
Pesgo1.PeGrid.Configure.ManualMinX = dt.ToOADate();;
Pesgo1.PeGrid.Configure.ManualMaxX = dte.ToOADate();
這樣就可以設置爲一天24小時。
問題八:怎麼把date一列賦給ProEssentials的X軸,後面的任意一列賦值給Y軸
Y軸從0到10,X軸從0到96,其中X軸分24個大刻度,每個又分四個小刻度,現在已經分完了,問題1:顯示的時候向外面不顯示刻度線,在座標軸裏面顯示刻度線;問題2:X軸刻度那不向顯示原來的1到24了,想顯示比如00:15-00:30,就是時間段,至少大刻度能顯示。
解答:首先您要使用pesgoWeb.PeData.DateTimeMode = true;這個設置,X軸設置爲時間顯示的方式.那麼時間裏就是標準的時間格式如:00:12等.
double ZoomSmallInterval = (1.0 / 1440.0); //設置時間跨度的大小,1440是一天的分鐘數
double StartTime = DateTime.Now.ToOADate();//時間需要轉換到double類型
pesgo1.PeGrid.Configure.ManualScaleControlX = ManualScaleControl.MinMax;
pesgo1.PeGrid.Configure.ManualMinX = StartTime;
pesgo1.PeGrid.Configure.ManualMaxX = pesgo1.PeGrid.Configure.ManualMinX + ZoomInterval;
目前時間刻度無法設置刻度的大小,它會自動的進行分段,當然就更無法設置小刻度了。
問題九:如何控制ProEssentials座標軸的每個刻度之間的距離
就是如果X軸是一釐米一個刻度的話,Y軸想0.5釐米一個刻度
解答:關於刻度的長度尺寸是無法控制的,通常情況下我們是以最大值和最小值來設置的,中間設置步長也就是跨度,但是具體長度就沒辦法控制了,因爲這個與顯示大小以及控件內部的大小都是有關係的.
要使用最大值最小值來控制軸上能顯示的區域請使用以下代碼
Pesgo1.PeGrid.Configure.ManualScaleControlY = ManualScaleControl.MinMax;
Pesgo1.PeGrid.Configure.ManualMinY = 0;
Pesgo1.PeGrid.Configure.ManualMaxY = 1000;
通過這個設置就可以正確的設置它顯示的最大值最小值.步長則是自動設定的。
問題十:用Proessentials繪製水平曲線的問題
主要是Y軸從1到10,X軸共96個刻度,只有一條曲線就可以,並且只要水平線,不要垂直線。
解答:如果您要使用簡單圖,那麼無法實現這樣的X軸,但是如果您要用科學圖就可以實現這樣的X軸。具體方法如下:
Pesgo1.PeGrid.Configure.ManualXAxisTicknLine = true;//必須要設置的語句
Pesgo1.PeGrid.Configure.ManualXAxisTick = 50;//設置X軸步長單位垮度
Pesgo1.PeGrid.Configure.ManualXAxisLine = 1;//設置線條的寬度
而Y軸的設置上非常簡單。具體方法如下:
Pesgo1.PeGrid.Configure.ManualScaleControlY = ManualScaleControl.MinMax;//設置Y軸最大最小值爲自定義
Pesgo1.PeGrid.Configure.ManualMaxY = 10;//設置Y軸上限
Pesgo1.PeGrid.Configure.ManualMinY = 0;//設置Y軸下限
您要設置Y軸的刻度步長與X軸的方法是相同的,只是參數名稱有些不同:
Pesgo1.PeGrid.Configure.ManualYAxisTicknLine = true;//必須要設置的語句
Pesgo1.PeGrid.Configure.ManualYAxisTick = 50;//設置X軸步長單位垮度
Pesgo1.PeGrid.Configure.ManualYAxisLine = 1;//設置線條的寬度
例如您想設置96個X刻度,那麼您需要做的就是將整個軸的長度值/96 這個double值賦予ManualXAxisTick屬性就可以。