菜单

指定查询日期范围(历史数据模式)

下载
1.资料取样历史数据模式,默认会显示当天采样数据,如下代码可按时间范围查询数据
/**
 * @brief 按时间范围查询
 * @param widget [资料取样控件]
 * @param sid [资料取样控件绑定的采样id]
 * @param str1 起始时间,格式 2025-01-02 12:03:04
 * @param str2 结束时间,格式 2025-01-02 13:03:04
 */
void refineSample(STTTable* widget, string sid, string str1, string str2) {
string tbl = StringUtil::snprintf("(SELECT * FROM SAMPLE_%s_V WHERE STIME>='%s' AND STIME<'%s') TT"
, sid.c_str()
, str1.c_str()
, str2.c_str());
TTableView* tv = (TTableView*)widget->getData();
tv->refine(tbl, "");
tv->drawData(true);
}
 
2.如需按指定时间段导出
/**
 * @brief    按时间范围查询
 * @param sid [资料取样控件绑定的采样id]
 * @param str1 起始时间,格式 2025-01-02 12:03:04
 * @param str2 结束时间,格式 2025-01-02 13:03:04
 */
void exportSample(string sid, string str1, string str2) {
    string basename = "SAMPLE_"+sid;
    //注意模拟器与屏的路径不一样
#if __arm__
    //参数1:数据库路径
    string pathdb = "/customer/prm/data/" + basename + ".db";
    //参数4:导出目标文件
    string pathcsv = "/vendor/udisk_sda1/export.csv";//U盘下的export.csv
#else
    //参数1:数据库路径
    string pathdb = "./data/"+ basename + ".db";
    //参数4:导出目标文件
    string pathcsv = "./data/export.csv";
#endif
    //参数2:数据库表名
    string tbname = basename + "_V";//这是采样表视图名
    //参数3: 要导出的内容,用sql语句
    string sql = StringUtil::snprintf("SELECT * FROM SAMPLE_%s_V WHERE STIME>='%s' AND STIME<'%s'"
            , sid.c_str()
            , str1.c_str()
            , str2.c_str());
    //参数5:返回错误值
    string err;
    //调用导出
    if(FileUtil::exportDB2CSV(pathdb, tbname, sql, pathcsv, err)) {
        cout<<"导出成功"<<endl;
    } else {
        cout<<"导出失败"<<endl;
    }
}
上一个
2.5.3 资料取样
下一个
2.5.4 事件显示
最近修改: 2025-06-18Powered by