pb編譯的模板無法勾選
⑴ 手機上ppt怎麼搞空白模版
手機上PPT搞空白模板,你可以直接退出當前的PPT的顯示,或者是直接選擇創建的方式來創建空白模板。
⑵ pb 怎麼讀取xml格式的字元串
從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當中。這里引入一個新的數據窗口屬性:Export.XML.UseTemplate,用來指定在某次導出操作中使用的模板對象名稱。在程序運行(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="<?xml version=~"1.0~"
encoding=~"UTF-8~"
standalone=~"no~"?>
<!DOCTYPE Orders>
<Orders><!-- omitted for brevity --></Orders>"
)
)
pb9中數據窗口的XML特性(二、編輯導出模板)
在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等等)。
pb9中數據窗口的XML特性(三、導出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_1.Object.DataWindow.Export.XML.UseTemplate = "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"
pb9中數據窗口的XML特性(四、導入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、Import.XML.UseTemplate 導入時候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")