lingdanglfw(DAX)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Graphics In Report

download and install ChartDirector for ASP/COM/VB

Add a Bitmap in Report and set method = calcBarchart

 

Add a method calcBarchart in Report

display container calcBarchart()
{
    container con;
    COM cd = new COM ("ChartDirector.API");
    COM c, xAxis, yAxis, layer;
//    COM
    int samples = 1, maxSamples = 12;
    image img = new image();
    array data = new array(types::real);
    array labels = new array(types::String);

    str filename;
    BinData binData = new BinData();
    container   imageContainer;
    BS_SAL_T026 tmpTBL;
    ;


    while select maxof(bsYearMonth),maxof(bsMonth),
         sum(bsDSALContractTotalAmount) from tmpTBL
    group by bsYearMonth
    where tmpTBL.bsYear == YrEnd
    {

        while(samples < str2int(tmpTBL.bsMonth))
        {

            data.value(samples, 0.0);
            labels.value(samples, strRFix(int2str(samples),2,"0"));
            samples = samples + 1;
        }

        data.value(samples, tmpTBL.bsDSALContractTotalAmount);
        labels.value(samples, tmpTBL.bsMonth);

        samples = samples + 1;
    }
    while(samples < 13)
    {

        data.value(samples, 0.0);
        labels.value(samples, strRFix(int2str(samples),2,"0"));
        samples = samples + 1;
    }

    //data.value(samples, 0.0);
    //creditMax.value(samples, tmpTBL.bsDSALContractTotalAmount);
    //labels.value(samples, "A");
    // First, create a suitably sized BarChart
    c = COM::createFromVariant(cd.XYChart(500, 320));

    c.setDefaultFonts("simsun.ttc","simsun.ttc","simsun.ttc","simsun.ttc");
//    c.setFontStyle('verdana');
    // Set the plotarea rectangle to start at (100, 40) and of
    // 280 pixels in width and 240 in height
    c.setPlotArea(100, 40, 280, 240);

    // Add a legend box at (400, 100)
    c.addLegend(400, 100);

    // Add a title to the chart
    c.addTitle("订货");

    // Set the labels on the x axis
    xAxis = c.xAxis();
    xAxis.setLabels(labels);
    xAxis.setTitle("月");

    yAxis = c.yAxis();
    yAxis.setTitle("金额");

    layer = c.addBarLayer(data, -1, "金额");
    //layer = c.addBarLayer(creditMax, -1, "CreditMax");
    layer.set3D();

    // output the chart
    filename = winApi::getTempFilename(winApi::getTempPath(), "AXA") + ".jpg";
    c.makeChart(filename);
    //img.loadFile(filename);
    binData.loadFile(filename);
    imageContainer = binData.getData();
    if (imageContainer)
    {
        img = new Image();
        img.setData(imageContainer);
    }
    winAPI::deleteFile(filename);


    return img.getData();
}

posted on   lingdanglfw  阅读(267)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示