From 85b59ba5c6e2b2ad0cce127d414afef187eddb0b Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期四, 14 十一月 2024 15:31:20 +0800
Subject: [PATCH] update
---
jrj/xframe/kobject/kcell.hpp | 172 ++++++++++++-----------
jrj/project/business/QuoteFile.cpp | 215 +++++++++++++++++++++++++++++-
jrj/xframe/xcontrol/xcell.hpp | 16 ++
3 files changed, 313 insertions(+), 90 deletions(-)
diff --git a/jrj/project/business/QuoteFile.cpp b/jrj/project/business/QuoteFile.cpp
index c0fa286..c363769 100644
--- a/jrj/project/business/QuoteFile.cpp
+++ b/jrj/project/business/QuoteFile.cpp
@@ -1853,7 +1853,7 @@
}
dw_cell.SetRowColumn(lastrow, 1);
dw_cell.SetAnchorRowColumn(lastrow, 1);
- SendCtrlCmd(dw_cell, L"xmFormatCellDeleteRow");
+ //SendCtrlCmd(dw_cell, L"xmFormatCellDeleteRow");
drow++;
}
}
@@ -2145,16 +2145,16 @@
SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
- SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
- SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
- SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+ //SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+ //SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+ //SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
cell1.SetItemString(headrow, purchremarkcol + 1, L"供应商");
cell1.SetItemString(headrow, purchremarkcol + 2, L"类型");
cell1.SetItemString(headrow, purchremarkcol + 3, L"价格");
- cell1.SetItemString(headrow, purchremarkcol + 4, L"供应商1");
- cell1.SetItemString(headrow, purchremarkcol + 5, L"类型1");
- cell1.SetItemString(headrow, purchremarkcol + 6, L"价格1");
+ //cell1.SetItemString(headrow, purchremarkcol + 4, L"供应商1");
+ //cell1.SetItemString(headrow, purchremarkcol + 5, L"类型1");
+ //cell1.SetItemString(headrow, purchremarkcol + 6, L"价格1");
int colRemark = getItemCol(cell1, headrow, L"Remarks");
cell1.SetRowColumn(1, colRemark);
@@ -3561,10 +3561,59 @@
return 1;
}
+ int OnDelBOMItem()
+ {
+ int startRow = getItemHeadRow(dw_cell);
+ int headrow = startRow;
+ if (startRow < 1) return 1;
+ startRow++;
+ int row = dw_cell.GetRow();
+
+ int colPurchPrice1 = getItemCol(dw_cell, headrow, L"价格1");
+ int colPurchPrice2 = getItemCol(dw_cell, headrow, L"价格2");
+ int colPurchPrice3 = getItemCol(dw_cell, headrow, L"价格3");
+ if (colPurchPrice3 > 0)
+ {
+ dw_cell.SetRowColumn(row, colPurchPrice3 - 2);
+ dw_cell.SetAnchorRowColumn(row, colPurchPrice3 - 2);
+
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ return 1;
+ }
+
+ if (colPurchPrice2 > 0)
+ {
+ dw_cell.SetRowColumn(row, colPurchPrice2 -2);
+ dw_cell.SetAnchorRowColumn(row, colPurchPrice2 -2);
+
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+
+ return 1;
+ }
+
+ if (colPurchPrice1 > 0)
+ {
+ dw_cell.SetRowColumn(row, colPurchPrice1 - 2);
+ dw_cell.SetAnchorRowColumn(row, colPurchPrice1 - 2);
+
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+
+ return 1;
+ }
+ return 1;
+ }
+
//命令发布函数
int OnCmdDispatch(xstring comdid)
{
if (comdid == L"xmAddBOMItem") return OnAddBOMItem();
+ if (comdid == L"xmDelBOMItem") return OnDelBOMItem();
if (comdid == L"xmQuoteBill")
{
if (dw_base.GetItemString(1, L"CustomerID") == L"")
@@ -4922,6 +4971,156 @@
return str.mid(pos, epos - pos);
}
+ int AdjustView(xcell& dw_cell)
+ {
+ int startRow = getItemHeadRow(dw_cell);
+
+ //没有找到商品行的标题
+ if (startRow < 1) return 0;
+ startRow++;
+
+ int colItemDesc = getItemCol(dw_cell, startRow - 1, L"产品信息");
+ int colPhoto = getItemCol(dw_cell, startRow - 1, L"Photo");
+
+ bool newItemDesc = false;
+ if (colItemDesc < 0)
+ {
+ dw_cell.SetRowColumn(1, colPhoto+1);
+ dw_cell.SetAnchorRowColumn(1, colPhoto+1);
+ SendCtrlCmd(dw_cell, L"xmFormatCellInsertCol");
+
+ colItemDesc = colPhoto + 1;
+ dw_cell.SetItemString(startRow - 1, colItemDesc, L"产品信息");
+ newItemDesc = true;
+ }
+
+ if (newItemDesc)
+ {
+ int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
+ int colItemNo = getItemCol(dw_cell, startRow - 1, L"我司型号,ItemNo");
+ int colCustomerItemNo = getItemCol(dw_cell, startRow - 1, L"客户型号,Customer ItemNo,Customer Item No");
+ int colItemName = getItemCol(dw_cell, startRow - 1, L"Product Description,Product Name,Item Name");
+ int colItemCName = getItemCol(dw_cell, startRow - 1, L"中文品名");
+ int colItemSpec = getItemCol(dw_cell, startRow - 1, L"Specifications,规格,产品规格");
+ int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
+ int colBuyer = getItemCol(dw_cell, startRow - 1, L"采购人员");
+ int colQty = getItemCol(dw_cell, startRow - 1, L"Qty");
+ int colPackage = getItemCol(dw_cell, startRow - 1, L"Package");
+ int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
+
+ int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
+ int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
+ int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
+ int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+ int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+ int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+ int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+ int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
+ int colPurchedDate = getItemCol(dw_cell, startRow - 1, L"采购提交业务时间");
+ int colPhoto1 = getItemCol(dw_cell, startRow - 1, L"工厂图片");
+ int colProductInfo = getItemCol(dw_cell, startRow - 1, L"业务部产品信息");
+ int colProductInfo1 = getItemCol(dw_cell, startRow - 1, L"采购部产品信息");
+
+ int colBOMType = getItemCol(dw_cell, startRow - 1, L"类型");
+ int colBOMType1 = getItemCol(dw_cell, startRow - 1, L"类型1");
+ int colSaler = getItemCol(dw_cell, startRow - 1, L"业务员");
+ int colSaletoBuyerRemark = getItemCol(dw_cell, startRow - 1, L"业务To采购备注");
+
+ int colSupplier1 = getItemCol(dw_cell, startRow - 1, L"供应商1");
+ int colBuyPrice1 = getItemCol(dw_cell, startRow - 1, L"价格1");
+
+ int colSaleSendDate = getItemCol(dw_cell, startRow - 1, L"业务发送采购时间");
+
+ dw_cell.SetColumnWidth(colSKUID, 0);
+ dw_cell.SetColumnWidth(colItemNo, 0);
+ dw_cell.SetColumnWidth(colCustomerItemNo, 0);
+ dw_cell.SetColumnWidth(colItemName, 0);
+ dw_cell.SetColumnWidth(colItemCName, 0);
+ dw_cell.SetColumnWidth(colBuyerRemark, 0);
+ dw_cell.SetColumnWidth(colPackage, 0);
+ dw_cell.SetColumnWidth(colQty, 0);
+ dw_cell.SetColumnWidth(col40HQ, 0);
+ dw_cell.SetColumnWidth(colInnerOuter, 0);
+ dw_cell.SetColumnWidth(colSaler, 0);
+ dw_cell.SetColumnWidth(colSaletoBuyerRemark, 0);
+ dw_cell.SetColumnWidth(colProductInfo, 0);
+ dw_cell.SetColumnWidth(colSaler, 0);
+
+ dw_cell.SetColumnWidth(colBOMType, 0);
+ dw_cell.SetColumnWidth(colBOMType1, 0);
+
+ dw_cell.SetColumnWidth(colItemDesc, 160);
+
+ bool bPrice1 = false;
+ for (int row = startRow; row <= dw_cell.GetValidRow(); row++)
+ {
+ if (dw_cell.GetItemString(row, colSKUID) != L"")
+ {
+ xstring itemDesc = L"SKUID:" + dw_cell.GetItemString(row, colSKUID);
+ if (dw_cell.GetItemString(row, colItemNo) != L"")
+ itemDesc += L"\r\nItem No: " + dw_cell.GetItemString(row, colItemNo);
+ if (dw_cell.GetItemString(row, colItemNo) != L"")
+ itemDesc += L"\r\nCustomer Item No: " + dw_cell.GetItemString(row, colCustomerItemNo);
+ if (dw_cell.GetItemString(row, colItemName) != L"")
+ itemDesc += L"\r\nItem Name:" + dw_cell.GetItemString(row, colItemName);
+ if (dw_cell.GetItemString(row, colItemCName) != L"")
+ itemDesc += L"\r\n产品名称:" + dw_cell.GetItemString(row, colItemCName);
+
+ if (dw_cell.GetItemString(row, colQty) != L"")
+ itemDesc += L"\r\n数量:" + dw_cell.GetItemString(row, colQty);
+ if (dw_cell.GetItemString(row, colPackage) != L"")
+ itemDesc += L"\r\n包装:" + dw_cell.GetItemString(row, colPackage);
+ if (dw_cell.GetItemString(row, colInnerOuter) != L"")
+ itemDesc += L"\r\n装箱数(内/外):" + dw_cell.GetItemString(row, colInnerOuter);
+
+ if (dw_cell.GetItemString(row, colProductInfo) != L"")
+ itemDesc += L"\r\n\r\n规格:\r\n" + dw_cell.GetItemString(row, colProductInfo);
+ if (dw_cell.GetItemString(row, colSaletoBuyerRemark) != L"")
+ itemDesc += L"\r\n\r\n采购要求:\r\n" + dw_cell.GetItemString(row, colSaletoBuyerRemark);
+ dw_cell.SetItemString(row, colItemDesc, itemDesc);
+
+ if (!bPrice1)
+ {
+ if (dw_cell.GetItemString(row, colSupplier1) != L"") bPrice1 = true;
+ else if (dw_cell.GetItemString(row, colBuyPrice1) != L"") bPrice1 = true;
+ }
+ }
+ }
+ if (!bPrice1)
+ {
+ dw_cell.SetRowColumn(1, colSupplier1);
+ dw_cell.SetAnchorRowColumn(1, colSupplier1);
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+ }
+
+ dw_cell.SetRowColumn(1, 1);
+ dw_cell.SetAnchorRowColumn(startRow-1, 1);
+ SendCtrlCmd(dw_cell, L"xmEditCopy");
+
+ dw_cell.SetRowColumn(1, colPhoto);
+ dw_cell.SetAnchorRowColumn(startRow - 1, colPhoto);
+ SendCtrlCmd(dw_cell, L"xmEditPaste");
+
+ dw_cell.SetRowColumn(1, 2);
+ dw_cell.SetAnchorRowColumn(startRow - 1, 2);
+ SendCtrlCmd(dw_cell, L"xmEditCopy");
+
+ dw_cell.SetRowColumn(1, colPhoto+1);
+ dw_cell.SetAnchorRowColumn(startRow - 1, colPhoto+1);
+ SendCtrlCmd(dw_cell, L"xmEditPaste");
+
+ dw_cell.SetItemString(2, colBuyerPrice, L"业务员");
+ dw_cell.SetItemString(3, colBuyerPrice, L"发送日期:");
+ dw_cell.SetItemString(2, colBuyerPrice+1, dw_cell.GetItemString(startRow, colSaler));
+ dw_cell.SetItemString(3, colBuyerPrice+1, dw_cell.GetItemString(startRow, colSaleSendDate));
+ }
+
+
+ return 1;
+ }
+
int onload()
{
SetArg();
@@ -5063,6 +5262,8 @@
xnode anode = GetAgentNode(L"tabheader");
anode.SetLayerFlow(0x00000100);
dw_cell.SetColumnCount(dw_cell.GetValidCol() + 6);
+ //dw_cell.SetFixedCols(7);
+ AdjustView(dw_cell);
}
else
dw_cell.SetColumnCount(dw_cell.GetValidCol()+3);
diff --git a/jrj/xframe/kobject/kcell.hpp b/jrj/xframe/kobject/kcell.hpp
index 4288ee4..e9a8dc9 100644
--- a/jrj/xframe/kobject/kcell.hpp
+++ b/jrj/xframe/kobject/kcell.hpp
@@ -3,96 +3,102 @@
#include "kcontrol.hpp"
namespace Hxsoft { namespace XFrame { namespace XOffice { namespace XCell{
-class IXCell : public IXFControl
-{
-public:
- int GetRow();
- int GetColumn();
+ class IXCell : public IXFControl
+ {
+ public:
+ int GetRow();
+ int GetColumn();
- int GetAnchorRow();
- int GetAnchorCol();
+ int GetAnchorRow();
+ int GetAnchorCol();
- int SetRowColumn(int ARow, int ACol);
- int SetAnchorRowColumn(int ARow, int ACol);
+ int SetRowColumn(int ARow, int ACol);
+ int SetAnchorRowColumn(int ARow, int ACol);
- int GetRowCount();
- int SetRowCount(int columnCount);
+ int GetRowCount();
+ int SetRowCount(int columnCount);
- int GetColumnCount();
- int SetColumnCount(int columnCount);
+ int GetColumnCount();
+ int SetColumnCount(int columnCount);
- LPCTSTR GetItemString(int ARow, int ACol);
- int SetItemString(int ARow, int ACol, LPTSTR pText);
- LPCTSTR GetItemDisplayString(int ARow, int ACol);
- int SetItemDisplayString(int ARow, int ACol, LPTSTR pText);
+ LPCTSTR GetItemString(int ARow, int ACol);
+ int SetItemString(int ARow, int ACol, LPTSTR pText);
+ LPCTSTR GetItemDisplayString(int ARow, int ACol);
+ int SetItemDisplayString(int ARow, int ACol, LPTSTR pText);
- int SetBorder(int nBorder);
+ int SetBorder(int nBorder);
- int Copy();
- int Cut();
- int Paste();
+ int Copy();
+ int Cut();
+ int Paste();
- int GetColumnWidth(int nCol);
- bool SetColumnWidth(int nCol, int nWidth);
- int GetRowHeight(int nRow);
- bool SetRowHeight(int nRow, int nHeight);
-public:
- int SetRowSelectorWidth(int nWidth);
- int ResetRowSelector();
- int GetRowSelectorWidth();
- int GetRowSelectorDefaultWidth();
+ int GetColumnWidth(int nCol);
+ bool SetColumnWidth(int nCol, int nWidth);
+ int GetRowHeight(int nRow);
+ bool SetRowHeight(int nRow, int nHeight);
+ public:
+ int SetRowSelectorWidth(int nWidth);
+ int ResetRowSelector();
+ int GetRowSelectorWidth();
+ int GetRowSelectorDefaultWidth();
- int SetColHeaderHeight(int nHeight);
- int GetColHeaderDefaultHeight();
- int ResetColHeaderHeight();
- int GetColHeaderHeight();
-public:
- LPTSTR GetCellProps(int nRow, int nCol); //得到单元整体XML属性
- int SetCellProps(int nRow, int nCol, LPCTSTR pXmlProp); //得到单元整体XML属性
- LPTSTR GetCellProp(int nRow, int nCol, LPCTSTR pItem); //得到单元属性
- int SetCellProp(int nRow, int nCol, LPCTSTR pItem, LPCTSTR pProp);//得到单元属性
-public:
- LPTSTR GetHtml();
- LPTSTR GetData();
-public:
- void* GetSheetSvr();
-public:
- void SetSchmaSource(LPCTSTR pSchema);
- LPCTSTR GetSchemaSource();
- void SetSchmaString(LPCTSTR pSchemaStr);
- LPCTSTR GetSchemaString();
-public:
- int GetSpanRight(int ARow, int ACol);
- int GetSpanBottom(int ARow, int ACol);
- int GetSpanLeft(int ARow, int ACol);
- int GetSpanTop(int ARow, int ACol);
- bool IsSpanCell(int ARow, int ACol);
-public:
- int GetValidRow();
- int GetValidCol(int ARow);
- int GetValidRowCol(int& ARow, int& ACol);
- int GetValidCol();
-public:
- int LoadTemplate(KXMLDOMDocument pDoc, LPTSTR strState);
- int LoadTemplate(KXMLDOMElement pElement, LPTSTR strState);
-public:
- int SaveFileAs();
- int SaveFile();
- int SaveFile(wchar_t* fileName);
-public:
- int OpenFile(wchar_t* fileName);
- int OpenFile();
-public:
- wchar_t* m_pFileName;
-public:
- int SetReadOnly(bool bReadOnly);
- int SetRunState();
- int SetRunState(int runstate);
-public:
- void SetEditUpperMode(bool upper);
- bool GetEditUpperMode();
-public:
- LPCTSTR GetSortColumns();
- void SortData(LPCTSTR sortColumn, LPTSTR strType, bool bAsc);
-};
+ int SetColHeaderHeight(int nHeight);
+ int GetColHeaderDefaultHeight();
+ int ResetColHeaderHeight();
+ int GetColHeaderHeight();
+ public:
+ LPTSTR GetCellProps(int nRow, int nCol); //得到单元整体XML属性
+ int SetCellProps(int nRow, int nCol, LPCTSTR pXmlProp); //得到单元整体XML属性
+ LPTSTR GetCellProp(int nRow, int nCol, LPCTSTR pItem); //得到单元属性
+ int SetCellProp(int nRow, int nCol, LPCTSTR pItem, LPCTSTR pProp);//得到单元属性
+ public:
+ LPTSTR GetHtml();
+ LPTSTR GetData();
+ public:
+ void* GetSheetSvr();
+ public:
+ void SetSchmaSource(LPCTSTR pSchema);
+ LPCTSTR GetSchemaSource();
+ void SetSchmaString(LPCTSTR pSchemaStr);
+ LPCTSTR GetSchemaString();
+ public:
+ int GetSpanRight(int ARow, int ACol);
+ int GetSpanBottom(int ARow, int ACol);
+ int GetSpanLeft(int ARow, int ACol);
+ int GetSpanTop(int ARow, int ACol);
+ bool IsSpanCell(int ARow, int ACol);
+ public:
+ int GetValidRow();
+ int GetValidCol(int ARow);
+ int GetValidRowCol(int& ARow, int& ACol);
+ int GetValidCol();
+ public:
+ int LoadTemplate(KXMLDOMDocument pDoc, LPTSTR strState);
+ int LoadTemplate(KXMLDOMElement pElement, LPTSTR strState);
+ public:
+ int SaveFileAs();
+ int SaveFile();
+ int SaveFile(wchar_t* fileName);
+ public:
+ int OpenFile(wchar_t* fileName);
+ int OpenFile();
+ public:
+ wchar_t* m_pFileName;
+ public:
+ int SetReadOnly(bool bReadOnly);
+ int SetRunState();
+ int SetRunState(int runstate);
+ public:
+ void SetEditUpperMode(bool upper);
+ bool GetEditUpperMode();
+ public:
+ LPCTSTR GetSortColumns();
+ void SortData(LPCTSTR sortColumn, LPTSTR strType, bool bAsc);
+ public:
+ int GetFixedRows();
+ void SetFixedRows(int value);
+ public:
+ int GetFixedCols();
+ void SetFixedCols(int value);
+ };
}}}}
diff --git a/jrj/xframe/xcontrol/xcell.hpp b/jrj/xframe/xcontrol/xcell.hpp
index 39d95f4..92911c7 100644
--- a/jrj/xframe/xcontrol/xcell.hpp
+++ b/jrj/xframe/xcontrol/xcell.hpp
@@ -284,6 +284,22 @@
{ return GetKCell()->SetReadOnly(bReadOnly);
}
+ int GetFixedRows()
+ {
+ return GetKCell()->GetFixedRows();
+ }
+ void SetFixedRows(int value = 1)
+ {
+ return GetKCell()->SetFixedRows(value);
+ }
+ int GetFixedCols()
+ {
+ return GetKCell()->GetFixedCols();
+ }
+ void SetFixedCols(int value = 1)
+ {
+ return GetKCell()->SetFixedCols(value);
+ }
};
--
Gitblit v1.9.3