
PB 开发日记
Sysbor
这个作者很懒,什么都没留下…
展开
-
判断一个DW中是否有未保存的数据
if dw_1.ModifiedCount() + dw_1.deletedcount() > 0 then messagebox("提示","请先保存短信定义表!") return -1end if原创 2007-07-02 17:06:00 · 1121 阅读 · 0 评论 -
有关日期函数
//1.生肖(年份参数:int ls_year 返回参数:string):mid(fill(鼠牛虎兔龙蛇马羊猴鸡狗猪,48),(mod(ls_year -1900,12)+13)*2 -1,2) //2.天干地支(年份参数:int ls_year 返回参数:string):mid(fill(甲乙丙丁戊己庚辛壬癸,40),(mod(ls_year -1924,10)+11)*2 -1转载 2007-10-11 15:52:00 · 816 阅读 · 0 评论 -
删除字符串中的空格
string ls_string,ls_string_before,ls_string_afterinteger li_tab,li_blank,li_blank_dbcsls_string = trim(sle_1.text)//PB在处理TAB字符不分全角和半角,只用POS就可以,不用POSWli_tab = Pos(ls_string, "~t")DO WHILE li_tab >原创 2007-06-04 15:32:00 · 1763 阅读 · 1 评论 -
关于TAB字符问题
TAB字符在用len函数等....计算它的长度时都算做是一个字节的长度.原创 2007-06-04 14:16:00 · 1005 阅读 · 0 评论 -
判断字符串是否包含空格或在全角状态下输入
/**//***判断。**参数:** as_string ----客户输入字符串**返回:** -1==>该字符串不合法** 1 ==>字符串合法**作者:** 毕中亮** 2007.05.25*/long ll_len,ll_lenw,ll_place,ll_placewlong i,jll_len = len(as_strin原创 2007-05-29 08:44:00 · 2413 阅读 · 0 评论 -
Find()函数实现DW中的查找
用法Find()函数在进行查找时区分大小写因此当应用程序在某列中查找某个值时大小写匹配的行才是找到的行当应用程序使用循环方式查找满足条件的所有行时要注意不要形成死循环下面是段循环查找满足指定条件行的一个示例long ll_find = 1, ll_endll_end = dw_main.RowCount()ll_find = dw_main.Find(searchstr, ll_find, ll_原创 2007-05-22 21:40:00 · 2067 阅读 · 0 评论 -
窗口居中
//移动窗口到屏幕中心integer li_sw,li_shinteger li_x=1,li_y=1environment lenv//当前窗口无效则返回if isnull(w_main) or not isvalid(w_main) then return //获取屏幕的宽度和高度if getenvironment(lenv)=-1 then return li_sw = pixelsto原创 2007-05-22 21:38:00 · 733 阅读 · 0 评论 -
PB游标取数据到ddlb
string ls_valuedeclare cursor1 cursor for SELECT distinct tb_syscfg.c_value FROM tb_syscfg (nolock) WHERE tb_syscfg.c_class = 促销单类型;open cursor1;fetch cursor1 into :ls_value;do while sql原创 2007-05-22 21:36:00 · 2134 阅读 · 0 评论 -
PB中DW的应用
为了方便阅读,大致整理了一下,希望以后能添加更多的进来。未经一一验证,不保证完全好用 ;) 不过大部分应该没有问题,因为很多都是最基本的技巧。1 使DataWindow列只能追加不能修改 如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Protect 属性设置为:If( IsRowNew(), 0转载 2007-05-22 22:02:00 · 8759 阅读 · 0 评论 -
取得计算列的中的值
string ld_init,ld_adddw_1.accepttext( )ld_init = string(this.object.compute_3[1] )ld_add = string(this.object.compute_2[1])之前用getitemnumber发现不行,小数点后取不到。原创 2007-08-15 19:55:00 · 1051 阅读 · 0 评论 -
设置一列为只读
this.object.c_pluno.edit.displayonly = true 控制列的protect属性,其中c_pluno为列名,设置一列为只读 修改TAB的值dw_1.object.列名.TabSequence= 0(建议用这种)原创 2007-07-16 17:50:00 · 1217 阅读 · 0 评论 -
根据身份证号码生成生日和性别
/**//*modify bzl 2007-07-12根据身份证号码生成生日和性别*/ String ls_date,ls_id,ls_sex,ls_month,ls_day,ls_year Date ld_birthday ls_id = data If Len(ls_id) = 15 Then ls_date = Mid(ls_id,7,6) ls_se原创 2007-07-13 17:59:00 · 4264 阅读 · 1 评论 -
数据窗口中有三种更新方式选择
大多数情况下,您的应用程序将在网络环境下运行。有可能会有多个人同时使用一个程序。在这种情况下使用数据窗口应注意并发控制问题。 数据窗口的并发性控制可以用"rows"菜单的"Update Properties"项进行设定。 1. Allow Updates:如果选中,则整个数据窗口允许修改,否则不允许; 2. Table to Update:在多表查询时,用该项选原创 2007-07-09 09:57:00 · 1343 阅读 · 0 评论 -
数据窗口中DDLB的用法
string ls_value,ls_templs_value = 短期促销~t短期促销/declare cursor1 cursor for SELECT distinct tb_gds.c_subname FROM tb_gds (nolock);open cursor1;fetch cursor1 into :ls_temp;do while sqlca.sqlco原创 2007-07-11 11:47:00 · 2476 阅读 · 0 评论 -
两个日期之间的日期间隔,日期是代小数点的,比如 1.5天
DaysAfter(date(date1),date(date2)) + SecondsAfter ( time(date1), time(date2))/86400原创 2007-10-09 13:54:00 · 1709 阅读 · 2 评论