在PB里添加控件里面添加OLE控件时,当点击到第三标签程序直接崩溃系统用久了,各种安装和卸载操作,造成系统里的某些dll关联错误,powerbuer9.插入ole时就会出错,严重影响了使用,今天写了一个程序,用于检查哪个com组件出问题了。
2023/7/13 12:11:05 37KB ole
1
2.5主要变动:1.重要改进:新版本中Delphi下的VCL控件已经比较完善,封装良好,与Delphi无缝连接,改变了旧版中需要将Dataset中的数据复制到报表引擎中的实现方式,通过模拟ADO接口的方式直接支持BDE/ClientDataset/等非ADO方式的Dataset,不需要考虑太多的COM方面的因素,强烈建议Delphi的开发者直接使用该VCL控件。
使用VCL控件编译的程序发布时,将AcReport.dll和您的EXE放在同一个文件夹下一起发布即可,不需要运行RegSvr32来注册控件,VCL中的代码会自动注册该控件。
2.完善文本控制方式(在设计器界面上增加了此项菜单):1).当文本控制设置为自动适应单元格(自动缩放字体)时,选择上对齐方式时,也能自动换行。
2)当文本控制设置为截断字符时,支持自动换行,保持单元格的高度不变,在某些特殊应用中,不管文本如何变化,可以保持表格的形状不变。
3.增加了OnSaveReport事件,当用户在设计器中点击“保存”按扭时,会触发此事件,程序可以响应此事件执行自定义保存,例如可以将报表保存到数据库中,或者返回一个信息给设计器用户。
4.直接支持ADO.net中的Dataset和DataTable对象,不需要再通过CustDataBuiler对象来转换,大大提高了在.net下的运行速度。
(需要引用AcNetUtils.dll,具体使用方法请参考Demo)代码示例://Dataset://2.5以前的版本需要将Ado.net下datatable在AC中copy一个复本,速度比较慢//AcReport.AcUtils.CopyDatasetToAcRptEngine(mDataset,mac,false);//新版本的处理方式,通过ADO-ADO.net适配器的方式直接访问DbAdapter.FillDatasetToAC(mDataset,mac);//DataTable:mDataset.Tables["zlemployee"].TableName="雇员档案";AcReport.AcUtils.CopyTableToAcRptEngine(mDataset.Tables["雇员档案"],mac,false);//重新加入一个表到AcReport(旧版本方式)//在2.5以后的版本中,可以用如下的方式将ADO.net的DataTable对象通过AcRecordsetAdapter转换为ADO接口的方式直接加入到AcEngine,//这样做就不需要在AC中复制一个复本,大大提高的速度。
AcRecordsetAdapterRecordAdp=newAcRecordsetAdapter(mDataset.Tables["雇员档案"]);mac.AddNetAdoData("雇员档案",RecordAdp);//以上两行也可以直接调用AcNetUtils类库里提供的现成方法(效果是一样的):AcNetUtils.DbAdapter.FillDataTableToAC(mDataset.Tables["雇员档案"],mac);5.可拖动对象设计功能增强6.支持条码Code128AutoACReport简介AnycellReport(简称ACReport)是一款中国式报表组件,是国内最早的基于表格,支持图文混排、公式和脚本的中国式报表工具之一。
就如AnycellReport的名称那样,灵活强大的表格功能一直是ACReport区别于其它软件或控件最显著的特征之一,ACReport表格取消了传统表格概念中“列”的概念,每一行上的单元格数量可以不等,且可以自由活动,勿须上下对齐,在制作复杂的中国式报表时可以避免很多不必要的合并拆分操作,制作表格更加方便和随心所欲,并且省时省力。
ACReport单元格支持多种丰富的形态,例如格式化文本、图片、图表、条码、OLE容器等。
ACReport的一些基本特点:1.独具特色的表格,风格与Word表格相似,但可以做出比Word或Excel更灵活的表格来。
2.功能全面、专业的中国式报表设计器,中国用户更易于学习和接受。
3.支持多种单元格样式,可以打印图像、图表(直方图、折线图等)、Rich文本、条形码、中式财务帐薄、支持在报表中嵌入Word、Excel文档等。
4.强大的计算和合计功能。
内置表达式解析系统和函数库。
5.可扩充性,可以在应用程序中给报表引擎扩充函数库、报表样式和单元格样式。
6.支持多种报表样式,如清单式、分组、交叉表、以及子报表
2023/6/13 6:34:58 21.36MB ACReport Anycell 中国式报表 2.5
1
行使excel读PLC归档数据,读取SQL数据库内容
2023/4/20 10:45:53 277KB SQL PLC
1
COM/OLE是微软法度圭表标准方案的弥留方式,突破了传统的进程式方案进入了组件式方案的期间。
COM/OLE外面所波及的学识体系极其庞大,要学习它必需一步步抱残守缺。
本套资料除了提供这方面的学识,还附带有一步步进阶的例子。
之后也方案在自己的博客中一步步探究外面的内容,分享自己的心患上
2023/4/11 18:15:45 4.84MB COM/OLE学习资料
1
总体行使Catia的OLE接口开拓的小法度圭表标准,反对于CatiaV5R14及以上版本,使用方式约莫,解压后运行exe就可,法度圭表标准能自动启动CATIA法度圭表标准并天生齿轮
2023/3/26 3:16:14 115KB Catia 齿轮
1
程序中使用ACCESS数据库来保存数据,使用LabSQL工具包来连接数据库,打开之前请确认安装了这个工具包。
程序一运行时会先弹出密码登录系统,用户名和密码都为“vihome”。
这个程序实现的功能或者说使用到的知识点还是比较多的,主要有以下几种:1,简单的密码登录。
之前已经上传过一个密码登录的程序了,这里只是很简单的一个登录判断,有些会员不了解怎么样从密码程序到主程序的转换,这里是直接调用,如果在密码登录时选择取消,则通过输出错误的方法使主程序不执行而直接退出。
2,简单的错误处理。
会对错误进行提示,发生错误时用户可以选择继续或停止,如果在调试时记录一些经常发生的错误并添加到错误处理程序中,就可以有针对性地进行提示,并对应提出解决方法,这样程序就健壮一些。
3,生产-消费者结构数据采集和保存之间使用生产-消费者结构,二个循环之间通过队列来传递数据,这里还是比较简单的了,只是设置每十个数据作为一组进行保存,实际上使用中有些是需要根据时间来保存的,这些需要自己编程处理一下。
4,通过局部变量或通知来停止并行的循环由于要响应用户菜单操作或其它操作,使用并行循环的结构,这样二者之间需要同步停止,程序里面是使用通知来同步循环的停止的。
5,可以从数据采集卡中采集数据,也可以由软件模拟产生。
考虑到好多会员朋友并没有数据采集卡,程序里面可以设置采集的数据由软件模拟产生,在参数设置的系统参数设置里面,将“实际采集?”选择为“模拟采集”即可,软件一样可以正常运行,数据一样会保存,如果有数据采集卡的,也一样可以从数据采集卡中采集数据。
由于程序不太好,所以采样率和通道号都被固定了,免得出错。
程序中使用到了DAQmx8.5驱动程序,里面也有一些相关的DAQ的VI,如果你没安装DAQmx的话就有一些DAQ的VI找不到,导致程序没有办法运行,可以手动将这些找不到的VI删除掉或者使用禁用结构禁止掉,而在在程序中“参数设置”界面上的“系统参数”那里设置“模拟采集”即可,这样会在软件中模拟采集的数据,其它程序都可以正常运行。
如果装了DAQmx但没有数据采集卡,也要设置成模拟采集,这样程序才能正常运行,否则会出现找不到数据采集卡的报错。
6,波形图表双坐标显示从下图中可以看出四个通道的波形图显件都有二个Y轴,而且这二个Y轴随时都是同步的,这个是通过属性节点来实现的,将第一条Y轴的值写到第二条Y轴上来实现。
7,数据保存到数据库。
之前在常用VI资源区上传过数据写入到数据库的例子,这里的稍微有点不同,将四个通道的数据组成一个字符串(以空格间隔开)后一起写入到一个文本字段下,因为ACCESS的文本字段最长只能有255个字符,所以程序中以十个采样点保存一次,采样率也设置为10。
不知道OLE对象可不可以存储长字符串,如果是在MySQL中是可以保存为BLOB字段的,关于这些可以查找一下对应的资料,这里只是作个演示。
8,控件随窗格缩放程序中的“专利信息.vi”中有这个功能,但这个功能是要在某一个(只有一个)控件占界面绝大部分时才比较好用,然后设置这个控件随窗格缩放,其它控件不需要缩放,这时效果就比较好一点。
如果界面上有二个以上的表格,这个方法就不行了。
9,其它一些功能,比如菜单的禁用/启用、快捷键的实现(通过菜单)、在子程序中修改主界面上的控件值(通过“值”属性节点)等。
程序中的缺点:A,不管是模拟测试还是实际用数据采集卡设置,保存到数据库中时间信息都是不太准了,都是在写入数据库时才读取系统的时间作为数据采集的时间,如果要数据与时间严格保持一致,程序中也使用了发送采集时间的队列,可以从这个队列中读取采集的时间。
B,采集程序中将时间和数据分开二个队列来进行发送,可能不是很好,但也不知道有没有其它更好的方法了,原来也试过将四个通道的波形数据(带时间信息)通过一个队列发送的,但后面接收那里就比较麻烦,最终还是选择现在这样。
C,模拟采集时,如果采集一段时间后停止,不退出程序再次开始采集时,模拟采集的数据就会不准确,因为模拟采集时模拟波形的时间是以当前系统时间加上“初次调用?”来实现的,如果第二次运行时,初次调用输出F,则还是使用第一次运行时停止的时间,这个时间是不准的,解决办法是将“初次调用?”放到采集循环外面来判断是否需要重新对时,而不是放在采集程序里面。
D,好多VI中的说明信息都不够,没来得及写,看以后有没有空补上吧。
E,后来想到用“写一次读多次”的方法,即通过移位寄存器,或者叫功能VI来代替这个簇在各个VI之间传递的话,整个程序的后面板看起来应该会好很多,各个子VI的前面板也不会有很大的簇控件了。
有空
2023/3/4 0:54:48 1.07MB LabVIEW 多通道 数据采集
1
在程序中读取excel文件比如XLS和XLSX,方法有很多,比如ADO,OLE,ODBC等方式。
但是这些方法要么依赖于平台,要么读取速度慢,有的甚至需要电脑本身装有excel程序。
但是有一个付费的商业软件库Libxl,属于轻量化的读取工具,读取速度可以,且不依赖于平台,可在windows,mac,linux上使用。
这个软件可以无偿使用,但是一次加载限制操作300个单元,并且第一行不能进行读写。
如果想打破限制,需要使用pojie版。
本下载提供的就是使用这个版本的例程,使用libxl库读取excel文件。
2016/7/25 8:40:34 13.52MB libxl excel c++ 破解版
1
在程序中读取excel文件比如XLS和XLSX,方法有很多,比如ADO,OLE,ODBC等方式。
但是这些方法要么依赖于平台,要么读取速度慢,有的甚至需要电脑本身装有excel程序。
但是有一个付费的商业软件库Libxl,属于轻量化的读取工具,读取速度可以,且不依赖于平台,可在windows,mac,linux上使用。
这个软件可以无偿使用,但是一次加载限制操作300个单元,并且第一行不能进行读写。
如果想打破限制,需要使用pojie版。
本下载提供的就是使用这个版本的例程,使用libxl库读取excel文件。
2019/3/16 22:18:40 13.52MB libxl excel c++ 破解版
1
/*cole-AfreeCOLElibrary.cole_extract-Extractafilefromafilesystem.Copyright1998,1999RobertoArturoTenaSanchezThisprogramisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyouroption)anylaterversion.Thisprogramisdistributedinthehopethatitwillbeuseful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwiththisprogram;ifnot,writetotheFreeSoftwareFoundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA*//*ArturoTena*/#include/*Tocompilethisfileoutsidecolesourcetree,youmustincludehereinstead*/#include"cole.h"#definePRGNAME"iOLE"#defineBUFFER_SIZE128intmain(intargc,char**argv){ COLEFS*cfs; COLEFILE*cf; COLERRNOcolerrno; charbuffer[BUFFER_SIZE]; size_tchar_read; if(argc!=3){ fprintf(stderr,"cole_extract.Extractafilefroma" "filesystemtothestandardoutput.\n" "Usage:"PRGNAME"\n" "FILE-Filewiththefilesystem.\n" "INFILE-Filenameofthefiletoextract.\n"); exit(1); } printf("%s",argv[1]); cfs=cole_mount(argv[1],&colerrno); if(cfs==NULL){ cole_perror(PRGNAME,colerrno); exit(1); } cf=cole_fopen(cfs,argv[2],&colerrno); if(cf==NULL){ cole_perror(PRGNAME,colerrno); cole_umount(cfs,NULL); exit(1); } while((char_read=cole_fread(cf,buffer,BUFFER_SIZE,&colerrno))){ if(fwrite(buffer,1,char_read,stdout)!=char_read){ break; } } if(!cole_feof(cf)){ cole_perror(PRGNAME,colerrno); cole_umount(cfs,NULL); exit(1); } if(cole_fclose(
2020/2/17 3:19:13 173KB ole格式解析代码
1
基于avr单片机的OLE显示源码,希望可以协助您更轻松的使用OLED液晶显示器
2018/7/23 2:27:42 5KB AVR OLED
1
共 23 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡