pb9截图的图片打印不了

pb9截图的图片打印不了,第1张

题主是否想询问“pb9截图的打印不了的原因是什么”pb9截图的打印不了的原因如下:

1、格式不受支持,将其转换为受支持的格式,例如JPEG或PNG格式。

2、打印机未正确连接或未正确安装驱动程序,确保已安装正确的驱动程序。

使用方法:

1、 建立一个应用,并设好与数据库的接口,这是 *** 作数据库的前提。

2、 在应用中建一应用窗口W_1,在其上加入二个名为dw_3和dw_4的datawindow控制对象和一个名为TV_1的TreeView对象。

3、 修改DW_3属性

General:把Datawindow object name填写一个已存在的名为DW_date的datawindow(注意:它与datawindow控制对象是不同的),用于生成树视图项,将其Visible项设为不可见。

4、 修改DW_4属性

General:把Datawindow object name填写一个已存在的名为DW_TS的datawindow对象,用于显示查询出的具体内容。

5、 编辑TV_1的属性

TreeView的树视图项不能直接编辑,必须在Script中编写程序。

Picture:在Picture Name中加入四个不同的图标,用于代表树视图中的两个层次(一、二级)、两种状态(未选、选中)。

General:可根据具体应用设定是否选中,其中:

Delete Items:运行中是否允许删除表项。

Disable PragDrog: 运行中是否允许拖放表项。

Edit Labels: 运行中是否允许单击表项来改变表项的标题。

Show Buttons:是否在表项放显示+-按钮,有示相对的扩展和收缩。

Hide Selection:当该控件失去焦点时,选中项是否以高亮度显示。

Show Line:表项间是否加一竖线。

Lines At Root:所有根层表项是否用竖线连接。

Indentation:子表项相对于父表项的向右缩进度。

6、 编写TV_1的Script

这里是TreeView控件的关键,也是难点。

二、TreeView 控件的信息构成及创建

树? 项TreeViewItem是TreeView 控件的基本信息单位,树视图项的生成一般有二种方法,一种是先生成根层视图项,再在应用中动态生成下级视图项,另一种是把全部树视图项一次和成。两种方法各有优点,请根据具体情况选用,本例中采用后一种方法。

1、 树视图项TreeViewItem的主要属性

Label:String 型,树视图项的显示信息。

Data:Any型,树视图项的内部值。

Level:Integer型,树视图项在树视图中级别。

Children:Boolean 型,它决定该项是否有下一层(如图中书名)。

PictureIndex:Integer 型,该项非选中时所用的图标在图标队列中的编号。

SelectedPictureIndex:Integer型,该项选中时所用的图标在图标队列中的编号。

2、 生成TreeViewItem项用到的函数

InsertItemFirst():将加入项作为第一项

InsertItemLast():将加入项作为最后一项

InsertItem():将加入项插入到指定项的后面

InsertItemSort():按顺序放置。

3、 TreeView的常用事件

Constructor: 该事件在控件创建时触发,可在这里构造TreeViewItem。

Click:单击TreeViewItem项时,执行查询程序。

Double Click: 双击TreeViewItem项时,执行查询程序。

ItemPopulate 事件: 该事件在某TreeViewItem项首次展开时触发, 触发的同时系统会将 该TreeViewItem项的句柄通过参数handle 传递过来。它主要用来生成对应项的下层信息项。主要用于第一种方法。

三、 事件代码

1、树视图控件TV_1的constructor事件代码 wanqi 1999628

integer li_rowcount,li_row

string li_current_dn,li_last_dn,li_current_ei,li_last_ei

//声明二个树视图的实例变量

treeviewitem itvi_level_one,itvi_level_two

//long ii_h_l_one

//long ii_h_l_two

dw_3settransobject(sqlca)//dw_3

为隐含的数据窗口,存有生成树的数据

li_rowcount=dw_3retrieve()//行数

dw_3setsort("lb,pm")

dw_3sort()

//生成树视图的各级树视图项

for li_row=1 to li_rowcount

li_current_dn=dw_3objectlb[li_row]

//DW_3对象中"LB类别"

li_current_ei=dw_3objectpm[li_row]

//DW_3对象中"PM品名"

if isnull (li_current_ei) then

li_current_ei=""

end if

if li_current_dn$#@60; $#@62;li_last_dn then

//IF LB不与一级视图项重复

//设置一级树视图项

itvi_level_onelabel=dw_3objectLB[li_row]

//视图项的显示信息

itvi_level_onelevel=1 //级别

itvi_level_onedata=li_current_dn

//视图项的内部信息

itvi_level_onepictureindex=1

//没选中时所用的图标序号

itvi_level_oneselectedpictureindex=3

//选中时使用的图标序号

itvi_level_onechildren=(li_current_ei$#@60; $#@62; )

//树视图是否有下一级

ii_h_l_one=thisinsertitemlast(0,itvi_level_one)

//将项加入到一级树的最后一项

end if

//设置二级树视图项

if li_current_dn$#@60; $#@62;li_last_ei then

if li_current_ei$#@60;$#@62; then

itvi_level_twolabel=dw_3objectpm[li_row]

itvi_level_twolevel=2

itvi_level_twodata=li_current_dn

itvi_level_twopictureindex=2

itvi_level_twoselectedpictureindex=4

itvi_level_twodata=li_current_ei

itvi_level_twochildren=false

ii_h_l_two=thisinsertitemlast

(ii_h_l_one,itvi_level_two)

//将项加入到二级树的最后一项

end if

end if

li_last_dn=li_current_dn//设比较项

li_last_ei=li_current_ei

next

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

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

它是数据窗口新增的组件,主要利用导出模板(Export Templates)作为基础结构来转换行数据到XML格式数据。引擎通过分析模板内容格式化数据,然后输出到XML形式。因为模板本身也是XML文档,所以它首先也需要被解析。导出引擎通过XML解析器(XML Parser)的服务来分析模板文件。在低层,XML解析通过C++和Apache Xerces实现,利用一个适配器接口(pbxerces90dll)来访问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当中。这里引入一个新的数据窗口属性:ExportXMLUseTemplate,用来指定在某次导出 *** 作中使用的模板对象名称。在程序运行(runtime)和设计(designtime)时都可以修改这个属性。XML导出模板的语法见列表1:

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

exportxml(

usetemplate="t_orders"

metadatatype=2 savemetadata=1

template=(

omment="Order items with external DTD"

name="t_orders"

publicid="c:\xmldw\ordersdtd"

xml="<xml version=~"10~"

encoding=~"UTF-8~"

standalone=~"no~">

<!DOCTYPE Orders>

<Orders><!-- omitted for brevity --></Orders>"

)

)

pb9中数据窗口的XML特性(二、编辑导出模板)

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

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

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

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

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

个别菜单项说明:

根节点d出菜单项中:

Schema Options… :d出对话框,可以编辑当使用内嵌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”d出对话框中选择对应的数据窗口控件对象。

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

pb9中数据窗口的XML特性(三、导出XML)

一、导出XML方法(Exporting XML)

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

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

2、使用SaveAs()函数

dw_1SaveAs( "c:\foo\barxml", XML!, TRUE )

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

ls_xml = dw_1objectdatawindowdataxml

4、使用数据窗口Describle函数

ls_xml = dw_1Describe( "datawindowdataxml")

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

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

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

dw_1ObjectDataWindowExportXMLUseTemplate = "value"

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

dw_1ObjectDataWindowExportXMLMetaDataType = "value"

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

dw_1ObjectDataWindowExportXMLSaveMetaData = "value"

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

dw_1ObjectDataWindowExportXMLHeadGroups = "value"

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

dw_1ObjectDataWindowExportXMLIncludeWhiteSpace = "value"

pb9中数据窗口的XML特性(四、导入XML)

一、导入XML方法(Importing XML)

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

1、从XML文件中导入

dw_1ImportFile( XML!, "c:\foo\barxml" {} )

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

dw_1ImportString( XML!, ls_xml {} )

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

ls_xml = dw_1ImportClipboard()

{} 指函数的可选参数

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

1、ImportXMLUseTemplate 导入时候XML必须匹配哪一个模板

2、ImportXMLTrace 导入时是否将trace信息记录到文件中

3、ImportXMLTraceFile 导入时产生的trace信息所保存的文件名

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

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

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

long ll_ret

ll_ret = XMLParseFile("c:\temp\mydocxml")

if ll_ret = 0 then dw_1ImportFile("c:\temp\mydocxml")

pb115比pb9高,不能直接在PB9中加载。

只能单个dw或WIN,导出为srd源码,然后再pb9的库中导入。

导出:

导入:

以上就是关于pb9截图的图片打印不了全部的内容,包括:pb9截图的图片打印不了、PB6.5怎么用、pb 怎么读取xml格式的字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9660542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存