public String getPrivilege(XRSheet sheet) { if (logAsDesigner) { return("CRUDP"); } String execute = String.Format("EXEC XSHEET.[dbo].[sp_CheckRight] '{0}', '{1}', '{2}','{3}'", UserDomain, UserName, sheet.app.AppID, sheet.sheetName); DataTable dt = DBUtil.getDataTable("MAIN", execute, "", null, null); return(dt.Rows[0][0].ToString()); }
//根据当前选择点,判断选择区域 public void setSelectedNamed() { if (app == null) { app = new XApp(this.spreadsheetMain.Document, null); app.statu = SysStatu.SheetError; } AreasCollection areas = spreadsheetMain.Selection.Areas; /*if (currentXRange != null && RangeUtil.isInRange(areas, currentXRange.getRange()) < 0) * { * this.currentXRange = null; * }*/ this.currentXRange = null; rightClickBarManager.SetPopupContextMenu(spreadsheetMain, null); if (currentSheet != null && currentSheet.sheetName == "Config") { IList <Table> tables = spreadsheetMain.ActiveWorksheet.Tables.GetTables(spreadsheetMain.ActiveCell); if (tables.Count > 0 && tables[0].Name == "CFG_DATA") { if (RangeUtil.isInRange(areas, tables[0].DataRange) >= 0) { rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["CfgData"]); } } } else if ((int)app.statu > 0) { XRSheet opSheet = app.getRSheetByName(spreadsheetMain.ActiveWorksheet.Name); //遍历当前Sheet全部命名区域,依次判断是否在区域范围内 if (opSheet != null) { foreach (var dicname in opSheet.ranges) { XRange xname = dicname.Value; int i = xname.isInRange(areas); if (i >= 0) { this.currentXRange = xname; rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["Normal"]); //当选择点为命名区域时,将当前坐标写入单元格 //this.currentXRange.onMouseDown(); break;//如果判断到第一个区域,将该区域存储为currentXRange,退出循环判断 } } } else { currentXRange = null; } } }
//将SHEET于RANGE 绑定 private void LoadRangeToSheet() { if (statu > 0) { foreach (XRange xrange in ranges.Values) { String sheetname = xrange.getRange().Worksheet.Name; XRSheet xrsheet = getRSheetByName(sheetname); xrsheet.ranges.Add(xrange.Name, xrange); xrange.rsheet = xrsheet; } } }
public void executeCmd(XRSheet rsheet, SysEvent e) { //TODO Sheet_Init 与Sheet_Change区分 if (e == SysEvent.Sheet_Init || e == SysEvent.Sheet_Change) { if (rsheet.getInitFlag() == false) { rsheet.setInited(); } foreach (XRange range in rsheet.ranges.Values) { executeCmd(range, e); } } }
private void setSheet() { XRSheet rsheet = null; foreach (XAction action in actions.Values) { if (rsheet == null) { rsheet = action.sRange.rsheet; } else if (rsheet != action.sRange.rsheet) { MessageBox.Show(String.Format("Command {0} 中 Action {1} 与之前Action sRange不一致,请确认配置!", CommandName, action.ActionName)); return; } } this.rsheet = rsheet; }
//根据名称获取SHEET public XRSheet getRSheetByName(String name) { XRSheet rsheet = null; try { rsheet = rsheets[name]; } catch (Exception) { rsheet = new XRSheet(book.Worksheets.ActiveWorksheet); AlertUtil.Show("error", "Sheet:" + name + "未注册!请检查配置!"); statu = SysStatu.Designer; if (rsheet.sheetName != name) { return(null); } rsheets.Add(rsheet.sheet.Name, rsheet); } return(rsheet); }
//Sheet的初始化 private void initSheet() { this.rsheets = new Dictionary <string, XRSheet>(); foreach (SheetCfg sheetdata in cfgdata.sheets) { Worksheet sheet = getSheetByName(sheetdata.SheetName); //xsheet.initTables(); if (sheet == null) {//如果对应sheet为空,则进入设计模式 statu = SysStatu.Designer; return; } XRSheet xsheet = new XRSheet(sheet); xsheet.hideflag = sheetdata.NeedHide; xsheet.app = this; xsheet.setVisable(""); rsheets.Add(xsheet.sheetName, xsheet); } LoadRangeToSheet(); }