xj qian
2024-11-14 85b59ba5c6e2b2ad0cce127d414afef187eddb0b
update
已修改3个文件
403 ■■■■ 文件已修改
jrj/project/business/QuoteFile.cpp 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/kobject/kcell.hpp 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/xcontrol/xcell.hpp 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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);
    };
}}}}
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);
    }
};