随手笔记

2017-05-17  本文已影响0人  残风暗月

弹出提示窗口时,点击了'取消'按钮      if MessageBox("提示","是否修改船期日期?",question!,yesno!) = 2 then return

datawindow中设置可以输入      d_row=dw_1.insertrow(0)     dw_1.scrolltorow(d_row)

船期确认中'保存'事件

if idw_1.update() = 1 then 

if g_co_no = '002' then

string ls_sql

ls_sql = "sp_invoice_update_unite '" + ls_inv_no + "'"

execute immediate :ls_sql;

if sqlca.sqlcode <> 0 then

rollback;

messagebox("提示", "更新分票错误!")

return

end if

end if

commit using sqlca;

if uf_sd001_send_to_sap(ls_inv_no,4) = 0 then

messagebox("提示","修改成功!")

end if

closewithreturn(parent ,'1')

else

ls_sqlerrtext = sqlca.sqlerrtext

rollback using sqlca;

messagebox("提示","保存失败:"+ls_sqlerrtext)

end if

PB中的缓冲区    例如  dw_1.SetItemStatus(d_row, 0,  Primary!, NotModified!)

UpperBound (Obtains the upper bound of a dimension of an array.)

pos (Finds one string within another string.)返回的是一个long类型,  Pos(string1,string2{,start} )  返回string1中从start开始查询的包含string2的位置,位置是从start开始查的,但是是实际的位置数.例如:ll_num = pos("abdcdefga","a",5) ll_num得到的是9

mid (Obtains a specified number of characters from a specified position in a string)返回的是一个string类型.  Mid(string,start{,length} ),返回从star开始至字符串最后一个

len(string) 获取一个字符串的长度,返回的是一个long类型(在PB9.0中的汉字长度为2 len('你') = 2 但是 在PB12.0中汉字长度为1 len('你') = 1)

Left(string,n)返回的是一个string类型字符串,是从第一个字符开始返回n个字符

Right(string,n)返回的是一个string类型字符串,是从最后一个字符开始往前计算返回n个字符

Mod(x,y)得到x/y的余数

Round(x,n)把x置为含有n个小数位的decimal数值,例如:Round(9.624, 2)  返回的是9.62

IsNumber(string)返回一个Boolean类型数据,如果string是一个数值的,则是true,否则是false

致富文本框为空

string ls_null

setnull(ls_null)

mle_1.text=ls_null

致datawindow为空 dw_1.retrieve("Nothing")

实例一个UpDate()函数:

rc = dw_1.update()

if rc > 0 then

commit using sqlca;

if sqlca.sqlcode<0 then

messagebox("数据库出错","错误号="+string(sqlca.sqldbcode) + "原因为:" + sqlca.sqlerrtext)

halt close

end if

else

rollback using sqlca;

if sqlca.SQLCode < 0 then

messagebox("数据库出错","错误号=" + string(sqlca.SQLdbcode) + "原因为:" + sqlca.sqlerrtext)

halt close

end if

end if

continue的用法

integer A=0, B=0, Count

FOR Count = 1 to 100

A = A + 1

IF Count > 15 THEN CONTINUE

B = B + 1

NEXT

// Upon completion, a=100 and b=15.

DaysAfter(date1,date2)函数的用法:

This statement returns 4:

DaysAfter(2002-12-20, 2002-12-24)

This statement returns -4:

DaysAfter(2002-12-24, 2002-12-20)

This statement returns 0:

DaysAfter(2003-12-24, 2003-12-24)

This statement returns 5:

DaysAfter(2003-12-29, 2004-01-03)

Move(x,y)函数的使用方法:

objectname.Move(x,y) 相对于父类,把位置移动到了(x,y)处 .  例如:gb_box1.Move(150,200)

拼接paint_no的最小值,'_'和最大值的第五个字母之后的数据作为查询路径

string ls_path

choose case dwo.name

case 'b_open'

if DaysAfter(2017-05-17,date(getitemdatetime(getrow(),'pac_date')))<0 or isnull(getitemdatetime(getrow(),'pac_date')) then

ls_path = "\\s20\Bestway\Packaging(包装)\Final Packaging Assets(最终印刷品资料)\JPG\Customization(客专JPG)\不干胶\"+getitemstring(getrow(), 'guidang_no')

else

if dw_2.rowcount() = 1 then

ls_path = "\\S20\bz\生产交接资料\不干胶和贴签\"+getitemstring(getrow(), 'paint_no')

end if

if dw_2.rowcount()>1 then

ls_path = "\\S20\bz\生产交接资料\不干胶和贴签\"+getitemstring(getrow(),'compute_min')+'_'+mid(getitemstring(getrow(),'compute_max'),5)

end if

end if

// ls_path = "\\s20\Bestway\Packaging(包装)\Final Packaging Assets(最终印刷品资料)\JPG\Customization(客专JPG)\不干胶\"+getitemstring(getrow(), 'guidang_no')

// ls_path = "\\s20\BZ\客户包装JPG\不干胶\"+getitemstring(getrow(), 'guidang_no')

//      ls_path = "\\s20\BZ\不干胶汇总(Stickers Collection)\" + mid(getitemstring(getrow(), 'guidang_no'), 7,4) + "年不干胶\" +getitemstring(getrow(), 'guidang_no')

if fileexists(ls_path) = false then

messagebox("提示", "文件夹[" + getitemstring(getrow(), 'guidang_no') + "]不存在")

return

else

run("explorer " + ls_path + "\")

end if

end choose

isvalid的使用方法:

if not isvalid(message.powerobjectparm) then

messagebox("提示", "无效对象调用!")

close(this)

return

typeof的使用方法:(多使用于控件类型之中)

if typeof(message.powerobjectparm) <> DataWindow! then

messagebox("提示", "调用的对象不是DataWindow!")

close(this)

return

end if

end if

classname的使用方法: (多使用于变量之中)

string stringval

double dblval

date dateval

any anyval

anyval = myoleobject.application.cells[1,1].value

CHOOSE CASE ClassName(anyval)

CASE "string"

stringval = anyval

CASE "double"

dblval = anyval

CASE "datetime"

dateval = Date(anyval)

END CHOOSE

getactivesheet()的使用方法

mdiframewindow.GetActiveSheet( ) 返回的是一个MDI!类型的窗口.

Move的使用方法:(移动其坐标位置)

This statement changes the X and Y properties ofgb_box1to 150 and 200, respectively, and movesgb_box1to the new location:

gb_box1.Move(150, 200)

This statement moves the picturep_Train2next to the picturep_Train1:

P_Train2.Move(P_Train1.X + P_Train1.Width, &

P_Train1.Y)

//ldt_sap_check_date = today()//此时间为电脑上的时间

//invoice1.sap_check_date = getdate()//此时间为系统上的时间

exit退出循环

return退出程序

setpointer的使用方法

int i

pointer oldpointer

if dw_1.rowcount() <= 0 then return

oldpointer = SetPointer(HourGlass!)

if this.checked then

for i = 1 to dw_1.rowcount()

dw_1.setitem(i,'ck','1')

next

else

for i = 1 to dw_1.rowcount()

dw_1.setitem(i,'ck','0')

next

end if

setpointer(oldpointer)

//以下代码把焦点定位到第5行第3个字段:

dw_1.setfocus()//焦点切换到数据库窗口

dw_1.setrow(5)//切换当前行为第5行

dw_1.selectrow(0,false)//取消高亮显示

dw_1.selectrow(5,true)//高亮显示第5行

dw_1.setcolumn(3)//焦点移动到第3个字段

move(x,y)此函数修改的是控件的x,y坐标

resize(width,height)此函数修改的是控件的宽与高

                                                  match函数


SQL中的创建触发器--触发器例子

int value

value = GetFileSaveName("选择文件存放位置", "c:\", w_reg_main.inv_no+".XLS", "XLS", "Excel文件 (*.XLS),*.XLS")

if value<>1 then

   return 0

end if

lds_detail.saveas(ls_path, excel!, true)

模板导出

string ls_path, ls_file

int li_rc

ls_path = '快递导入模板'

li_rc = GetFileSaveName ( "Select File", ls_path, ls_file, "XLS", "Excel (*.xls),*.xls" , "C:\", 32770)

IF li_rc <> 1 Then return

integer li_FileNum

li_FileNum = FileCopy ("\\s03\共享文件\W.信息中心\个人文件夹\王灼安\BW_Express9快递\Bmp\快递导入模板.XLS" , ls_path, false)

if li_FileNum = -1 then

messagebox("提示", "复制文件错误!")

return

end if

Find

ls_key_id = dw_5.getitemstring(getrow(), 'key_id')

ll_row = dw_3.find("key_id='"+ls_key_id+"'", 1, dw_3.rowcount())

富文本框中去掉回车~n

string ls_mle_1, ls_string_before

integer li_pos

ls_mle_1 = trim(mle_1.text)

li_pos = pos(ls_mle_1, '~n')

do while li_pos > 0

ls_string_before = mid(ls_mle_1, li_pos + 1)

ls_mle_1 = trim(ls_string_before)

SetNull(li_pos)

li_pos = Pos(ls_mle_1, '~n')

loop

if isnull(trim(ls_mle_1)) or trim(ls_mle_1) = '' then

MessageBox('提示', '您输入的内容为空')

return

end if

点击回车跳转焦点

Send(handle,message#,lowword,long)

错误:

解答:这种错误查看下文件夹中是否包含代码中所描述的文件夹

dddw:可指 edit中的 DropDownDW 类型下的DataWindow       例如       dw_1.modify("mer_no.dddw.allowedit=no")

上一篇下一篇

猜你喜欢

热点阅读