datawindow 合并数据
一个DW ,BH 列 有如下
BH
YJJ00000004
YJJ00000007
YJJ00000002
YJJ00000003
YJJ00000012
YJJ00000013
YJJ00000014
YJJ00000015
如何得到结果
YJJ00000002~YJJ00000004,YJJ00000007,YJJ00000012~YJJ00000015
CSDN社区PB杂志
CSDN里PB杂志,不经意看到电脑保存的杂志,上传到下载资源,供大家参考
PB LISTBOX使用
两个列表框,左边里有多列数据,通过鼠标选取将左边列表框里的一些数据添加到右侧列表框
PB10在win7获取硬盘ID
PB10在win7获取硬盘ID,在pb10下测试通过
PB去掉mdi里工具栏的边框
PB去掉mdi里工具栏的边框,版本pb11.5
采用api函数
PB做的记事本
Powerbuilder做的记事本,实现新建、打开、保存、另存等功能
简单的记事本,供初学者参考,有经验的就不要下载了
PB 取本地Mac和IP
//通过域名得到IP
Function string GetIp(string name) Library "GetNet.dll"
//得到本机IP地址
Function string GetLocalIp() Library "GetNet.dll"
//通过ip得到域名
Function string GetName(string ip) Library "GetNet.dll"
//得到本机域名
Function string GetLocalName() Library "GetNet.dll"
//得到局域网内的计算机名
Function string GetLanComputers() Library "GetNet.dll"
//得到局域网内的计算MAC
Function string GetMac(string ip) Library "GetNet.dll"
//得到本机的计算MAC
Function string GetLocalMac() Library "GetNet.dll"
PB开发的进销存
PB开发的进销存,供初学者参考,具体内容见文件
pb开发的图片尺寸缩小程序
pb开发的图片尺寸缩小程序 可以将大图缩放为小图
PB 截图 api
PB 截图 api
pb8例子
preview打勾后可以看到截图
PowerBuilder B/S 环境搭建
PowerBuilder B/S 环境搭建
详细介绍B/S环境搭建的过程及配置
PB .NET如何製作REST Client
PB .NET如何製作REST Client
PB11.5 3050 补丁
PB11.5 3050 补丁
使用说明:解压后放在pb的安装目录下,然后运行
PBkiller2.5.18破解版
PowerBuilder6至powerbuilder10反编译工具,破解版
PowerBuilder6.5_2
PowerBuilder6.5开发工具,第二部分
PowerBuilder6.5_1
PowerBuilder6.5开发工具,第一部分
pb11.5开发B/S配置说明
pb11.5开发B/S配置说明
需要安装的东东以及配置
Jmail在pb中的应用
/这个是一个成功的声明
FUNCTION int fsendemail(ref String sSmtpServer, ref String sSenderId, &
ref String sPsw, ref String sSenderName, ref String sRcvAddr,&
ref String sSenderAddr,ref String sCCAddr, &
ref String sBCCAddr, ref String sSubject, &
ref String sContent, ref String sAttach) Library "PSdEmail_dll.dll"
代码如下
//mail_url放邮件地址,as_mailtext放邮件内容,mail_cc是邮件的抄送地址
//as_subject是邮件主题,as_filename是附件的文件名,as_pathname是附件的完整路径名
string ls_name
mailsession lms_data
mailmessage lmms_message
mailreturncode lmr_value
integer li_i
//产生邮件会话对象mses
lms_data = create mailsession
//邮件登录
lmr_value = lms_data.maillogon(mailnewsession!)
if lmr_value mailreturnsuccess! then
gnv_base.of_message("真不幸,邮件注册失败")
return -1
end if
//标题
lmms_message.subject = sle_subject.text
//正文
lmms_message.notetext = trim(mle_content.text) + ' '
////附件
//if as_pathname '' or as_filename '' then
// mmsg.attachmentfile[1].pathname=as_pathname
// mmsg.attachmentfile[1].filename=as_filename
//end if
//******************************校验收件人邮件地址是否是合法地址***************************//
//原收件人
ls_name = sle_rcv.text
lmr_value = lms_data.mailResolveRecipient(ls_name)
if lmr_value = mailReturnSuccess! THEN
lmms_message.Recipient[1].RecipientType = mailto!
lmms_message.Recipient[1].address = "liuzhp@huadong.net"
lmms_message.Recipient[1].name = "liuzhp@huadong.net"
elseif lmr_value = mailReturnFailure! THEN
gnv_base.of_message('收件人地址错误,请检查')
return -1
else
gnv_base.of_message('收件人地址错误,请检查')
return -1
end if
//发送邮件
lmr_value = lms_data.mailsend(lmms_message)
if lmr_value mailreturnsuccess! then
messagebox("邮件发送","邮件发送失败!"+char(10)+char(13)+'请检查:'+char(10)+char(13)+&
'1.附件路径和名称是否正确.'+char(10)+char(13)+&
'2.本地outlook配置是否正确.'+char(10)+char(13)+&
'3.如以上都正确,请与系统管理员联系!')
return -1
elseif lmr_value = mailreturnsuccess! then
// messagebox("邮件发送","邮件发送完毕!")
end if
lms_data.maillogoff() //退出登录
destroy lms_data //取消邮件会话
return 1
String ls_RcvAddr //收件人
String ls_CcAddr //转发
String ls_BccAddr //暗送
String ls_Sub //主题
String ls_Content //内容
String ls_Attach = ''//附件,多个附件由ATTACHSPLIT分隔
Constant String ATTACHSPLIT = '|' //附件的分隔符号
Integer li_Rtn //返回值,0:发送成功,1:发送失败
pointer oldpointer // Declares a pointer variable
oldpointer = SetPointer(HourGlass!)
ls_RcvAddr = sle_Rcv.Text //收件人
ls_CcAddr = sle_CC.Text //转发
ls_BccAddr = sle_BCC.Text //暗送
ls_Sub = sle_Subject.Text //主题
ls_Content = mle_Content.Text //内容
Long ll_Row, ll_RowCnt
//把附件用ATTACHSPLIT连接起来
ll_RowCnt = dw_Attach.RowCount()
FOR ll_Row = 1 TO ll_RowCnt
ls_Attach = ls_Attach + dw_Attach.Object.FilePath[ll_Row] +&
dw_Attach.Object.FileName[ll_Row] + ATTACHSPLIT
NEXT
//发送
li_Rtn = fSendEmail(is_Server, is_SenderId , is_Psw, is_SenderName, is_SenderAddr,ls_RcvAddr, ls_CcAddr, ls_BccAddr, ls_Sub, ls_Content,ls_Attach)
if li_rtn = 0 then
gnv_base.of_message('邮件发送成功!')
else
gnv_base.of_message('邮件发送失败!')
end if
SetPointer(oldpointer)
li_Rtn = fSendEmail(is_Server, is_SenderId , is_Psw, is_SenderName, is_SenderAddr, &
ls_RcvAddr, ls_CcAddr
硬件 网络拓扑图 C/S
硬件 网络拓扑图 C/S
关于硬件的拓扑图
pb11部署smart+client应用
pb11部署smart+client应用
Oracle时间区间段合并.pdf
Oracle时间区间段合并统计的算法
5G消息白皮书.pdf
5G消息白皮书,共12页
4月8日上午10时,中国移动、中国联通、中国电信联合发布《5G消息白皮书》,宣布将携手生态合作伙伴,全面升级基础短信为5G消息业务。《白皮书》阐述了5G消息的核心理念,明确了相关业务功能及技术需求,提出了对5G消息生态建设的若干构想。中国电信副总经理王国权、中国移动副总经理董昕、中国联通副总经理范云军均出席了本次发布会。
PB中实现椭圆窗口按钮等
PB中实现椭圆窗口按钮等,采用API函数来实现,具体可见代码,程序在pb10下测试通过
PB10调用Mschart例子
PB10调用Mschart例子
需要自己下载安装Mschart控件,以上例子在pb10下测试通过
PB BMP、JPG互转
PB BMP、JPG互转
PB datawindow保存为bmp
PB12 datawindow保存为bmp 采用api函数来实现
PB Tree icon显示
PB Tree icon显示
可以显示几个图标
PB listview 转存excel
PB listview 转存excel 在pb10下测试通过
PB Listview转存Excel
PB listview 转存excel 在pb10下测试通过
数据窗口对某行拖动的源代码例子
数据窗口对某行拖动的源代码例子,采用pb10开发并测试通过
PB AVI 调用DEMO
PB AVI 调用DEMO
可以通过代码进行暂停、停止、播放等功能
Userobject里执行窗口里的按钮
Userobject里执行窗口里的按钮
按钮可以不固定,当作参数来传递
数据窗口另存的Excel文件合并
PB DataWindow Excel 合并
把两个导出的数据窗口Excel文件进行合并,生成一个Excel文件
pb word 文字个数统计
主要代码
string ls_filename, ls_path
integer li_value
oleobject ole_word
long ll_cnt
ole_word = create oleobject
li_value = ole_word.connecttonewobject("word.application")
if li_value <> 0 then
messagebox("info", "连接word失败,请检查")
return -1
end if
if GetFileOpenName("选择文件", ls_filename, ls_path, "Word Files (*.doc), *.doc, All Files(*.*), *.*") <> 1 then
ole_word.quit()
ole_word.disconnectobject()
destroy ole_word
return 1
end if
if len(trim(ls_filename)) <= 0 then
return -1
else
ole_word.Documents.open(ls_filename)
ll_cnt = ole_word.ActiveDocument.Content.End
messagebox('Word total:', ll_cnt)
ole_word.quit()
ole_word.disconnectobject()
destroy ole_word
end if
PB api参考资料
PB api说明,还是一个vb版的winapi.chm
PowerBuilder8.0完全剖析
PowerBuilder8.0完全剖析(chm电子书).chm
Datawindow 合并顺序的数据
一个DW ,BH 列 有如下
BH
YJJ00000004
YJJ00000007
YJJ00000002
YJJ00000003
YJJ00000012
YJJ00000013
YJJ00000014
YJJ00000015
如何得到结果
YJJ00000002~YJJ00000004,YJJ00000007,YJJ00000012~YJJ00000015