Introduction #
Chart linkage is the most common interactive feature in SmartChart: click one chart to auto-refresh others. Implemented via dataset “linkage settings” or by calling ds_setParam + ds_refresh in chart code.
Linkage Functions Quick Reference #
| Function | Description |
|---|---|
ds_setParam('param_name', value) |
Set parameter value |
ds_refresh(index) |
Refresh specified dataset |
ds_param('param_name') |
Get passed parameter value |
del filter_param['param_name'] |
Delete parameter (cancel linkage) |
Dataset Preparation #
- Write SQL in linked datasets using parameter syntax (see “Parameter Writing”):
select ... from tablename
/* where xxxx = '$param_name' */
Standard Method #
- To make chart #0 trigger linkage on other charts
- Open dataset #0’s editor, click the title area

- Enter the parameter configuration

- Click chart, check console (F12) for the value to pass, e.g.,
data.name

- Clicking the selected item again restores the original state
Use
ds_param('param_name')in chart editor to get passed parameter values
Advanced Custom Method #
myChart__name__.on('click', function(params){
let myparam = params.seriesName;
ds_setParam('param_name', myparam);
ds_setParam('param_name2', myparam2);
ds_refresh(3); // 3 = target chart index
});
ds_setParam('param_name', value)
// Auto-deletes parameter when value is empty, null, or 0
// Use encodeURIComponent if params contain special chars like &=
Cross-Report Drill #
myChart__name__.on('click', function (params) {
let myparam = `¶m={"param_name": "${params.seriesName}"}`;
let myurl='/echart/?type=target_report_name'+ myparam;
window.open(myurl,'_blank','toolbar=no,scrollbar=no,top=100,left=100,width=800,height=500');
});
Common Issues #
| Issue | Cause | Solution |
|---|---|---|
| Click not working | Param name mismatch with SQL | Check $param_name spelling |
| Duplicate triggers | Chart has auto-refresh | Add .unbind('click') before binding |
| Empty parameter | Param value is null/0 | ds_setParam auto-deletes, use string '0' |
| Cached data unchanged | Dataset has caching | Set cache time to 0 for parameterized datasets |