EBSILON®Professional Online Documentation
EbsScript 脚本 / 接口单元 / 时间序列
本主题中
    时间序列
    本主题中

    时间序列

    "时间序列"接口单元,用来从 EbsScript 访问时间序列计算。

    在时间序列中,可以在字段 B4 中输入命令来执行 EbsScript,并选择一个在其中执行计算的工况。

    语法是:

    ebsscript:"EbsScript-Name";profile:Profile-Id

     

    名称

    目的

    参数

    返回值

    例子

     

    tsGetTableCount

    返回模型中创建的时间序列的数量

    无参数

    INTEGER: 模型中创建的时间序列的数量

    tsAddTable

    创建一个新的时间序列

    无参数

    INTEGER: 新创建的时间序列的索引

    tsRemoveTable

    删除具有指定索引的时间序列

    输入:

    INTEGER: 时间序列的索引

    BOOLEAN: true,如果执行成功,否则为假

    tsGetName

    返回具有指定索引的时间序列的名称

    输入:

    INTEGER: 时间序列的索引

    STRING: 时间序列的名称

    tsSetName

    设置具有指定索引的时间序列的默认名称

    输入:

    1.INTEGER: 时间序列的索引

    2.STRING: 名称

    BOOLEAN: true,如果执行成功,否则为假

    tsGetRowCount

    返回具有指定索引的时间序列的行数(?)

    输入:

    INTEGER: 时间序列的索引

    INTEGER: 行数

    tsSetRowCount

    设置具有指定索引的时间序列所需的行数(?)

    输入:

    1.INTEGER: 时间序列的索引

    2.INTEGER: 所需的行数

    BOOLEAN: true,如果执行成功,否则为假

    tsGetColumnCount

    返回具有指定索引的时间序列的列数(?)

    输入:

    INTEGER: 时间序列的索引

    INTEGER: 列数

    tsSetColumnCount

    设置具有指定索引的时间序列所需的列数(?)

    输入:

    1.INTEGER: 时间序列的索引

    2.INTEGER: 所需的列数

    BOOLEAN: true,如果执行成功,否则为假

    tsGetCell

    返回具有指定索引的时间序列中的具有指定行和列索引的单元格的内容(?)

    输入:

    1.INTEGER: 时间序列的索引

    2.INTEGER: 单元格的行索引

    3. INTEGER: 单元格的列索引

    VARIANT: 单元格的内容

    tsSetCell

    在具有指定索引的时间序列中,将具有指定行和列索引的单元格的内容设置为所需的数据内容

    输入:

    1.INTEGER: 时间序列的索引

    2.INTEGER: 单元格的行索引

    3.INTEGER: 单元格的列索引

    4.const VARIANT: 期待的数据内容

    BOOLEAN:true,如果执行成功,否则为假

    tsCalculate

    对指定索引的时间序列的可选行进行计算

    输入:

    1.INTEGER: 时间序列的索引

    2.INTEGER=0: 必须开始计算的行的编号

    3.INTEGER=-1: 必须开始计算的行的编号

    BOOLEAN: true,如果执行成功,否则为假

    tsDeleteAutoLines

    删除之前计算中插入的所有行(B 列中的 x)。

    输入:

    1.INTEGER: 时间序列的索引

    BOOLEAN: true,如果执行成功,否则为假

    tsInitHeader

    用指定的索引初始化时间序列的标题单元格

    输入:

    1.INTEGER: 时间序列的索引

    BOOLEAN: true,如果执行成功,否则为假

    tsGenerateTimes

    用指定的索引创建时间序列中带有时间戳的单元格

    输入:

    1.INTEGER: 时间序列的索引

    2.REAL: 开始时间

    3.REAL: 结束时间

    4.REAL: 时间间隔

    5.BOOLEAN; 如果必须删除多余的行,则为 true,否则为 false

    BOOLEAN: true,如果执行成功,否则为假

    从基于"0"的索引"start_index"开始,搜索时间序列中第一次出现的某个名称(区分大小写),并返回时间序列的索引,如果没有找到该名称则返回 -1:

    名称

    目的

    参数

    返回值

    例子

     

    tsFindTableIndex

    如上

    输入:

    1.STRING: 名称

    2,BOOLEAN=false:case_sensitive

    3.INTEGER=0: start_index

    INTEGER: 时间序列的索引

     

    在时间序列计算过程中,下面函数返回时间序列的索引和当前的计算行:

    名称

    目的

    参数

    返回值

    例子

     

    tsGetCurrentPosition

    如上

    输出:

    1: INTEGER: var 索引

    2: INTEGER: var 行

    BOOLEAN: true,如果执行成功,否则为假

     

    辅助函数,以实现类似 Excel 的坐标来处理单元格:

     

    名称

    目的

    参数

    返回值

    例子

     

    tsIndexColumnToXlColumn

    将默认的列索引转换为 Excel 的列名

    输入:

    1.INTEGER: 时间序列中的列索引

    输出:

    2.STRING: Excel 中的列名称

    BOOLEAN: true,如果执行成功,否则为假

    tsXlColumnToIndexColumn

    将默认的 Excel 列名转换为列索引

    输入:

    1.STRING: Excel 中的列名称

    输出:

    2.INTEGER: 时间序列中的列索引

    INTEGER: 在给定的 STRING 中读取的字符数量 

    tsRowColumnToXlPos

    在给定的 STRING 中读取的字符数量

    输入:

    1.INTEGER: 时间序列中的列索引

    2.INTEGER: 时间序列中的列索引

    输出:

    3.STRING: Excel 的位置

    BOOLEAN: true,如果执行成功,否则为假

    tsXlPosToRowColumn

    将默认的 Excel 位置作为 STRING(例如,A26)计算到时间序列中的列和行索引中

    输入:

    1.STRING: Excel 的位置

    输出:

    2.INTEGER: 时间序列中的行索引

    3.INTEGER: 时间序列中的列索引

    BOOLEAN: true,如果执行成功,否则为假

    tsGetCellXl

    将默认的 Excel 位置作为 STRING(例如,A26)计算到时间序列中的列和行索引中,并为具有指定索引的时间序列调用 tsGetCell 函数

    输入:

    1.INTEGER: 时间序列的索引

    2.STRING: Excel 的位置

    VARIANT: Content of the cell

    tsSetCellXl

    将 Excel 默认的位置作为STRING(例如,A26)计算到时间序列中的列和行索引中,并为具有指定的索引的时间序列调用 tsSetCell 函数

    输入:

    1.INTEGER: 时间序列索引

    2.STRING: Excel 的位置

    3.const VARIANT: 期待的单元格内容 

    BOOLEAN: true,如果执行成功,否则为假

    应用参见


    Ebsilon-菜单 : EbsScript-编辑器 --> EbsScript --> 打开接口单元 --> 时间序列

     

    Unit @TimeSeries;

    interface

    function tsGetTableCount:integer; internal; function tsAddTable:integer; internal;
    function tsRemoveTable( index:integer ):boolean; internal; function tsGetName( index:integer ):string; internal;
    function tsSetName( index:integer; name:string ):boolean; internal; function
    tsGetRowCount( index:integer ):integer; internal; function tsSetRowCount( index:integer; count:integer ):boolean; internal;
    function tsGetColumnCount( index:integer ):integer; internal;
    function tsSetColumnCount( index:integer; count:integer ):boolean; internal;
    function tsGetCell( index:integer; row:integer; column:integer ):variant; internal;
    function tsSetCell( index:integer; row:integer; column:integer; const data : VARIANT ):boolean; internal;
    function tsCalculate( index:integer; first_row:integer = 0; last_row:integer = -1 ):boolean; internal;
    function tsDeleteAutoLines( index:integer ):boolean; internal; function tsInitHeader( index:integer ):boolean; internal;
    function tsGenerateTimes( index:integer; start_time:real; end_time:real; interval:real; delete_remaining_rows:boolean ):boolean; internal;

     

    // 搜索表,以寻找第一次出现的给定名称(无论是否区分大小写),从基于零的索引 "start_index "开始。

    // 返回表的索引,如果没有找到名字则返回 -1

    function tsFindTableIndex( name:string; case_sensitive:boolean = false; start_index:integer = 0 ):integer; internal;

    // 在时间序列计算过程中,下面函数返回时间序列的索引和当前计算的行。

    function tsGetCurrentPosition( var index:integer; var row:integer ):boolean; internal;

    // 辅助函数,允许使用类似 Excel 的坐标对单元格进行定位

     

    function tsIndexColumnToXlColumn( column:integer; var pos:string ):boolean;
    function tsXlColumnToIndexColumn( pos:string; var column:integer ):integer;
    function tsRowColumnToXlPos( row:integer; column:integer; var pos:string ):boolean;
    function tsXlPosToRowColumn( pos:string; var row:integer; var column:integer ):boolean;
    function tsGetCellXl( index:integer; pos:string ):variant;
    function tsSetCellXl( index:integer; pos:string; const data : VARIANT ):boolean;