软件开发
人鱼传说
这个作者很懒,什么都没留下…
展开
-
用fastreport做中国式报表
procedure Tformmain.chinareport;//中国式报表varsqlstr:string;i,j:integer;begin sqlstr:=select * into #mytemp from password1; cn.Execute(sqlstr);//将需打印的内容装入临时表 sqlstr:=select * from #mytemp; pubcs.R原创 2006-02-05 09:30:00 · 2024 阅读 · 0 评论 -
通达OA二次开发-随时获取工作流中的数据
工作流转交时,需要对数据进行核对,如何获取呢?从下面的代码就可以获取:include_once( "general/workflow/plugin/plugin.inc.php" );$getrunid=$_GET["runid"];$data=getRunData($getrunid);print_r($data);将以上代码放在test.php中,调用时test.php原创 2012-04-12 17:06:14 · 4423 阅读 · 0 评论 -
通达OA工作流主要表的数据结构
flow_run_prcs流程执行明细字段名称类型中文说明RUN_ID数值流水号(关键字段)每发起一个工作流,即创建一个全局唯一的流水号PRCS_ID数值执行步骤序号 USER_ID字符步骤执行人工作流设置中的流程编号PROC_TIME日期步骤开始时间 DELIV原创 2012-04-12 17:01:56 · 6725 阅读 · 0 评论 -
JSON.parse: unexpected character的排查
近发现Javascript+json+php开发有点意思,于是做了个小查询功能“通过IP查询用户信息”.一、先创建三个文件:一个js(实现对主表单对象和php结果的操作),一个后台取数据的php文件和一个index.php,index.php中调用到了自定义js 和www.json.org的json2.js 界面如下:用户输入IP地址,点【查询】即显示工号、姓名等信息,初原创 2012-04-06 22:06:10 · 46636 阅读 · 2 评论 -
delphi RTTI的主要函数和应用示例
delphi 的RTTI为面向对象的编程提供的极大的方便,我们可以不用管对象的类型,只要通过RTTI的方法判断是否有我们需要改变的属性名和属性对象,以下是主要函数⊙ GetTypeData 函数⊙ GetPropInfo 函数⊙ FindPropInfo 函数⊙ GetPropInfos 函数⊙ SortPropList 函数⊙ GetPropList 函数----原创 2012-02-09 11:44:46 · 4131 阅读 · 0 评论 -
delphi 2010 cxgrid汉化
cxgrid的提示是英文的,为了给中文用户更好的交互体验,将其汉化是很有帮助的,以下是汉化的内容 scxGridRecursiveLevels = '不能建立 循环 levels'; scxGridDeletingConfirmationCaption = '确认'; scxGridDeletingFocusedConfirmationText = '删除记录?'; scxGr原创 2012-02-09 10:30:24 · 4719 阅读 · 1 评论 -
delphi XE2自带的皮肤控件
delphi XE2自带了皮肤控件,可以根据每个项目的需要开启,开启的方法:打开项目设置,如下图:开启后,设计期的控件无任何变化,运行中可见,如下图:再也不用自已安装第三方皮肤控件,如果对皮肤色彩不满意,可以自行设计原创 2012-01-04 10:46:50 · 5895 阅读 · 0 评论 -
php使用ODBC的好处
各种数据库都有odbc驱动,也有专门针对php的动态库文件,但感觉用odbc比较方便些,主要体现以下三点:1、odbc是php默认的功能,不用寻找与php同版本的dll文件2、odbc对所有数据库的php方法是一样的,不用学习不同数据库的php调用方法3、windows和linux平台都有odbc,支持主流数据库平台,以后要迁移平台不用担心所以还是用odbc比较好,以下是一个odb原创 2012-04-12 17:26:14 · 4342 阅读 · 0 评论 -
delphi webbrowser 常用方法示例
var Form : IHTMLFormElement ; D:IHTMLDocument2 ;begin with WebBrowser1 do begin D := Document as IHTMLDocument2; Form := D.Forms.item转载 2012-04-21 21:42:49 · 27506 阅读 · 2 评论 -
MongoDB-查询文档
该页提供了基于MongoDB C# Driver. 查询操作方法MongoCollection.Find() 演示,示例代码中查询inventory集合,以下代码先写入记录:var documents = new BsonDocument[]{ new BsonDocument { { "item", "journal" }, { "qty"...翻译 2018-07-27 16:37:03 · 316 阅读 · 0 评论 -
MongoDB-文档更新
本页使用以下的MangoDB C#驱动程序方法:IMongoCollection.UpdateOne() IMongoCollection.UpdateMany() IMongoCollection.ReplaceOne()此页上的示例使用清单集合。要创建或填充清单集合,请运行以下内容:var documents = new[]{ new BsonDocument ...翻译 2018-07-27 16:17:57 · 910 阅读 · 1 评论 -
好险,差点跳进自已挖的坑
上周,boss要求将ERP系统微信会员卡余额用于商城购物,这会员卡可是用户充现金的卡哟,很多消费了一两次,就没去门店消费了,可能用户不在附近了,也可能去其他门店消费了,可余额总要鼓励用户用掉呀,这就产生了在商城用在会员卡支付的想法; 商城本来是支持微信支付的,没想太多,就开始做微信支付+会员卡余额支付,做着做着,发现越来越不对劲,微信支付是独立系统,ERP是独立系统,商城也是独立系统原创 2016-03-31 11:15:36 · 849 阅读 · 0 评论 -
完美软件不是结果,是追求
从事软件项目开发和管理多年,在企业做过,在软件公司也做过,放眼过去,在企业做开发,软件系统都是自已架构自已一行行写出来的,随着时间变迁,技术也进步了不少,回头看以前的代码,发现很多地方写得不好,但又不想也没太多时间去重写或大量的改动,于是,形成了一开始做的模块的代码写得很烂,中间做的模块的代码写得精练一些,最后的模块的代码写得更好,总想用最专业的方式来写代码,希望写出完美的代码; 企业原创 2015-11-16 21:44:31 · 746 阅读 · 2 评论 -
关于ueditor的使用心得
ueditor的使用,加载后执行其他动作,内容显示,保存原创 2015-05-11 09:07:21 · 15656 阅读 · 3 评论 -
关于HR系统升级为集团版的设计总结
刚刚完了公司HR系统的升级,系统实现了从单一公司使用到多公司使用的转变,在升级的一个多月的时间内,虽然很苦,但感觉自已在系统架构上受益非浅,具体有以下感悟:一、MVC还是很重要 系统框架是五年前用delphi设计的,采用的基类加扩展类的模式来扩充新业务表单,表单内充满了业务逻辑,由于没有采用MVC模式,以至于我看完并改完了10万源代码,还未包含108支SQL脚本写的报表,若采用原创 2014-04-21 10:25:38 · 2219 阅读 · 0 评论 -
cxgrid实现多选(gridmode=true或false均适用)
cxgrid在c/s程序开发中用得比较多的控件,功能相当地强大! 这里讲一个在使用多选操作时问题:GetSelectedBookmark方法有使用上的限制,即只有gridmode为true时才能使用,反之会出错,而且这个属性在运行时改变的话,调用GetSelectedBookmark时也会出错?怎么解决,我们可以用另一种方法,代码如下:var i:Integer;begin原创 2012-04-14 10:02:13 · 5409 阅读 · 1 评论 -
datasnap 2011连接池,数据集对象池
unit ServerMethodsUnit1;interfaceuses SysUtils, Classes, DSServer, DB, Generics.Collections, DSService, Provider, ADODB;type TServerMethods1 = class(TDSServerModule) procedure DSServer转载 2011-12-20 10:53:50 · 3078 阅读 · 1 评论 -
通用的将Excel导入数据集的方法
开发中经常有需要将Excel导入数据集的需要,但每张Excel的栏位都会不同,常规的做法有两种:一、针对每一张Excel的栏位与数据集栏位位置在程序中写好,一一对应导入二、针对每一张Excel的栏位与数据集栏位配置好应用参数这两种方法都比较麻烦,很不灵活,所以我写了一个比较通用的方法,只要符合以下条件就可以直接使用: 1、Excel第一行是栏位标题,第二行开始是数据 2、应原创 2011-12-07 09:52:16 · 2960 阅读 · 1 评论 -
delphi的tclientdataset的中文过滤使用注意事项
在用到Tclientdataset的中文过滤时,发现有以下几点一定要注意:第一:中文字段必须是明确的varchar类型字段,在程序中可以用if clientdataset.fieldbyname(字段名.)datatype=ftstring来判断是不是字符型的第二:过滤条件必须至少两个汉字,一个汉字过滤不到原创 2009-08-22 10:46:00 · 2464 阅读 · 0 评论 -
用delphi开发activex打印控件
做web最不好弄的就是打印了,用IE自带的打印功能不太完美,功能也不强,所以我就将fastreport 4.3报表集成到web中,实现的方法:delphi7的activex+fastreport,下面就是实现的操作步骤: 第一、创建active form第一步完成后,会产生form和tlb的文件及界面,我们下面要在form中将fastreport控件及控制代码加入,即第二原创 2009-08-20 10:41:00 · 5287 阅读 · 3 评论 -
图解如何用Eurekalog跟踪程序错误
用delphi开发程序最头痛的问题我感觉有三个:第一,内存泄露自已不知道,程序不定时异常第二,知道有内存泄露却不知是哪行代码有问题第三,程序异常后用户不能及时反映,更不会将截图发给我有了EurekaLog后,这些问题都能很好的解决了,现在将我的使用心得放在上面,和大家一起分享开启Eurekalog设置一设置二设置三(日原创 2009-07-25 17:13:00 · 16413 阅读 · 9 评论 -
将excel导入数据集
要求:需引用excel2000单元,excel文件第一行为标题特点:excel文件的标题与dbgrid的标题名称一致,顺序可以不同procedure ExportExcelToCDS(mygrid:TdxDBGrid;filename:string);//将excel导入数据集var i,j,row,col,ValidFNCount:integer; ExcelApplic原创 2009-03-30 11:25:00 · 1633 阅读 · 0 评论 -
fastreport对TfrxADODatabase的调用注意事宜
最近在用fastreport 4.3调用TfrxADODatabase时,总出现用户 sa登录失败的提示,后来发现是连接字符串中多了一个Persist Security Info=False; 按这项替换掉就可以了,以下是我的代码,我用的三层结构,客户端必须从服务端取连接字符串 if not DM_Common.HR_Socket.Connected then DM_Co原创 2008-12-25 12:57:00 · 2384 阅读 · 0 评论 -
三层的主从表设置
三层也可以像二层那样设置,打开从表不用写代码,具体设置如下第一,先设置中间层的更新模式第二,设置中间层的关键字之后就可以设置客户端了第一,子表数据集属性设置第二,从表数据集Params属性设置三层的主从设置就这么简单,打开子表的性能也比写代码的要快,可以像二层那样直接在DBgrid里编辑数据并直接更新到数据库中,当然数据集的afterpost事件中要加入cd原创 2008-07-03 09:22:00 · 1238 阅读 · 0 评论 -
如何把数据库和管理系统做到只读媒体或移动媒体上
如何把数据库和管理系统做到只读媒体或移动媒体上一、应用场景: 1>将过期数据转移,并将清除掉,但又必须能随时查询以前数据 2>制作便于发放免安装的演示程序二、制作步骤: 1>将数据导到access中,将access设置密码 2>用delphi的adoconnection组件连接access文件 2.1 用户名称:admin,空白密码打勾 2.2 将访问权限中的[read],[Sha原创 2007-05-06 10:12:00 · 1236 阅读 · 0 评论 -
FastReport与QuickReport的优缺对比
FastReport(FR)与QuickReport(QR)的优缺对比从我FR与QR的使用感受来看,现在各自的主要优缺点例出,给朋友们参考:1>QR优点,FR的缺点A、很方便的制作中国式报表,即主数据表不够时,它可以自动生成空行B、能在报表里引用程序内任何控件及方法、属性2、QR缺点,FR的优点A、控制不能在各区间自由拖动,如pageheader区的内容不能直接拖到data区内使用,必须先剪切原创 2006-04-05 17:49:00 · 4033 阅读 · 0 评论 -
将Excel导入数据库(速度快)
procedure tuserdef.ExportExcelToCDS(mygrid:TdxDBGrid;filename:string);//将excel导入数据集var i,j,row,col,ValidFNCount:integer; MyExcel:TcxSpreadSheet; str1,Prompt:string; fieldnames:string;原创 2009-07-03 13:21:00 · 5124 阅读 · 7 评论 -
delphi 调用 dll
昨天终于把delphi 调用 c写的dll成功了,通常我们声明函数传入字符型参数都是pchar型,但这回这样干就是行不通,深入研究、测试,发现要用char型参数,声明和调用代码如下://功能:读设备时间 function Read_Time(icdev:THandle;L_Addr:Integer;var Dev_Time:Char;var Dev_Sta:Integer)原创 2010-03-21 09:13:00 · 862 阅读 · 0 评论 -
通达工作流在开发管理中的应用
如何了解开发人员是否有及时的响应开发需求,包括需求的分析、排期、开发、结案等过程控制,是开发管理过程中需要面对的问题,通达OA工作流为我们提供了一个可管理的平台。以下为示例:一、业务流程图1、需求申请:由业务部门提出,并指定所属管理系统,转交软件团队负责人2、软件负责人:负责审查用户的需求,是bug的直接转开发人员,即第四步;新增需求且有必要由其主管审批的,可转第三原创 2011-11-09 12:24:42 · 1025 阅读 · 0 评论 -
delphi 系统路径变量
%ALLUSERSPROFILE% 列出所有用户Profile文件位置。 %APPDATA% 列出应用程序数据的默认存放位置。 %CD% 列出当前目录。 %CLIENTNAME% 列出联接到终端服务会话时客户端的NETBIOS名。 %CMDCMDLINE% 列出启动当前cmd.exe所使用的命令行。 %CMDEXTVERSION% 命令出当前命令处理程序扩展版本号。 %Co转载 2011-11-29 13:55:39 · 1350 阅读 · 0 评论 -
delphi应用SynEdit完美实现SQL语法高亮
SynEdit是一个免费的开源语法高亮控件,支持delphi 3-2006,下载地址为:http://sourceforge.net/projects/synedit/files/latest/download,安装方法参考delphi的控件安装,以下是需要配置的TSynSQLSyn的属性:1、注释的高亮显示:CommentAttri.Foreground=clGreen2、标原创 2011-11-24 14:30:31 · 5820 阅读 · 0 评论 -
delphp自动创建存储过程参数列表
通过adostoredproc执行存储过程必须先手动创建参数列表,这个创建有点麻烦,所以自已写了个自动创建参数列表的函数,供自已使用,哪位有需要的话也可以直接使用。原创 2010-09-05 21:55:00 · 1373 阅读 · 0 评论 -
给动态数组一次性赋值
给动态数组一次性赋值原创 2010-06-06 20:45:00 · 4155 阅读 · 0 评论 -
Delphi调用outlook
//定义全局变量 public { Public declarations } outlook,MailItem,Recipient:variant; OutlookNameSpace:variant; OutlookFolder:variant; OutlookAttachment:variant; //创建打开outlook原创 2010-05-15 20:51:00 · 4051 阅读 · 4 评论 -
delphi调用Excel查找定位
var ExcelFile:string; SourceRange,DesRange:Variant; Row,Column,i:integer;begin if OpenDialog1.Execute then begin ExcelFile:=OpenDialog1.Files[0]; if not FileExists(ExcelFile原创 2010-05-14 21:19:00 · 4781 阅读 · 0 评论 -
delphi 十六进制转十进制
//需引用Math单元,Decjg 需定义成全局变量function TFrm_Main.HextoDec(s:string):Double;var strlen:integer; Lstr,Rstr:string; partf:Extended;begin strlen:=Length(s) div 2; if Length(s)>0 then b原创 2010-03-21 09:34:00 · 4441 阅读 · 0 评论 -
MongoDB-删除文档
该页使用了以下MongoDB C# Driver 方法:IMongoCollection.DeleteMany() IMongoCollection.DeleteOne()运行以下代码,填充 inventory 集合 :var documents = new[]{ new BsonDocument { { "item", "journal" }, ...翻译 2018-07-28 08:30:59 · 978 阅读 · 0 评论