在通常的server/client方式mis开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时它自动调用保存了的报表格式那有多好。本人通过如下方法最终实现了用的要求。 pb(powerbuilder)有一种以psr结尾的特殊的保存报表的文件格式(本文简称作psr文件)。根据数据窗口可以直接读取psr文件生成报表的原理,程序通过生成psr文件,实现动态报表格式的保存。 一、实现原理: pb中的报表其实就相当于是数据窗口。 第一步,动态报表的实现。通过设置数据窗口对象(dataobject)中文本、列等的resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的modify函数实现对象值的更改(包括增加和删除)。 第二步,报表格式的保存...
如果你能在你的应用程序中添加一些热键,就可以加快用户的操作速度,特别是对那些熟练的操作人员,他们特别欢迎快捷键的操作方式。在不少大型应用软件中,用户可以通过使用ctrl+alt+f5之类的组合键来方便地进行功能切换和处理。那么,我们在用powerbuilder开发应用程序时,怎样在其中实现需要的热键功能呢?下面笔者就根据自身的经验,介绍两种实用的方法。 第一种方法: 该方法可以实现:无论何时,只要用户按下热键,都将触发窗口中的事件。 1.声明api的外部函数 functionintegerglobaladdatom(refstringlpstring)library"kernel32.dll"aliasfor"globaladdatoma" functionulongregisterhotkey(ulonghwnd,ulongid,ulongfsmodifiers,ulongvk)libr...
本文拟结合powerbuilder语言,简述如何在传统c/s应用系统当中有效建立权限管理体系。 何谓权限管理体系?就是如何控制操作使用者对软件功能和系统数据的访问权限的各个方面。传统的c/s应用系统,多是“前台应用程序+后台数据库表”两部分,这样就决定了我们考虑权限管理体系就必然要考虑两方面的内容: 1、用户在前台的功能权限:即该用户能够使用哪些菜单或窗口功能,例如:张三只能使用数据录入功能,不能使用管理审批功能; 2、用户在后台的功能权限:即该用户能够对库表具有哪些读、取访问权限,例如:张三对于x_table表只有读权限,没有写权限; 是否上述两方面权限管理就足够了呢?答案是否定的,因为从应用角度来考虑,还需要对用户的数据访问权限进行控制,例如:张三属于a分局,李四属于b分局,张三、李四各录入一条数据,那么在查询时显然张三只能查询到其自己录入的数据记录,而不允许其查询到李四录入的数据记录...
******************************************************* 实用环境:pb6.5pb70pb80pb90 功能:位图菜单的制作 方法:如下 ******************************************************* 第一步,首先要建立一个menu对象,命名为:m_bitmap。设计格式有 一个主菜单file,下面有4个子菜单newopensaveexit,如下: -file-- -new -open -save -exit 第二步,找4个位图文件,放到exe所在的目录下,命名为:new.bmpopen.bmpsave.bmpexit.bmp 第三步,编代码 主窗体w_main,窗体类型main,加入主菜单m_menu。 实例变量声明: //win32常量 constantinteger...
问:sybase存储过程,为什么执行到这一句就不执行了 select@nserialno=serialnofromschedulewherephonenum=@strphonenumandtype=@ntype if@@rowcount=0 begin ... end else begin ... end 上面的select结果是空记录集,存储过程一执行到空记录集,就会返回? 答:ifexists(select@nserialno=serialnofromschedulewherephonenum=@strphonenumandtype=@ntype)这个语句的逻辑有点问题? ifexists一般是用来确定是否存在类似的记录?你现在又要将存在的结果赋值?其实还不如写ifexists(select1fromschedulewherephonenum=@strphonenumandtype=@...
说到dynamic调用类型,我们先看看对象、属性、函数和事件的引用方法: powerbuilder6.0应用程序的开发过程实际上就是各种对象的定义和使用过程。所有对象都有名称,并通过名称相互区分。在powerscript中,访问对象的属性、函数、事件的方法很简单,就是使用圆点作为标记符,具体来说,访问对象属性的格式为: 对象名.对象属性 例如,把单行编辑框sle_name的用户输入内容送到字符串变量userenter的语句可以写成: userenter=sle_name.text 其中,sle_name是一个单行编辑框对象的名称,text是单行编辑框的text属性。 程序中访问对象的函数与事件的格式为: {objectname.}{type}{calltype}{when}functionname({argumentlist}) 其中,大括号所括成分根据情况可以省略,各成分...
...
...
...
...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器