给个编写ASP控件绘制饼图,曲线图等的思路(200分)

  • 主题发起人 主题发起人 smilboy
  • 开始时间 开始时间
使用COM对象生成图形保存(使用SESSIONID来保证文件不会重名)
在ASP中使用即可
 
用ActiveX控件,如TeeChart等
 
是一定要用ActiveX控件的,可选择对象很多,或者可以考虑自己用vb写个很简单的
 
就用M$chart吧,挺好用的。
 
我用isapi作过一个,你用asp做com对象时,在html中加入<image src=pic.asp>
在pic.asp中调用com对象的方法来生成图象,把下面的例子该该应该没什么大问题。
//---------------------------------------------------------------------------
#include "Unit1.h"
#include "jpeg.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TWebModule1 *WebModule1;
//---------------------------------------------------------------------------
__fastcall TWebModule1::TWebModule1(TComponent* Owner)
: TWebModule(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
TObject *Sender, TWebRequest *Request, TWebResponse *Response,
bool &Handled)
{
tmp=Request->QueryFields;
width=StrToInt(tmp->Values["width"]);
height=StrToInt(tmp->Values["height"]);
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
TJPEGImage *jpg= new TJPEGImage();
TMemoryStream *stream = new TMemoryStream();
try
{
pBitmap->Width=width;
pBitmap->Height=height;
pBitmap->Canvas->Brush->Color=clRed;
//pBitmap->Canvas->Brush->Style = bsDiagCross;
pBitmap->Canvas->Ellipse( 0,0,width,height);
jpg->Assign(pBitmap);
jpg->SaveToStream(stream);
stream->Position=0;
Response->ContentType = "image/JPEG";
Response->ContentStream = stream;
}
__finally
{
//delete stream; 内存流不能被删除,否则会出错(大概是因为流在返回时是
//持续的而不是间断的
delete pBitmap;
delete jpg;
}
}
//---------------------------------------------------------------------------
 
我赞成用com写,其实只是函数的关系,这个不难吧,完全是数学的东西
 
千万不要用ACTIVEXFORM,不可能强迫用户调低安全性。
建议用JAVA APPLET,作饼图、柱型图应该算是最简单的应用了,
而且不存在安全性的问题。
 
不如拿isapi做,可以直接产生、传递图像,否则每次产生一个图片文件既麻烦又不准确,如果数据量变化较大时还根本不能用。

 
http://www.aspcn.com/
上有控件,及源码
 
斑竹帮我收回分数行么?
 
利用TChart生成BMP图片。或用Excel生成。
 
这里有100分是你的,快来
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1000104
 
接受答案了.
 
后退
顶部