




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FlexCell控件例子FlexCell控件另一个比较强的特点是支持多种文件格式,这节我们来正式开始使用该控件。 我做了个类似FlexCell控件自带演示程序的界面,使用CVI来使用实现该控件的所有操作。 1、添加菜单 从本节开始,我们将全面进行该控件的操作。菜单的制作方法我这里就不再说明,不知道的朋友可以参考我的视频教程,其中有菜单制作的所有过程。 2、格式说明 FlexCell控件支持自己格式的导入导出(.Cel)。XML文件的导入。EXCEL格式的导出,HTML格式的导出,XML格式的导出,CSV文件的导出。可以发现控件不能支持读取EXECL文件是一个比较遗憾的地方。所有的这些功能控件都已经为我们封装好了函数,无需我们CVI来操心。 /新建文件void CVICALLBACK NewFile (int menuBar, int menuItem, void *callbackData, int panel) int Row,Colunm; /得到当前行列数 FlexCell_GridGetRows (FlexTable, NULL, &Row); FlexCell_GridGetCols (FlexTable, NULL, &Colunm); FlexCell_GridNewFile (FlexTable, NULL, NULL); /设置行列数 FlexCell_GridSetRows (FlexTable, NULL, Row); FlexCell_GridSetCols (FlexTable, NULL, Colunm); 函数名称大家可以自己修改。这个函数比较有用,当你的控件已经进行了大量的读取和赋值后此时如果要清除所有单元格中的数据我们上一节使用过这种方法: /设置为100行 FlexCell_GridSetRows (FlexTable, NULL, 101); /选择处理的行列范围 FlexCell_GridRange (FlexTable, NULL, 1, 1, 100, 10, FlexTableRange); /删除现有行 FlexCell_RangeDeleteByRow (FlexTableRange, NULL); /添加新的100行 FlexCell_GridSetRows (FlexTable, NULL, 101); 我们先心中当前所有的单元格,将它们删除,然后再添加同样的行数。这个方法在行列数多时会极大影响速度。现在我们使用控件提供的新建文件的方法来实现。 FlexCell_GridNewFile (FlexTable, NULL, NULL);这个函数不需要任何其它参数,给出控件的CA对象句柄即可。此时大家可以看到控件马上恢复为添加控件时初始状态。但是这样做会自己恢复为控件默认的5列10行。这和我们在CVI定义的100行10列不一样。每个用户也都有自己的初始数量。因此,我们在使用该函数前先得到下目前控件的行列数量,在新建文件后马上设置回来。这里的新建文件和WORD中新建文件是一样的,它之所以就像清除所有单元格是因为该控件是一个单文档界面,所以新建文件就等于清除了现在的内容直接显示为一个新的表格。在多文档形式中这样新建会出现一个新的窗口,当前的窗口内容没有变化。/打开文件void CVICALLBACK OpenedFile (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridOpenFile (FlexTable, NULL, , NULL); 该控件给我们高度封装了很多函数,我们后面使用的函数都是如此,这个打开文件的函数也不给任何参数,给了一个空字符串,函数定义如果给的是空字符串函数会自己先调用API的打开文件对话框(CVI中函数为FileSelectPopup)电你选择好需要打开的文件后函数自己处理将你选中的文件打开。省去了我们CVI打开文件的很多代码。当然你可以直接给函数传递一个文件路径“c:1.txt。注意该函数打开的文件只能是CEL文件(控件自己的格式)。且为十六进制加密文件。一般不能破解。/保存文件void CVICALLBACK SaveFile (int menuBar, int menuItem, void *callbackData, int panel) char *FileName; /得到文件路径 FlexCell_GridGetFilename (FlexTable, NULL, &FileName); if (strlen(FileName)=0)/如果是新文件 FlexCell_GridSaveFile (FlexTable, NULL, ,NULL ); else/如果是打开的文件 FlexCell_GridSaveFile (FlexTable, NULL, FileName,NULL ); 保存文件也可以直接使用一个函数,传递空字符串,函数会先打开一文件保存对话框。这里我们不能这样使用,因为我们有两种情况:一个新文件、一个打开的文件。所以要分别对待。对于新文件我们可以直接使用FlexCell_GridSaveFile (FlexTable, NULL, ,NULL );对于已经打开的文件我们应该直接保存在该文件中。FlexCell_GridSaveFile (FlexTable, NULL, FileName,NULL );控件为我们提供了一个函数来得到上次打开或保存的文件路径FlexCell_GridGetFilename (FlexTable, NULL, &FileName);如果我们打开了一个c:1.txt这个字符串会保存到GridGetFilename中。如果新建的文件,就返回空字符串。 /另存为文件void CVICALLBACK SaveAsFile (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridSaveFile (FlexTable, NULL, ,NULL ); /导入XML文件void CVICALLBACK ImportFile (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridLoadFromXML (FlexTable, NULL, , NULL); /导出EXCEL文件void CVICALLBACK ExportXLS (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridExportToExcel (FlexTable, NULL, , VTRUE, VTRUE, NULL); /导出CSV文件void CVICALLBACK ExportCSV (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridExportToCSV (FlexTable, NULL, , VFALSE, VFALSE, NULL); /导出XML文件void CVICALLBACK ExportXML (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridExportToXML (FlexTable, NULL, , NULL); /导出HTML文件void CVICALLBACK ExportHTML (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridExportToHTML (FlexTable, NULL, , NULL); 这些函数同样不需要给任何其它参数,传递空字符串,函数自己打开一个对话框选择文件。 /打印设置void CVICALLBACK PageSet (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridPrintDialog (FlexTable, NULL, NULL); /打印预览void CVICALLBACK PrintView (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridPrintPreview (FlexTable, NULL, CA_DEFAULT_VAL);/打印void CVICALLBACK PrintOut (int menuBar, int menuItem, void *callbackData, int panel) FlexCell_GridDirectPrint (Fle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技师考试题库及答案详解
- 森林防灭火知识培训简报课件
- 森林防火知识培训课件
- 梭菌基础知识培训课件
- 2025年软件架构师面试攻略与热点预测题解析
- 《招标采购专业实务》模拟试题及答案
- 2025年药品安全操作规程题解
- 2025驾照检验考试试题及答案
- 2025年医生招聘考试题库及答案解析
- 2025年政府公务员考试模拟试题及标准答案详解
- 担保合同与保证合同(标准版)
- 第1课+中国古代政治制度的形成与发展【课件】-2025-2026学年高二上学期历史统编版(2019)选择性必修1
- 医学检验技术职业道德
- 2025年全国“质量月”企业员工全面质量管理知识答题(含答案)
- 2025年初级工程测量员考试试题(附答案)
- 皮肤 T 细胞淋巴瘤诊疗指南(2025年版)
- 2025年高压电工作业操作证考试题库及答案含答案
- 中职学校就业管理办法
- 医用高压氧舱安全管理与应用规范
- 广西个体医生管理办法
- 绘画种类介绍课件图片
评论
0/150
提交评论