LabWindows/CVI中table的主要用法
2016年12月20日 狄阁老
Table是在各种开发环境中一个很重要的控件,特别是在测试软件中,table是一个重要的结果显示控件,下面来介绍一下table的主要功能:(最后附有效果视频)
一、要使用table首先需要插入行列,插入列的函数:
tabletable
1)int InsertTableColumns (int Panel_Handle, int Control_ID, int Column_Index, int Number_of_Columns, int Cell_Type);
例如:      InsertTableColumns (panelHandle, PANEL_TABLE, 1, 5, VAL_CELL_STRING);
上面是插入5列,每列为string类型;
2)int InsertTableRows (int Panel_Handle, int Control_ID, int Row_Index, int Number_of_Rows, int Cell_Type);
例如:InsertTableRows (panelHandle, PANEL_TABLE, -1, 1, VAL_CELL_STRING);
每次都是从最后一行插入新行;
二、设置列首:
可以双击table控件,设置列首,这个就固定死了,用代码实现还是比较自由可控的
要设置列首,需要将列首设置为可用状态:
SetTableColumnAttribute (panelHandle, PANEL_TABLE,columnindex, ATTR_USE_LABEL_TEXT, 1);
当有多列要设置,每列需要启用,用一个for循环启用,例如:
//启用列名,5列,用个循环将列名启动起来   
    for(i=1;i<6;i++)
        SetTableColumnAttribute (panelHandle, PANEL_TABLE, i, ATTR_USE_LABEL_TEXT, 1);
再设置列首名称:
例如:1~5列的列名设置为测试项名称,测试值,理论值,单位,测试结果
SetTableColumnAttribute (panelHandle, PANEL_TABLE, 1, ATTR_LABEL_TEXT, "测试项名称");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 2, ATTR_LABEL_TEXT, "测试值");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 3, ATTR_LABEL_TEXT, "理论值");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 4, ATTR_LABEL_TEXT, "单位");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 5, ATTR_LABEL_TEXT, "测试结果");
三、设置垂直scroll,
SetCtrlAttribute (panelHandle, PANEL_TABLE, ATTR_SCROLL_BARS, VAL_VERT_SCROLL_BAR);
四、当table满行时,显示最后插入的一行
//获取行数
GetNumTableRows (panel, PANEL_TABLE,&row );
SetCtrlAttribute (panel, PANEL_TABLE, ATTR_FIRST_VISIBLE_ROW, row);
其中,row为最后一行的行号,
五、写入数据
    //设置这一行五列数据
    SetTableCellVal (panel, PANEL_TABLE, MakePoint(1, row), "传感器的温度值");
    SetTableCellVal (panel, PANEL_TABLE, MakePoint(2, row), data); 
    SetTableCellVal (panel, PANEL_TABLE, MakePoint(3, row), "290~300"); 
    SetTableCellVal (panel, PANEL_TABLE, MakePoint(4, row), "℃"); 
    SetTableCellVal (panel, PANEL_TABLE, MakePoint(5, row), state);
如果都是同一类型,可以用for循环写入:
for(i=1;i<6;i++)
SetTableCellVal (panel, PANEL_TABLE, MakePoint(i, row), “值”);
界面设计:
运行后的静态效果:
代码设计:
//==============================================================================
//
// Title:      tableExample
// Purpose:    A short description of the application.
//
// Created on:  2016-12-20 at 19:45:14 by 狄阁老.
// Copyright:  . All Rights Reserved.
//mailbox:*****************
//QQ:273067527
//==============================================================================
//==============================================================================
// Include files
#include <formatio.h>
#include <ansi_c.h>
#include <cvirte.h>   
#include <userint.h>
#include "tableExample.h"
#include "toolbox.h"
//==============================================================================
// Constants
//==============================================================================
// Types
//==============================================================================
// Static global variables
static int panelHandle;
int flag=0;
int sum=0,pass=0,fault=0,count=0,count1=0;
float temp=0;
//==============================================================================
// Static functions
//==============================================================================
// Global variables
//==============================================================================
// Global functions
int ini()
{
    int i=1;
    //插入5列
      InsertTableColumns (panelHandle, PANEL_TABLE, 1, 5, VAL_CELL_STRING);
    //设置列宽
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 1, ATTR_COLUMN_WIDTH, 200);
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 2, ATTR_COLUMN_WIDTH, 100);
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 3, ATTR_COLUMN_WIDTH, 150);
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 4, ATTR_COLUMN_WIDTH, 100);
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 5, ATTR_COLUMN_WIDTH, 150);
   
    //启用列名,5列,用个循环将列名启动起来   
    for(i=1;i<6;i++)
        SetTableColumnAttribute (panelHandle, PANEL_TABLE, i, ATTR_USE_LABEL_TEXT, 1);
   
    //设置列名
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 1, ATTR_LABEL_TEXT, "测试项名称");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 2, ATTR_LABEL_TEXT, "测试值");
    SetTableColumnAttribute (panelHandle, PANEL_TABLE, 3, ATTR_LABEL_TEXT, "理论值");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。