Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel einer XML-Anwendung in Powerbuilder

Codebeispiel einer XML-Anwendung in Powerbuilder

Y2J
Y2JOriginal
2017-04-25 14:59:272259Durchsuche

Das Datenfenster in Powerbuilder ist im Grunde genommen sehr gut und sehr effizient. Wenn ich in den letzten Tagen XML-Dateien für Projekte exportieren muss, verwende ich pb9 (die XML-Export- und Importfunktion). ist von Powerbuilder9.0 (Funktionen hinzugefügt) hat eine Demo erstellt, um die Machbarkeit zu überprüfen

Die Beispieldatei lautet wie folgt (die DTD wird nicht veröffentlicht, aber es wird ein einfaches Beispiel gegeben)

Der Code lautet wie folgt:

<trans> 
<transdetail> 
<order><date/></order> 
<orderdetail><product/></orderdetail> 
<orderdetail><product/></orderdetail> 
</transdetail> 
<transdetail> 
<order><date/></order> 
<orderdetail><product/></orderdetail> 
<orderdetail><product/></orderdetail> 
</transdetail> 
</trans>

Meine Tischstruktur, ich denke, alle Tische sollten auch so gestaltet sein
Auftrag (Kundenauftrag, einschließlich Kunde, Datum und sonstige Informationen)
orderdetail (Kundenauftragsdetails, einschließlich Produkt-, Mengen- und Preisinformationen)
An diesem Punkt kann eine anspruchsvolle Person möglicherweise auf einen Blick erkennen, dass es einige Probleme mit der Formatierung dieser XML gibt. Dies kann zum Beispiel sinnvoller sein

Der Code lautet wie folgt:

<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>

Aber ich bin eine ZF-Abteilung und kann es nicht ändern, also muss ich es selbst tun Wenn es beschissen ist
Der Verarbeitungscode in pb9: Tatsächlich sind in pb9 nur drei Codezeilen geschrieben, und der eigentliche Code ist eigentlich nur eine Zeile, die hinzugefügt werden soll. Es gibt ein Fenster mit einem Datenfenster und Eine Schaltfläche darauf, und diese Codezeile ist in die Schaltfläche geschrieben, haha
dw_export.save("c:test.xml",xml!,false)
Tatsächlich muss es wirklich verarbeitet werden Was Es ist erforderlich, zwei Datenfenster zu definieren, hauptsächlich deren XML-Vorlagen:
d_order (Export der Bestellkopfdaten, zweite Codezeile, kann in EITX festgelegt werden)
1 Erstellen Sie ein neues Datenfenster (hier beachten, Wenn die bedingten Daten mehrere Zeilen haben, ist es am besten, sie in SQL zu gruppieren, andernfalls werden die generierten Daten wiederholt)
3. Klicken Sie mit der rechten Maustaste in den Bearbeitungsbereich der Export-/Importvorlage XML (im Folgenden als EITX bezeichnet). unter anderem A-Namen speichern
4. Stellen Sie die Verwendungsvorlage unter Datenexport auf den Vorlagennamen ein, den Sie gerade gespeichert haben
Die definierte Vorlage lautet wie folgt:

Der Code lautet wie folgt:

<?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>

Es sind zwei Punkte zu beachten
[Hinweis 1] Dieses Startdetail steuert die Datenzirkulation und muss daher ausgewählt werden, aber jede XML kann nur einen definieren, und ein Problem wird auftreten Wenn ich den Header nach der Schleife bestelle, kann ich daraus schließen, dass er nicht in einem Datenfenster implementiert werden kann und in separaten Datenfenstern verarbeitet werden muss 2] Wir müssen einen Bericht in d_order einfügen. Das heißt, d_orderdetail, in der Kontrollliste in d_order (das gleiche wie in der Datenfenster-Steuerreferenz) ist dw_detail (der Standardname ist dw_1, ich habe den Namen geändert)
d_orderdetail (Auftragsdetaildatenexport, der oben genannte Bericht ist, referenziert durch dw_detail Datenfenster, die dritte Codezeile, kann in EITX eingestellt werden)
Erstellen Sie ein neues Datenfenster
2 Bearbeitungsbereich für die Export-/Import-XML-Vorlage (im Folgenden als EITX bezeichnet), speichern Sie sie unter einem anderen Namen
3. Stellen Sie „Vorlage verwenden“ unter „Datenexport“ auf den soeben gespeicherten Vorlagennamen ein
081e5bcc6823f8ca1975f5f50b39ad04
f8a43964807632951ff0d1b578c07450efa5ae3324779eb7d91e8fa0f8030262
ebaf0786e048d96c4c689bca7242f53a ;
bab239faed32331581b803189fdf21ef
[Hinweis 3]Hinweis: Wenn wir XML in d_order exportieren, werden die XML-Deklaration und der oberste Knoten in d_orderdetail ignoriert.
[Hinweis 4] Dieser Ort definiert den Orderdetail-Teil. Da eine Bestellung mehrere Details enthalten kann, müssen wir festlegen, dass es sich um das Startdetail handelt, bei dem es sich um eine Schleife handelt.
Die endgültig generierte Datei lautet wie folgt


Der Code lautet wie folgt:

Hinweis: Wenn Sie aufgefordert werden, eine XML-Schnittstellendatei zu entwerfen, Bitte berücksichtigen Sie unbedingt die Bequemlichkeit des Benutzers
<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>

Das obige ist der detaillierte Inhalt vonCodebeispiel einer XML-Anwendung in Powerbuilder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn