• 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();
    }

  • 相关阅读:
    log4net的使用
    数据库概念及构成
    基于C#WPF框架——动画
    基于C# WPF框架的贪吃蛇
    使用Teigha.net读取CAD的常用功能模块
    Teigha.net实体属性注释
    .net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式
    Delphi解析修改Json文件,基于superobject.pas(ISuperObject)
    C++结构体与Delphi结构体相互传参,结构体中包含结构体的嵌套,数组指针
    C++ Json解析CJsonObject的详细使用
  • 原文地址:https://www.cnblogs.com/lingdanglfw/p/1282144.html
Copyright © 2020-2023  润新知