labWindows CVI 的table主要用法.docx_第1页
labWindows CVI 的table主要用法.docx_第2页
labWindows CVI 的table主要用法.docx_第3页
labWindows CVI 的table主要用法.docx_第4页
labWindows CVI 的table主要用法.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LabWindows/CVI中table的主要用法2016年12月20日 狄阁老Table是在各种开发环境中一个很重要的控件,特别是在测试软件中,table是一个重要的结果显示控件,下面来介绍一下table的主要功能:(最后附有效果视频)一、要使用table首先需要插入行列,插入列的函数: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;i6;i+) SetTableColumnAttribute (panelHandle, PANEL_TABLE, i, ATTR_USE_LABEL_TEXT, 1);再设置列首名称:例如:15列的列名设置为测试项名称,测试值,理论值,单位,测试结果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), 290300); SetTableCellVal (panel, PANEL_TABLE, MakePoint(4, row), ); SetTableCellVal (panel, PANEL_TABLE, MakePoint(5, row), state);如果都是同一类型,可以用for循环写入:for(i=1;i6;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 #include #include #include #include tableExample.h#include toolbox.h/=/ Constants/=/ Types/=/ Static global variablesstatic int panelHandle;int flag=0;int sum=0,pass=0,fault=0,count=0,count1=0;float temp=0;/=/ Static functions/=/ Global variables/=/ Global functionsint 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;i6;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, 理论值); SetTableColumnAttribute (panelHandle, PANEL_TABLE, 4, ATTR_LABEL_TEXT, 单位); SetTableColumnAttribute (panelHandle, PANEL_TABLE, 5, ATTR_LABEL_TEXT, 测试结果);/设置table属性SetCtrlAttribute (panelHandle, PANEL_TABLE, ATTR_SCROLL_BARS, VAL_VERT_SCROLL_BAR);return 0;/ HIFN The main entry-point main (int argc, char *argv) int error = 0; /* initialize and load resources */ nullChk (InitCVIRTE (0, argv, 0); errChk (panelHandle = LoadPanel (0, tableExample.uir, PANEL);ini(); /* display the panel and run the user interface */ errChk (DisplayPanel (panelHandle); errChk (RunUserInterface ();Error: /* clean up */ DiscardPanel (panelHandle); return 0;/=/ UI callback function prototypes/ HIFN Exit when the user dismisses the CVICALLBACK panelCB (int panel, int event, void *callbackData, int eventData1, int eventData2) if (event = EVENT_CLOSE) QuitUserInterface (0); return 0;int CVICALLBACK OkCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:flag=flag;break;return 0;int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT: QuitUserInterface (0); break;return 0;int CVICALLBACK timer (int panel, int control, int event,void *callbackData, int eventData1, int eventData2) int row,i; char *state=合格;char data100=; float tempture;switch (event)case EVENT_TIMER_TICK: if(flag=-1) /新建一行 InsertTableRows (panelHandle, PANEL_TABLE, -1, 1, VAL_CELL_STRING); /获取行数 GetNumTableRows (panel, PANEL_TABLE,&row );/获取传感器温度值tempture=(float)Random(280, 320) ;Fmt (data, %f, tempture);if(tempture300)state=故障;/设置这一行五列数据 SetTableCellVal (panel, PANEL_TABLE, MakePoint(1, row), 传感器的温度值); SetTableCellVal (panel, PANEL_TABLE, MakePoint(2, row), data); SetTableCellVal (panel, PANEL_TABLE, MakePoint(3, row), 290300); SetTableCellVal (panel, PANEL_TABLE, MakePoint(4, row), ); SetTableCellVal (panel, PANEL_TABLE, MakePoint(5, row), state);/判断故障情况,如果是故障需要将字体设置为红色,否则设置为黑色if(strcmp (state,故障)=0) for(i=1;i6;i+) SetTableCellAttribute (panel, PANEL_TABLE, MakePoint (i, row), ATTR_TEXT_COLOR, VAL_RED); fault+; else for(i=1;i6;i+) SetTableCellAttribute (panel, PANEL_TABLE, MakePoint (i, row), ATTR_TEXT_COLOR, VAL_BLACK); pass+; sum=pass+fault;SetCtrlVal (panel, PANEL_NUMERIC, sum); SetCtrlVal (panel, PANEL_NUMERIC1, pass);SetCtrlVal (panel, PANEL_N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论