pb9中数据窗口saveas的XML特性

pb9中数据窗口saveas的XML特性
pb9中数据窗口saveas的XML特性

pb9中数据窗口的XML特性

2009-07-07 13:10

本文转自:https://www.360docs.net/doc/901183565.html,/wu_07/archive/2005/12/22/559362.aspx

一、原理

从pb9开始,DataWindow开始支持直接从XML文档中导入数据,将检索到的数据保存为XML文档,以及使用XSL格式对象(XSL-FO) 的新功能。本文根据XML Features in PowerBuilder? 9.0相关内容节选翻译。这是第一部分。

1、数据窗口导出引擎(DataWindow Export Engine)

它是数据窗口新增的组件,主要利用导出模板(Export Templates)作为基础结构来转换行数据到XML格式数据。引擎通过分析模板内容格式化数据,然后输出到XML形式。因为模板本身也是XML文档,所以它首先也需要被解析。导出引擎通过XML解析器(XML Parser)的服务来分析模板文件。在低层,XML解析通过C++和Apache Xerces实现,利用一个适配器接口(pbxerces90.dll)来访问Xerces解析器。

2、导出模板(Export Templates)

一个导出模板定义了数据窗口元素(DataWindow elements)和XML对应关系。

下面的数据窗口对象可以使用在导出模板:

? 列(Column)

? 计算列(Computed Column)

? 文本(Text Control)

? 计算域(Computed Field)

? 内嵌报表(Nested Report)

上面的数据窗口对象可以被映射到以下的XML构造

? 元素(Element)

? 属性(Attribute)

注意:注释(comments)和处理指令(processing instructions)可以被添加到模板的任意部分,但是不能和其建立映射。CDATA可以被添加到任何元素之内,但是也不能被映射。内嵌报表(Nested Report)只能和元素建立映射,不能是属性。

当导出引擎分析XML模板内容时,根据模板中已经定义的映射关系,将元素映射到实际的数据窗口控件和它们的文本内容。在映射操作成功完成后,引擎将借助

XML Parser/Generator Engine的帮助,实现最后的XML语法生成。

导出引擎是数据窗口定义的一部分。一个数据窗口可以定义多个导出模板,模板作为数据窗口一个关联的对象被保存在PBL和SRD当中。这里引入一个新的数据窗口属性:https://www.360docs.net/doc/901183565.html,eTemplate,用来指定在某次导出操作中使用的模板对象名称。在程序运行(runtime)和设计(designtime)时都可以修改这个属性。XML导出模板的语法见列表1:

列表1: XML export template syntax (indented for clarity)

export.xml(

usetemplate="t_orders"

metadatatype=2 savemetadata=1

template=(

omment="Order items with external DTD"

name="t_orders"

publicid="c:\xmldw\orders.dtd"

xml="

encoding=~"UTF-8~"

standalone=~"no~"?>

"

)

)

二、编辑导出模板

在PowerBuilder 9.0中数据窗口编辑画板新增了定义和编辑XML导出模板的视图。视图中用TreeView展示模板的结构,XML实体(entities)被表示成树的节点,并利用不同的图标和字体颜色区别实体的类型。文本数据被显示为各自元素节点的子节点,在这里,元素的结束标签(end-tags)以及标签定界符(Markup delimiters)被隐藏了,但都是存在的。

编辑时候,仅仅只有一个导出模板可以在视图中打开。

图1:数据窗口画板中的新建XML导出模板视图

表1:列举了导出模板中所有可能的XML构造

通过在treeview的右键点击弹出菜单操作,可以对模板进行新建、打开、编辑、删除等操作。

个别菜单项说明:

根节点弹出菜单项中:

Schema Options… :弹出对话框,可以编辑当使用内嵌XML schema 模式的根节点元素以及命名空间(namespace)的前缀(prefix)和URI.

导出模板细节部分(Export Template Detail Section)

如图1,我们可以看到一条灰线,该灰线的作用是分隔出模板的header section 和detail section,有些类似于数据窗口编辑画板中的细带(detail band)。通过选择某个元素节点的“'Starts Detail”右键菜单项,该条线可以被重新定

位到该位置。此元素节点就被指定为Detail 开始元素.

只有一个元素可以被指定为Detail 开始元素。根节点不能成为Detail 开始元素。在默认情况下,根节点元素的第一个子节点被指定为Detail 开始元素。在导出时候,只有Detail 开始元素以及它的兄弟和子节点会逐行迭代的生成,这个特点和数据窗口的header和detail区域类似。

在数据窗口元素和XML节点间建立映射(Mapping DataWindow Elements to XML Nodes)

当目标导出XML文档的结构确定后,就可以创建模板了。当选择New Default

菜单项时,新建的模板将自动将元素映射到数据窗口列和计算列上。如果你想导出的XML文档的结构与默认模板不同,就需要自定义或者修改导出模板,方法是先修改节点标签,然后定位在某个节点上,在“DataWindow Control reference dialog”弹出对话框中选择对应的数据窗口控件对象。

注意:任何映射到XML元素的数据值,都会被当作字符,无视对应列其实际的数据类型(number, date等等)。

三、导出XML

一、导出XML方法(Exporting XML)

DataWindow 或者DataStore中的数据都可以导出到XML形式,方法和导出PSR 或者TXT等格式类似。具体可以使用以下几种方法:

1、在数据窗口画板编辑状态,当Preview视图打开时候,选择Save Rows As

菜单项;

2、使用SaveAs()函数

dw_1.SaveAs( "c:\foo\bar.xml", XML!, TRUE )

3、使用数据窗口点符号属性方式

ls_xml = dw_1.object.datawindow.data.xml

4、使用数据窗口Describle函数

ls_xml = dw_1.Describe( "datawindow.data.xml")

二、与导出XML有关的DataWindow属性

数据窗口XML相关属性决定了导出XML文档的相关形式,有以下属性:

1、导出时候使用哪一个模板

dw_https://www.360docs.net/doc/901183565.html,eTemplate = "value"

2、导出时候元数据的类型(MetaDataExternal!, MetaDataInternal!),即DTD\Schema是内签在导出XML文件中,还是以单独的文件存在

dw_1.Object.DataWindow.Export.XML.MetaDataType = "value"

3、导出时候那种元数据的将被同时保存(XMLDTD!, XMLSchema!, XMLNone!)注:DTD和XML Schema都用来定义XML中数据表示的语法格式。

dw_1.Object.DataWindow.Export.XML.SaveMetaData = "value"

4、导出时候XML header data在detail rows中是否重复(类似于按header data 分组)

dw_1.Object.DataWindow.Export.XML.HeadGroups = "value"

5、导出文件是否允许空白(white space)存在

dw_1.Object.DataWindow.Export.XML.IncludeWhiteSpace = "value"

四、导入XML

一、导入XML方法(Importing XML)

符合格式的XML数据可以导入到DataWindow或者DataStore中,具体方法如下:

1、从XML文件中导入

dw_1.ImportFile( XML!, "c:\foo\bar.xml" {*} )

2、从包含XML的字符串中导入

dw_1.ImportString( XML!, ls_xml {*} )

3、从剪贴板中导入XML数据

ls_xml = dw_1.ImportClipboard()

{*} 指函数的可选参数

二、与导入XML有关的DataWindow属性

1、https://www.360docs.net/doc/901183565.html,eTemplate 导入时候XML必须匹配哪一个模板

2、Import.XML.Trace 导入时是否将trace信息记录到文件中

3、Import.XML.TraceFile 导入时产生的trace信息所保存的文件名

如果Trace选项打开,而TraceFile没有定义,则产生的trace信息自动记录到当前目录下的pbxmtrc.log文件。

三、判断XML是否格式良好(well formed)和符合特定语法(complies with a specified grammar)

可以在导入之前使用XMLParseFile 、XMLParseString 方法来判断XML是否well

formed。

long ll_ret

ll_ret = XMLParseFile("c:\temp\mydoc.xml")

if ll_ret = 0 then dw_1.ImportFile("c:\temp\mydoc.xml")

2017年11浙江省技术选考试题及参考答案

绝密★考试结束前 2017年11月浙江省普通高校招生选考科目考试 技术试题 姓名:准考证号: 考生须知: 本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共16页,第一部分1 至10页,第二部分11至16页。满分100分,考试时间90分钟。其中加试题部分为30分,用【加试题】标出。 1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。 2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。 3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。 第一部分信息技术(共50分) 一、选择题(本大题共12小题,每小题2分,共24分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。) 1.下列有关信息的说法,不正确的是 A.信息在重复使用中会产生损耗 B. 信息无处不在,且呈现现形式多样 C.信息的传播、存储必须依附于某种载体 D.信息经过加工、处理可以具有更高的使用价值2.超文本传输协议用于浏览器与WEB服务器之间的信息传输,该协议的简称是 A. WEB C. HTTP D. HTML 3.下列应用中,体现了人工智能技术的有 ①机器人通过语音与人交流 ②饮水机根据水温自动加热 ③宾馆通过专用系统进行人脸识别,核实住宿人员身份 ④计算机程序根据输入的三条边长自动计算三角形面积 ⑤停车管理系统通过拍摄识别车牌号码,并用语音进行播报 A.①②③ B.①③⑤ C.②④⑤ D.③④⑤ 4.使用Access软件打开数据库,部分界面如下图所示,下列说法正确的是

pb数据窗口常用代码

一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。 这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。用户只需要在这里填充一个事务对象,PB 就会自动完成对该事物对象的初始化以及和数据库连接的工作。而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。 这两个函数都是成功时返回1,发生错误时返回-1。 二、检索数据 用于检索数据的函数只有一个,就是Retrieve()函数。 语法格式: dw_control.Retrieve() 如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。而且检索参数必须和数据窗口对象中定义顺序一致。 此函数返回一个长整型的数据,代表检索出来的数据行数。如果发生错误,将返回-1。 三、更新数据 当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。 语法格式: dw_control.Update() 这个更新可能成功,也可能失败。一般在这个函数被调用之后,总是要做一个检查。请看下面的例子: Int li_return

在PB中实现Word内容的替换

在PB中实现Word内容的替换 《微电脑世界》作者:张佐东汤咏梅2003-1-11 15:32:49 本文介绍一种在Power Builder(以下简称为PB)中利用OLE把数据库中的数据传送到Word文档的方法。通过这种方法,用户可以根据需求而改变内容,以Word方式打印结果文档。例如,在处理学生成绩时,如果要将每个学生的成绩报告生成Word文档,不同的学生只改变姓名、学号和年度等数据,其他的格式不改变。只要从学生成绩数据库中调出特定数据,插入或替换到已经制作好的Word模版中,即可解决问题。 一、创建Word模版文档 Word模板文档的创建根据用户的要求进行,在固定的内容输入完成后,将需要变换内容(例如姓名、年度、系别和证书编号等)的位置输入“student_name”、 “student_year”、“department”以及“student_id”等编码。注意: 尽量使用英文来表示这些变量,目的是避免某些汉字相同而造成的误替换。 在需要动态改变内容的位置,不需要输入文字,可以通过插入书签的方法实现,具体操作如下。首先,选择在Word中,选择“插入”*“书签”,弹出“书签”对话框(如图1所示)。在“书签名”文本框中输入书签名称后,点击“添加”按钮,即在当前光标位置上增加了一个书签。假设我们增加了4个书签,分别是 name、year、department以及id,分别代表姓名、年度、系别以及证书编号。 二、PB实现方法

在窗体中新建一OLE控件,在弹出的“insert object”属性窗口的“create new tab”选项卡中选择“Microsoft Word 文档”选项,点击“OK”按钮后将该控件放在窗体中适当位置,PB系统会自动出现Microsoft Word应用程序。将控件命名为“OLE_Word”,并创建“打开文件”、“替换数据”和“存盘”按钮,编写如下代码。 1.打开文件 string docname, named integer value value = getfileopenname("Select File",docname, named, "DOC","Doc Files (*.DOC),*.DOC") if value = 1 THEN // 将模版文件另存为实际操作文件(程序略) if ole_Word.open(docname)=0 then ole_Word.activate(inplace!) end if end if 这里使用“GetFileOpenName”函数让用户自行选择文件,实际应用时可以进行条件的限定。注意: 需要将模版文件另存为实际操作文件后再打开,不能直接操作模版文件。打开文件参数有2种,其中“inplace”表示在PB程序内部窗口调用Word,部分提供Word 的功能菜单; 另一种参数是“offsite”,表示PB程序外启动Word应用程序,提供Word 的所有功能菜单。简单的演示文档如图2所示。

pb中数据窗口函数总结

pb中数据窗口函数总结 一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。 这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。 这两个函数都是成功时返回1,发生错误时返回-1。 二、检索数据 用于检索数据的函数只有一个,就是Retrieve()函数。 语法格式: dw_control.Retrieve() 如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。而且检索参数必须和数据窗口对象中定义顺序一致。 此函数返回一个长整型的数据,代表检索出来的数据行数。如果发生错误,将返回-1。 三、更新数据 当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。 语法格式: dw_control.Update() 这个更新可能成功,也可能失败。一般在这个函数被调用之后,总是要做一个检查。请看下面的例子: Int li_return li_return = dw_1.Update() IF li_return = 1 THEN

PB数据窗口的多表更新

PB数据窗口的多表更新 原理分析: 数据窗口数据源来自两个或两个以上的表,相当于多个表连接建立的一个视图,对于这种数据窗口,PB默认是不能修改的。当然我们可以通过设置它的Update 属性,数据窗口的Update Properties用来设置数据窗口是否可Update、可Update的表、可Update列等,但不能同时设置两个表可更新;所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,我们可以在程序中设置数据窗口可更新的一个表A(及其可更新列),其他表为不可更新,更新完表A后,再设置另一表B为可更新,表A设置为不可更新,依次类推。解决示例: 我们以PowerBuilder7自带的ASA6数据库为例: 1、新建一个数据窗口d_grid_dep_emp,它的Select语句为 SELECT department.dept_id, department.dept_name, employee.emp_id, employee.emp_fname, employee.emp_lname FROM department, employee where employee.dept_id = department.dept_id 2、设置数据窗口d_grid_dep_emp的属性,将列的taborder改为非0值;并点击菜单Rows――Update Properties,设置此数据窗口Allow Updates,Table to Update设为department,Updateable Columns为department.dept_id,department.dept_name。 3、在窗口中“更新”数据窗口按钮的clicked事件编写脚本: long ll_rtn // 修改Department表(Department表在第2步已设置为可更新) ll_rtn = dw_1.update(true, false) if ll_rtn = 1 then //关闭对Department表的修改 dw_1.Modify( department_dept_name.Update = No ) dw_1.Modify( department_dept_id.Update = No ) dw_1.Modify( department_dept_id.Key = No ) //设置Employee表成为新的可修改表 dw_1.Modify( DataWindow.Table.UpdateTable = employee ) dw_1.Modify( employee_emp_id.Update = Yes ) dw_1.Modify( employee_emp_fname.Update = Yes ) dw_1.Modify( employee_emp_lname.Update = Yes ) dw_1.Modify( employee_emp_id.Key = Yes ) //修改Employee表 ll_rtn = dw_1.Update() IF ll_rtn = 1 THEN COMMIT USING SQLCA; dw_1.retrieve()

excel中实现日期选择输入(日历控件)

excel中实现日期选择输入(日历控件)推荐 第一种方法: 首先这个控件需要一个名为MSCOMCT2.OCX的控件文件,这个文件大家先在电脑里搜索一下,如果没有的话就求助baidu 喽. 下载下来后把它复制到c:\windows\system32里. 最后就在开始->运行里注册MSCOMCT2.OCX控件. 那么如何注册呢,方法很简单输入regsvr32 MSCOMCT2.OCX就ok拉 这时打开excel控件工具箱点击其它控件找到Microsoft Date and Time Picker Control 6.0,这个东东就是我们要的日期控件拉 第二种方法:MSCAL.OCX Private Sub Calendar1_Click() ActiveCell = Calendar1.Value Me.Calendar1.Visible = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) '此处的6和7为你要显示日历的列序号 If Target.Column = 6 Or Target.Column = 7 Then Me.Calendar1.Left = Target.Left Me.Calendar1.Top = Target.Top If Target.Value <> "" Then Me.Calendar1.Value = Target.Value Else Me.Calendar1.Value = Now() End If Me.Calendar1.Visible = True Else Me.Calendar1.Visible = False End If End Sub

pb数据窗口技巧38个 收藏

pb数据窗口技巧38个收藏 1 使DataWindow列只能追加不能修改 如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为: If( IsRowNew(), 0, 1) ) 在PowerScript 中可以动态修改Protect 属性: dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'") 这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。 2 如何在DataWindow中实现列的自动折行 我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇 到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起 来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自 动折行.具体步骤如下: 1) 在DataWindow Painter中打开此DataWindow. 2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口. 3) 选择Position标签, 选中Autosize Height 多选框. 4) 选择Edit标签, 不选中Auto Horz Scroll多选框. 5) 单击OK按钮, 保存所做的修改. 6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择 Properties... 菜单项. 7) 选中Autosize Height多选框. 8) 单击OK按钮, 保存所做的修改.

PB动态数据窗口

[PB]-动态数据窗口 〓创建动态数据窗口 若要动态创建数据窗口,需要使用函数Create,该函数的语法如下: dw_1.Create(syntax{,errorbuffer}) 其中,dw_1是数据窗口控件的名称,该数据窗口控件要和新创建的数据窗口对象相关联。syntax是用来描述创建数据窗口对象的确切语法的字符串。errorburrer是可选项,用来保存创建数据窗口对象过程中发生的错误信息。如果不指定该参数,就会在发生错误时显示一个错误信息的提示窗口。如果创建成功该函数返回1,否则返回-1,如果参数为null则函数返回null。 由于Create函数成功创建数据窗口对象后,要改变dw_1数据窗口控件所关联的数据窗口对象,因此,需要重新为数据窗口设置事务对象(使用函数SetTransObject或者SetTrans)。 获取创建数据窗口的语法有多种方法,可以对相关的SQL语句使用SyntaxFromSQL函数,也可以使用对已经创建好的数据窗口对象使用LibraryExport函数。因为创建数据窗口的语法比较复杂,即使使用了LibraryExport输出已有数据窗口对象的语法,操作起来也相当费劲。所以,更为通用的是前面一种方法。这种方法配合一定的编程技巧,让用户指定要创建的数据窗口对象的SQL语句,使用户有更多的自由和选择。使用这种方法,肯定用到函数 SyntaxFromSQL,它的语法是: transaction.SyntaxFromSQL(SQLselect,presetation,err) 其中,transaction是事务对象的名称,该事务对象必须正确地设置了相关参数,并且和数据库建立了联结。SQLselect是用来创建数据窗口的SQL语句,为String 类型。presentation是要创建的数据窗口对象的显示风格,为String类型。简单的格式是: Style(Type=presentationstyle) 其中Style和Type都是保留字,presentationstyle的取值有Tabular,Grid,Form,Graph,Group,Label和Nup,其中Tabular是缺省类型。err是用来保存函数执行时出错信息的string类型的变量。 *关于函数SyntaxFromSQL的参数presentation可以有更复杂的语法。其格式是:"Style ( Type=value property=value ... ) DataWindow ( property=value ... ) Column ( property=value ... ) Group groupby_colnum1 Fby_colnum2 ... property ... ) Text property=value ... ) Title ( 'titlestring' )" 使用这样的格式,可以详细定义要创建的数据窗口对象的外观。 〓在很多情况下都需要一个数据窗口控件和不同的数据窗口对象关联。可以通过修改数据窗口控件的dataobject属性来实现。在修改了这一特性之后,数据窗口控件就不再具有与它相关的事务处理对象了,应该再重新为数据窗口设置事务

Excel日历控件教程 详细

1.Alt+F11 按下显示代码窗口后,再松开Alt+F11. 2.然后按F7 ,调出VBA 窗口。 3.粘贴以下代码. Private Sub Calendar1_Click() Dim MyDay As Date ActiveCell = Calendar1.Value Mydate = Calendar1.Value 'MsgBox Mydate Calendar1.Visible = 0 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Or Target.Column = 1 And Target.Row > 0 Then If IsDate(Target) Then Calendar1.Value = Target Else Calendar1.Today End If Calendar1.Visible = -1 Calendar1.Top = ActiveCell.Top + ActiveCell.Height Else Calendar1.Visible = 0 End If End Sub 4.打开文件→保存book1(S) 5.打开视图→对象窗口 6.打开插入→对象窗口 7.找到日历控件11.0或9.0,按确定退出。 8.单击第一列(A列)中的任一单元格,选择日历中的需要的日期即可。备注: 要改变日期输入位置,可按以下方法调整代码,找到下面的代码行(此代码行的意思是在A列(第1列)中添加日历。 If Target.Column = 1 Or Target.Column = 1 And Target.Row > 0 Then 然后根据以下的方法覆盖粘贴此行代码

PB11转换CS到BS

pb11转换c/s到b/s大功告成 --1 开发环境安装 --11 先安装windows的IIS5.0以上 --12 再安装https://www.360docs.net/doc/901183565.html, framework 2.0 --13 下载(https://www.360docs.net/doc/901183565.html,/iewebcontrols/download.aspx) ,安装IE Web Control , 解压后运行C:\Program Files\IE Web Controls\build.bat 创建C:\Program Files\IE Web Controls\build 把C:\Program Files\IE Web Controls\build\Runtime\*.*的所有文件拷贝到iis的工作目录 默认就是c:\inetpub\wwwroot 拷贝的dos命令如下: xcopy /s /i .\build\Runtime c:\Inetpub\wwwroot\webctrl_client\1_0 /y (注:webctrl_client\1_0目录也可以手工创建拷贝) --14 下载pb11(PowerBuilder110.zip,CommonInstaller.zip),安装PB11 --2 转换c/s的pb程序为b/s的程序 --21 先把你的程序移植到pb11,用pb11打开workspace和target即可,pb11自动移植,调试能在c/sx下运行正常--22 开始转换了,菜单操作file>New打开[New]选择窗口选[target] - .NET Web Forms Application 按向导操作即可, step1 关于向导的介绍 step2 选Use an existing library and application object step3 找到你的程序入口即application object step4 加上你所用的pbl文件 step5 命名pbt文件名,也可直接下一步[next>] step6 命名project object,也可直接下一步[next>] step7 输入你在iis里的虚拟目录,也可直接下一步[next>] step8 加上你用的资源文件 step9 如果你用了第三方的动太库dll,在这里加上,没有就[next>] step10 如果你想用了javascript,在这里加吧,我没有这玩意。 step11 你要发布的web服务器 step12 汇总一下你的选择,[Finish>],伟大的.net Web forms创建完成 step13 发布吧,Deploy Project,你只要点一个按钮即可,你点只烟,倒上茶耐心的等一下吧 发布过程如下: 先检查你的iis是否服务 生成.NET assembly 文件 生成PBD文件 拷贝文件到IIS服务器 发布完成 step14 激动人心的时刻到了,换台机器用ie打开你的程序(看你的具体的ip地址、虚拟目录)http://gst-susue/oands 经过漫长的等待,https://www.360docs.net/doc/901183565.html,第一次运行要先编译一下,下次就快点了。 step15 “我转换成功了,我转换成功了!”奔走相告、万人空巷

PB数据窗口使用绝对技巧与方法

原文地址:PB数据窗口绝对技巧作者:千人急 1、如何让存储文件目录的列,显示图片? 答:选择对应的column的display as picture属性为true 2、如何复制grid类型的所选择的行的数据到系统剪切板? 答:string ls_selected ls_selected=dw_1.Object.DataWindow.Selected.Data clipbord(ls_selected) 4、如何设置的DW底色? 在DW的editsource中改变color的值 5、如何将Grid风格改成自由格式? 在DW的editsource中将processing=1的1改为0 6、要新建一个表A但风格和现有表格B风格一样,怎么将A表快速设置成表B 风格? 复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可 7、如何实现gird风格的datawindow的多栏表头? 答:添加 text到header带区,并设置band属性为foreground保存,edit source 修改text的x和width属性表达式如下: x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - integer(describe('firstcol.x')) +integer(describe('lastcol.width')) 8、如何过滤dddw编辑风格的显示值为指定值的记录? 答: dw_1.setfilter("lookupdisplay('column_name')='"+ls_display_value_your +"'") dw_1.filter() 9、如何设置datawindow的某一列为空?

EXCEL日历控件教程详细

E X C E L日历控件教程详 细 The pony was revised in January 2021

1.Alt+F11 按下显示代码窗口后,再松开Alt+F11. 2.然后按F7 ,调出VBA 窗口。 3.粘贴以下代码. Private Sub Calendar1_Click() Dim MyDay As Date ActiveCell = Mydate = 'MsgBox Mydate = 0 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If = 1 Or = 1 And > 0 Then If IsDate(Target) Then = Target Else

End If = -1 = + Else = 0 End If End Sub 4.打开文件→保存book1(S) 5.打开视图→对象窗口 6.打开插入→对象窗口 7.找到日历控件或,按确定退出。 8.单击第一列(A列)中的任一单元格,选择日历中的需要的日期即可。备注:

要改变日期输入位置,可按以下方法调整代码,找到下面的代码行(此代码行的意思是在A列(第1列)中添加日历。 If = 1 Or = 1 And > 0 Then 然后根据以下的方法覆盖粘贴此行代码 1.以下这一句就是 B3:C5区域调用日期控件. If = 2 And > 2 And < 6 Or = 3 And > 2 And < 6 Then 2.这句是说在第 2列和第 3列调用日期控件. If = 2 Or = 3 And > 0 Then 3.这句是说在C2:C50调用日期控件. If = 3 And > 1 And < 51 Then

PB数据窗口绝对技巧

PB数据窗口绝对技巧 1、如何让存储文件目录的列,显示图片? 选择对应的column的display as picture属性为true。 2、如何复制grid类型的所选择的行的数据到系统剪切板? string ls_selected ls_selected=dw_1.Object.DataWindow.Selected.Data clipbord(ls_selected) 3:如何改变GRID数据窗口列位置(新手常见) 先preview,然后在预览窗口拖动位置即可。 4、如何设置DW的底色? 在DW的editsource中改变color的值。 5、如何将Grid风格改成自由格式? 在DW的editsource中将processing=1的1改为0。 6、要新建一个表A但风格和现有表B风格一样,怎么将A表快速设置成表B风格? 复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可。 7、如何实现gird风格的datawindow的多栏表头? 添加text到header带区,并设置band属性为foreground保存,edit source修改tex t的x和width属性表达式如下: x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - int eger(describe('firstcol.x')) +integer(describe('lastcol.width')) 8、如何过滤dddw编辑风格的显示值为指定值的记录? dw_1.setfilter("lookupdisplay('column_name')='"+ls_display_value_your+"'") dw_1.filter() 9、如何设置datawindow的某一列为空? string ls_temp[] setnull(ls_temp) dw_1.object.columnname.primary.current=ls_temp 10、如何设置datawindow的单双行不同颜色间隔? 在detail带区的color属性表达式中写上if(mod (getrow(),2)=1 ,rgb(255,0,0),rgb(0,25 5,0)),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(), rgb(255,0,0),if(m od(getrow(),2)=1 ,rgb(0,0,255),rgb(0,255,0))) 11、如何获取指定名称的datawindowobject? DWObject ldwo_use,ldwo_abc ldwo_use = dw_1.Object ldwo_abc = ldwo_use._ _get_attribute("t_1",FALSE)//t_1为datawindow中text对象的名称 12、如何缩放datawindow的打印大小?

PB 数据窗口高级( DataWindow)应用37个技巧

PB 数据窗口高级( DataWindow) 37个技巧 1. 使DataWindow列只能追加不能修改 如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下: 将每一列的Protect 属性设置为: If( IsRowNew(), 0, 1) ) 在PowerScript 中可以动态修改Protect 属性: dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'") 这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。 2 .如何在DataWindow中实现列的自动折行 我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇 到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起 来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自 动折行.具体步骤如下: 1) 在DataWindow Painter中打开此DataWindow.

2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口. 3) 选择Position标签, 选中Autosize Height 多选框. 4) 选择Edit标签, 不选中Auto Horz Scroll多选框. 5) 单击OK按钮, 保存所做的修改. 6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项. 7) 选中Autosize Height多选框. 8) 单击OK按钮, 保存所做的修改. 9) 保存此DataWindow. 注意: 连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不 会自动进行折行. 3. 在数据窗口中实现动画 要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。比如要改变某字段的背景颜色,可设 ackgound.color=RGB(Integer(Right(string(now(),'hhmmssf'),1))*256/10,In teger(Right(string(now(),'hhmmssf'),1))*256/10,0) 当然,您不仅可以改变背景颜色,而且可以改变字体等等任何属

选择日期Excel日历控件将日期插入到指定单元格#精选.

选择日期Excel日历控件将日期插入到指定单元格 在Excel中如何实现选择日历控件,就将日期插入到指定的单元格? 请跟随如下操作; 在EXCEL窗口中执行“视图”→“工具栏”→“控件工具箱”;弹出如下图对话框; 按上图的操作,找到“日历控件11.0”,之后在EXCEL窗口中使用鼠标左键一拖,拖出如下图的控件;

上图,我们要实现的结果是:在C列中,无论点击哪个单元格,就弹出日历控件,选择一个日期之后,日期自动插入到单元格;除C列之外,点击其他列的单元格,不会弹出日历选择控件; 要想实现这样的效果,得使用VBA来实现; 选择日历控件,鼠标左键双击,进入代码编辑模式;如下图! 上图中,第一个过程代码就是日历控件所需要的代码,另外,还得需要另外一个代码,在图中按红线圈住部分选择,找到对应的过程,输入如下的VBA代码即可! 完成之后,直接运行VBA代码,返回EXCEL操作窗口,即可实现效果了! 如上图,C3单元格已插入了日期,当你选择C列其他单元格时,就弹出日历控件,以供选择,选择完成,即可插入日期了! 为方便操作,提供源代码: Private Sub Calendar1_Click() ActiveCell = Calendar1.Value Me.Calendar1.Visible = False End Sub Private Sub Worksheet_SelectionChange(ByVal T arget As Range) If Target.Column = 1 Then Me.Calendar1.Visible = True Else Me.Calendar1.Visible = False End If End Sub 新建文本文档.txt 最新文件仅供参考已改成word文本。方便更改

2020届高三精准培优专练十一 动量和冲量、动量定理及其应用(考试版)

培优点十一动量和冲量、动量定理及其应用 一、考点分析 1.本部分内容改为必考后,一般是以较容易或中等难度的选择题或计算题出现,可单独考查,也可和动量守恒定律综合考查。 2.注意要点: (1)注意动量的矢量性及动量变化量的矢量性;(2)动量定理Ft=p′-p中“Ft”为合外力的冲量。 二、考题再现 典例1.(2019?全国I卷?16)最近,我国为“长征九号”研制的大推力新型火箭发动机联试成功,这标志着我国重型运载火箭的研发取得突破性进展。若某次实验中该发动机向后喷射的气体速度约为3 km/s,产生的推力约为4.8×106 N,则它在1 s时间内喷射的气体质量约为( ) A.1.6×102 kg B.1.6×103 kg C.1.6×105 kg D.1.6×106 kg 典例2.(2018?全国II卷?15)高空坠物极易对行人造成伤害。若一个50 g的鸡蛋从一居民楼的25层坠下,与地面的撞击时间约为2 ms,则该鸡蛋对地面产生的冲击力约为( ) A. 10 N B. 102 N C. 103 N D. 104 N 三、对点速练 1.两个物体具有相同的动量,则它们一定具有( ) A.相同的速度B.相同的质量 C.相同的运动方向D.相同的加速度 2.2018年3月22日,一架中国国际航空CA03客机,从天津飞抵香港途中遭遇鸟击,飞机头部被撞穿约

一平方米的大洞,雷达罩被击穿,所幸客机及时安全着陆,无人受伤。若飞机飞行的速度为150 m/s,小鸟在空中的飞行速度非常小,与飞机的速度相比可忽略不计。已知小鸟的质量约为0.4 kg,小鸟与飞机的碰撞时间为6.0×10-4 s。则飞机受到小鸟对它的平均作用力的大小约为( ) A.108 N B.105 N C.103 N D.102 N 3.用水平力F拉一物体,使物体在水平地面上由静止开始做匀加速直线运动,t1时刻撤去拉力F,物体做匀减速直线运动,到t2时刻停止。其速度—时间图象如图所示,且α>β,若拉力F做的功为W1,冲量大小 为I1;物体克服摩擦阻力F f做的功为W2,冲量大小为I2。则下列选项正确的是( ) A.W1>W2;I1>I2B.W1<W2;I1>I2 C.W1<W2;I1<I2D.W1=W2;I1=I2 4.质量为1 kg的物体静止在水平面上,t=0时受到水平拉力F的作用开始运动,F随时间t变化的关系图象如图所示。已知t=4 s时物体刚好停止运动,取g=10 m/s2,以下判断正确的是( ) A.物体所受摩擦力为3 N B.t=2 s时物体的速度最大 C.t=3 s时物体的动量最大 D.物体的最大动能为2 J 5.某人站在与电脑连接的力传感器上做原地纵向摸高训练,图甲是他做下蹲、起跳和回落动作的示意图,图中的小黑点表示人的重心。图乙是电脑上显示的力传感器所受压力随时间变化的图象,已知重力加速度g =10 m/s2,空气阻力不计,则根据图象分析可知( )

PB]-子数据窗口操作

PB]-子数据窗口操作 PB]-子数据窗口 **通常的子数据窗口也就是下拉数据窗口。子数据窗口也是普通的数据窗口对象,没有什么特殊的地方,它的创建方法、可以使用的控件、编程时可以使用的函数等,都和普通的数据窗口相同。特殊的地方只是因为它放在了父数据窗口中,需要和父窗口进行配合。 **当为数据窗口中某字段指定为下拉数据窗口编辑风格时,必须提供以下三个属性: a)子数据窗口名称。 b)显示字段名称:该字段中的内容显示在父数据窗口的字段上,只是显示。 c)数据字段名称:该字段中的内容要赋给父数据窗口的字段,要保存到数据库中。 分别对应数据窗口画板的Edit属性页中的:Eidt Style、Display Column、Data Column。 *子数据窗口不能再包含子数据窗口;父数据窗口可以对其包含的子数据窗口进行插入、删除、检索和保存等操作。 **获取子数据窗口的引用是进行其他操作的前提,使用函数GetChild来获取指定字段的子数据窗口。该函数的语法如下: dw_1.GetChild(name,dwchildvariable) 其中,dw_1.是数据窗口控件名称;name为字段名称,为string类型;dwchildvariable为datawindowchild 类型变量,该变量在函数正确执行后保存对子数据窗口的引用。该函数正确执行则返回1,否则返回-1。在获取了子数据窗口的引用之后,就可以捡索子数据窗口中的数据了。但是,检索子数据窗口的情况比较多,并且也有多种方法。 **保证子数据窗口中的数据更新 用户使用下拉数据窗口录入数据时,其中的数据并不一定有用户需要的。在某些情况下不允许用户再输入其他值,否则可能造成数据的不一致性,这时就可以不再编写其他的脚本。但在允许用户录入时,就需要把用户录入的数据保存在子数据窗口对应的数据表中,以便以后数据录入时不再重复输入该数据。这时就应该编写脚本保存该数据了。 **检索子数据窗口 在应用中,对子数据窗口的编程不是检索数据,就是更新其中的数据。检索数据时,如果只显示子数据窗口中同父数据窗口中某字段取值对应的数据,这时子数据窗口的定义就应该有检索参数。根据检索和更新数据这两个因素,可以将检索数据的情况划分成以下三种: a)没有条件限制,并且不允许更新。 b)没有条件限制,并且允许更新。 c)有条件限制,不管是否可以更新。

PB 15 beta new feature testing guidelines(pb15新功能测试指南)

1 New Properties for Graph DataWindow in https://www.360docs.net/doc/901183565.html, IDE Two new properties, Palette and Template, are introduced in the Graph DataWindow in PowerBuilder .NET. 1.1 Palette property for Graph DataWindow PowerBuilder 15 introduces a new Palette property for the Graph DataWindow for all PowerBuilder .NET targets. It is a brush array. Users can define a Palette property to draw the series of the graph. Click the ellipsis (...) in Palette property. The Palette dialog opens and you can define the palette. 1.2 Template property for Graph DataWindow PowerBuilder 15 introduces a new Template property for the Graph DataWindow for all PowerBuilder .NET targets. Use this property to save the Graph DataWindow template to a file or import a file to a Graph DataWindow. It is easy for users to create Graph DataWindows with a unified style, such as font, back color, etc. Click the ellipsis (...) in Template property. The Template dialog opens: click the SaveToFile… button. All property values of the Graph DataWindow are saved to an .XML file. Click LoadFromFile, and then click the Apply button to apply all the properties from the .XML file to the current Graph DataWindow.

相关文档
最新文档