From bd09edf1b441dcc6ab098f277bea86a72c009879 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期四, 05 十二月 2024 17:30:21 +0800
Subject: [PATCH] update
---
jrj/xframe/devloper/XDevEditPage.hpp | 17
jrj/xframe/devloper/XDevEditXApp.cpp | 553 +++++
jrj/xframe/devloper/XDevEditXLayer.cpp | 569 ----
jrj/xframe/devloper/XDevEditXOffice.cpp | 613 +----
jrj/xframe/devloper/XDevEditFlow.cpp | 513 ++++
jrj/xframe/devloper/XDevEditXRuler.cpp | 577 ----
jrj/xframe/devloper/XDevEditXMSSQL.cpp | 981 ++++----
jrj/xframe/devloper/XDevEditXWKDlg.cpp | 577 ----
/dev/null | 561 -----
jrj/xframe/devloper/XDevEditXPage.cpp | 7
jrj/xframe/devloper/XDevEditXQuery.cpp | 11
jrj/xframe/wobject/xutil.hpp | 28
jrj/project/business/QuoteFile.cpp | 323 +-
jrj/xframe/devloper/XDevEditXWorkNode.cpp | 577 ----
jrj/xframe/devloper/XDevEditHtml.cpp | 109 +
jrj/xframe/xcontrol/xdwgrid.hpp | 18
jrj/xframe/xcontrol/xdwtable.hpp | 7
jrj/ext-jrj/ext-jrj.vcxproj | 16
jrj/xframe/devloper/XDevEditXFile.cpp | 25
jrj/xframe/kobject/kutil.hpp | 5
jrj/xframe/xcontrol/xcell.hpp | 6
jrj/xframe/devloper/XDevEditCode.cpp | 122 +
22 files changed, 2,544 insertions(+), 3,671 deletions(-)
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index 063c9ef..44b75f9 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -193,9 +193,9 @@
<ClInclude Include="..\project\viewobject\shoppingcart.view.hpp" />
<ClInclude Include="..\project\viewobject\supplier.view.hpp" />
<ClInclude Include="..\xframe\adt\xarray.hpp" />
- <ClInclude Include="..\xframe\devloper\XDevEditPage.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
+ <ClInclude Include="..\xframe\devloper\XDevEditPage.hpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\xframe\kobject\kapp.hpp" />
<ClInclude Include="..\xframe\kobject\kbase.hpp" />
@@ -1171,6 +1171,10 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="..\xframe\devloper\XDevEditCode.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ </ClCompile>
<ClCompile Include="..\xframe\devloper\XDevEditDbmap.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
@@ -1179,7 +1183,7 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\xframe\devloper\XDevEditXCode.cpp">
+ <ClCompile Include="..\xframe\devloper\XDevEditXApp.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
@@ -1191,11 +1195,11 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\xframe\devloper\XDevEditXFlow.cpp">
+ <ClCompile Include="..\xframe\devloper\XDevEditFlow.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\xframe\devloper\XDevEditXHtml.cpp">
+ <ClCompile Include="..\xframe\devloper\XDevEditHtml.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
diff --git a/jrj/project/business/QuoteFile.cpp b/jrj/project/business/QuoteFile.cpp
index eb32a9e..bb78ecd 100644
--- a/jrj/project/business/QuoteFile.cpp
+++ b/jrj/project/business/QuoteFile.cpp
@@ -254,10 +254,10 @@
{
xstring content = L"";
xstring base = L"";
- base += L"<QuoteNo>" + getBaseItem(cell, L"报价单号:") + L"</QuoteNo>";
- base += L"<ExpDate>" + getBaseItem(cell, L"报价截止日期:") + L"</ExpDate>";
- base += L"<PrjName>" + getBaseItem(cell, L"项目名称:") + L"</PrjName>";
- base += L"<QuoteDate>" + dw_base.GetItemString(1, L"QuoteDate") + L"</QuoteDate>";
+ base += L"<QuoteNo>" + getBaseXmlItem(cell, L"报价单号:") + L"</QuoteNo>";
+ base += L"<ExpDate>" + getBaseXmlItem(cell, L"报价截止日期:") + L"</ExpDate>";
+ base += L"<PrjName>" + getBaseXmlItem(cell, L"项目名称:") + L"</PrjName>";
+ base += L"<QuoteDate>" + dw_base.GetItemXmlString(1, L"QuoteDate") + L"</QuoteDate>";
int startRow = getItemHeadRow(cell);
@@ -313,34 +313,34 @@
xstring itemStr = L"";
rowid = getRowID(cell, row);
itemStr += L"<RowID>" + getRowID(cell, row) + L"</RowID>";
- itemStr += L"<SKUID>" + cell.GetItemString(row, colSKUID) + L"</SKUID>";
+ itemStr += L"<SKUID>" + cell.GetItemXmlString(row, colSKUID) + L"</SKUID>";
itemStr += L"<customer-photo>" + getRowTerm(cell, row, L"customer-photo") + L"</customer-photo>";
itemStr += L"<supplier-photo>" + getRowTerm(cell, row, L"supplier-photo") + L"</supplier-photo>";
itemStr += L"<customer-photo-url>" + getImageList(getRowTerm(cell, row, L"customer-photo")) + L"</customer-photo-url>";
itemStr += L"<supplier-photo-url>" + getImageList(getRowTerm(cell, row, L"supplier-photo")) + L"</supplier-photo-url>";
- itemStr += L"<ItemNo>" + cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<CustomItemNo>" + cell.GetItemString(row, colCustomerItemNo) + L"</CustomItemNo>";
- itemStr += L"<ItemName>" + cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
- itemStr += L"<CustomerImage>" + cell.GetItemString(row, colCustomerImage) + L"</CustomerImage>";
- itemStr += L"<BuyerPrice>" + cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
- itemStr += L"<SaleRemark>" + cell.GetItemString(row, colSaleRemark) + L"</SaleRemark>";
+ itemStr += L"<ItemNo>" + cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<CustomItemNo>" + cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomItemNo>";
+ itemStr += L"<ItemName>" + cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<CustomerImage>" + cell.GetItemXmlString(row, colCustomerImage) + L"</CustomerImage>";
+ itemStr += L"<BuyerPrice>" + cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+ itemStr += L"<SaleRemark>" + cell.GetItemXmlString(row, colSaleRemark) + L"</SaleRemark>";
- itemStr += L"<BuyerMOQ>" + cell.GetItemString(row, colBuyerMOQ) + L"</BuyerMOQ>";
- itemStr += L"<BuyerRemark>" + cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
- itemStr += L"<FactoryImage>" + cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
- itemStr += L"<GWT>" + cell.GetItemString(row, colGWT) + L"</GWT>";
- itemStr += L"<NWT>" + cell.GetItemString(row, colNWT) + L"</NWT>";
- itemStr += L"<VolDesc>" + cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<Vol>" + cell.GetItemString(row, colVol) + L"</Vol>";
- itemStr += L"<F40HQ>" + cell.GetItemString(row, col40HQ) + L"</F40HQ>";
- itemStr += L"<Packing>" + cell.GetItemString(row, colInnerOuter) + L"</Packing>";
- itemStr += L"<Quantity>" + cell.GetItemString(row, colItemQty) + L"</Quantity>";
- itemStr += L"<Package>" + cell.GetItemString(row, colPackage) + L"</Package>";
- itemStr += L"<Buyer>" + cell.GetItemString(row, colBuyer) + L"</Buyer>";
- itemStr += L"<RemarkS>" + cell.GetItemString(row, colRemark) + L"</RemarkS>";
- itemStr += L"<FOBPrice>" + cell.GetItemString(row, colFOBPrice) + L"</FOBPrice>";
+ itemStr += L"<BuyerMOQ>" + cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+ itemStr += L"<BuyerRemark>" + cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+ itemStr += L"<FactoryImage>" + cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+ itemStr += L"<GWT>" + cell.GetItemXmlString(row, colGWT)+ L"</GWT>";
+ itemStr += L"<NWT>" + cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+ itemStr += L"<VolDesc>" + cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<Vol>" + cell.GetItemXmlString(row, colVol) + L"</Vol>";
+ itemStr += L"<F40HQ>" + cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
+ itemStr += L"<Packing>" + cell.GetItemXmlString(row, colInnerOuter) + L"</Packing>";
+ itemStr += L"<Quantity>" + cell.GetItemXmlString(row, colItemQty) + L"</Quantity>";
+ itemStr += L"<Package>" + cell.GetItemXmlString(row, colPackage) + L"</Package>";
+ itemStr += L"<Buyer>" + cell.GetItemXmlString(row, colBuyer) + L"</Buyer>";
+ itemStr += L"<RemarkS>" + cell.GetItemXmlString(row, colRemark) + L"</RemarkS>";
+ itemStr += L"<FOBPrice>" + cell.GetItemXmlString(row, colFOBPrice) + L"</FOBPrice>";
itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
@@ -356,10 +356,10 @@
{
xstring content = L"";
xstring base = L"";
- base += L"<QuoteNo>" + getBaseItem(cell, L"报价单号:") + L"</QuoteNo>";
- base += L"<ExpDate>" + getBaseItem(cell, L"报价截止日期:") + L"</ExpDate>";
- base += L"<PrjName>" + getBaseItem(cell, L"项目名称:") + L"</PrjName>";
- base += L"<QuoteDate>" + dw_base.GetItemString(1, L"QuoteDate") + L"</QuoteDate>";
+ base += L"<QuoteNo>" + getBaseXmlItem(cell, L"报价单号:") + L"</QuoteNo>";
+ base += L"<ExpDate>" + getBaseXmlItem(cell, L"报价截止日期:") + L"</ExpDate>";
+ base += L"<PrjName>" + getBaseXmlItem(cell, L"项目名称:") + L"</PrjName>";
+ base += L"<QuoteDate>" + dw_base.GetItemXmlString(1, L"QuoteDate") + L"</QuoteDate>";
int startRow = getItemHeadRow(cell);
@@ -423,46 +423,46 @@
xstring itemStr = L"";
itemStr += L"<RowID>" + getRowID(cell, row) + L"</RowID>";
- itemStr += L"<SKUID>" + cell.GetItemString(row, colSKUID) + L"</SKUID>";
+ itemStr += L"<SKUID>" + cell.GetItemXmlString(row, colSKUID) + L"</SKUID>";
itemStr += L"<customer-photo>" + getRowTerm(cell, row, L"customer-photo") + L"</customer-photo>";
itemStr += L"<supplier-photo>" + getRowTerm(cell, row, L"supplier-photo") + L"</supplier-photo>";
- itemStr += L"<ItemNo>" + cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<CustomItemNo>" + cell.GetItemString(row, colCustomerItemNo) + L"</CustomItemNo>";
- itemStr += L"<ItemName>" + cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
- itemStr += L"<CustomerImage>" + cell.GetItemString(row, colCustomerImage) + L"</CustomerImage>";
- itemStr += L"<BuyerPrice>" + cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
- itemStr += L"<SaleRemark>" + cell.GetItemString(row, colSaleRemark) + L"</SaleRemark>";
+ itemStr += L"<ItemNo>" + cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<CustomItemNo>" + cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomItemNo>";
+ itemStr += L"<ItemName>" + cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<CustomerImage>" + cell.GetItemXmlString(row, colCustomerImage) + L"</CustomerImage>";
+ itemStr += L"<BuyerPrice>" + cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+ itemStr += L"<SaleRemark>" + cell.GetItemXmlString(row, colSaleRemark) + L"</SaleRemark>";
- itemStr += L"<BuyerMOQ>" + cell.GetItemString(row, colBuyerMOQ) + L"</BuyerMOQ>";
- itemStr += L"<BuyerRemark>" + cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
- itemStr += L"<FactoryImage>" + cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
- itemStr += L"<GWT>" + cell.GetItemString(row, colGWT) + L"</GWT>";
- itemStr += L"<NWT>" + cell.GetItemString(row, colNWT) + L"</NWT>";
- itemStr += L"<VolDesc>" + cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<Vol>" + cell.GetItemString(row, colVol) + L"</Vol>";
- itemStr += L"<F40HQ>" + cell.GetItemString(row, col40HQ) + L"</F40HQ>";
- itemStr += L"<Packing>" + cell.GetItemString(row, colInnerOuter) + L"</Packing>";
- itemStr += L"<Quantity>" + cell.GetItemString(row, colItemQty) + L"</Quantity>";
- itemStr += L"<Package>" + cell.GetItemString(row, colPackage) + L"</Package>";
- itemStr += L"<Buyer>" + cell.GetItemString(row, colBuyer) + L"</Buyer>";
- itemStr += L"<RemarkS>" + cell.GetItemString(row, colRemark) + L"</RemarkS>";
- itemStr += L"<FOBPrice>" + cell.GetItemString(row, colFOBPrice) + L"</FOBPrice>";
+ itemStr += L"<BuyerMOQ>" + cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+ itemStr += L"<BuyerRemark>" + cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+ itemStr += L"<FactoryImage>" + cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+ itemStr += L"<GWT>" + cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+ itemStr += L"<NWT>" + cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+ itemStr += L"<VolDesc>" + cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<Vol>" + cell.GetItemXmlString(row, colVol) + L"</Vol>";
+ itemStr += L"<F40HQ>" + cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
+ itemStr += L"<Packing>" + cell.GetItemXmlString(row, colInnerOuter) + L"</Packing>";
+ itemStr += L"<Quantity>" + cell.GetItemXmlString(row, colItemQty) + L"</Quantity>";
+ itemStr += L"<Package>" + cell.GetItemXmlString(row, colPackage) + L"</Package>";
+ itemStr += L"<Buyer>" + cell.GetItemXmlString(row, colBuyer) + L"</Buyer>";
+ itemStr += L"<RemarkS>" + cell.GetItemXmlString(row, colRemark) + L"</RemarkS>";
+ itemStr += L"<FOBPrice>" + cell.GetItemXmlString(row, colFOBPrice) + L"</FOBPrice>";
- itemStr += L"<Supplier>" + cell.GetItemString(row, colSupplier) + L"</Supplier>";
- itemStr += L"<Supplier1>" + cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
- itemStr += L"<Supplier2>" + cell.GetItemString(row, colSupplier2) + L"</Supplier2>";
- itemStr += L"<Supplier3>" + cell.GetItemString(row, colSupplier3) + L"</Supplier3>";
- itemStr += L"<POPrice>" + cell.GetItemString(row, colPOPrice) + L"</POPrice>";
- itemStr += L"<POPrice1>" + cell.GetItemString(row, colPOPrice1) + L"</POPrice1>";
- itemStr += L"<POPrice2>" + cell.GetItemString(row, colPOPrice2) + L"</POPrice2>";
- itemStr += L"<POPrice3>" + cell.GetItemString(row, colPOPrice3) + L"</POPrice3>";
+ itemStr += L"<Supplier>" + cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+ itemStr += L"<Supplier1>" + cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+ itemStr += L"<Supplier2>" + cell.GetItemXmlString(row, colSupplier2) + L"</Supplier2>";
+ itemStr += L"<Supplier3>" + cell.GetItemXmlString(row, colSupplier3) + L"</Supplier3>";
+ itemStr += L"<POPrice>" + cell.GetItemXmlString(row, colPOPrice) + L"</POPrice>";
+ itemStr += L"<POPrice1>" + cell.GetItemXmlString(row, colPOPrice1) + L"</POPrice1>";
+ itemStr += L"<POPrice2>" + cell.GetItemXmlString(row, colPOPrice2) + L"</POPrice2>";
+ itemStr += L"<POPrice3>" + cell.GetItemXmlString(row, colPOPrice3) + L"</POPrice3>";
- itemStr += L"<BOMType>" + cell.GetItemString(row, colBOMType) + L"</BOMType>";
- itemStr += L"<BOMType1>" + cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
- itemStr += L"<BOMType2>" + cell.GetItemString(row, colBOMType2) + L"</BOMType2>";
- itemStr += L"<BOMType3>" + cell.GetItemString(row, colBOMType2) + L"</BOMType3>";
+ itemStr += L"<BOMType>" + cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+ itemStr += L"<BOMType1>" + cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+ itemStr += L"<BOMType2>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType2>";
+ itemStr += L"<BOMType3>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType3>";
itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
itemStr += L"<EnquiryLineID>" + getRowTerm(cell, row, L"EnquiryLineID") + L"</EnquiryLineID>";
@@ -474,19 +474,19 @@
if (cell.GetItemString(row, colItemName) != L"" || cell.GetItemString(row, colItemSpec) != L"") break;
if (cell.GetItemString(row, colSupplier) == L"")break;
xstring extStr = L"";
- extStr += L"<Supplier>" + cell.GetItemString(row, colSupplier) + L"</Supplier>";
- extStr += L"<Supplier1>" + cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
- extStr += L"<Supplier2>" + cell.GetItemString(row, colSupplier2) + L"</Supplier2>";
- extStr += L"<Supplier3>" + cell.GetItemString(row, colSupplier3) + L"</Supplier3>";
- extStr += L"<POPrice>" + cell.GetItemString(row, colPOPrice) + L"</POPrice>";
- extStr += L"<POPrice1>" + cell.GetItemString(row, colPOPrice1) + L"</POPrice1>";
- extStr += L"<POPrice2>" + cell.GetItemString(row, colPOPrice2) + L"</POPrice2>";
- extStr += L"<POPrice3>" + cell.GetItemString(row, colPOPrice3) + L"</POPrice3>";
+ extStr += L"<Supplier>" + cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+ extStr += L"<Supplier1>" + cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+ extStr += L"<Supplier2>" + cell.GetItemXmlString(row, colSupplier2) + L"</Supplier2>";
+ extStr += L"<Supplier3>" + cell.GetItemXmlString(row, colSupplier3) + L"</Supplier3>";
+ extStr += L"<POPrice>" + cell.GetItemXmlString(row, colPOPrice) + L"</POPrice>";
+ extStr += L"<POPrice1>" + cell.GetItemXmlString(row, colPOPrice1) + L"</POPrice1>";
+ extStr += L"<POPrice2>" + cell.GetItemXmlString(row, colPOPrice2) + L"</POPrice2>";
+ extStr += L"<POPrice3>" + cell.GetItemXmlString(row, colPOPrice3) + L"</POPrice3>";
- extStr += L"<BOMType>" + cell.GetItemString(row, colBOMType) + L"</BOMType>";
- extStr += L"<BOMType1>" + cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
- extStr += L"<BOMType2>" + cell.GetItemString(row, colBOMType2) + L"</BOMType2>";
- extStr += L"<BOMType3>" + cell.GetItemString(row, colBOMType2) + L"</BOMType3>";
+ extStr += L"<BOMType>" + cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+ extStr += L"<BOMType1>" + cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+ extStr += L"<BOMType2>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType2>";
+ extStr += L"<BOMType3>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType3>";
itemStr += L"<ExtItem>" + extStr + L"</ExtItem>"; //备用采购信息
xstring eid = GetGuid();
@@ -567,6 +567,11 @@
im.Redraw();
return 1;
+ }
+
+ xstring getBaseXmlItem(xcell dw_cell, xstring colname)
+ {
+ return xutil::ToXmlText(getBaseItem(dw_cell, colname));
}
xstring getBaseItem(xcell dw_cell, xstring colname)
@@ -858,14 +863,14 @@
xstring itemStr = L"";
itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
- itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<CustomerItemNo>" + dw_cell.GetItemString(row, colCustomerItemNo) + L"</CustomerItemNo>";
- itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
- itemStr += L"<BuyerPrice>" + dw_cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
- itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
- itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+ itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<CustomerItemNo>" + dw_cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomerItemNo>";
+ itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<BuyerPrice>" + dw_cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+ itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+ itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
if (dw_cell.GetItemString(row, colBuyerPrice) == L"") return L"采购价格没有录入";
if (dw_cell.GetItemString(row, colGWT) == L"") return L"毛重没有录入";
@@ -884,14 +889,14 @@
{
if (dw_cell.GetItemString(row, colPOPrice1) == L"") return L"采购价格1没有录入";
}
- itemStr += L"<BuyerMOQ>" + dw_cell.GetItemString(row, colBuyerMOQ) + L"</BuyerMOQ>";
- itemStr += L"<BuyerRemark>" + dw_cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
- itemStr += L"<FactoryImage>" + dw_cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
- itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGWT) + L"</GWT>";
- itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNWT) + L"</NWT>";
- itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<Vol>" + dw_cell.GetItemString(row, colVol) + L"</Vol>";
- itemStr += L"<F40HQ>" + dw_cell.GetItemString(row, col40HQ) + L"</F40HQ>";
+ itemStr += L"<BuyerMOQ>" + dw_cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+ itemStr += L"<BuyerRemark>" + dw_cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+ itemStr += L"<FactoryImage>" + dw_cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+ itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+ itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+ itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<Vol>" + dw_cell.GetItemXmlString(row, colVol) + L"</Vol>";
+ itemStr += L"<F40HQ>" + dw_cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
itemStr += L"<EnquiryLineID>" + getRowTerm(dw_cell, row, L"EnquiryLineID") + L"</EnquiryLineID>";
@@ -1057,25 +1062,25 @@
xstring itemStr = L"";
xstring issend = L"1";
itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
- itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
itemStr += L"<RowNo>" + xstring(row - startRow + 1) + L"</RowNo>";
- itemStr += L"<Purchor>" + dw_cell.GetItemString(row, colBuyer) + L"</Purchor>";
- itemStr += L"<Package>" + dw_cell.GetItemString(row, colPackage) + L"</Package>";
- itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNW) + L"</NWT>";
- itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGW) + L"</GWT>";
- itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<Supplier>" + dw_cell.GetItemString(row, colSupplier) + L"</Supplier>";
- itemStr += L"<BuyPrice>" + dw_cell.GetItemString(row, colPOPrice) + L"</BuyPrice>";
- itemStr += L"<Supplier1>" + dw_cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
- itemStr += L"<BuyPrice1>" + dw_cell.GetItemString(row, colPOPrice1) + L"</BuyPrice1>";
- itemStr += L"<BOMType1>" + dw_cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
- itemStr += L"<BOMType>" + dw_cell.GetItemString(row, colBOMType) + L"</BOMType>";
- itemStr += L"<POPrice>" + dw_cell.GetItemString(row, colPrice) + L"</POPrice>";
- itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
- itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+ itemStr += L"<Purchor>" + dw_cell.GetItemXmlString(row, colBuyer) + L"</Purchor>";
+ itemStr += L"<Package>" + dw_cell.GetItemXmlString(row, colPackage) + L"</Package>";
+ itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNW) + L"</NWT>";
+ itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGW) + L"</GWT>";
+ itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<Supplier>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+ itemStr += L"<BuyPrice>" + dw_cell.GetItemXmlString(row, colPOPrice) + L"</BuyPrice>";
+ itemStr += L"<Supplier1>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+ itemStr += L"<BuyPrice1>" + dw_cell.GetItemXmlString(row, colPOPrice1) + L"</BuyPrice1>";
+ itemStr += L"<BOMType1>" + dw_cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+ itemStr += L"<BOMType>" + dw_cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+ itemStr += L"<POPrice>" + dw_cell.GetItemXmlString(row, colPrice) + L"</POPrice>";
+ itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+ itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
if (dw_cell.GetItemString(row, colBuyer) == L"")issend = L"0";
itemStr += L"<IsSend>" + issend + L"</IsSend>";
@@ -1123,19 +1128,19 @@
xstring itemStr = L"";
xstring issend = L"1";
itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
- itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<CustomerItemNo>" + dw_cell.GetItemString(row, colCustomerItemNo) + L"</CustomerItemNo>";
- itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<CustomerItemNo>" + dw_cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomerItemNo>";
+ itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
itemStr += L"<RowNo>" + xstring(row - startRow + 1) + L"</RowNo>";
- itemStr += L"<Purchor>" + dw_cell.GetItemString(row, colBuyer) + L"</Purchor>";
- itemStr += L"<Package>" + dw_cell.GetItemString(row, colPackage) + L"</Package>";
- itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNW) + L"</NWT>";
- itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGW) + L"</GWT>";
- itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
- itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+ itemStr += L"<Purchor>" + dw_cell.GetItemXmlString(row, colBuyer) + L"</Purchor>";
+ itemStr += L"<Package>" + dw_cell.GetItemXmlString(row, colPackage) + L"</Package>";
+ itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNW) + L"</NWT>";
+ itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGW) + L"</GWT>";
+ itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+ itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
if (dw_cell.GetItemString(row, colBuyer) == L"")issend = L"0";
itemStr += L"<IsSend>" + issend + L"</IsSend>";
@@ -1177,14 +1182,14 @@
xstring itemStr = L"";
xstring issend=L"1";
itemStr += L"<RowID>"+getRowID(dw_cell,row)+L"</RowID>";
- itemStr += L"<ItemNo>"+dw_cell.GetItemString(row, colItemNo)+L"</ItemNo>";
- itemStr += L"<ItemName>"+dw_cell.GetItemString(row, colItemName)+L"</ItemName>";
- itemStr += L"<ItemCName>"+dw_cell.GetItemString(row, colItemCName)+L"</ItemCName>";
- itemStr += L"<ItemSpec>"+dw_cell.GetItemString(row, colItemSpec)+L"</ItemSpec>";
+ itemStr += L"<ItemNo>"+dw_cell.GetItemXmlString(row, colItemNo)+L"</ItemNo>";
+ itemStr += L"<ItemName>"+dw_cell.GetItemXmlString(row, colItemName)+L"</ItemName>";
+ itemStr += L"<ItemCName>"+dw_cell.GetItemXmlString(row, colItemCName)+L"</ItemCName>";
+ itemStr += L"<ItemSpec>"+dw_cell.GetItemXmlString(row, colItemSpec)+L"</ItemSpec>";
itemStr += L"<RowNo>"+(row - startRow +1).toString()+L"</RowNo>";
- itemStr += L"<Purchor>"+dw_cell.GetItemString(row, colBuyer)+L"</Purchor>";
- itemStr += L"<Package>"+dw_cell.GetItemString(row, colPackage)+L"</Package>";
- if(dw_cell.GetItemString(row, colBuyer) ==L"")issend=L"0";
+ itemStr += L"<Purchor>"+dw_cell.GetItemXmlString(row, colBuyer)+L"</Purchor>";
+ itemStr += L"<Package>"+dw_cell.GetItemXmlString(row, colPackage)+L"</Package>";
+ if(dw_cell.GetItemXmlString(row, colBuyer) ==L"")issend=L"0";
itemStr += L"<IsSend>"+issend+L"</IsSend>";
items += L"<Item>"+itemStr+L"</Item>";
@@ -1397,14 +1402,14 @@
//if(dw_cell.GetItemString(row, colItemName)==L"")continue;
xstring itemStr = L"";
itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
- itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
- itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
- itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
- itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
- itemStr += L"<BuyerPrice>" + dw_cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
- itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
- itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
- itemStr += L"<Buyer>" + dw_cell.GetItemString(row, colPurchor) + L"</Buyer>";
+ itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+ itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+ itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+ itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+ itemStr += L"<BuyerPrice>" + dw_cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+ itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+ itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
+ itemStr += L"<Buyer>" + dw_cell.GetItemXmlString(row, colPurchor) + L"</Buyer>";
/*
if(dw_cell.GetItemString(row, colBuyerPrice)==L"") return L"采购价格没有录入";
@@ -1437,14 +1442,14 @@
if(dw_cell.GetItemString(row, colVolDesc)==L"") return L"体积信息没有录入";
}
*/
- itemStr += L"<BuyerMOQ>" + dw_cell.GetItemString(row, colBuyerMOQ) + L"</BuyerMOQ>";
- itemStr += L"<BuyerRemark>" + dw_cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
- itemStr += L"<FactoryImage>" + dw_cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
- itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGWT) + L"</GWT>";
- itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNWT) + L"</NWT>";
- itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
- itemStr += L"<Vol>" + dw_cell.GetItemString(row, colVol) + L"</Vol>";
- itemStr += L"<F40HQ>" + dw_cell.GetItemString(row, col40HQ) + L"</F40HQ>";
+ itemStr += L"<BuyerMOQ>" + dw_cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+ itemStr += L"<BuyerRemark>" + dw_cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+ itemStr += L"<FactoryImage>" + dw_cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+ itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+ itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+ itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+ itemStr += L"<Vol>" + dw_cell.GetItemXmlString(row, colVol) + L"</Vol>";
+ itemStr += L"<F40HQ>" + dw_cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
itemStr += L"<supplier-photo>" + getRowTerm(dw_cell, row, L"supplier-photo") + L"</supplier-photo>";
@@ -3882,7 +3887,7 @@
dw_goods.SetItemString(i, L"ItemID", ItemID);
xstring Item = L"<Item update.new='1' update.modify='1' guid='" + ItemID + L"'>";
Item += L"<SKUID>" + ItemID + L"</SKUID>";
- Item += L"<GoodsNo>" + dw_goods.GetItemString(i, L"GoodsNo") + L"</GoodsNo>";
+ Item += L"<GoodsNo>" + dw_goods.GetItemXmlString(i, L"GoodsNo") + L"</GoodsNo>";
xstring SKUNo = GetNo();
dw_goods.SetItemString(i, L"SKUNo", SKUNo);
dw_goods.Redraw();
@@ -3893,9 +3898,9 @@
Item += L"<No>" + SKUNo + L"</No>";
Item += L"<SKUNo>" + SKUNo + L"</SKUNo>";
- Item += L"<CName>" + dw_goods.GetItemString(i, L"CName") + L"</CName>";
- Item += L"<EName>" + dw_goods.GetItemString(i, L"ItemName") + L"</EName>";
- Item += L"<Packing>" + dw_goods.GetItemString(i, L"Packing") + L"</Packing>";
+ Item += L"<CName>" + dw_goods.GetItemXmlString(i, L"CName") + L"</CName>";
+ Item += L"<EName>" + dw_goods.GetItemXmlString(i, L"ItemName") + L"</EName>";
+ Item += L"<Packing>" + dw_goods.GetItemXmlString(i, L"Packing") + L"</Packing>";
Item += L"<CategoryID>" + categoryID + L"</CategoryID>";
Item += L"<FolderID>" + folderID + L"</FolderID>";
@@ -5344,8 +5349,8 @@
if (hasParty(dw_cell.GetItemString(row, colSupplier)) == false)
{
itemStr += L"<Item update.new='1' update.modify='1'>";
- itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier) + L"</Name>";
- itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier) + L"</ShortName>";
+ itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</Name>";
+ itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</ShortName>";
itemStr += L"</Item>";
}
}
@@ -5357,8 +5362,8 @@
if (hasParty(dw_cell.GetItemString(row, colSupplier1)) == false)
{
itemStr += L"<Item update.new='1' update.modify='1'>";
- itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier1) + L"</Name>";
- itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier1) + L"</ShortName>";
+ itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</Name>";
+ itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</ShortName>";
itemStr += L"</Item>";
}
}
@@ -5370,8 +5375,8 @@
if (hasParty(dw_cell.GetItemString(row, colSupplier2)) == false)
{
itemStr += L"<Item update.new='1' update.modify='1'>";
- itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier2) + L"</Name>";
- itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier2) + L"</ShortName>";
+ itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier2) + L"</Name>";
+ itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier2) + L"</ShortName>";
itemStr += L"</Item>";
}
}
@@ -5383,8 +5388,8 @@
if (hasParty(dw_cell.GetItemString(row, colSupplier3)) == false)
{
itemStr += L"<Item update.new='1' update.modify='1'>";
- itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier3) + L"</Name>";
- itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier3) + L"</ShortName>";
+ itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier3) + L"</Name>";
+ itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier3) + L"</ShortName>";
itemStr += L"</Item>";
}
}
diff --git a/jrj/xframe/devloper/XDevEditCode.cpp b/jrj/xframe/devloper/XDevEditCode.cpp
new file mode 100644
index 0000000..1e8dc56
--- /dev/null
+++ b/jrj/xframe/devloper/XDevEditCode.cpp
@@ -0,0 +1,122 @@
+#include <wobject/xstring.hpp>
+#include <wobject/xwin.hpp>
+#include <wobject/xaserver.hpp>
+#include <wobject/xaserverarg.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+using xml = KXMLDOMDocument;
+class export XDevEditCode : public xwin
+{
+ public:
+ XDevEditCode(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+public:
+ static XDevEditCode* CreateInstance(void* implPtr, void* hWnd)
+ {
+ XDevEditCode* pWin = new XDevEditCode(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+private: //
+ xnode m_agentNode; //Agent Condition
+ string m_agentCond; //Agent Node
+ int SetAgent()
+ {
+ /*
+ string xfNodeAgentArea = "agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
+ if(agent)
+ {
+ string s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }
+ */
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(ref TEvent evt,int param)
+ {
+ SetAgent();
+
+ //重置工具条
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(string comdid)
+ {
+ if (comdid == "xmFileSaveEx")
+ {
+ xsedit xc = this.GetControl("codecontent");
+
+ int hCursor = xutil::SetCursorWait();
+
+ string code;
+ //save tpp content
+ xc.GetContent(code);
+ this.SaveContent(code);
+ //
+ xutil::RestoreCursor(hCursor);
+
+ return 1;
+ }
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(ref TXCommandEvent evt,int param)
+ {
+ return OnCmdDispatch(evt.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent("WM_XCOMMAND",OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent("WM_SETFOCUS",OnSetFocus);
+ }
+
+ int LoadData()
+ {
+ if (!this.GetParam()) return 1;
+
+ xwin w = GetFrameWindow();
+ xtree tv_folder = w.GetControl("DevExplorer");
+ int hItem = this.GetParam();
+ IXMLDOMElement e = tv_folder.GetItemData(hItem);
+ string caption = e.getAttribute("caption");
+
+ xsedit xc = this.GetControl("codecontent");
+ string code = this.GetData();
+ if (code == "")code == " ";
+ if (caption.find(".vl",0) >= 0 || caption.find(".vm",0) >= 0 || caption.find(".vf",0) >= 0 || caption.find("voc",0) >= 0 || caption.find("vc",0) >= 0)
+ {
+ xc.LoadContent(code,".vl");
+ }
+ else if (caption.find(".scm",0) >= 0)
+ xc.LoadContent(code,".scm");
+ else
+ xc.LoadContent(code,".cpp");
+
+ return 1;
+ }
+
+ int OnInitial()
+ {
+ SetAgent();
+
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int onload()
+ {
+ OnInitial();
+ LoadData();
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditFlow.cpp b/jrj/xframe/devloper/XDevEditFlow.cpp
new file mode 100644
index 0000000..9b664c3
--- /dev/null
+++ b/jrj/xframe/devloper/XDevEditFlow.cpp
@@ -0,0 +1,513 @@
+#include <wobject/xstring.hpp>
+#include <wobject/xwin.hpp>
+#include <wobject/xaserver.hpp>
+#include <wobject/xaserverarg.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include <xcontrol/xreport.hpp>
+#include <xcontrol/xflowchart.hpp>
+#include "XDevEditPage.hpp"
+
+
+using xml = KXMLDOMDocument;
+class export XDevEditFlow : public XDevEditPage
+{
+ public:
+ XDevEditFlow(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
+public:
+ static XDevEditFlow* CreateInstance(void* implPtr, void* hWnd)
+ {
+ XDevEditFlow* pWin = new XDevEditFlow(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+private: //
+ xdwgrid dw_role;
+ xdwgrid dw_node;
+ xdwgrid dw_data;
+ xdwgrid dw_action;
+ xdwgrid dw_stategraph;
+ xdwgrid dw_billaction;
+
+ xdwgrid dw_roles;
+ //xdwgrid dw_nodes;
+ //xdwgrid dw_actions;
+ xdwgrid dw_do;
+
+ xdwgrid dw_bills;
+ xdwgrid dw_scenes;
+ xdwgrid dw_states;
+ xdwgrid dw_events;
+ xdwgrid dw_conds;
+
+ xdwgrid dw_datainterface;
+ xdwgrid dw_dataarg;
+
+ xdwgrid dw_templates;
+ xdwgrid dw_pages;
+ xdwgrid dw_pageconfigs;
+
+ KXMLDOMElement ele;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+
+ xstring m_config; //配置类型
+
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ auto xframeElement = GetElement();
+ auto agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"/*[" + m_agentCond + L"]");
+ if (agent)
+ {
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode,s);
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
+ {
+ SetAgent();
+
+ //重置工具条
+ return 1;
+ }
+
+ int SetFlowChart(KXMLDOMElement e)
+ {
+ xstring flowUrl = e.getAttribute(L"flowchart");
+ xflowchart flowchart = GetControl(L"flowchart");
+ if (flowUrl != L"")
+ {
+ xml f;
+ if (xaserver::FetchXml(GetServerUrl(),flowUrl,L"",f) == 1)
+ {
+ flowchart.Load(f.documentElement());
+ }
+ }
+ return 1;
+ }
+
+ int FillFlowChart(KXMLDOMElement e)
+ {
+ xstring cid = e.getAttribute(L"id");
+ auto fn = e.selectNodes(L"//flows//flow");
+ int lenf = fn.length();
+
+ int i = 0;
+ xstring sp = L"";
+ xcombobox xc = GetControl(L"flowlist");
+
+ for (i = 0; i < lenf; i++)
+ {
+ sp = L"";
+ KXMLDOMElement fe = fn.item(i);
+ KXMLDOMElement p = fe.parentNode();
+ while ((xstring)p.tagName() == L"flow")
+ {
+ sp += L" ";
+ p = p.parentNode();
+ }
+
+ xstring name = fe.getAttribute(L"name");
+ xstring d = fe.getAttribute(L"id");
+ xc.AddItem(sp + name);
+ if (cid == d)
+ {
+ xc.SetText(name);
+ SetFlowChart(fe);
+ }
+ }
+ return 1;
+ }
+
+ int OnRetrieve(KXMLDOMElement ele)
+ {
+ KXMLDOMNode node = ele.selectSingleNode(L"//stategraph");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_stategraph.Retrieve(e);
+ dw_stategraph.Redraw();
+ }
+ else
+ {
+ dw_stategraph.Reset();
+ dw_stategraph.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//bill.actions");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_billaction.Retrieve(e);
+ dw_billaction.Redraw();
+ }
+ else
+ {
+ dw_billaction.Reset();
+ dw_billaction.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//roles");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_role.Retrieve(e);
+ dw_role.Redraw();
+ }
+ else
+ {
+ dw_role.Reset();
+ dw_role.Redraw();
+ }
+
+ xstring id = ele.getAttribute(L"id");
+ node = ele.selectSingleNode(L"//nodes[@for='" + id + L"']");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_node.Retrieve(e);
+ dw_node.Redraw();
+ }
+ else
+ {
+ dw_node.Reset();
+ dw_node.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//actions");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_action.Retrieve(e);
+ dw_action.Redraw();
+ }
+ else
+ {
+ dw_action.Reset();
+ dw_action.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//datas");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_data.Retrieve(e);
+ dw_data.Redraw();
+ }
+ else
+ {
+ dw_data.Reset();
+ dw_data.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//right");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_roles.Retrieve(e);
+ dw_roles.Redraw();
+ }
+ else
+ {
+ dw_roles.Reset();
+ dw_roles.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//bills");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_bills.Retrieve(e);
+ dw_bills.Redraw();
+ }
+ else
+ {
+ dw_bills.Reset();
+ dw_bills.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//events");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_events.Retrieve(e);
+ dw_events.Redraw();
+ }
+ else
+ {
+ dw_events.Reset();
+ dw_events.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//conds");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_conds.Retrieve(e);
+ dw_conds.Redraw();
+ }
+ else
+ {
+ dw_conds.Reset();
+ dw_conds.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//states");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_states.Retrieve(e);
+ dw_states.Redraw();
+ }
+ else
+ {
+ dw_states.Reset();
+ dw_states.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//scenes");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_scenes.Retrieve(e);
+ dw_scenes.Redraw();
+ }
+ else
+ {
+ dw_scenes.Reset();
+ dw_scenes.Redraw();
+ }
+
+ node = ele.selectSingleNode(L"//datainterface");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_datainterface.Retrieve(e);
+ dw_datainterface.Redraw();
+ }
+ else
+ {
+ dw_datainterface.Reset();
+ dw_datainterface.Redraw();
+ }
+ if (dw_datainterface.GetRowCount() > 0)
+ {
+ KXMLDOMElement e = dw_datainterface.GetRowElement(1);
+ node = ele.selectSingleNode(L"//args");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_dataarg.Retrieve(e);
+ dw_dataarg.Redraw();
+ }
+ else
+ {
+ dw_dataarg.Reset();
+ dw_dataarg.Redraw();
+ }
+ }
+
+ node = ele.selectSingleNode(L"//does");
+ if (node)
+ {
+ KXMLDOMElement e = node;
+ dw_do.Retrieve(e);
+ dw_do.Redraw();
+ }
+ else
+ {
+ dw_do.Reset();
+ dw_do.Redraw();
+ }
+ if (dw_do.GetRowCount() > 0)
+ {
+ KXMLDOMElement e = dw_do.GetRowElement(1);
+ xstring content = e.text();
+
+ xsedit xs = GetControl(L"content");
+ xs.SetContent(content,L".cpp");
+ }
+ FillFlowChart(ele);
+
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid == L"xmFileSave")
+ {
+ xsedit xs = GetControl(L"xcontent");
+ xstring content;
+ HCURSOR hCursor = xutil::SetCursorWait();
+ //save xml content
+ xs.GetContent(content);
+ SaveContent(content);
+ xutil::RestoreCursor(hCursor);
+ }
+ else if (comdid == L"flowdef")
+ {
+ xsedit xs = GetControl(L"xcontent");
+ xstring content;
+ //save xml content
+ xs.GetContent(content);
+ xml x = new xml;
+ if (x.loadXML(content))
+ {
+ ele = x.documentElement();
+ KXMLDOMElement e = x.selectSingleNode(L"//flows/flow");
+ if (e) OnRetrieve(e);
+ }
+ }
+
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt,LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnFlowSelected(TEvent* evt,LPARAM param)
+ {
+ //xtree tv_folder = GetControl(L"tv_folder");
+ xcombobox cb = GetControl(L"flowlist");
+ int nIndex = cb.GetCurSel();
+ if (nIndex < 1) nIndex = 1;
+
+ //int hItem = tv_folder.GetCaretItem();
+
+ //KXMLDOMElement ele = tv_folder.GetItemData(hItem);
+ KXMLDOMElement e = ele.selectSingleNode(L"(//flows//flow)[" + xstring(nIndex) + L"]");
+ SetFlowChart(e);
+
+ return 1;
+ }
+
+ int OnRowClickedDo(TEvent* evt,LPARAM param)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+ KXMLDOMElement e = dw_do.GetRowElement(row);
+ xstring content = e.text();
+
+ xsedit xs = GetControl(L"content");
+ xs.SetContent(content,L".cpp");
+
+ return 1;
+ }
+
+ int OnRowClicked(TEvent* evt,LPARAM param)
+ {
+ return 1;
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditFlow::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditFlow::OnSetFocus);
+
+ AttachEvent(L"flowlist",L"CBN_SELCHANGE", (FEvent)&XDevEditFlow::OnFlowSelected);
+ AttachEvent(L"dw_do",L"DWV_ROWFOCUSCHANGED", (FEvent)&XDevEditFlow::OnRowClickedDo);
+ }
+
+ int OnInitial()
+ {
+ m_agentCond = L"1";
+ SetAgent();
+
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int LoadData()
+ {
+ if (!GetWinParam()) return 1;
+ xsedit xs = GetControl(L"xcontent");
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xs.LoadContent(content,L".xml");
+ }
+
+ return 1;
+ }
+
+ int onload()
+ {
+ dw_stategraph = GetControl(L"dw_stategraph");
+ dw_stategraph.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/状态图]");
+ dw_billaction = GetControl(L"dw_billaction");
+ dw_billaction.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/单据操作]");
+
+ dw_role = GetControl(L"dw_role");
+ dw_role.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/角色定义]");
+ dw_node = GetControl(L"dw_node");
+ dw_node.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/工作节点]");
+ dw_data = GetControl(L"dw_data");
+ dw_data.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/数据集]");
+ dw_action = GetControl(L"dw_action");
+ dw_action.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/操作]");
+
+ dw_roles = GetControl(L"dw_roles");
+ dw_roles.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/角色权限]");
+ //dw_nodes = GetControl(L"dw_nodes");
+ //dw_nodes.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/操作数据集]");
+ //dw_actions = GetControl(L"dw_actions");
+ //dw_actions.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/节点数据集]");
+
+ dw_bills = GetControl(L"dw_bills");
+ dw_bills.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/单据]");
+ dw_scenes = GetControl(L"dw_scenes");
+ dw_scenes.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/场景]");
+ dw_states = GetControl(L"dw_states");
+ dw_states.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/状态]");
+ dw_events = GetControl(L"dw_events");
+ dw_events.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/事件]");
+ dw_conds = GetControl(L"dw_conds");
+ dw_conds.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/条件]");
+
+ dw_datainterface = GetControl(L"dw_datainterface");
+ dw_datainterface.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/数据接口]");
+ dw_dataarg = GetControl(L"dw_dataarg");
+ dw_dataarg.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/数据接口参数]");
+
+ dw_templates = GetControl(L"dw_templates");
+ dw_templates.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/模板文件]");;
+ dw_pages = GetControl(L"dw_pages");
+ dw_pages.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/页面文件]");;
+ dw_pageconfigs = GetControl(L"dw_pageconfigs");
+ dw_pageconfigs.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/客户端配置]");
+
+
+ dw_do = GetControl(L"dw_do");
+ dw_do.SetDataObject(GetServerUrl(),L"dev:sheet[XRight.tpl/动作定义]");
+
+ dw_role.SetReadOnly(true);
+ dw_node.SetReadOnly(true);
+ dw_data.SetReadOnly(true);
+ dw_action.SetReadOnly(true);
+ dw_do.SetReadOnly(true);
+
+ OnInitial();
+
+ xsedit xs = GetControl(L"content");
+ xs.SetContent(L"",L".cpp");
+
+ LoadData();
+
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditHtml.cpp b/jrj/xframe/devloper/XDevEditHtml.cpp
new file mode 100644
index 0000000..35a0706
--- /dev/null
+++ b/jrj/xframe/devloper/XDevEditHtml.cpp
@@ -0,0 +1,109 @@
+#include <wobject/xstring.hpp>
+#include <wobject/xwin.hpp>
+#include <wobject/xaserver.hpp>
+#include <wobject/xaserverarg.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xsedit.hpp>
+#include "XDevEditPage.hpp"
+
+using xml = KXMLDOMDocument;
+class export XDevEditXHtml : public XDevEditPage
+{
+ public:
+ XDevEditXHtml(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
+public:
+ static XDevEditPage* CreateInstance(void* implPtr, void* hWnd)
+ {
+ XDevEditPage* pWin = new XDevEditPage(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+private: //
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ auto xframeElement = GetElement();
+ auto agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+ if (agent)
+ {
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode,s);
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
+ {
+ SetAgent();
+
+ //重置工具条
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid == L"xmFileSave")
+ {
+ xstring content;
+ xsedit xs = GetControl(L"xcontent");
+ HCURSOR hCursor = xutil::SetCursorWait();
+ //save xml content
+ xs.GetContent(content);
+ SaveContent(content);
+ xutil::RestoreCursor(hCursor);
+ }
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt,LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXHtml::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXHtml::OnSetFocus);
+
+ return 1;
+ }
+
+ int LoadData()
+ {
+ if (!GetWinParam()) return 1;
+ xsedit xs = GetControl(L"xcontent");
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xs.LoadContent(content,L".xml");
+ }
+
+ return 1;
+ }
+
+ int OnInitial()
+ {
+ SetAgent();
+
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int onload()
+ {
+
+ OnInitial();
+ LoadData();
+
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditPage.cpp b/jrj/xframe/devloper/XDevEditPage.hpp
similarity index 91%
rename from jrj/xframe/devloper/XDevEditPage.cpp
rename to jrj/xframe/devloper/XDevEditPage.hpp
index f45f2db..0eec9ee 100644
--- a/jrj/xframe/devloper/XDevEditPage.cpp
+++ b/jrj/xframe/devloper/XDevEditPage.hpp
@@ -5,10 +5,14 @@
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xcombobox.hpp>
+#include <vbusiness/vutil/publiccode.vutil.vbusiness.hpp>
using xml = KXMLDOMDocument;
class export XDevEditPage : public xwin
{
+public:
+ XDevEditPage(void* implPtr,HWND hWnd) :xwin(implPtr,hWnd) {}
+public:
xstring ProcessDevCmd(xstring cmd, xstring ext)
{
//trace(ext);
@@ -33,7 +37,7 @@
typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
if (typ == L"project")break;
pitem = tv_folder.GetParentItem(pitem);
- if (pitem <= 0)break;
+ if (!pitem)break;
}
return pitem;
}
@@ -45,7 +49,7 @@
while (true)
{
hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (tv_folder.GetParentItem(hDomainItem) <= 0)break;
+ if (!tv_folder.GetParentItem(hDomainItem))break;
hP2Item = hDomainItem;
}
return hP2Item;
@@ -65,7 +69,7 @@
HTREEITEM hP2Item = 0;
HTREEITEM hDomainItem = 0;
- if (tv_folder.GetParentItem(hItem) <= 0)
+ if (!tv_folder.GetParentItem(hItem))
{
hDomainItem = hItem;
}
@@ -122,7 +126,7 @@
{
HTREEITEM hP2Item = 0;
HTREEITEM hDomainItem = 0;
- if (tv_folder.GetParentItem(hItem) <= 0)
+ if (!tv_folder.GetParentItem(hItem))
{
hDomainItem = hItem;
}
@@ -167,4 +171,9 @@
{
return SaveContentEx(content, 0);
}
+
+ xstring GetGuid()
+ {
+ return publiccode::GetGuid();
+ }
};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXApp.cpp b/jrj/xframe/devloper/XDevEditXApp.cpp
new file mode 100644
index 0000000..d7f0152
--- /dev/null
+++ b/jrj/xframe/devloper/XDevEditXApp.cpp
@@ -0,0 +1,553 @@
+#include <wobject/xstring.hpp>
+#include <wobject/xwin.hpp>
+#include <wobject/xaserver.hpp>
+#include <wobject/xaserverarg.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xreport.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
+
+using xml = KXMLDOMDocument;
+class export XDevEditXApp : public XDevEditPage
+{
+ public:
+ XDevEditXApp(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
+public:
+ static XDevEditXApp* CreateInstance(void* implPtr, void* hWnd)
+ {
+ XDevEditXApp* pWin = new XDevEditXApp(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+private: //
+ xreport dw_param;
+ xstring m_type;
+ xstring m_mode;
+ xtreeview tv_folder;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ auto xframeElement = GetElement();
+ auto agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+ if (agent)
+ {
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode,s);
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
+ {
+ SetAgent();
+
+ //重置工具条
+ return 1;
+ }
+
+ xstring getComboboxData(xcontrol xc)
+ {
+ int j = SendMessage(xc.GetHWND(),0x0147,0,0);
+ if (j > -1)
+ {
+ xstring s = (wchar_t*)SendMessage(xc.GetHWND(),0x0150,j,0);
+ return xstring(s);
+ }
+ return L"";
+ }
+
+ int OnCombSelChanged()
+ {
+ xcontrol xc = GetControl(L"image");
+ int j = SendMessage(xc.GetHWND(),0x0147,0,0);
+ if (j > -1)
+ {
+ //param s = SendMessage(xc.GetHWND(),0x0150,j,0);
+ xnode anode = GetAgentNode(L"image_view");
+ xstring p = L"<box name='image_view' width='22'><xtoolbutton caption='' image='" + xstring(j) + L"'/></box>";
+ SetAgentNode(anode,p);
+ }
+ }
+
+ int onClare()
+ {
+ xcontrol xc = GetControl(L"caption");
+ xc.SetText(L"");
+
+ if (m_type == L"file")
+ {
+ xc = GetControl(L"xpage");
+ xc.SetText(L"");
+
+ xc = GetControl(L"image");
+ SendMessage(xc.GetHWND(), 0x014E, 16, 0);
+
+ xreport dw_param = GetControl(L"dw_param");
+ xml x ;
+ xstring str = L"<params>";
+ str += L"<param seq='1' name='' value=''></param>";
+ str += L"<param seq='2' name='' value=''></param>";
+ str += L"<param seq='3' name='' value=''></param>";
+ str += L"<param seq='4' name='' value=''></param>";
+ str += L"<param seq='5' name='' value=''></param>";
+ str += L"<param seq='6' name='' value=''></param>";
+ str += L"<param seq='7' name='' value=''></param>";
+ str += L"<param seq='8' name='' value=''></param>";
+ str += L"</params>";
+ x.loadXML(str);
+ dw_param.Retrieve(x);
+ dw_param.SetReadOnly(false);
+ dw_param.Redraw();
+ }
+ else
+ {
+ xc = GetControl(L"image");
+ SendMessage(xc.GetHWND(), 0x014E, 15, 0);
+ }
+
+ xc = GetControl(L"index");
+ xc.SetText(L"");
+
+ xc = GetControl(L"code");
+ xc.SetText(L"");
+
+ xc = GetControl(L"name");
+ xc.SetText(L"");
+
+ xc = GetControl(L"status");
+ SendMessage(xc.GetHWND(), 0x014E, 0, 0);
+
+ OnCombSelChanged();
+ }
+
+ xstring getTVData(HTREEITEM hitem)
+ {
+ xstring result = L"";
+ HTREEITEM citem = tv_folder.GetChildItem(hitem);
+ while (citem > 0)
+ {
+ xstring str = (wchar_t*)tv_folder.GetItemData(citem);
+ xstring name = str.mid(1,str.find(L" ",0));
+ result += str.mid(0,str.length() - 2) + L">";
+ /*xml x;
+ x.loadXML(IXMLDOMElement(ele).xml);
+ IXMLDOMElement e = x.documentElement;
+ xstring name=e.tagName;
+ result += e.xml;
+ result = result.mid(0,result.length() - 2)+L">";*/
+ xstring tmp = getTVData(citem);
+ result += tmp;
+ result += L"</" + name + L">";
+ citem = tv_folder.GetNextItem(citem);
+ }
+ return result;
+ }
+
+ int onsave()
+ {
+ HTREEITEM root = tv_folder.GetRootItem();
+ xstring str = getTVData(root);
+ xstring content = L"<?xml version='1.0' encoding='utf-16'?><favorites guid='" + GetGuid() + L"' caption='' image='17'>" + str + L"</favorites>";
+ //trace(content);//
+ SaveContent(content);
+ onClare();
+ m_mode = L"new";
+ return 1;
+ }
+
+ HTREEITEM getInsertItem(HTREEITEM hitem,xstring s)
+ {
+ if (tv_folder.GetChildItem(hitem) == 0 || s == L"")
+ return 0;
+ else
+ {
+ int index = s.toInt();
+ HTREEITEM h = tv_folder.GetChildItem(hitem);
+ while (h > 0)
+ {
+ xstring p = (wchar_t*)tv_folder.GetItemData(h);
+ xml x ;
+ x.loadXML(p);
+ KXMLDOMElement e = x.documentElement();
+ xstring str = e.getAttribute(L"index");
+ str = L"" + str;
+ if (str == L"" && h == tv_folder.GetChildItem(hitem))
+ return h;
+ if (str != L"")
+ {
+ if (index < str.toInt())
+ return h;
+ }
+ else
+ return h;
+ h = tv_folder.GetNextItem(h);
+ }
+ return 0;
+ }
+ }
+
+ int copyNode(HTREEITEM olditem, HTREEITEM newitem)
+ {
+ HTREEITEM citem = tv_folder.GetChildItem(olditem);
+ while (citem)
+ {
+ xstring str = (wchar_t*)tv_folder.GetItemData(citem);
+ xstring name = tv_folder.GetItemLabel(citem);
+ int image = tv_folder.GetItemImage(citem);
+ HTREEITEM h = tv_folder.InsertChildItem(newitem,name, (LPARAM)str.c_str(true), image);
+ copyNode(citem,h);
+ citem = tv_folder.GetNextItem(citem);
+ }
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ int LayerFlow_UnLayer_ = 0x00000100;
+ int LayerFlow_NS_ = 0x00000004;
+ HCURSOR hCursor = xutil::SetCursorWait();
+
+ if (comdid == L"NewFolder")
+ {
+ m_type = L"folder";
+ xnode anode = GetAgentNode(L"file");
+ SetAgentNode(anode,L"<vbox/>");
+ anode.SetLayerFlow(LayerFlow_UnLayer);
+ xcontrol xc = GetControl(L"image");
+ SendMessage(xc.GetHWND(), 0x014E, 15, 0);
+ m_mode = L"new";
+ onClare();
+ }
+ else if (comdid == L"NewFile")
+ {
+ m_type = L"file";
+ xnode anode = GetAgentNode(L"file");
+ anode.SetLayerFlow(LayerFlow_NS);
+ KXMLDOMElement e = GetElement().selectSingleNode(L"//vbox[@name='file']");
+ SetAgentNode(anode,e.xml());
+ xcontrol xc = GetControl(L"image");
+ SendMessage(xc.GetHWND(), 0x014E, 16, 0);
+ m_mode = L"new";
+ onClare();
+ }
+ else if (comdid == L"param_add")
+ {
+ //dw_param.InsertRow(0);
+ }
+ else if (comdid == L"param_del")
+ {
+ //int row = dw_param.GetRow();
+ //if(row<0) return 0;
+ //dw_param.DeleteRow(row);
+ }
+ else if (comdid == L"selectxpage")
+ {
+ xaserverarg arg;
+ //OpenWindow(L"/developer/XDevXWKDlg.xpage",arg);
+ OpenWindow(L"dev:xpage[XDevXWKDlg.xpage]",arg);
+ xcontrol xc = GetControl(L"xpage");
+ xc.SetText(arg.GetArgString(L"caption"));
+ xc = GetControl(L"xpageguid");
+ xc.SetText(arg.GetArgString(L"guid"));
+ }
+ else if (comdid == L"delete")
+ {
+ HTREEITEM hitem = tv_folder.GetSelectedItem();
+ if (!hitem) return 0;
+ if (hitem == tv_folder.GetRootItem()) return 0;
+ if (tv_folder.GetChildItem(hitem)) return 0;
+ tv_folder.DeleteItem(hitem);
+ onsave();
+ }
+ else if (comdid == L"save")
+ {
+ //xstring str=L"<"+m_type+L" ";
+
+ xml x ;
+ x.loadXML(L"<" + m_type + L"/>");
+ auto r = x.documentElement();
+
+ xcontrol xc = GetControl(L"caption");
+ xstring name = xc.GetText();
+ if (name == L"")
+ {
+ alert(L"请填写名称!");
+ return 0;
+ }
+ //str += L"caption='"+name+L"' ";
+ r.setAttribute(L"caption",name);
+
+ xstring tmp = GetGuid();
+ //str += L"guid='"+tmp+L"' ";
+ r.setAttribute(L"guid",tmp);
+
+ if (m_type == L"file")
+ {
+ xc = GetControl(L"xpage");
+ tmp = xc.GetText();
+ xstring tmp1 = L"" + tmp + L"?";
+ xreport dw_param = GetControl(L"dw_param");
+ int i = 1;
+ xstring ss = L"";
+ for (i = 1; i <= dw_param.GetRowCount(); i++)
+ {
+ xstring name1 = dw_param.GetItemString(i,1);
+ xstring value1 = dw_param.GetItemString(i,2);
+ if (name != L"")
+ {
+ xstring s = name1 + L"=" + value1 + L"&";
+ ss += s;
+ }
+ }
+ ss = ss.mid(0, ss.length() - 1);
+ tmp1 += ss;
+ //trace(tmp1);
+ //str += L"url='worknode:"+tmp+L"/open#1' ";
+ r.setAttribute(L"url",L"" + tmp1);
+ }
+
+ xc = GetControl(L"index");
+ xstring index = xc.GetText();
+ r.setAttribute(L"index",index);
+
+ xc = GetControl(L"name");
+ tmp = xc.GetText();
+ r.setAttribute(L"name",tmp);
+
+ xc = GetControl(L"code");
+ tmp = xc.GetText();
+ r.setAttribute(L"code",tmp);
+
+
+ xc = GetControl(L"name");
+ tmp = xc.GetText();
+ r.setAttribute(L"name",tmp);
+ xc = GetControl(L"status");
+ //tmp=getComboboxData(xc);
+ tmp = xc.GetText();
+ //str += L"status='"+tmp+L"' ";
+ r.setAttribute(L"status",tmp);
+
+ xc = GetControl(L"image");
+ //tmp=getComboboxData(xc);
+ tmp = xc.GetText();
+ //str += L"image='"+tmp+L"' ";
+ r.setAttribute(L"image",tmp);
+
+ //str += L"/>";
+ //param p =str;
+ //trace(r.xml);
+ xstring p = r.xml();
+
+ //tv_folder.InsertChildItem(hitem,name,x.documentElement,tmp.toInt());
+ HTREEITEM hitem = tv_folder.GetSelectedItem();
+ if (hitem == 0) hitem = tv_folder.GetRootItem();
+ HTREEITEM ditem = hitem;
+ if (m_mode == L"edit")
+ hitem = tv_folder.GetParentItem(ditem);
+ HTREEITEM bitem = getInsertItem(hitem,L"" + index);
+ HTREEITEM h;
+ if (!bitem)
+ h = tv_folder.InsertChildItem(hitem,name,p,tmp.toInt());
+ else
+ h = tv_folder.InsertItem(hitem,bitem,name,p,tmp.toInt());
+ if (m_mode == L"edit")
+ {
+ copyNode(ditem,h);
+ tv_folder.DeleteItem(ditem);
+ }
+ tv_folder.ExpandItemEx(hitem);
+ onsave();
+ }
+ xutil::RestoreCursor(hCursor);
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt,LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnTreeDrag(TEvent* evt, LPARAM param)
+ {
+ TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
+ HTREEITEM hItem = nmtv.FromItem;
+ tv_folder.DeleteItem(hItem);
+ onsave();
+ return 1;
+ }
+
+ int setXpage(KXMLDOMElement e)
+ {
+ xcontrol xc = GetControl(L"caption");
+ xstring str = e.getAttribute(L"caption");
+ xc.SetText(L"" + str);
+
+ if (m_type == L"file")
+ {
+ xstring str = e.getAttribute(L"url");
+ str = L"" + str;
+ if (str.find(L"?",0) < 0)
+ str = str + L"?";
+
+ xc = GetControl(L"xpage");
+ xstring t = str.mid(0,str.find(L"?",0));
+ xc.SetText(L"" + t);
+
+ xstring p = str.mid(str.find(L"?",0) + 1, str.length());
+ if (p != L"")
+ {
+ p += L"&";
+ int i = 1;
+ while (p.find(L"=L",0) > 0)
+ {
+ xstring name = p.mid(0, p.find(L"=L",0));
+ xstring value = p.mid(p.find(L"=L",0) + 1, p.find(L"&",0) - p.find(L"=L",0) - 1);
+ xreport dw_param = GetControl(L"dw_param");
+ dw_param.SetItemString(i, 1, L"" + name);
+ dw_param.SetItemString(i, 2, L"" + value);
+ i += 1;
+ p = p.mid(p.find(L"&",0) + 1, p.length());
+ }
+ }
+ }
+ xc = GetControl(L"image");
+ xstring str = e.getAttribute(L"image");
+ //xc.SetText(L""+str);
+ SendMessage(xc.GetHWND(), 0x014E, str.toInt(), 0);
+
+ xc = GetControl(L"index");
+ xstring str = e.getAttribute(L"index");
+ xc.SetText(L"" + str);
+
+ xc = GetControl(L"code");
+ xstring str = e.getAttribute(L"code");
+ xc.SetText(L"" + str);
+
+ xc = GetControl(L"name");
+ xstring str = e.getAttribute(L"name");
+ xc.SetText(L"" + str);
+
+ xc = GetControl(L"status");
+ xstring str = e.getAttribute(L"status");
+ xc.SetText(L"" + str);
+
+ OnCombSelChanged();
+ }
+
+ int OnTreeSelChanged(ref TNotifyEvent evt,int param)
+ {
+ ref NMTREEVIEW nmtv = evt.pnmh;
+ int hitem = nmtv.itemNew.hItem;
+
+ onClare();
+ m_mode = L"new";
+ if (hitem == tv_folder.GetRootItem()) return 0;
+ //IXMLDOMElement e = tv_folder.GetItemData(hitem);
+ //trace(e.xml);
+ param p = tv_folder.GetItemData(hitem);
+ xml x ;
+ x.loadXML(L"" + xstring(p));
+ IXMLDOMElement e = x.documentElement;
+ m_type = e.tagName;
+ if (m_type == L"file")
+ OnCmdDispatch(L"NewFile");
+ else
+ OnCmdDispatch(L"NewFolder");
+ setXpage(e);
+ m_mode = L"edit";
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND",OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS",OnSetFocus);
+ AttachEvent(L"image", L"CBN_SELCHANGE",OnCombSelChanged);
+ AttachEvent(L"tv_folder", L"TVN_ENDDRAG",OnTreeDrag);
+ AttachEvent(L"tv_folder", L"TVN_SELCHANGED",OnTreeSelChanged);
+ }
+
+ int OnInitial()
+ {
+ SetAgent();
+
+ OnAttachEvent();
+
+ xcontrol xc = GetControl(L"image");
+ int i;
+ for (i = 0; i < 35; i++)
+ {
+ SendMessage(xc.GetHWND(), 0x0143, 0, i.toString());
+ //param p=i.toString();
+ //SendMessage(xc.GetHWND(), 0x0151, i, p);
+ }
+ SendMessage(xc.GetHWND(), 0x014E, 15, 0);
+
+ return 1;
+ }
+
+ int OnTreeAdd(int hitem, IXMLDOMElement e)
+ {
+ auto list = e.selectNodes(L"*");
+ int i;
+ int s = list.length;
+ for (i = 0; i < s; i++)
+ {
+ IXMLDOMElement ele = list.item(i);
+ xstring name = ele.getAttribute(L"caption");
+ xstring image = ele.getAttribute(L"image");
+ image = L"" + image;
+ xstring data = ele.xml;
+ data = data.mid(0,data.find(L">",1)) + L"/>";
+ param p = data;
+ int j = tv_folder.InsertChildItem(hitem,name,p,image.toInt());
+ OnTreeAdd(j,ele);
+ }
+ return 1;
+ }
+
+ int onload()
+ {
+ dw_param = GetControl(L"dw_param");
+ dw_param.SetReadOnly(false);
+
+ tv_folder = GetControl(L"tv_folder");
+
+ OnInitial();
+
+ m_type = L"folder";
+ OnCmdDispatch(L"NewFolder");
+ m_mode = L"new";
+
+ if (!GetParam()) return 1;
+ xwin w = GetFrameWindow();
+ xtree tv = w.GetControl(L"DevExplorer");
+ int hItem = GetParam();
+ IXMLDOMElement e = tv.GetItemData(hItem);
+ xstring name = e.getAttribute(L"caption");
+ int root = tv_folder.InsertItem(L"" + name,e,17);
+ xstring content = GetData();
+ if (content != L"")
+ {
+ //trace(content);
+ xml x ;
+ if (x.loadXML(content))
+ {
+ OnTreeAdd(root,x.documentElement);
+ tv_folder.ExpandItemEx(root);
+ }
+ }
+
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXCode.cpp b/jrj/xframe/devloper/XDevEditXCode.cpp
deleted file mode 100644
index f26ab17..0000000
--- a/jrj/xframe/devloper/XDevEditXCode.cpp
+++ /dev/null
@@ -1,561 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <wobject/xwin.hpp>
-#include <wobject/xaserver.hpp>
-#include <wobject/xaserverarg.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xlayersheet.hpp>
-
-using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
-{
- public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
-public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
- {
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
- return pWin;
- }
-private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
- {
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
- return 1;
- }
-
- int OnProcessUrl(xstring kind, xstring url)
- {
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
-
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
- }
-
- //命令发布函数
- int OnCmdDispatch(xstring comdid)
- {
- //
- if (comdid == L"xmSqlWatch")
- {
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
- }
- if (comdid == L"xmCheckUrl")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
- }
- else if (comdid == L"xmDeleteObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
- }
- else if (comdid == L"xmUpdateProject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
- return 0;
- }
-
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
- //命令处理事件
- int OnXCommand(TEvent* evt, int param)
- {
- return OnCmdDispatch(evt->xcommand.pStrID);
- }
-
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
- }
-
- int OnInitial()
- {
- OnAttachEvent();
-
- return 1;
- }
-
- int onload()
- {
- sheet_Count = -1;
- OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
-
- return 1;
- }
-};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXFile.cpp b/jrj/xframe/devloper/XDevEditXFile.cpp
index 50e0dea..8ec2265 100644
--- a/jrj/xframe/devloper/XDevEditXFile.cpp
+++ b/jrj/xframe/devloper/XDevEditXFile.cpp
@@ -8,12 +8,13 @@
#include <xcontrol/xsedit.hpp>
#include <xcontrol/xcombobox.hpp>
#include <xcontrol/xreport.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDevEditXFile : public xwin
+class export XDevEditXFile : public XDevEditPage
{
public:
- XDevEditXFile(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+ XDevEditXFile(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
static XDevEditXFile* CreateInstance(void* implPtr, void* hWnd)
{
@@ -156,7 +157,7 @@
xml x;
if (!x.loadXML(content))
{
- KXMLDOMParseError pError = x.parseError;
+ KXMLDOMParseError pError = x.parseError();
if (pError)
{
xstring str = pError.srcText();
@@ -255,7 +256,7 @@
//find project folder
xstring prjguid = L"";
- int pitem = GetProjectItem(tv_folder,hItem);
+ HTREEITEM pitem = GetProjectItem(tv_folder,hItem);
if (pitem)
prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
@@ -267,13 +268,13 @@
{
auto f = e.selectSingleNode(L"//*[@uri='" + name + L"']");
if (f) {
- xstring guid = KXMLDOMElement(f).selectSingleNode(L"@guid").text;//.getAttribute(L"guid");
+ xstring guid = f.selectSingleNode(L"@guid").text();//.getAttribute(L"guid");
if (guid == L"")
- return "";
+ return L"";
arg.AddArg(L"guid",guid);
}
else
- return "";
+ return L"";
}
KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
xstring guid = p.getAttribute(L"guid");
@@ -291,9 +292,9 @@
return L"";
}
-int OnDoubleClicked(ref TNotifyEvent evt,int param)
+int OnDoubleClicked(TEvent* evt,LPARAM param)
{
- ref DWNMHDR hdr = evt.pnmh;
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
int row = hdr.row;
KXMLDOMElement e = xp.GetRowElement(row);
xstring filename = e.getAttribute(L"type");
@@ -332,10 +333,10 @@
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND",OnXCommand);
+ AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXFile::OnXCommand);
//获取焦点事件,用于重置工具条
- AttachEvent(L"WM_SETFOCUS",OnSetFocus);
- AttachEvent(L"xreport",L"DWV_DOUBLECLICKED",OnDoubleClicked);
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXFile::OnSetFocus);
+ AttachEvent(L"xreport",L"DWV_DOUBLECLICKED", (FEvent)&XDevEditXFile::OnDoubleClicked);
}
int LoadData()
diff --git a/jrj/xframe/devloper/XDevEditXFlow.cpp b/jrj/xframe/devloper/XDevEditXFlow.cpp
deleted file mode 100644
index f26ab17..0000000
--- a/jrj/xframe/devloper/XDevEditXFlow.cpp
+++ /dev/null
@@ -1,561 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <wobject/xwin.hpp>
-#include <wobject/xaserver.hpp>
-#include <wobject/xaserverarg.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xlayersheet.hpp>
-
-using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
-{
- public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
-public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
- {
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
- return pWin;
- }
-private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
- {
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
- return 1;
- }
-
- int OnProcessUrl(xstring kind, xstring url)
- {
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
-
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
- }
-
- //命令发布函数
- int OnCmdDispatch(xstring comdid)
- {
- //
- if (comdid == L"xmSqlWatch")
- {
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
- }
- if (comdid == L"xmCheckUrl")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
- }
- else if (comdid == L"xmDeleteObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
- }
- else if (comdid == L"xmUpdateProject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
- return 0;
- }
-
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
- //命令处理事件
- int OnXCommand(TEvent* evt, int param)
- {
- return OnCmdDispatch(evt->xcommand.pStrID);
- }
-
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
- }
-
- int OnInitial()
- {
- OnAttachEvent();
-
- return 1;
- }
-
- int onload()
- {
- sheet_Count = -1;
- OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
-
- return 1;
- }
-};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXHtml.cpp b/jrj/xframe/devloper/XDevEditXHtml.cpp
deleted file mode 100644
index f26ab17..0000000
--- a/jrj/xframe/devloper/XDevEditXHtml.cpp
+++ /dev/null
@@ -1,561 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <wobject/xwin.hpp>
-#include <wobject/xaserver.hpp>
-#include <wobject/xaserverarg.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xlayersheet.hpp>
-
-using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
-{
- public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
-public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
- {
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
- return pWin;
- }
-private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
- {
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
- return 1;
- }
-
- int OnProcessUrl(xstring kind, xstring url)
- {
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
-
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
- }
-
- //命令发布函数
- int OnCmdDispatch(xstring comdid)
- {
- //
- if (comdid == L"xmSqlWatch")
- {
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
- }
- if (comdid == L"xmCheckUrl")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
- }
- else if (comdid == L"xmDeleteObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
- }
- else if (comdid == L"xmUpdateProject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
- return 0;
- }
-
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
- //命令处理事件
- int OnXCommand(TEvent* evt, int param)
- {
- return OnCmdDispatch(evt->xcommand.pStrID);
- }
-
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
- }
-
- int OnInitial()
- {
- OnAttachEvent();
-
- return 1;
- }
-
- int onload()
- {
- sheet_Count = -1;
- OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
-
- return 1;
- }
-};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXLayer.cpp b/jrj/xframe/devloper/XDevEditXLayer.cpp
index f26ab17..6ce69da 100644
--- a/jrj/xframe/devloper/XDevEditXLayer.cpp
+++ b/jrj/xframe/devloper/XDevEditXLayer.cpp
@@ -4,544 +4,118 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xsedit.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXLayer : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditXLayer(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditXLayer* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXLayer* pWin = new XDevEditXLayer(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ /*
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
+ {
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }
+ */
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
+ SetAgent();
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
+ //重置工具条
return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ if (comdid == L"xmFileSaveEx")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
- }
- if (comdid == L"xmCheckUrl")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
+ xsedit xs = GetControl(L"xpagecontent");
+ xsedit xc = GetControl(L"xcodecontent");
+ HCURSOR hCursor = xutil::SetCursorWait();
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
+ xstring content;
+ //save xml content
+ xs.GetContent(content);
+ SaveContent(content);
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
+ xstring code;
+ //save tpp content
+ xc.GetContent(code);
+ SaveContentEx(code,1);
+ //
+ xutil::RestoreCursor(hCursor);
return 1;
- }
- else if (comdid == L"xmDeleteObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
- }
- else if (comdid == L"xmUpdateProject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
}
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXLayer::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXLayer::OnSetFocus);
+
+ return 1;
+ }
+
+ int LoadData()
+ {
+ if (!GetWinParam()) return 1;
+
+ xsedit xs = GetControl(L"xpagecontent");
+ xsedit xc = GetControl(L"xcodecontent");
+
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xs.LoadContent(content,L".xml");
+ }
+ xstring code = GetData(1);
+ if (code != L"")
+ {
+ xc.LoadContent(code,L".cpp");
+ }
return 1;
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,13 +123,8 @@
int onload()
{
- sheet_Count = -1;
OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
-
+ LoadData();
return 1;
- }
+ }
};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXMSSQL.cpp b/jrj/xframe/devloper/XDevEditXMSSQL.cpp
index f26ab17..d17d8bc 100644
--- a/jrj/xframe/devloper/XDevEditXMSSQL.cpp
+++ b/jrj/xframe/devloper/XDevEditXMSSQL.cpp
@@ -4,187 +4,177 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXMSSQL : public XDevEditPage
{
- public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ XDevEditXMSSQL(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
+public:
+ static XDevEditXMSSQL* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXMSSQL* pWin = new XDevEditXMSSQL(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ xtreeview tv_db;
+ xlayersheet list;
+
+ //xnode m_agentNode; //Agent Condition
+ //xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
- return 1;
- }
-
- int OnProcessUrl(xstring kind, xstring url)
- {
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
-
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
+ /* xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
{
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
}
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
+ */ return 1;
}
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
+ {
+ SetAgent();
+
+ //重置工具条
+ return 1;
}
- int OnTreeDblClick(TEvent* evt, int param)
+ xstring getLink(HTREEITEM item)
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
+ HTREEITEM p = tv_db.GetParentItem(item);
+ while (tv_db.GetParentItem(p) > 0)
{
- if (hItem == layer.GetParam(i))break;
+ item = tv_db.GetParentItem(item);
+ p = tv_db.GetParentItem(item);
}
- if (i < nIndex)
+ xstring link = tv_db.GetItemData(item);
+ return link;
+ }
+
+ KXMLDOMElement OnXQuery(xstring data)
+ {
+ HTREEITEM item = tv_db.GetSelectedItem();
+ xstring link = getLink(item);
+ xml x ;
+ xaserverarg arg;
+ arg.AddArg(L"type",data);
+ arg.AddArg(L"link",link);
+ if (xaserver::ExecXQuery(GetServerUrl(),L"[MSSQL.list.xq]",arg.GetString(),x) != 1)
{
- layer.SelectSheet(i);
+ trace(x.xml());
return 1;
}
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
+ return x.documentElement();
+ }
+
+ int setGrid(KXMLDOMElement e,xstring caption)
+ {
+ xml x;
+ xdwgrid grid = GetControl(caption);
+ if (!e.selectSingleNode(L"grid/sheet")) return 0;
+ x.loadXML(e.selectSingleNode(L"grid/sheet").xml());
+ grid.SetDataObject(x);
+ if (!e.selectSingleNode(L"datas")) return 0;
+ x.loadXML(e.selectSingleNode(L"datas").xml());
+ grid.Retrieve(x);
+ grid.Redraw();
+ return 1;
+ }
+
+ xstring replace(xstring a, xstring b, xstring c, int s=0)
+ {
+ int k = a.find(b,s);
+ if (k > -1)
{
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
+ xstring str;
+ if (k == 0)
+ str = L"" + c + a.right(a.length() - k - b.length());
+ else if (k + b.length() == a.length())
+ str = L"" + a.left(k) + c;
+ else
+ str = L"" + a.left(k) + c + a.right(a.length() - k - b.length());
+ replace(str, b, c, k + b.length() + 1);
+ }
+ else
+ return a;
+ }
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
+ int OnOpen(xstring caption,xstring node)
+ {
+ int s = list.GetSheetCount();
+ int i;
+ xstring pa = node + L"." + caption;
+ for (i = 0; i < s; i++)
+ {
+ xstring p = (wchar_t*)list.GetParam(i);
+ if (pa == p)
+ break;
+ }
+ if (i < s)
+ {
+ list.SelectSheet(i);
+ return 0;
+ }
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + node + L"/*");
+ xstring str = replace(agent.xml(), L"{#1}", caption);
+ xml x ;
+ x.loadXML(str);
+ int k = list.InsertSheet(-1,(LPTSTR)caption.c_str(), x.documentElement());
+ list.SelectSheet(k);
+ list.SetParam(k,(void*)pa.c_str(true));
+ return 1;
+ }
+ int onShow()
+ {
+ while (tv_db.GetRootItem() > 0)
+ tv_db.DeleteItem(tv_db.GetRootItem());
+ xsedit xs = GetControl(L"xcontent");
+ xstring content;
+ xs.GetContent(content);
+ xml x ;
+ x.loadXML(content);
+ KXMLDOMElement e = x.documentElement();
+ xstring name = e.getAttribute(L"name");
+ HTREEITEM root = tv_db.InsertItem(name.c_str(), NULL, 16);
+ auto lists = e.selectNodes(L"*");
+ int i;
+ int s = lists.length();
+ for (i = 0; i < s; i++)
+ {
+ KXMLDOMElement ele = lists.item(i);
+ xstring name = ele.getAttribute(L"name");
+ xstring link = ele.getAttribute(L"link");
+ HTREEITEM k = tv_db.InsertChildItem(root,L"" + name,L"" + link,15);
+ HTREEITEM j = tv_db.InsertChildItem(k,L"表",L"table",22);
+ tv_db.SetItemChild1(j,1);
+ j = tv_db.InsertChildItem(k,L"视图",L"view",23);
+ tv_db.SetItemChild1(j,1);
+ j = tv_db.InsertChildItem(k,L"存储过程",L"procedure",24);
+ tv_db.SetItemChild1(j,1);
+ j = tv_db.InsertChildItem(k,L"自定义函数",L"function",25);
+ tv_db.SetItemChild1(j,1);
+ }
+ tv_db.ExpandItem(root);
+
+ if (list.GetSheetCount() < 1)
+ {
+ xstring caption = L"Query";
+ if (OnOpen(caption,L"query") == 0) return 0;
+ xsedit xs = GetControl(L"sql_" + caption);
+ xs.LoadContent(L"",L".sql");
}
return 1;
}
@@ -192,356 +182,411 @@
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ HCURSOR hCursor = xutil::SetCursorWait();
+ xsedit xs = GetControl(L"xcontent");
+ xstring content;
+ xs.GetContent(content);
+
+ if (comdid == L"xmFileSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
+ //save xml content
+ SaveContent(content);
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmValid")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
+ xml x ;
+ if (!x.loadXML(content))
{
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
+ KXMLDOMParseError pError = x.parseError();
+ if (pError)
{
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
+ xstring str = pError.srcText();
+ xstring sError = L"\r\nMSSQL错误: " + str.trim() + L"\r\n";
+ int s = pError.errorCode();
+ sError += L" 代码: " + xstring(s) + L"\r\n";
+ s = pError.line();
+ sError += L" 位置: 第" + xstring(s) + L"行,L";
+ s = pError.linepos();
+ sError += L"第" + xstring(s) + L"列" + L"\r\n";
+ str = pError.reason();
+ sError += L" 原因: " + str;
+ trace(sError);
}
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
+ else
{
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
+ trace(L"XML 错误");
}
+ return -1;
}
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"show")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
+ if (OnCmdDispatch(L"xmValid") == -1)
+ return -1;
+ onShow();
}
- else if (comdid == L"xmUpdateProject")
+ else if (comdid == L"xmQuery")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
+ xstring guid = win32::GetGuid();
+ xstring caption = L"Query_" + guid.mid(1,8);
+ if (OnOpen(caption,L"query") == 0) return 0;
+ xsedit xs = GetControl(L"sql_" + caption);
+ xs.LoadContent(L"",L".sql");
}
- else if (comdid == L"xmEditObject")
+ else if (comdid.left(8) == L"xmClose_")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
+ list.DeleteSheet(list.GetSheetIndex());
}
+ else if (comdid.left(6) == L"xmRun_")
+ {
+ xstring table = comdid.mid(6,comdid.length());
+ xsedit xs = GetControl(L"sql_" + table);
+ xstring content;
+ xs.GetContent(content);
+ xstring sql = L"xquery@" + content + L" for xml path('data'),root('datas'),type";
+ KXMLDOMElement e = OnXQuery(sql);
+ if (e)
+ setGrid(e,L"grid_" + table);
+ }
+ xutil::RestoreCursor(hCursor);
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
+ int OnTreeAdd(HTREEITEM item, xstring data,KXMLDOMElement e)
{
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
+ auto list = e.selectNodes(L"*");
+ int i;
+ int s = list.length();
+ for (i = 0; i < s; i++)
{
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
+ KXMLDOMElement ele = list.item(i);
+ xstring name = ele.getAttribute(L"name");
+ xstring image = ele.getAttribute(L"image");
+ xstring d = ele.getAttribute(L"data");
+ image = L"" + image;
+ if (d == L"")
+ d = data + L"@" + name;
+ HTREEITEM j = tv_db.InsertChildItem(item,(LPTSTR)name.c_str(), (LPARAM)d.c_str(true), image.toInt());
+ if (image.toInt() > 9)
+ tv_db.SetItemChild1(j,1);
+ OnTreeAdd(j,d,ele);
}
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
return 1;
}
- int OnSelChangedEx(TEvent* evt, int param)
+
+ int OnTreeExpand(HTREEITEM item)
{
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
+ xstring data = tv_db.GetItemData(item);
+ xstring link = getLink(item);
+ xml x ;
+ xaserverarg arg;
+ arg.AddArg(L"type",data);
+ arg.AddArg(L"link",link);
+ if (xaserver::ExecXQuery(GetServerUrl(),L"[MSSQL.list.xq]",arg.GetString(),x) != 1)
{
- void* p = nullptr;
- layer.SetParam(s - 1, p);
+ trace(x.xml());
+ return 0;
}
- sheet_Count = s;
+ KXMLDOMElement e = x.documentElement();
+ OnTreeAdd(item,data,e);
return 1;
}
+
+ int OnTreeExpanding(TEvent* evt,LPARAM param)
+ {
+ NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+ HTREEITEM item = nmtv.itemNew.hItem;
+ if (tv_db.GetChildItem(item) > 0) return 0;
+ OnTreeExpand(item);
+ return 1;
+ }
+
+ int OnGroupAction(xstring guid,xstring name,xstring flag)
+ {
+ xaserverarg arg;
+ arg.AddArg(L"type",flag);
+ HTREEITEM item = tv_db.GetSelectedItem();
+ xstring str = L"<group guid='" + guid + L"' name='" + name + L"'";
+ if (flag.mid(5,7) == L".table.")
+ {
+ str += L"/>";
+ }
+ else
+ {
+ xstring link = getLink(item);
+ str += L" link='" + link + L"'/>";
+ }
+ //trace(str);
+ arg.AddArg(L"context",str);
+ return xaserver::ExecXAction(GetServerUrl(),L"[MSSQL.action.xa]",arg.GetString());
+ }
+
+ int OnNewGroup(HTREEITEM item)
+ {
+ tv_db.ExpandItemEx(item);
+ HTREEITEM gitem = tv_db.GetChildItem(item);
+ while (gitem > 0)
+ {
+ xstring data = L"" + tv_db.GetItemData(gitem);
+ if (data.left(6) != L"group@") break;
+ gitem = tv_db.GetNextItem(gitem);
+ }
+ xstring guid = win32::GetGuid();
+ if (OnGroupAction(guid,L"",L"group.update") != 1) return 0;
+ HTREEITEM j = tv_db.InsertItem(item,gitem,L"",L"group@" + guid,25);
+ tv_db.ItemEdit(j);
+ return 1;
+ }
+
+ int OnDel(HTREEITEM item)
+ {
+ xstring data = tv_db.GetItemData(item);
+ if (data.left(6) == L"group@")
+ {
+ xstring guid = data.mid(6,data.length());
+ if (OnGroupAction(guid,L"",L"group.del") != 1) return 0;
+ tv_db.DeleteItem(item);
+ }
+ else if (data.left(6) == L"table@")
+ {
+ HTREEITEM pitem = tv_db.GetParentItem(item);
+ xstring pdata = tv_db.GetItemData(pitem);
+ if (pdata.left(6) == L"group@")
+ {
+ xstring guid = pdata.mid(6,pdata.length());
+ xstring table = data.mid(6,data.length());
+ if (OnGroupAction(guid,table,L"group.table.del") != 1) return 0;
+ tv_db.DeleteItem(item);
+ }
+ }
+ return 1;
+ }
+
+ int OnRefresh(HTREEITEM item)
+ {
+ while (tv_db.GetChildItem(item) > 0)
+ tv_db.DeleteItem(tv_db.GetChildItem(item));
+ OnTreeExpand(item);
+ return 1;
+ }
+
+ int OnQuery(xstring caption)
+ {
+ if (OnOpen(caption,L"query") == 0) return 0;
+ KXMLDOMElement e = OnXQuery(L"column@" + caption);
+ if (!e) return 0;
+ auto list = e.selectNodes(L"columns/column");
+ int i;
+ int s = list.length();
+ xstring str;
+ str = L"SELECT TOP 500 \r\n";
+ for (i = 0; i < s; i++)
+ {
+ KXMLDOMElement ele = list.item(i);
+ xstring tmp = ele.getAttribute(L"name");
+ if (i < s - 1) tmp = tmp + L",L";
+ str += L"\t" + tmp + L"\r\n";
+ }
+ str += L"FROM " + caption;
+ xsedit xs = GetControl(L"sql_" + caption);
+ xs.LoadContent(str,L".sql");
+ setGrid(e,L"grid_" + caption);
+ return 1;
+ }
+
+ int OnEdit(xstring caption)
+ {
+ if (OnOpen(caption,L"edit") == 0) return 0;
+ KXMLDOMElement e = OnXQuery(L"edit@" + caption);
+ if (!e) return 0;
+ setGrid(e,L"editgrid_" + caption);
+ return 1;
+ }
+
+ int OnDesign(xstring caption)
+ {
+ if (OnOpen(caption,L"design") == 0) return 0;
+ KXMLDOMElement e = OnXQuery(L"design@" + caption);
+ if (!e) return 0;
+ setGrid(e,L"designgrid_" + caption);
+ return 1;
+ }
+
+ xstring getCaption(xstring str)
+ {
+ while (str.find(L"@", 0) > 0)
+ {
+ xstring tmp = str.mid(str.find(L"@", 0) + 1, str.length());
+ str = tmp;
+ }
+ return str;
+ }
+
+ int OnTreeRClick(TEvent* evt,int param)
+ {
+ TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
+ HTREEITEM item = nmtv.FromItem;
+ xstring data = tv_db.GetItemData(item);
+ xstring popup;
+ if (data == L"table")
+ {
+ xstring memu = L"<root>";
+ memu += L"<Item>新建表</Item>";
+ memu += L"<Item>新建分组</Item>";
+ memu += L"<Item>-</Item>";
+ memu += L"<Item>刷新</Item>";
+ memu += L"</root>";
+ xstring str = tv_db.PopupMenu(memu);
+ popup = str;
+ }
+ else if (data.left(6) == L"table@" && data.find(L"@",7) < 0)
+ {
+ xstring memu = L"<root>";
+ memu += L"<Item>新建表</Item>";
+ memu += L"<Item>设计</Item>";
+ memu += L"<Item>-</Item>";
+ memu += L"<Item>打开前500行</Item>";
+ memu += L"<Item>编辑前200行</Item>";
+ memu += L"<Item>-</Item>";
+ memu += L"<Item>重命名</Item>";
+ memu += L"<Item>刷新</Item>";
+ memu += L"<Item>删除</Item>";
+ memu += L"</root>";
+ xstring str = tv_db.PopupMenu(memu);
+ popup = str;
+ }
+ else if (data.left(6) == L"group@")
+ {
+ xstring memu = L"<root>";
+ memu += L"<Item>重命名</Item>";
+ memu += L"<Item>刷新</Item>";
+ memu += L"<Item>删除</Item>";
+ memu += L"</root>";
+ xstring str = tv_db.PopupMenu(memu);
+ popup = str;
+ }
+ else if (data.left(5) == L"view@" || data.left(10) == L"procedure@" || data.left(9) == L"function@")
+ {
+ xstring memu = L"<root>";
+ memu += L"<Item>重命名</Item>";
+ memu += L"<Item>修改</Item>";
+ memu += L"<Item>删除</Item>";
+ memu += L"</root>";
+ xstring str = tv_db.PopupMenu(memu);
+ popup = str;
+ }
+
+ //trace(L" "+data+L"-->"+getCaption(data));
+ xstring caption = getCaption(data);//data.mid(6,data.length());
+ if (popup == L"新建分组")
+ OnNewGroup(item);
+ else if (popup == L"删除")
+ OnDel(item);
+ else if (popup == L"刷新")
+ OnRefresh(item);
+ else if (popup == L"打开前500行")
+ OnQuery(caption);
+ else if (popup == L"编辑前200行")
+ OnEdit(caption);
+ else if (popup == L"设计")
+ OnDesign(caption);
+ else if (popup == L"新建表")
+ {
+ xstring guid = win32::GetGuid();
+ xstring text = L"Table_" + guid.mid(1,8);
+ OnDesign(text);
+ }
+ else if (popup == L"修改")
+ OnOpen(caption,L"query");
+ return 1;
+ }
+
+ int OnTreeBeginDrag(TEvent* evt,LPARAM param)
+ {
+ NMTREEVIEW& nmtv =*(NMTREEVIEW*) evt->notify.pnmh;
+ HTREEITEM item = nmtv.itemNew.hItem;
+ xstring data = tv_db.GetItemData(item);
+ if (data.left(6) != L"table@" || data.find(L"@",7) > 0)
+ {
+ int WM_LBUTTONUP = 0x0202;
+ SendMessage(tv_db.GetHWND(),WM_LBUTTONUP,0,0);
+ }
+ return 1;
+ }
+
+ int OnTreeEndDrag(TEvent* evt, LPARAM param)
+ {
+ TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
+ HTREEITEM fitem = nmtv.FromItem;
+ HTREEITEM titem = nmtv.ToItem;
+ xstring fdata = tv_db.GetItemData(fitem);
+ xstring tdata = tv_db.GetItemData(titem);
+ if (fdata.left(6) == L"table@" && tdata.left(6) == L"group@")
+ {
+ xstring table = fdata.mid(6,fdata.length());
+ xstring guid = tdata.mid(6,tdata.length());
+ if (OnGroupAction(guid,table,L"group.table.update") != 1) return 0;
+ tv_db.DeleteItem(fitem);
+ }
+ return 1;
+ }
+
+ int OnTreeEndEdit(TEvent* evt, LPARAM param)
+ {
+ NMTVDISPINFO& nmtv = *(NMTVDISPINFO*)evt->notify.pnmh;
+ HTREEITEM item = nmtv.item.hItem;
+ xstring pszText = nmtv.item.pszText;
+ if (pszText != L"")
+ {
+ xstring data = tv_db.GetItemData(item);
+ if (data.left(6) == L"group@")
+ {
+ xstring guid = data.mid(6,data.length());
+ if (OnGroupAction(guid,pszText,L"group.update") != 1) return 0;
+ }
+ tv_db.SetItemLabel(item,pszText);
+ }
+ return 1;
+ }
+
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
+ AttachEvent(L"WM_XCOMMAND",(FEvent)XDevEditXMSSQL::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)XDevEditXMSSQL::OnSetFocus);
//获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
+ AttachEvent(L"tv_db", L"TVN_ITEMEXPANDING", (FEvent)XDevEditXMSSQL::OnTreeExpanding);
//获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
+ //AttachEvent(L"tv_db", L"TVN_SELCHANGED",(FEvent)XDevEditXMSSQL::OnTreeSelChanged);
+ AttachEvent(L"tv_db", L"TVN_RCLICK", (FEvent)XDevEditXMSSQL::OnTreeRClick);
+ AttachEvent(L"tv_db", L"TVN_BEGINDRAG", (FEvent)XDevEditXMSSQL::OnTreeBeginDrag);
+ AttachEvent(L"tv_db", L"TVN_ENDDRAG", (FEvent)XDevEditXMSSQL::OnTreeEndDrag);
+ AttachEvent(L"tv_db", L"TVN_ENDLABELEDIT", (FEvent)XDevEditXMSSQL::OnTreeEndEdit);
+ }
+ int LoadData()
+ {
+ if (!GetWinParam()) return 1;
+ xsedit xs = GetControl(L"xcontent");
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xs.LoadContent(content,L".xml");
+ }
return 1;
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,13 +594,13 @@
int onload()
{
- sheet_Count = -1;
+ tv_db = GetControl(L"tv_db");
+ list = GetControl(L"list");
+
OnInitial();
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
-
+ LoadData();
+ //OnCmdDispatch(L"xmQuery");
return 1;
}
};
\ No newline at end of file
diff --git a/jrj/xframe/devloper/XDevEditXOffice.cpp b/jrj/xframe/devloper/XDevEditXOffice.cpp
index f26ab17..da7288b 100644
--- a/jrj/xframe/devloper/XDevEditXOffice.cpp
+++ b/jrj/xframe/devloper/XDevEditXOffice.cpp
@@ -4,544 +4,174 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xoffice.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXOffice : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditXOffice(void* implPtr, HWND hWnd) : XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditXOffice* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXOffice* pWin = new XDevEditXOffice(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ //xdwgrid dw_list;
+ xoffice m_xdoc;
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ auto xframeElement = GetElement();
+ auto agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+ if (agent)
+ {
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode,s);
+ }
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
- return 1;
- }
+ SetAgent();
- xstring ProcessDevCmd(xstring cmd, xstring ext)
- {
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
-
- xstring str = ((LPARAM)pdata) + L"";
- return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
+ //重置工具条
return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ xml x ;
+ m_xdoc.GetData(x);
+ xstring content = x.xml();
+ if (comdid == L"xmFileSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
+ //save xml content
+ SaveContent(content);
return 1;
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmDevPreview")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
+ xml x;
+ m_xdoc.GetData(x,m_xdoc.GetSelectedSheetIndex());
xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
- else
- {
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
+ arg.AddArg(L"xml", x.xml());
+ OpenWindow(L"dev:xpage[XDevOfficePreview.xpage]", arg);
return 1;
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"content")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
+ return 1;
+ xsedit xs = GetControl(L"rptcontent");
+ xs.LoadContent(content,L".txt");
+ //xs.SetText(content);
return 1;
}
- else if (comdid == L"xmUpdateProject")
+ else if (comdid == L"content1")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
+ xcontrol xs = GetControl(L"rptcontent1");
+ SendMessage(xs.GetHWND(), 0x400 + 53,0,4096 * 4096);
+ xs.SetText(content);
+ return 1;
+ }
+ else if (comdid == L"design")
+ {
+ xsedit xs = GetControl(L"rptcontent");
xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
+ xs.GetContent(str);
+ if (str != L"" && str != content)
+ {
+ m_xdoc.LoadTemplate(str,0);
+ xs.LoadContent(L"",L".txt");
+ }
+ /*
+ xcontrol xs = GetControl(L"rptcontent1");
+ xstring str ;
+ xstring str = xs.GetText();
+ if(str !=L"" && str != content)
+ {
+ m_xdoc.LoadTemplate(str,0);
+ //xs.LoadContent(L"",L".txt");
+ }*/
return 1;
- }
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
}
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
+ AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXOffice::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXOffice::OnSetFocus);
+
+ return 1;
+ }
+
+ /*
+ int OnRetrieve()
+ {
+ xstring query=L"[xxx]";
+ xml x = new xml;
+ xaserverarg arg = new xaserverarg;
+ arg.AddArg(L"xxx",L"xxx");
+ if (xaserver::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1)
+ {
+ trace(x.GetXmlDoc().text);
+ return -1;
+ }else
+ {
+ dw_list.Retrieve(x);
+ dw_list.Redraw();
+ }
+ return 1;
+ }
+ */
+
+ int LoadData()
+ {
+ if (!GetWinParam()) return 1;
+
+ m_xdoc = GetControl(L"rpt");
+ xstring content = GetData();
+ if (content != L"")
+ {
+ m_xdoc.LoadTemplate(content,0);
+ }
+ else
+ {
+ KXMLDOMElement pElement;
+ xml x ;
+ auto xdoc = x;
+ xdoc.loadXML(L"<root/>");
+ m_xdoc.LoadTemplate(x,0);
+ }
return 1;
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,12 +179,13 @@
int onload()
{
- sheet_Count = -1;
- OnInitial();
+ //dw_list = GetControl(L"dw_list");
+ //dw_list.SetDataObject(GetServerUrl(),L"dev:sheet[xxx.tpl/List]");
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
+ OnInitial();
+ LoadData();
+
+ //OnRetrieve();
return 1;
}
diff --git a/jrj/xframe/devloper/XDevEditXPage.cpp b/jrj/xframe/devloper/XDevEditXPage.cpp
index 0e63798..874d0f0 100644
--- a/jrj/xframe/devloper/XDevEditXPage.cpp
+++ b/jrj/xframe/devloper/XDevEditXPage.cpp
@@ -5,12 +5,13 @@
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xsedit.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDevEditXPage : public xwin
+class export XDevEditXPage : public XDevEditPage
{
public:
- XDevEditXPage(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd){}
+ XDevEditXPage(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd){}
public:
static XDevEditXPage* CreateInstance(void* implPtr, void* hWnd)
{
@@ -87,6 +88,8 @@
AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXPage::OnXCommand);
//获取焦点事件,用于重置工具条
AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXPage::OnSetFocus);
+
+ return 1;
}
int LoadData()
diff --git a/jrj/xframe/devloper/XDevEditXQuery.cpp b/jrj/xframe/devloper/XDevEditXQuery.cpp
index 9d50fc8..634d674 100644
--- a/jrj/xframe/devloper/XDevEditXQuery.cpp
+++ b/jrj/xframe/devloper/XDevEditXQuery.cpp
@@ -7,12 +7,13 @@
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xsedit.hpp>
#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDevEditXQuery : public xwin
+class export XDevEditXQuery : public XDevEditPage
{
public:
- XDevEditXQuery(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+ XDevEditXQuery(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
static XDevEditXQuery* CreateInstance(void* implPtr, void* hWnd)
{
@@ -68,7 +69,7 @@
xstring v = e1.getAttribute(L"source");
xc.SetText(L"" + v);
xc = GetControl(L"linkname");
- xstring v = e1.getAttribute(L"link");
+ v = e1.getAttribute(L"link");
xc.SetText(L"" + v);
KXMLDOMElement e2 = e.selectSingleNode(L"paras");
@@ -125,7 +126,7 @@
e.appendChild(e1);
root.documentElement().appendChild(e);
- xml y ();
+ xml y;
dw_list.DwUpdateTo(y);
root.documentElement().appendChild(y.documentElement());
//trace(y.xml());
@@ -249,6 +250,8 @@
AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXQuery::OnXCommand);
//获取焦点事件,用于重置工具条
AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXQuery::OnSetFocus);
+
+ return 1;
}
int OnInitial()
diff --git a/jrj/xframe/devloper/XDevEditXRuler.cpp b/jrj/xframe/devloper/XDevEditXRuler.cpp
index f26ab17..a62cce0 100644
--- a/jrj/xframe/devloper/XDevEditXRuler.cpp
+++ b/jrj/xframe/devloper/XDevEditXRuler.cpp
@@ -4,544 +4,149 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXRuler : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditXRuler(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditXRuler* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXRuler* pWin = new XDevEditXRuler(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ //xdwgrid dw_list;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ /*xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
+ {
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }*/
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
+ SetAgent();
+
+ //重置工具条
return 1;
}
- xstring ProcessDevCmd(xstring cmd, xstring ext)
+ int LoadData()
{
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
+ if (!GetWinParam()) return 1;
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xsedit xs = GetControl(L"xcontent");
+ xs.LoadContent(content,L".xml");
+ }
+ return 1;
+ }
- xstring str = ((LPARAM)pdata) + L"";
+ xstring OnGetType()
+ {
+ xwin w = GetFrameWindow();
+ xtreeview tv_folder = w.GetControl(L"DevExplorer");
+ HTREEITEM hItem = (HTREEITEM)GetWinParam();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring str = e.getAttribute(L"type");
return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ xstring content;
+ xsedit xs = GetControl(L"xcontent");
+ xs.GetContent(content);
+
+ HCURSOR hCursor = xutil::SetCursorWait();
+ if (comdid == L"xmFileSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
+ //save xml content
+ SaveContent(content);
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmValid")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
+ xml x ;
+ if (!x.loadXML(content))
{
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
+ KXMLDOMParseError pError = x.parseError();
+ if (pError)
{
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
+ xstring str = pError.srcText();
+ xstring sError = L"\r\nXML错误: " + str.trim() + L"\r\n";
+ int s = pError.errorCode();
+ sError += L" 代码: " + xstring(s) + L"\r\n";
+ s = pError.line();
+ sError += L" 位置: 第" + xstring(s) + L"行,L";
+ s = pError.linepos();
+ sError += L"第" + xstring(s) + L"列" + L"\r\n";
+ str = pError.reason();
+ sError += L" 原因: " + str;
+ trace(sError);
}
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
+ else
{
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
+ trace(L"XML 错误");
}
+ return -1;
}
- else
+ /*xstring sType = OnGetType();
+ if (sType == L"xml.xsd")
{
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
+ xstring sError;
+ x.ValidSchema(content, &sError);
+ trace(sError);
+ }*/
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"xmEditFind")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.finddlg]");
}
- else if (comdid == L"xmUpdateProject")
+ else if (comdid == L"xmEditReplace")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.replacedlg]");
}
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
+ xutil::RestoreCursor(hCursor);
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXRuler::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXRuler::OnSetFocus);
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,12 +154,8 @@
int onload()
{
- sheet_Count = -1;
OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
+ LoadData();
return 1;
}
diff --git a/jrj/xframe/devloper/XDevEditXWKDlg.cpp b/jrj/xframe/devloper/XDevEditXWKDlg.cpp
index f26ab17..a62cce0 100644
--- a/jrj/xframe/devloper/XDevEditXWKDlg.cpp
+++ b/jrj/xframe/devloper/XDevEditXWKDlg.cpp
@@ -4,544 +4,149 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXRuler : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditXRuler(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditXRuler* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXRuler* pWin = new XDevEditXRuler(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ //xdwgrid dw_list;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ /*xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
+ {
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }*/
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
+ SetAgent();
+
+ //重置工具条
return 1;
}
- xstring ProcessDevCmd(xstring cmd, xstring ext)
+ int LoadData()
{
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
+ if (!GetWinParam()) return 1;
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xsedit xs = GetControl(L"xcontent");
+ xs.LoadContent(content,L".xml");
+ }
+ return 1;
+ }
- xstring str = ((LPARAM)pdata) + L"";
+ xstring OnGetType()
+ {
+ xwin w = GetFrameWindow();
+ xtreeview tv_folder = w.GetControl(L"DevExplorer");
+ HTREEITEM hItem = (HTREEITEM)GetWinParam();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring str = e.getAttribute(L"type");
return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ xstring content;
+ xsedit xs = GetControl(L"xcontent");
+ xs.GetContent(content);
+
+ HCURSOR hCursor = xutil::SetCursorWait();
+ if (comdid == L"xmFileSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
+ //save xml content
+ SaveContent(content);
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmValid")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
+ xml x ;
+ if (!x.loadXML(content))
{
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
+ KXMLDOMParseError pError = x.parseError();
+ if (pError)
{
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
+ xstring str = pError.srcText();
+ xstring sError = L"\r\nXML错误: " + str.trim() + L"\r\n";
+ int s = pError.errorCode();
+ sError += L" 代码: " + xstring(s) + L"\r\n";
+ s = pError.line();
+ sError += L" 位置: 第" + xstring(s) + L"行,L";
+ s = pError.linepos();
+ sError += L"第" + xstring(s) + L"列" + L"\r\n";
+ str = pError.reason();
+ sError += L" 原因: " + str;
+ trace(sError);
}
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
+ else
{
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
+ trace(L"XML 错误");
}
+ return -1;
}
- else
+ /*xstring sType = OnGetType();
+ if (sType == L"xml.xsd")
{
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
+ xstring sError;
+ x.ValidSchema(content, &sError);
+ trace(sError);
+ }*/
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"xmEditFind")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.finddlg]");
}
- else if (comdid == L"xmUpdateProject")
+ else if (comdid == L"xmEditReplace")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.replacedlg]");
}
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
+ xutil::RestoreCursor(hCursor);
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXRuler::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXRuler::OnSetFocus);
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,12 +154,8 @@
int onload()
{
- sheet_Count = -1;
OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
+ LoadData();
return 1;
}
diff --git a/jrj/xframe/devloper/XDevEditXWorkNode.cpp b/jrj/xframe/devloper/XDevEditXWorkNode.cpp
index f26ab17..a62cce0 100644
--- a/jrj/xframe/devloper/XDevEditXWorkNode.cpp
+++ b/jrj/xframe/devloper/XDevEditXWorkNode.cpp
@@ -4,544 +4,149 @@
#include <wobject/xaserverarg.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xsedit.hpp>
+#include <xcontrol/xcombobox.hpp>
+#include "XDevEditPage.hpp"
using xml = KXMLDOMDocument;
-class export XDeveloper : public xwin
+class export XDevEditXRuler : public XDevEditPage
{
public:
- XDeveloper(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd),mle_output(nullptr) {}
+ XDevEditXRuler(void* implPtr, HWND hWnd) :XDevEditPage(implPtr, hWnd) {}
public:
- static XDeveloper* CreateInstance(void* implPtr, void* hWnd)
+ static XDevEditXRuler* CreateInstance(void* implPtr, void* hWnd)
{
- XDeveloper* pWin = new XDeveloper(implPtr, (HWND)hWnd);
+ XDevEditXRuler* pWin = new XDevEditXRuler(implPtr, (HWND)hWnd);
return pWin;
}
private: //
- xtreeview tv_folder;
- xcontrol mle_output;
- int sheet_Count;
-public:
- int trace(xstring msg)
+ //xdwgrid dw_list;
+
+ xnode m_agentNode; //Agent Condition
+ xstring m_agentCond; //Agent Node
+ int SetAgent()
{
- xstring t = mle_output.GetText();
- mle_output.SetText(t + msg);
+ /*xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ var xframeElement = GetElement();
+ var agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+ if(agent)
+ {
+ xstring s = agent.xml;
+ m_agentNode = SetAgentNodeContent (anode,s);
+ }*/
return 1;
}
- int OnProcessUrl(xstring kind, xstring url)
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt,LPARAM param)
{
- xml x ;
- xaserverarg xarg;
- xarg.AddArg(L"url", url);
- xarg.AddArg(L"kind", kind);
- xaserver::ExecXQuery(GetServerUrl(), L"[service.url.info.xq]", xarg.GetString(), x);
- alert(x.xml());
+ SetAgent();
+
+ //重置工具条
return 1;
}
- xstring ProcessDevCmd(xstring cmd, xstring ext)
+ int LoadData()
{
- int nlen = 0;
- BYTE* pdata=nullptr;
- xaserver::ProcessCmd(GetServerUrl(),( L"uri.hxsoft.com/xaserver/developer " + cmd).c_str(), ext.c_str(), pdata, nlen);
+ if (!GetWinParam()) return 1;
+ xstring content = GetData();
+ if (content != L"")
+ {
+ xsedit xs = GetControl(L"xcontent");
+ xs.LoadContent(content,L".xml");
+ }
+ return 1;
+ }
- xstring str = ((LPARAM)pdata) + L"";
+ xstring OnGetType()
+ {
+ xwin w = GetFrameWindow();
+ xtreeview tv_folder = w.GetControl(L"DevExplorer");
+ HTREEITEM hItem = (HTREEITEM)GetWinParam();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring str = e.getAttribute(L"type");
return str;
- }
-
- int SetAgent(xstring node)
- {
- auto n = GetElement().selectSingleNode(L"agent/projects/node()[1]");
- if (n)
- {
- xstring agent = n.xml();
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- SetAgentNode(anode, agent);
- }
-
- return 1;
- }
-
- HTREEITEM GetProjectItem(HTREEITEM hItem)
- {
- HTREEITEM pitem = hItem;
- xstring typ;
- while (true)
- {
- typ = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).tagName();
- if (typ == L"project")break;
- pitem = tv_folder.GetParentItem(pitem);
- if (!pitem )break;
- }
- return pitem;
- }
-
- HTREEITEM GetP2Item(HTREEITEM hItem)
- {
- HTREEITEM hDomainItem;
- HTREEITEM hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
- return hP2Item;
- }
-
- //树展开事件
- int OnTreeExpanding(TEvent* evt, HTREEITEM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- return 1;
- }
-
- xstring GetData(HTREEITEM hItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- if (!tv_folder.GetParentItem(hItem))
- {
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- xaserverarg arg;
- arg.AddArg(L"project.guid", prjguid);
- if (hP2Item)
- {
- if (hP2Item != hItem)
- {
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"guid", guid);
- }
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
- xstring str = ProcessDevCmd(L"getobject", arg.GetString());
- return str + L"";
- }
- else
- return L"";
- }
-
- int OnTreeDblClick(TEvent* evt, int param)
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 0;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode(L"//editor[@filetype='" + typ + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
- return 1;
}
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
- //
- if (comdid == L"xmSqlWatch")
+ xstring content;
+ xsedit xs = GetControl(L"xcontent");
+ xs.GetContent(content);
+
+ HCURSOR hCursor = xutil::SetCursorWait();
+ if (comdid == L"xmFileSave")
{
- OpenWindow(L"dev:xpage[sqlWatch.vx]");
- return 1;
+ //save xml content
+ SaveContent(content);
}
- if (comdid == L"xmCheckUrl")
+ else if (comdid == L"xmValid")
{
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"info", url);
- }
- else if (comdid == L"xmClearBuffer")
- {
- xcontrol xc = GetControl(L"url");
- xstring url = xc.GetText();
- return OnProcessUrl(L"clearbuffer", url);
- }
- if (comdid == L"xmNewFolder" || comdid == L"xmNewProject" || comdid == L"xmNewFile")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- if (comdid == L"xmNewProject" && prjguid != L"") return 1;
- if (comdid == L"xmNewFile" && !tv_folder.GetParentItem(hItem)) return 1;
-
- xaserverarg arg;
- if (comdid == L"xmNewProject")
- OpenWindow(L"dev:xpage[XDevProjectDlg.xpage]", arg);
- else if (comdid == L"xmNewFolder")
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- else
- OpenWindow(L"dev:xpage[XDevFileDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- arg.SetArg(L"project.guid", prjguid);
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem))
+ xml x ;
+ if (!x.loadXML(content))
{
- hDomainItem = hItem;
- }
- else
- {
- hP2Item = GetP2Item(hItem);
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- }
-
- e = tv_folder.GetItemData(hItem);
- if (hP2Item)
- {
- if (hP2Item != hItem)
+ KXMLDOMParseError pError = x.parseError();
+ if (pError)
{
- xstring guid = e.getAttribute(L"guid");
- arg.AddArg(L"parent.guid", guid);
+ xstring str = pError.srcText();
+ xstring sError = L"\r\nXML错误: " + str.trim() + L"\r\n";
+ int s = pError.errorCode();
+ sError += L" 代码: " + xstring(s) + L"\r\n";
+ s = pError.line();
+ sError += L" 位置: 第" + xstring(s) + L"行,L";
+ s = pError.linepos();
+ sError += L"第" + xstring(s) + L"列" + L"\r\n";
+ str = pError.reason();
+ sError += L" 原因: " + str;
+ trace(sError);
}
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- xstring guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
- }
- else if (hDomainItem)
- {
- KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
- xstring guid = d.getAttribute(L"guid");
- arg.AddArg(L"domain.guid", guid);
- }
-
-
- if (hP2Item)
- {
- if (comdid == L"xmNewFolder")
+ else
{
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"15");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
+ trace(L"XML 错误");
}
+ return -1;
}
- else
+ /*xstring sType = OnGetType();
+ if (sType == L"xml.xsd")
{
- if (comdid == L"xmNewFolder")
- {
- if (arg.GetArgString(L"image") == L"")
- arg.AddArg(L"image", L"17");
- arg.AddArg(L"folder", L"folder");
- arg.AddArg(L"type", L"folder");
- }
- }
-
- xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
- if (str != L"")
- {
- xml x;
- x.loadXML(str);
- auto e1 = x.documentElement();
- e.appendChild(e1);
- int himage = xstring(e1.getAttribute(L"image")).toInt();
- tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
- }
-
- return 1;
+ xstring sError;
+ x.ValidSchema(content, &sError);
+ trace(sError);
+ }*/
}
- else if (comdid == L"xmDeleteObject")
+ else if (comdid == L"xmEditFind")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- int MB_YESNO = 0x00000004;
- int IDYES = 6;
-
- if (MessageBox(GetHWND(), L"确认删除指定的项", L"提示", MB_YESNO) != IDYES) return 1;
- ProcessDevCmd(L"deletefolder", arg.GetString());
- tv_folder.DeleteItem(hItem);
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.finddlg]");
}
- else if (comdid == L"xmUpdateProject")
+ else if (comdid == L"xmEditReplace")
{
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- //find project folder
- xstring prjguid = L"";
- HTREEITEM pitem = GetProjectItem(hItem);
- if (pitem && pitem != hItem)
- prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
-
- HTREEITEM hP2Item = 0;
- HTREEITEM hDomainItem = 0;
- KXMLDOMElement e;
- if (!tv_folder.GetParentItem(hItem) ) return 1;
-
- hP2Item = hItem;
- while (true)
- {
- hDomainItem = tv_folder.GetParentItem(hP2Item);
- if (!tv_folder.GetParentItem(hDomainItem))break;
- hP2Item = hDomainItem;
- }
-
- e = tv_folder.GetItemData(hItem);
- xstring guid = e.getAttribute(L"guid");
- xaserverarg arg;
-
- arg.SetArg(L"project.guid", prjguid);
- arg.AddArg(L"guid", guid);
-
- KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
- //trace(p.xml);
- guid = p.getAttribute(L"guid");
- arg.AddArg(L"root.guid", guid);
-
- xstring str;
- str = e.getAttribute(L"caption");
- arg.AddArg(L"name", str);
-
- str = e.getAttribute(L"desc");
- arg.AddArg(L"desc", str);
-
- str = e.getAttribute(L"uri");
- arg.AddArg(L"uri", str);
-
- str = e.getAttribute(L"guid");
- arg.AddArg(L"guid", str);
-
- str = e.getAttribute(L"src");
- arg.AddArg(L"src", str);
-
- str = e.getAttribute(L"type");
- arg.AddArg(L"type", str);
-
- OpenWindow(L"dev:xpage[XDevItemDlg.xpage]", arg);
- if (arg.GetArgString(L"__process") != L"true") return 1;
-
- ProcessDevCmd(L"updatefolder", arg.GetString());
- str = arg.GetArgString(L"name");
- e.setAttribute(L"caption", str);
-
- str = arg.GetArgString(L"desc");
- e.setAttribute(L"desc", str);
-
- str = arg.GetArgString(L"uri");
- e.setAttribute(L"uri", str);
-
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"name"));
-
- return 1;
+ OpenWindow(L"dev:xpage[xcode.replacedlg]");
}
- else if (comdid == L"xmEditObject")
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- xlayersheet layer = GetControl(L"mdilayer");
- int i = 0;
- int nIndex = layer.GetSheetCount();
- for (i = 0; i < nIndex; i++)
- {
- if (hItem == layer.GetParam(i))break;
- }
- if (i < nIndex)
- {
- layer.SelectSheet(i);
- return 1;
- }
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring node = e.tagName();
- if (node == L"File" || node == L"file")
- {
- //xstring str = ProcessDevCmd(L"getobject",arg.GetString());
- xstring typ = e.getAttribute(L"type");
-
- xml x ;
- xaserver::FetchXml(GetServerUrl(), L"dev:xpage[XDevEdit.xml]", L"", x);
- auto n = x.selectSingleNode((xstring)L"//editor[@filetype='" + L"xml" + L"']/@xpage");
- if (n)
- {
- xstring xpage = n.text();
- OpenWindow(L"dev:xpage[" + xpage + L"]", (LPARAM)hItem);
- //layer.
- if (nIndex < layer.GetSheetCount())
- layer.SetParam(nIndex, hItem);
- }
-
- }
-
- }
+ xutil::RestoreCursor(hCursor);
return 0;
}
- //树选择事件
- int OnTreeSelChanged(TEvent* evt, LPARAM param)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
-
- //root node
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- SetAgent(L"projects");
-
- return 1;
- }
-
//命令处理事件
- int OnXCommand(TEvent* evt, int param)
+ int OnXCommand(TEvent* evt,LPARAM param)
{
return OnCmdDispatch(evt->xcommand.pStrID);
}
- int OnSelChanged(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
-
- //状态栏显示完成路径
- HTREEITEM hitem = tv_folder.GetSelectedItem();
- xstring path = L"" + tv_folder.GetItemLabel(hitem);
- while (tv_folder.GetParentItem(hitem))
- {
- hitem = tv_folder.GetParentItem(hitem);
- xstring p = L"" + tv_folder.GetItemLabel(hitem);
- path = p + L"\\" + path;
- }
- xcontrol xc = GetControl(L"statusbar");
- xc.SetText(L"" + path);
- /*
- if(sheet<s)
- {
- param p=layer.GetParam(sheet);
- int hitem = p;
- onPrintPath(hitem);
- }
- */
-
- return 1;
- }
- int OnSelChangedEx(TEvent* evt, int param)
- {
- xlayersheet layer = GetControl(L"mdilayer");
- LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
- int sheet = nmtv.nSheet;
- int s = layer.GetSheetCount();
- int k = sheet_Count;
- if (k < s)
- {
- void* p = nullptr;
- layer.SetParam(s - 1, p);
- }
- sheet_Count = s;
- return 1;
- }
int OnAttachEvent()
{
//绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&XDeveloper::OnXCommand);
- AttachEvent(L"DevExplorer", L"NM_DBLCLK", (FEvent)&XDeveloper::OnTreeDblClick);
- //获得树的展开事件
- //AttachEvent(L"DevExplorer", L"TVN_ITEMEXPANDING",(FEvent)&XDeveloper::OnTreeExpanding);
- //获得树的选择事件
- AttachEvent(L"DevExplorer", L"TVN_SELCHANGED", (FEvent)&XDeveloper::OnTreeSelChanged);
- //改变页签
- //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",(FEvent)&XDeveloper::OnSelChanged);
- AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&XDeveloper::OnSelChangedEx);
-
- return 1;
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXRuler::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXRuler::OnSetFocus);
}
int OnInitial()
{
+ SetAgent();
+
OnAttachEvent();
return 1;
@@ -549,12 +154,8 @@
int onload()
{
- sheet_Count = -1;
OnInitial();
-
- tv_folder = GetControl(L"DevExplorer");
- mle_output = GetControl(L"output");
- SetAgent(L"projects");
+ LoadData();
return 1;
}
diff --git a/jrj/xframe/kobject/kutil.hpp b/jrj/xframe/kobject/kutil.hpp
index 3dfc512..7df58f2 100644
--- a/jrj/xframe/kobject/kutil.hpp
+++ b/jrj/xframe/kobject/kutil.hpp
@@ -30,4 +30,9 @@
namespace Hxsoft { namespace XUtil{
LPTSTR FormatDecimalString(LPTSTR str, LPTSTR format, bool& bfree);
+ LPTSTR ToXmlTextAndStartSpace(LPCTSTR str);
+ LPTSTR ToHtmlTextAndStartSpace(LPCTSTR str);
+ LPTSTR ToXmlText(LPCTSTR str);
+ LPTSTR ToHtmlText(LPCTSTR str);
+ LPTSTR UnXMLText(LPCTSTR str);
}}
\ No newline at end of file
diff --git a/jrj/xframe/wobject/xutil.hpp b/jrj/xframe/wobject/xutil.hpp
index 5a702e7..7d2a7ad 100644
--- a/jrj/xframe/wobject/xutil.hpp
+++ b/jrj/xframe/wobject/xutil.hpp
@@ -58,6 +58,34 @@
return Hxsoft::XUtil::FormatDecimalString(str, format, bfree);
}
+ static xstring ToXmlTextAndStartSpace(xstring str)
+ {
+ wchar_t* xmlStr = Hxsoft::XUtil::ToXmlTextAndStartSpace(str.c_str());
+ return xmlStr ? xmlStr : str;
+ }
+
+ static xstring ToHtmlTextAndStartSpace(xstring str)
+ {
+ wchar_t* htmlStr = Hxsoft::XUtil::ToHtmlTextAndStartSpace(str.c_str());
+ return htmlStr ? htmlStr : str;
+ }
+
+ static xstring ToXmlText(xstring str)
+ {
+ wchar_t* xmlStr = Hxsoft::XUtil::ToXmlText(str.c_str());
+ return xmlStr? xmlStr : str;
+ }
+ static xstring ToHtmlText(xstring str)
+ {
+ wchar_t* htmlStr = Hxsoft::XUtil::ToHtmlText(str.c_str());
+ return htmlStr? htmlStr : str;
+ }
+ static xstring UnXMLText(xstring str)
+ {
+ wchar_t* xmlStr = Hxsoft::XUtil::UnXMLText(str.c_str());
+ return xmlStr? xmlStr:str;
+ }
+
public:
static xstring GetModulePath()
{
diff --git a/jrj/xframe/xcontrol/xcell.hpp b/jrj/xframe/xcontrol/xcell.hpp
index 92911c7..f3dd1e9 100644
--- a/jrj/xframe/xcontrol/xcell.hpp
+++ b/jrj/xframe/xcontrol/xcell.hpp
@@ -3,6 +3,7 @@
#include "wobject/xcontrol.hpp"
#include "kobject/kcell.hpp"
#include "wobject/xurl.hpp"
+#include "wobject/xutil.hpp"
using kcell = Hxsoft::XFrame::XOffice::XCell::IXCell;
class xcell : public xcontrol
@@ -300,6 +301,11 @@
{
return GetKCell()->SetFixedCols(value);
}
+
+ xstring GetItemXmlString(int ARow, int ACol)
+ {
+ return xutil::ToXmlText(GetKCell()->GetItemString(ARow, ACol));
+ }
};
diff --git a/jrj/xframe/xcontrol/xdwgrid.hpp b/jrj/xframe/xcontrol/xdwgrid.hpp
index f2c0d3b..16c97b0 100644
--- a/jrj/xframe/xcontrol/xdwgrid.hpp
+++ b/jrj/xframe/xcontrol/xdwgrid.hpp
@@ -572,6 +572,24 @@
DwRetrieve(ServerUrl, src, arg.GetString());
return 1;
}
+
+ xstring GetItemDisplayXmlString(int nRow, int nColumn, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal)
+ {
+ return xutil::ToXmlText(getKReport()->GetItemDisplayString(nRow, nColumn, dwBuffer));
+ }
+ xstring GetItemDisplayXmlString(int nRow, xstring ColumnName, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal)
+ {
+ return xutil::ToXmlText(getKReport()->GetItemDisplayString(nRow, ColumnName.c_str(), dwBuffer));
+ }
+ xstring GetItemXmlString(int nRow, int nColumn, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal)
+ {
+ return xutil::ToXmlText(getKReport()->GetItemString_(nRow, nColumn, dwBuffer));
+ }
+ xstring GetItemXmlString(int nRow, xstring ColumnName, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal)
+ {
+ return xutil::ToXmlText(getKReport()->GetItemString_(nRow, ColumnName.c_str(), dwBuffer));
+ }
+
};
diff --git a/jrj/xframe/xcontrol/xdwtable.hpp b/jrj/xframe/xcontrol/xdwtable.hpp
index 78c4ca5..d28d1ce 100644
--- a/jrj/xframe/xcontrol/xdwtable.hpp
+++ b/jrj/xframe/xcontrol/xdwtable.hpp
@@ -559,6 +559,13 @@
return 0;
}
+ xstring GetItemXmlString(int nRow, int nColumn, kdwtable::DWBuffer dwBuffer = kdwtable::dbuf_normal) {
+ return xutil::ToXmlText(GetDwTable()->GetItemString_(nRow, nColumn, dwBuffer));
+ }
+ xstring GetItemXmlString(int nRow, LPCTSTR ColumnName, kdwtable::DWBuffer dwBuffer = kdwtable::dbuf_normal) {
+ return xutil::ToXmlText(GetDwTable()->GetItemString_(nRow, ColumnName, dwBuffer));
+ }
+
};
--
Gitblit v1.9.3