Page 1 of 1

Dashboard: Fill chart with static data (without external data source)

Posted: Wed Oct 15, 2025 1:13 pm
by Steff23
Hello,

I am working with Stimulsoft Dashboards and I would like to fill a chart with data without using any external data source (SQL, CSV, Excel, etc.).
Since Business Objects are not supported in Dashboards, I am looking for a way to use an internal/static data source directly inside the report.

My questions:
1. Is there a way to create an internal data source in the Designer and enter values that can also be inserted via Copy & Paste (instead of typing each cell one by one)?
2. If not, how can I create a DataTable or something similar in code and register it as a data source for the Dashboard, so that I can select it in the chart?
3. Do I always need to call report.Dictionary.Synchronize() after report.RegData(...) to make the fields visible in the Dashboard?

Goal:
I just want to display a chart with static values (e.g. Months + Sales) – completely without any external data connection, only with internal data defined in the report or in code.

Thanks in advance for any tips or example code!

Best regards,
Steffen

Re: Dashboard: Fill chart with static data (without external data source)

Posted: Wed Oct 15, 2025 8:38 pm
by Lech Kulikowski
Hello,

> I just want to display a chart with static values (e.g. Months + Sales) – completely without any external data connection, only with internal data defined in the report or in code.

In this case, you can enter data manually.

Thank you.

Re: Dashboard: Fill chart with static data (without external data source)

Posted: Thu Oct 16, 2025 8:30 am
by Steff23
Thanks!

Manual entry works for very small datasets, but it is cell-by-cell and does not support block paste (Copy & Paste).

My goal is to work completely without any database or other external data source, but still be able to process larger amounts of data in a chart in the Dashboard.

Is there any built-in way in Dashboards to insert or paste a whole block of data directly into a manual data source, so that larger datasets can be handled without relying on external files or databases?

I Use this in a Report:

Code: Select all

// CSV aus Variable "InputCsv" lesen
string csv = "";
var v = this.Dictionary.Variables["InputCsv"];
if (v != null) { csv = v.ValueObject as string; if (csv == null) csv = v.Value; }
csv = (csv ?? "").Replace("\r", "");
string[] lines = csv.Split('\n');
if (lines.Length < 2) { this.RegBusinessObject("Energie", new object[0]); return; }

// Header -> Indizes für Datum, MK, TP
int iD = -1, iMK = -1, iTP = -1;
string[] head = lines[0].Split(';');
for (int i = 0; i < head.Length; i++) {
string n = head[i].Trim().Trim('"');
    if (n == "Datum") iD = i; else if (n == "MK") iMK = i; else if (n == "TP") iTP = i;
}
if (iD < 0 || iMK < 0 || iTP < 0) { this.RegBusinessObject("Energie", new object[0]); return; }

// Summieren pro Datum
var de = new System.Globalization.CultureInfo("de-DE");
var map = new System.Collections.Generic.Dictionary<System.DateTime, decimal[]>(); // [0]=MK, [1]=TP

for (int r = 1; r < lines.Length; r++) {
string line = lines[r];
    if (string.IsNullOrWhiteSpace(line)) continue;
string[] c = line.Split(';');
int need = iD; if (iMK > need) need = iMK; if (iTP > need) need = iTP;
    if (c.Length <= need) continue;

    // Datum
System.DateTime d;
    if (!System.DateTime.TryParse(c[iD].Trim().Trim('"'), de, System.Globalization.DateTimeStyles.None, out d))
        continue;

    // MK
decimal mk = 0m;
string sMK = c[iMK].Trim().Trim('"');
bool ok = decimal.TryParse(sMK, System.Globalization.NumberStyles.Number, de, out mk);
    if (!ok) ok = decimal.TryParse(sMK, System.Globalization.NumberStyles.Number,
                                   System.Globalization.CultureInfo.InvariantCulture, out mk);

    // TP
decimal tp = 0m;
string sTP = c[iTP].Trim().Trim('"');
    ok = decimal.TryParse(sTP, System.Globalization.NumberStyles.Number, de, out tp);
    if (!ok) decimal.TryParse(sTP, System.Globalization.NumberStyles.Number,
                              System.Globalization.CultureInfo.InvariantCulture, out tp);

decimal[] arr;
if (!map.TryGetValue(d, out arr)) { arr = new decimal[2]; map[d] = arr; }
    arr[0] += mk;  // MK
    arr[1] += tp;  // TP
}

// In BO-Form bringen
object[] agg = new object[map.Count];
int j = 0;
foreach (System.Collections.Generic.KeyValuePair<System.DateTime, decimal[]> kv in map)
    agg[j++] = new { Datum = kv.Key, MK = kv.Value[0], TP = kv.Value[1] };

// Registrieren (BI-Designer). In Plano ggf. bo.BusinessObject = agg; verwenden.
this.RegBusinessObject("Energie", agg);
That only works in a report. I need it in a dashboard as well.

Re: Dashboard: Fill chart with static data (without external data source)

Posted: Fri Oct 17, 2025 10:35 am
by Lech Kulikowski
Hello,

> Is there any built-in way in Dashboards to insert or paste a whole block of data directly into a manual data source, so that larger datasets can be handled without relying on external files or databases?

Unfortunately, no.

Thank you.

Re: Dashboard: Fill chart with static data (without external data source)

Posted: Fri Oct 17, 2025 11:43 am
by Steff23
ok Thank you

Re: Dashboard: Fill chart with static data (without external data source)

Posted: Mon Oct 20, 2025 7:11 am
by Lech Kulikowski
Hello,

You are welcome.