Показать сообщение отдельно
Старый 17.07.2008, 13:15   #6  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от fialka Посмотреть сообщение
а можно строить диаграммы, гистограммы сразу из аксапты?
данные при выводе в excel объединяется по ячейкам в зависимости от условий, поэтому в шаблоне не очень удобно .
конечно можно этож COM )
вот кусочек метод живет в ComExcelDocument_RU
X++:
void addChart(int _workSheet,
                  BookMark _bookMark,
                  str _title,
                  str _newSheetName,
                  boolean _reverse = false)
{
    COM Charts, Chart, comRange;
    COM ChartTitle, Characters, SeriesCollection, Legend, Axes, MajorGridlines, Border, Trendlines;
    COM PlotArea, Interior, TickLabels, font;
    COM ActiveSheet;
    int i;
    str bookmark;
    ;

    if (! m_comDocument)
        throw error(strFmt("@DIS6401", this.getApplicationName()));

    Charts = m_comDocument.charts();
    Charts.Add();

    Chart = m_comDocument.ActiveChart();

    comRange = this.findRange(_bookMark, _workSheet);
    Chart.SetSourceData(comRange, 1);
    Chart.ChartType(65);

    SeriesCollection = Chart.SeriesCollection(1);
    SeriesCollection.ApplyDataLabels(1, 0, 0, 0, 0, 0, 1);
    Border = SeriesCollection.Border();
    Border.Weight(4);

    Chart.HasTitle(True);
    ChartTitle = Chart.ChartTitle();
    Characters  = ChartTitle.Characters();
    Characters.Text(_title);

    ChartTitle.AutoScaleFont(false);

    Chart.Name(_newSheetName);

    Chart.HasLegend(False);

    Axes = Chart.Axes(1); // Category
    Axes.HasMajorGridlines(1);
    Axes.HasMinorGridlines(0);
    Axes.MajorTickMark(3);
    Axes.MinorTickMark(2);
    Axes.MajorUnit(7);
    Axes.MajorUnitScale(0);

    TickLabels = Axes.TickLabels();
    TickLabels.NumberFormat('ДД.ММ');

    MajorGridlines = Axes.MajorGridlines();
    Border = MajorGridlines.Border();
    Border.LineStyle(-4118);

    Axes = Chart.Axes(2); // Value
    Axes.HasMajorGridlines(1);
    Axes.HasMinorGridlines(0);

    if (_reverse)
        Axes.ReversePlotOrder(1);

    MajorGridlines = Axes.MajorGridlines();
    Border = MajorGridlines.Border();
    Border.LineStyle(-4118);

    Trendlines = SeriesCollection.Trendlines();
    Trendlines.Add();

    PlotArea = Chart.PlotArea();
    Interior = PlotArea.Interior();
    Interior.ColorIndex(2);
}
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
За это сообщение автора поблагодарили: fialka (1).