|  |  | 
 |  |  |    int SetRow(int row) { return getKReport()->SetRow_(row); } | 
 |  |  | public: | 
 |  |  |    int GetColumnCount() { return getKReport()->GetColumnCount_(); } | 
 |  |  |    LPCTSTR GetColumnName(int col) { return getKReport()->GetColumnName_(col); } | 
 |  |  |    xstring GetColumnName(int col) { return getKReport()->GetColumnName_(col); } | 
 |  |  |    int GetColumnIndex(LPCTSTR pColumn) { return getKReport()->GetColumnIndex_(pColumn); } | 
 |  |  | public: | 
 |  |  |    xstring GetItemString(int nRow, int nColumn, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  | 
 |  |  |    { | 
 |  |  |       return getKReport()->SaveAs_(pXmlArg); | 
 |  |  |    } | 
 |  |  |    int SaveAs(KXMLDOMDocument& xml, LPCTSTR pFileName = NULL) //另存为 | 
 |  |  |    int SaveAs(KXMLDOMDocument xml, LPCTSTR pFileName = NULL) //另存为 | 
 |  |  |    { | 
 |  |  |       return getKReport()->SaveAs_(xml,pFileName); | 
 |  |  |    } | 
 |  |  | 
 |  |  |    int SelectRow(int nRow, bool bSelect = true) { return getKReport()->SelectRow_(nRow, bSelect); } | 
 |  |  |    int SelectRow(int sRow, int eRow, bool bSelect = true) { return getKReport()->SelectRow_(sRow, eRow, bSelect); } | 
 |  |  |    int GetNextSelectRow(int nStartRow) { return getKReport()->GetNextSelectRow_(nStartRow); } | 
 |  |  |    int GetPrevSelectRow(int nStartRow) { return getKReport()->GetPrevSelectRow(nStartRow); } | 
 |  |  |    bool IsRowSelected(int nRow) { return getKReport()->IsRowSelected_(nRow); } | 
 |  |  |    //int SetSelectBkColor(COLORREF color){return getKReport()->SetSelectBkColor_(color);} | 
 |  |  |    int SetSelectionMode(int nMode) { return getKReport()->SetSelectionMode_(nMode); } //0 unselection 1 singleSelection 2 multiselection 3 multiselectionex  | 
 |  |  | 
 |  |  |    //int Retrieve(ITrans *pTrans,LPCTSTR pDataUrl, LPCTSTR pArgStr);//读取数据 | 
 |  |  |    int Retrieve(LPCTSTR pDataUrl, LPCTSTR pArgStr) { return getKReport()->Retrieve_(pDataUrl, pArgStr); }//读取数据 | 
 |  |  |  | 
 |  |  |    int Retrieve(KXMLDOMElement  pElement) { return getKReport()->Retrieve_(pElement); }//读取数据 | 
 |  |  |    int Retrieve(KXMLDOMDocument& xml) { return  getKReport()->Retrieve_(xml); }//读取数据 | 
 |  |  |    int Retrieve(KXMLDOMElement  pElement) { return pElement?getKReport()->Retrieve_(pElement):0; }//读取数据 | 
 |  |  |    int Retrieve(KXMLDOMDocument xml) { return  xml?getKReport()->Retrieve_(xml):0; }//读取数据 | 
 |  |  |  | 
 |  |  | public: | 
 |  |  |    int SetDataObject(LPCTSTR pServer, LPCTSTR pUrl) { return getKReport()->SetDataObject_(pServer, pUrl); }//设置模板对象 | 
 |  |  | 
 |  |  | public: | 
 |  |  |    int   Reset() { return getKReport()->Reset_(); } | 
 |  |  |    int   ResetUpdateStatus() { return getKReport()->ResetUpdateStatus_(); } | 
 |  |  | public: | 
 |  |  |    LPTSTR GetColumnProps(LPCTSTR pColName) { return getKReport()->GetColumnProps_(pColName); } //得到列整体XML属性 | 
 |  |  |    int SetColumnProps(LPCTSTR pColName, LPCTSTR pXmlProp) { return getKReport()->SetColumnProps_(pColName, pXmlProp); } //设置列整体XML属性 | 
 |  |  |    LPTSTR GetColumnProp(LPCTSTR pColName, LPCTSTR pItem) { return getKReport()->GetColumnProp_(pColName, pItem); } //得到列属性 | 
 |  |  |    int SetColumnProp(LPCTSTR pColName, LPCTSTR pItem, LPCTSTR pProp) { return getKReport()->SetColumnProp_(pColName, pItem, pProp); }//设置列属性 | 
 |  |  |  | 
 |  |  | public: | 
 |  |  |    int event_ItemFocusChanged(int nRow, int nCol) { return getKReport()->event_ItemFocusChanged_(nRow, nCol); } | 
 |  |  | 
 |  |  |       return getKReport()->AllowSort(sort); | 
 |  |  |    } | 
 |  |  | public: | 
 |  |  |    int FindByColumn(int startRow, int columnIndex, LPCTSTR columnValue) | 
 |  |  |    int FindByColumn(int startRow, int columnIndex, xstring columnValue) | 
 |  |  |    { | 
 |  |  |       return getKReport()->FindByColumn(startRow, columnIndex, columnValue); | 
 |  |  |       return getKReport()->FindByColumn(startRow, columnIndex, columnValue.c_str()); | 
 |  |  |    } | 
 |  |  |    int FindByColumn(int startRow, LPCTSTR column, LPCTSTR columnValue) | 
 |  |  |    int FindByColumn(int startRow, xstring column, xstring columnValue) | 
 |  |  |    { | 
 |  |  |       return getKReport()->FindByColumn(startRow,column,columnValue); | 
 |  |  |       return getKReport()->FindByColumn(startRow,column.c_str(), columnValue.c_str()); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int SetReadOnlyColumn(int columnIndex, bool flag = true) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetReadOnlyColumn(columnIndex, flag); | 
 |  |  |    } | 
 |  |  |    int SetReadOnlyColumn(LPCTSTR column, bool flag = true) | 
 |  |  |    int SetReadOnlyColumn(xstring column, bool flag = true) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetReadOnlyColumn(column, flag); | 
 |  |  |       return getKReport()->SetReadOnlyColumn(column.c_str(), flag); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int SetColumnWidth(int columnIndex, int width = 1) | 
 |  |  | 
 |  |  |    } | 
 |  |  |    int AcceptText() | 
 |  |  |    { | 
 |  |  |       return getKReport()->AcceptText(); | 
 |  |  |       return getKReport()->AcceptText_(); | 
 |  |  |    } | 
 |  |  |    int ShowRowTo(int row) | 
 |  |  |    { | 
 |  |  | 
 |  |  |       return getKReport()->GetTitleName(col); | 
 |  |  |    } | 
 |  |  | public: | 
 |  |  |    int SetRowSort(LPTSTR colName, bool colOrder = true) | 
 |  |  |    int SetRowSort(LPCTSTR colName, bool colOrder = true) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetRowSort(colName, colOrder); | 
 |  |  |       return getKReport()->SetRowSort((LPTSTR)colName, colOrder); | 
 |  |  |    } | 
 |  |  |    int SetClickEditFlag(bool f) | 
 |  |  |    { | 
 |  |  | 
 |  |  |    } | 
 |  |  |    int Redraw() | 
 |  |  |    { | 
 |  |  |       return getKReport()->RedrawEx(); | 
 |  |  |       return getKReport()->Redraw(); | 
 |  |  |    } | 
 |  |  |    bool SetRowMove(int row, int movecount) | 
 |  |  |    { | 
 |  |  | 
 |  |  |    { | 
 |  |  |       return getKReport()->RetrieveDiff(xml); | 
 |  |  |    } | 
 |  |  |    int Filter(LPTSTR pColumn, LPTSTR pStr) | 
 |  |  |    int Filter(LPCTSTR pColumn, LPCTSTR pStr) | 
 |  |  |    { | 
 |  |  |       return getKReport()->Filter(pColumn, pStr); | 
 |  |  |       return getKReport()->Filter((LPTSTR)pColumn, (LPTSTR)pStr); | 
 |  |  |    } | 
 |  |  | public: | 
 |  |  |    int SetHeaderText(int row, int col, LPTSTR name) | 
 |  |  | 
 |  |  |       return getKReport()->AddRepeats(colName); | 
 |  |  |    } | 
 |  |  | public: | 
 |  |  |    LPTSTR GetColumnProp(int nCol, LPCTSTR pItem) | 
 |  |  |    void ShowEditor() | 
 |  |  |    { | 
 |  |  |       return getKReport()->GetColumnProp(nCol, pItem); | 
 |  |  |       getKReport()->ShowEditor(); | 
 |  |  |    } | 
 |  |  | public: | 
 |  |  |    /* | 
 |  |  |    LPCTSTR GetColumnProp(int nCol, LPCTSTR pItem) | 
 |  |  |    { | 
 |  |  |       return L""; | 
 |  |  |       //return getKReport()->GetColumnProp(nCol, pItem); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    LPTSTR GetColumnProp(LPCTSTR pColName, LPCTSTR pItem) | 
 |  |  |    LPCTSTR GetColumnProp(LPCTSTR pColName, LPCTSTR pItem) | 
 |  |  |    { | 
 |  |  |       return getKReport()->GetColumnProp(pColName, pItem); | 
 |  |  |       return L""; | 
 |  |  |       //return getKReport()->GetColumnProp(pColName, pItem); | 
 |  |  |    } | 
 |  |  |    */ | 
 |  |  |  | 
 |  |  |    int GetItemInt(int row, int col) | 
 |  |  |    { | 
 |  |  | 
 |  |  |       return str.toInt(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int GetItemInt(int row, string col) | 
 |  |  |    int GetItemInt(int row, xstring col) | 
 |  |  |    { | 
 |  |  |       xstring str = GetItemString(row, col); | 
 |  |  |       xstring str = GetItemString(row, col.c_str()); | 
 |  |  |       return str.toInt(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemInt(int row, string col, int str) | 
 |  |  |    bool SetItemInt(int row, xstring col, int str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |       return SetItemString(row, col.c_str(), xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDouble(int row, int col, double str) | 
 |  |  | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDouble(int row, string col, double str) | 
 |  |  |    bool SetItemDouble(int row, xstring col, double str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int DataBI(LPCTSTR pSchema = NULL) //数据BI分析 | 
 |  |  |    { | 
 |  |  |       return getKReport()->DataBI_(pSchema); | 
 |  |  |    } | 
 |  |  |    LPTSTR DataAnalysis(LPCTSTR pSchema = NULL) | 
 |  |  |    { | 
 |  |  |       return getKReport()->DataAnalysis(pSchema); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    xstring GetItemString(int nRow, xstring ColumnName, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->GetItemString_(nRow, ColumnName.c_str(),dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemString(int nRow, int ColumnName, xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemString_(nRow, ColumnName, lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemString(int nRow, LPCTSTR ColumnName, xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemString_(nRow, ColumnName, lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemString(int nRow, xstring ColumnName,xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemString_(nRow, ColumnName.c_str(), lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |    bool SetItemString(int nRow, xstring ColumnName, LPCTSTR lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemString_(nRow, ColumnName.c_str(), lptStr, dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    xstring GetItemDisplayString(int nRow, xstring ColumnName, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->GetItemDisplayString(nRow, ColumnName.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDisplayString(int nRow, int ColumnName, xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemDisplayString(nRow, ColumnName, lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDisplayString(int nRow, LPCTSTR ColumnName, xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemDisplayString(nRow, ColumnName, lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDisplayString(int nRow, xstring ColumnName, xstring lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemDisplayString(nRow, ColumnName.c_str(), lptStr.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |    bool SetItemDisplayString(int nRow, xstring ColumnName, LPCTSTR lptStr, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->SetItemDisplayString(nRow, ColumnName.c_str(), lptStr, dwBuffer); | 
 |  |  |    } | 
 |  |  |    LPCTSTR GetItemTipString(int nRow, xstring ColumnName, kdwgrid::DWBuffer dwBuffer = kdwgrid::dbuf_normal) | 
 |  |  |    { | 
 |  |  |       return getKReport()->GetItemTipString(nRow, ColumnName.c_str(), dwBuffer); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | public: | 
 |  |  | 
 |  |  |       return L""; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int SetGuid(int row,xstring val) | 
 |  |  |    { | 
 |  |  |       KXMLDOMElement  e = GetRowElement(row); | 
 |  |  |       if (e) | 
 |  |  |       { | 
 |  |  |          e.setAttribute(L"guid",val.c_str()); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | public: | 
 |  |  | #if 0 | 
 |  |  |    int GetItemInt(int row, int col) | 
 |  |  |    { | 
 |  |  |       xstring str = GetItemString(row, col); | 
 |  |  |       return str.toInt(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    double GetItemDouble(int row, int col) | 
 |  |  |    { | 
 |  |  |       xstring str = GetItemString(row, col); | 
 |  |  |       return str.toDouble(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int GetItemInt(int row, string col) | 
 |  |  |    { | 
 |  |  |       xstring str = GetItemString(row, col); | 
 |  |  |       return str.toInt(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    double GetItemDouble(int row, string col) | 
 |  |  |    { | 
 |  |  |       xstring str = GetItemString(row, col); | 
 |  |  |       return str.toDouble(); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemInt(int row, int col, int str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDouble(int row, int col, double str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemInt(int row, string col, int str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    bool SetItemDouble(int row, string col, double str) | 
 |  |  |    { | 
 |  |  |       return SetItemString(row, col, xstring(str)); | 
 |  |  |    } | 
 |  |  | #endif | 
 |  |  |  | 
 |  |  |    int DwRetrieve(string ServerUrl, string src, string argstr) | 
 |  |  |    { | 
 |  |  | 
 |  |  |       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)); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  |  |