已添加4个文件
已删除3个文件
已修改16个文件
已重命名1个文件
| | |
| | | <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" /> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | { |
| | | 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); |
| | | |
| | |
| | | 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>"; |
| | |
| | | { |
| | | 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); |
| | | |
| | |
| | | |
| | | 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>"; |
| | | |
| | |
| | | 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(); |
| | |
| | | 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) |
| | |
| | | |
| | | 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"æ¯é没æå½å
¥"; |
| | |
| | | { |
| | | 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>"; |
| | |
| | | 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>"; |
| | |
| | | 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>"; |
| | | |
| | |
| | | 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>"; |
| | |
| | | //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"éè´ä»·æ ¼æ²¡æå½å
¥"; |
| | |
| | | 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>"; |
| | |
| | | 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(); |
| | |
| | | |
| | | 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>"; |
| | |
| | | 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>"; |
| | | } |
| | | } |
| | |
| | | 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>"; |
| | | } |
| | | } |
| | |
| | | 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>"; |
| | | } |
| | | } |
| | |
| | | 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>"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | }; |
ÎļþÃû´Ó jrj/xframe/devloper/XDevEditPage.cpp ÐÞ¸Ä |
| | |
| | | #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); |
| | |
| | | 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; |
| | | } |
| | |
| | | while (true) |
| | | { |
| | | hDomainItem = tv_folder.GetParentItem(hP2Item); |
| | | if (tv_folder.GetParentItem(hDomainItem) <= 0)break; |
| | | if (!tv_folder.GetParentItem(hDomainItem))break; |
| | | hP2Item = hDomainItem; |
| | | } |
| | | return hP2Item; |
| | |
| | | |
| | | HTREEITEM hP2Item = 0; |
| | | HTREEITEM hDomainItem = 0; |
| | | if (tv_folder.GetParentItem(hItem) <= 0) |
| | | if (!tv_folder.GetParentItem(hItem)) |
| | | { |
| | | hDomainItem = hItem; |
| | | } |
| | |
| | | { |
| | | HTREEITEM hP2Item = 0; |
| | | HTREEITEM hDomainItem = 0; |
| | | if (tv_folder.GetParentItem(hItem) <= 0) |
| | | if (!tv_folder.GetParentItem(hItem)) |
| | | { |
| | | hDomainItem = hItem; |
| | | } |
| | |
| | | { |
| | | return SaveContentEx(content, 0); |
| | | } |
| | | |
| | | xstring GetGuid() |
| | | { |
| | | return publiccode::GetGuid(); |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | }; |
| | |
| | | #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) |
| | | { |
| | |
| | | xml x; |
| | | if (!x.loadXML(content)) |
| | | { |
| | | KXMLDOMParseError pError = x.parseError; |
| | | KXMLDOMParseError pError = x.parseError(); |
| | | if (pError) |
| | | { |
| | | xstring str = pError.srcText(); |
| | |
| | | |
| | | //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"); |
| | | |
| | |
| | | { |
| | | 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"); |
| | |
| | | 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"); |
| | |
| | | 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() |
| | |
| | | #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; |
| | |
| | | |
| | | int onload() |
| | | { |
| | | sheet_Count = -1; |
| | | OnInitial(); |
| | | |
| | | tv_folder = GetControl(L"DevExplorer"); |
| | | mle_output = GetControl(L"output"); |
| | | SetAgent(L"projects"); |
| | | |
| | | LoadData(); |
| | | return 1; |
| | | } |
| | | } |
| | | }; |
| | |
| | | #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; |
| | | } |
| | |
| | | //å½ä»¤åå¸å½æ° |
| | | 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; |
| | |
| | | |
| | | 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; |
| | | } |
| | | }; |
| | |
| | | #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; |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | #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) |
| | | { |
| | |
| | | AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXPage::OnXCommand); |
| | | //è·åç¦ç¹äºä»¶ï¼ç¨äºé置工å
·æ¡ |
| | | AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXPage::OnSetFocus); |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | int LoadData() |
| | |
| | | #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) |
| | | { |
| | |
| | | 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"); |
| | |
| | | e.appendChild(e1); |
| | | root.documentElement().appendChild(e); |
| | | |
| | | xml y (); |
| | | xml y; |
| | | dw_list.DwUpdateTo(y); |
| | | root.documentElement().appendChild(y.documentElement()); |
| | | //trace(y.xml()); |
| | |
| | | AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXQuery::OnXCommand); |
| | | //è·åç¦ç¹äºä»¶ï¼ç¨äºé置工å
·æ¡ |
| | | AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXQuery::OnSetFocus); |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | int OnInitial() |
| | |
| | | #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; |
| | |
| | | |
| | | int onload() |
| | | { |
| | | sheet_Count = -1; |
| | | OnInitial(); |
| | | |
| | | tv_folder = GetControl(L"DevExplorer"); |
| | | mle_output = GetControl(L"output"); |
| | | SetAgent(L"projects"); |
| | | LoadData(); |
| | | |
| | | return 1; |
| | | } |
| | |
| | | #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; |
| | |
| | | |
| | | int onload() |
| | | { |
| | | sheet_Count = -1; |
| | | OnInitial(); |
| | | |
| | | tv_folder = GetControl(L"DevExplorer"); |
| | | mle_output = GetControl(L"output"); |
| | | SetAgent(L"projects"); |
| | | LoadData(); |
| | | |
| | | return 1; |
| | | } |
| | |
| | | #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; |
| | |
| | | |
| | | int onload() |
| | | { |
| | | sheet_Count = -1; |
| | | OnInitial(); |
| | | |
| | | tv_folder = GetControl(L"DevExplorer"); |
| | | mle_output = GetControl(L"output"); |
| | | SetAgent(L"projects"); |
| | | LoadData(); |
| | | |
| | | return 1; |
| | | } |
| | |
| | | |
| | | 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); |
| | | }} |
| | |
| | | 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() |
| | | { |
| | |
| | | #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 |
| | |
| | | { |
| | | return GetKCell()->SetFixedCols(value); |
| | | } |
| | | |
| | | xstring GetItemXmlString(int ARow, int ACol) |
| | | { |
| | | return xutil::ToXmlText(GetKCell()->GetItemString(ARow, ACol)); |
| | | } |
| | | }; |
| | | |
| | | |
| | |
| | | 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)); |
| | | } |
| | | |
| | | }; |
| | | |
| | | |
| | |
| | | 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)); |
| | | } |
| | | |
| | | }; |
| | | |
| | | |