PB技巧
文章平均质量分 88
yyoinge
这个作者很懒,什么都没留下…
展开
-
PB快速去除字符串中的非数字字符
<br />问题:<br /> 有一个字符串例如:61B2993B2ACC8C57A2FB7F5FC587F84D ,<br />在PB中如何才能将其字符串中的字母去除了(将B、A、C、D、E、F...去除),<br />留下612993285727558784单纯数字的字符串。<br /> <br /> 常规的方法是通过for循环,逐个进行判断并剔除,如:<br />string ls_str = "61B2993B2ACC8C57A2FB7F5FC587F84D",ls_rtnl原创 2011-05-30 17:24:00 · 2124 阅读 · 0 评论 -
pb控件强化:一个在drag时可以自动上下滚动的treeview控件对象
在实际使用过程中,当treeview控件允许拖动drag时,由于treeview控件在expand后,高度都会比较高,以至于数据在控件内,无法完全显示,而在drag过程中,经常需要执行大幅度的拖动,这样一来就会导致拖动过程经常受阻。 虽然在拖动时,可以通过滚动鼠原创 2011-10-17 09:24:45 · 2182 阅读 · 0 评论 -
pb获取文本文档(txt文件)总行数的方法
在某些情况下,我们可能会有获取文本文档(txt文件)的总行数的需求。常规的做法是通过fileread,一行一行的读,然后统计累加行数,这样的做法是逼不得已的做法,因为我们都晓得它的效率有多低。 其实,可以将文本文档(txt文件)当成数据库文件来处理,这样就可以通过sql语句简单快速的获取文本文档(txt文件)的总行数了。 global function long f_txt原创 2011-11-02 14:38:48 · 2583 阅读 · 0 评论 -
PB9中通过网址(域名)获取IP的方法
将以下内容保存为本地文件n_cst_ip.sru,然后导入pbl中$PBExportHeader$n_cst_ip.sruforwardglobal type n_cst_ip from nonvisualobjectend typetype s_wsadata from structure within n_cst_ipend typetype os_hostent from原创 2011-10-27 10:44:07 · 1436 阅读 · 0 评论 -
pb9获取文件创建时间、最后修改时间及设置最后修改时间的方法
将以下内容保存为本地文件n_cst_filetime.sru,然后导入pbl中$PBExportHeader$n_cst_filetime.sru$PBExportComments$与文件时间有关的外部函数forwardglobal type n_cst_filetime from nonvisualobjectend typetype os_filedatetime from st原创 2011-10-27 10:47:31 · 3337 阅读 · 2 评论 -
pb快速替换文本文档(txt文件)中指定字符的方法
经常有人在询问如何快速将文本文档中的“,”批量替换为Tab制表符,以方便将文本文档快速导入datawindow中。 大多数PB程序员都是建议使用fileopen、fileread(9及以前版本。10及以后版本用filereadex)的方法读入,然后再自己写个函数进行字符串的replace 。这种方法未尝不可,只是效率太低。 下面给出一种使用ole进行处理的方法,该方法集成在如下原创 2011-11-02 12:03:59 · 4431 阅读 · 4 评论 -
pb中获取多行文本编辑框(mle控件)指定行的内容
//API函数定义function long SendMessage(ulong hWnd, uint msg, long wParam, ref string lParam) library "user32.dll" alias for "SendMessageA" //取第row行的文本constant long EM_GETLINE = 196string ls原创 2011-04-11 17:03:00 · 5082 阅读 · 1 评论 -
关于datawindow重复行的一些filter操作
假设有如下数据窗口,数据窗口有两个列a和b,其中有9行数据,数据中a列有重复。a b------------A 1A 2B 3C 4C 5D 6E 7E 8E 9 在网上或者PB相关文献上我们经常可以看到(1)中所示的“数原创 2011-05-20 10:57:00 · 4003 阅读 · 1 评论 -
PB9读写大容量文件的方法
在pb9中,系统自带的读写文件的函数是fileread和filewrite,这两个函数最大的限制是读写量:一次最大只能读写32765字节的数据。这个限制导致它本身不适用于读写大容量的文件。 下面给出使用流stream方式读写文件的方法,包括两个全局函数f_readfile(string as_file)和f_writefile(blob ab, string as_file),分原创 2011-11-04 14:47:50 · 5960 阅读 · 0 评论 -
pb9实现在两个工作簿之间进行工作表复制
下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后”public function boolean f_excel_hb (string filename_s, string filename_t, string sheetname_s, string sh原创 2011-11-07 10:03:36 · 5001 阅读 · 4 评论 -
PB9写的一个拆解SQL语句的通用函数
将以下内容复制,另存为 f_split_sql.srf 然后导入pbl中$PBExportHeader$f_split_sql.srf$PBExportComments$SQL操作:分割SQL语句为select、from、where、group by、order by 5个子句global type f_split_sql from function_objectend type原创 2012-02-17 13:35:23 · 1980 阅读 · 1 评论 -
PB开发的程序如何不显示在任务栏
假设pb开发的程序的主窗口为w_main,如果需要在程序运行时,使w_main的标题不显示在操作系统的任务栏上,可以这样处理: (1)建立一个 visible 属性为 false 的 main! 类型窗口,假设为w_hide。 (2原创 2011-09-22 01:57:43 · 1921 阅读 · 0 评论 -
如何让单行密码编辑框只能输入数字
(1)在窗口中建立实例变量boolean ib_change = false(2)建立一个事件:ue_changing() Event Id 为 pbm_enchange代码如下if not ib_change then ib_change =原创 2011-04-11 18:20:00 · 1146 阅读 · 0 评论 -
打开响应式窗口可以同时操作其他窗口吗?
<br />答案是可以的,只要我们认清楚response类型的窗口与其他类型窗口的区别就可以找到解决方案了。<br /> <br />response窗口在激活时,会将父窗口的enabled属性设置为false<br /><br />这个就是response窗口与其他窗口的本质区原创 2011-04-11 17:39:00 · 927 阅读 · 0 评论 -
pb9中使用htmltable方式将数据窗口导出为excel文件的几点看法
在PB9中可以通过(1)saveas(ls_path, excel!, true)将数据窗口中的data数据导出为excel,可以通过(2)saveas(ls_path, htmltable!, true)将数据窗口中的display数据导出为html格式的excel文件,也可以原创 2011-07-06 23:30:46 · 4114 阅读 · 0 评论 -
如何限制数据窗口的某列只能输入数字及符号 -
<br />假设该列为 a, 则可以在datawindow 的 editchanged 事件中这么写<br /><br /> <br /> <br />int i<br />int li_pos<br />string lsdata<br />ifstring(dwo.name)原创 2011-04-11 18:14:00 · 2001 阅读 · 0 评论 -
grid类型数据窗口detail域的 height.autosize 属性的生效
<br />在grid类型的数据窗口中,如果将detail域的autosize height属性勾选上,<br />假如当数据窗口中 列 A 的值为1时, 行高应该自动为 200, 而当列 A 的值为0时,行高应该自动为 100 。<br />但是在程序的实际运行过程中,如果原创 2011-04-11 18:06:00 · 1325 阅读 · 0 评论 -
pb字符串转换为16进制串
<br />//函数功能:取字符串 ls_s 对应的十六进制串<br />string ls_s ="你好"<br />char src[]<br />Integer ln <br />Integer i<br />string st<br />Integer temp<br /原创 2011-04-11 16:58:00 · 2518 阅读 · 0 评论 -
pb数据窗口快速插入空行的方法
//====================================================================// 函数: wf_insertrow()//-----------------------------------------------原创 2011-04-11 16:50:00 · 4097 阅读 · 2 评论 -
由于报表中插入了空行,以至于序号乱了。那么能跳开空行重排吗?
<br />当然可以,在序号列里面将原来的表达式(expression):getrow()<br /><br />改为:if(isnull(a), long(a), getrow() - ComulativeSum(if(isnull(a), 1, 0) for all))//原创 2011-04-11 18:09:00 · 1043 阅读 · 0 评论 -
treeview展开指定层的结点
//====================================================================// 函数: f_expand()//---------------------------------------------------原创 2011-04-11 16:56:00 · 5117 阅读 · 0 评论 -
如何通过字符串指定的窗口名称,获取该窗口内的控件
<br />以下代码源于 :<br />/*<br /> 以下代码以通过测试,没有一点问题了。<br />*/<br />string ls_name<br />ClassDefinition cd<br />window w<br />ls_name ="w_main"<转载 2011-04-11 17:14:00 · 2505 阅读 · 0 评论 -
pb获取软件编译日期(时间)的快捷方法
在用PB开发软件时,有时候需要根据日期来生成软件的版本号。比如软件的版本为V5,为了体现同一版本软件在不同日期下编译生成的版本差异化,我们有时候会在软件的版本后面加上build和日期,类似于这样:V5 build20110727 ,表示该软件的版本是V5,编译日期时2011-07原创 2011-07-27 14:26:55 · 1516 阅读 · 0 评论 -
与MSSQL的dateadd函数功能一致的pb加强版时间函数:f_dateadd
pb中关于datetime的函数,总是把date和time分开来处理,没有针对datetime进行直接增减的函数,在实际使用中限制较大。 用过MS SQL的程序员,都恨不得能够把MS SQL中的dateadd及datediff函数搬过来用,但是这是不可能的,除非sybase意识到这一点。 下面这个函数f_dateadd ,可以实现MS SQL的dateadd的所原创 2011-11-04 17:26:20 · 1360 阅读 · 0 评论