powerbuilder のデータ ウィンドウは非常に優れており、基本的に作業はこれを中心に行われ、非常に効率的です。最近プロジェクトで XML ファイルをエクスポートする必要がある場合は、pb9 を使用してください (xml エクスポートおよびインポート機能は powerbuilder9.0 から追加されました)。 ) 実現可能性を検証するためにデモを作りました
サンプルファイルは以下の通りです(DTDは掲載しません、簡単な例をあげます)
コードは以下の通りです:
<trans> <transdetail> <order><date/></order> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </transdetail> <transdetail> <order><date/></order> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </transdetail> </trans>
私のテーブル構造だと思いますみんなのテーブルもこうあるべき どれもこんなデザインになっています
order (顧客、日付、その他の情報を含む販売注文)
orderdetail (商品、数量、価格情報を含む販売注文の詳細)
この時点で、目の肥えた人はこの XML の書式設定が多少おかしいことが一目でわかります。質問、たとえば、これはより合理的かもしれません
コードは次のとおりです:
<trans> <!--transdetail 这个节或许是多余的--> <order> <date/> <detail><!-- 明细是一个订单的一部分,不应该脱离订单头--> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </detail> </order> <order> <date/> <detail> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </detail> </order> </trans>
ただし、これは ZF 部門であり、変更できないため、 pb9 の処理コード: 実際、pb9 には実際のコードは 3 行しか書かれていません。コードは実際にはウィンドウを追加し、データ ウィンドウとボタンを配置する 1 行だけです。このコード行をボタンに書きます (笑) dw_export.save("c:test.xml",xml!,false)
実際、本当に対処する必要があるのは、主に 2 つのデータ ウィンドウを定義することです。 XML テンプレートの定義:
d_order (オーダー ヘッダー データのエクスポート、コードの 2 行目は EITX で設定できます)
1. 新しいデータ ウィンドウを作成します (ここで注意してください。条件付きデータに複数の行がある場合は、グループ化するのが最善です)。 SQL で指定しないと、生成されたデータが繰り返されます)
3. エクスポート/インポート テンプレート xml (以下、EITX と呼びます) 編集領域で右クリックし、別の名前で保存します。
4. データ エクスポートで使用するテンプレートを設定します。保存したテンプレート名は次のとおりです:
コードは次のとおりです:
<?xml version=~"1.0~" encoding=~"gb2312~" standalone=~"no~"?> <trans> <transdetail __pbband=~"detail~"><!-- 在EITX中的transdetail节上点右键选中"starts detail" [注1] --> <order> <date>order_date</date> </order> dw_detail <!-- 在EITX中的transdetail节上点右键选"add child"下的"datawindow control refrence" [注2] --> </transdetail> </trans>
[注 1] この開始詳細は、データのサイクルを制御するため、選択する必要がありますが、各 XML で定義できるのは 1 つだけです。注文ヘッダーを循環させた場合、どのようにして注文の詳細を再度循環させることができるでしょうか。結論としては、データ ウィンドウでそれを実現することはできません。別のデータ ウィンドウで処理する必要があり、注 2 があります
[注 2] d_order にレポートを挿入する必要があります。これは d_orderdetail であり、d_order のコントロール リスト (データウィンドウ コントロールの参照と同じ) は dw_detail (デフォルトの名前は dw_1 ですが、名前を変更しました)d_orderdetail (注文詳細データのエクスポート、つまり、上記のレポートと dw_detail によって参照されるデータ ウィンドウ。コードの 3 行目は EITX で設定できます)
1. 新しいデータを作成します。ウィンドウ
2. エクスポート/インポートテンプレート XML (以下、EITX) で、編集領域で右クリックし、別の名前で保存します
3. データエクスポートの下の使用テンプレートを、先ほど保存したテンプレート名に設定します
xml version=~"1.0~" encoder=~"gb2312~"standalone=~"no~"?>
[注 3] d_order で XML をエクスポートする場合、d_orderdetail の XML 宣言とトップ ノードは無視されることに注意してください。したがって、詳細を開始するように設定する必要があります。これはループです。
最終的に生成されるファイルは次のとおりです
コードは次のとおりです:
<trans> <transdetail> <order><date>20080101</date></order> <orderdetail><product>甲</product></orderdetail> <orderdetail><product>已</product></orderdetail> </transdetail> <transdetail> <order><date>20080102</date></order> <orderdetail><product>甲</product></orderdetail> <orderdetail><product>丙</product></orderdetail> </transdetail> </trans>
以上がPowerBuilder での XML アプリケーションのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。