Пример #1
0
        //更新数据功能
        public String update()
        {
            String ans = "OK";

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            DBTrans = conn.BeginTransaction();
            da.UpdateCommand.Transaction = DBTrans;
            try
            {
                da.Update(dt.GetChanges());
                dt.AcceptChanges();
                DBTrans.Commit();
                ans = "OK";
            }
            catch (Exception e)
            {
                DBTrans.Rollback();
                Console.WriteLine(e.ToString());
                AlertUtil.Show("DataUpdateError", e.ToString());
                ans = "FAILED";
            }
            finally
            {
                conn.Close();
            }
            return(ans);
        }
Пример #2
0
 //带参数的初始化
 public void controlInit(SpreadsheetControl spreadsheetMain, Dictionary <String, SimpleButton> buttons, Dictionary <String, Label> labels, String path, Dictionary <String, PopupMenu> menus, BarManager barmanager, XtraForm form, AlertControl alert, XSheetUser user)
 {
     this.buttons              = buttons;
     this.labels               = labels;
     this.spreadsheetMain      = spreadsheetMain;
     this.menus                = menus;
     this.rightClickBarManager = barmanager;
     AlertUtil.setAlert(alert, form);
     this.user  = user;
     this.form  = form;
     this.alert = alert;
     //CELLCHANGE
     executer = new CommandExecuter(user);
     executer.Attach(this);
     executeState = "OK";
     /*加载文档,后续根据不同设置配置,待修改TODO*/
     try
     {
         DateTime     date = new DateTime();
         StreamWriter sw   = new StreamWriter(@"ConsoleOutput.txt", true);
         date = DateTime.Now;
         sw.WriteLine("beforeLoadDoc:" + date.ToString());
         if (path.Length > 0)
         {
             spreadsheetMain.Document.LoadDocument(path);
         }
         sw.Flush();
         sw.Close();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.ToString());
         spreadsheetMain.Dispose();
     }
 }
Пример #3
0
        //如果执行存储过程(执行存储过程不修改本地数据对象,可用来执行任意SQL语句)
        public String Execute(List <String> sqls)
        {
            String ans = "OK";

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            DBTrans = conn.BeginTransaction();
            DbCommand cmd = DBUtil.getCommand(sqls[0], ServerName, conn);

            cmd.Transaction = DBTrans;
            try
            {
                foreach (String sql in sqls)
                {
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                }
                DBTrans.Commit();
            }
            catch (Exception e)
            {
                AlertUtil.Show("error", e.ToString());
                ans = "FAILED";
                DBTrans.Rollback();
            }
            finally
            {
                conn.Close();
            }
            return(ans);
        }
Пример #4
0
        //查询功能,通过查询SQL可判定该对象具有的功能权限
        public String search(String Sql)
        {
            avaliableList.Clear();//清空功能列表
            try
            {
                conn = DBUtil.getConnection(ServerName);
                conn.Open();
                DBTrans = conn.BeginTransaction();
                conn.Close();
                da = DBUtil.getDbDataAdapter(ServerName, Sql, "", conn);//根据查询语句,初始化适配器
                DataSet ds = new DataSet();
                da.Fill(ds);
                dt = ds.Tables[0];
                avaliableList.Add("R");//根据适配器设定可用功能列表
                if (da.UpdateCommand != null)
                {
                    avaliableList.Add("U");
                }
                if (da.InsertCommand != null)
                {
                    avaliableList.Add("C");
                }
                if (da.DeleteCommand != null)
                {
                    avaliableList.Add("D");
                }
            }
            catch (Exception e)
            {
                AlertUtil.Show("err", e.ToString());
            }

            return("OK");
        }
Пример #5
0
    public void LoginFailed(LoginGameResult result)
    {
        string tips = "";

        switch (result)
        {
        case LoginGameResult.NoneAccount:
            tips = StringUtil.Get("Login failed, account not found!");
            break;

        case LoginGameResult.WrongPassword:
            tips = StringUtil.Get("Login failed, wrong password!");
            break;

        case LoginGameResult.Unkonw:
            tips = StringUtil.Get("Login failed, server error!");
            break;

        default:
            LogUtil.W("Unknow LoginGameResult type {0}", result);
            break;
        }

        AlertUtil.ShowSimpleTipsPanel(tips);
    }
Пример #6
0
 //初始化接口
 public virtual void init(ActionCfg cfg, XApp app)
 {
     this.cfg        = cfg;
     this.ActionName = cfg.ActionName;
     try
     {
         this.actionSeq = int.Parse(cfg.ActSeq);
     }
     catch
     {
         AlertUtil.Show("error", String.Format("Action {0} Seq设置异常,设置值为{1}", ActionName, cfg.ActSeq));
     }
     try
     {
         if (cfg.SRange.Length > 0)
         {
             sRange = app.getRangeByName(cfg.SRange);
         }
         if (cfg.DRange.Length > 0)
         {
             dRange = app.getRangeByName(cfg.DRange);
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Action:" + ActionName + "的sRange、dRange配置错误!");
         return;
     }
 }
Пример #7
0
        //读取Data配置
        public static List <DataCfg> readData(Table dataCfgTable)
        {
            List <DataCfg> datas = new List <DataCfg>();

            for (int i = 1; i < dataCfgTable.Range.RowCount; i++)
            {
                if (dataCfgTable.Range[i, 0].DisplayText.Length == 0)
                {
                    break;
                }
                DataCfg data = new DataCfg();
                //DataName	ObjectName	ObjectType	DBName	ServerName	BaseSQLStatement	RangeName	CRUDP	SVK	InitStatement
                data.TableTitle       = dataCfgTable.Range[i, 0].DisplayText;
                data.TableDesc        = dataCfgTable.Range[i, 1].DisplayText;
                data.CRUDP            = dataCfgTable.Range[i, 2].DisplayText;
                data.SVK              = dataCfgTable.Range[i, 3].DisplayText;
                data.RangeName        = dataCfgTable.Range[i, 4].DisplayText;
                data.DBName           = dataCfgTable.Range[i, 5].DisplayText;
                data.ServerName       = dataCfgTable.Range[i, 6].DisplayText;
                data.DefalutStatement = dataCfgTable.Range[i, 7].GetReferenceA1();
                if ((data.ServerName == null || data.ServerName.Length < 2) && data.RangeName.Split('_')[0] == "TB")
                {
                    Console.WriteLine("区域:" + data.TableTitle + "服务器类型配置错误,当前配置为:" + data.ServerName);
                    return(null);
                }
                if (data.RangeName.Length == 0)
                {
                    AlertUtil.Show("error", String.Format("Data:{0} 未配置Range,此Data将不被系统使用!", data.TableTitle));
                    continue;
                }
                datas.Add(data);
            }
            return(datas);
        }
Пример #8
0
    void GetServerList()
    {
        var worldMgr = WorldManager.Instance;
        var uiMgr    = worldMgr.UIMgr;

        uiMgr.ShowPanel(PanelType.AsyncPanel);
        HttpUtil.GetAsync("http://127.0.0.1:8001/serverInfo", delegate(WebRequestResultType resultType, string serverInfoStr)
        {
            uiMgr.HidePanel(PanelType.AsyncPanel);

            if (resultType == WebRequestResultType.Success)
            {
                var serverInfoResult = JsonUtility.FromJson <GetServerInfoResult>(serverInfoStr);
                var serverData       = worldMgr.GameServer.GetData <Data.ServerData>();
                var result           = serverInfoResult.result;
                if (result == 0)
                {
                    serverData.serverInfoList.Clear();
                    serverData.serverInfoList.AddRange(serverInfoResult.serverInfoList);
                }
            }
            else
            {
                AlertUtil.ShowYesNoPanel(StringUtil.Get("Get server list failed, click ok retry!"), delegate()
                {
                    GetServerList();
                });
            }
        });
    }
Пример #9
0
        protected override string doOwnAction()
        {
            List <String> statements = getRealStatement();

            if (statements[0] == "")
            {
                try
                {
                    dRange.doInsert();

                    return("OK");
                }
                catch (Exception)
                {
                    return("FAILED");
                }
            }
            else
            {
                try
                {
                    dRange.ExecuteSql(statements);
                }
                catch (Exception e)
                {
                    AlertUtil.Show("error", e.ToString());
                }
            }
            dRange.Refresh();
            return("OK");
        }
Пример #10
0
        public override void fill(DataTable dt)
        {
            selectedRows = new Dictionary <int, int>();
            drawRows     = new Dictionary <int, int>();
            Range range = getRange();

            if (dt == null)
            {
                AlertUtil.Show("error", "查询结果为空,请确认查询语句");
                return;
            }
            Cell data1stcell = range[0, 0];

            string[,] arrtmp = new string[range.RowCount, dt.Columns.Count];
            range.Worksheet.Import(arrtmp, data1stcell.RowIndex, data1stcell.ColumnIndex);
            range.FillColor = Color.White;
            range.Worksheet.Import(dt, false, data1stcell.RowIndex, data1stcell.ColumnIndex);
            this.data.setData(dt);
            range.Borders.SetAllBorders(Color.Black, BorderLineStyle.None);

            /*for (int i = 0; i < range.RowCount; i++)
             * {
             *  setRowBorderNone(i);
             * }*/
            this.isFilled = true;
            doResize(dt.Rows.Count + 1);
            getRange().FillColor = Color.White;
        }
Пример #11
0
 //初始化RANGE
 private void initRange()
 {
     foreach (DataCfg cfg in cfgdata.datas)           //遍历RANGE配置
     {
         XRange range = XRangeFactory.getXRange(cfg); //工厂模式,根据配置生成实际FORM/RANGE/TABLE 对象
         try
         {
             range.init(cfg, book);         //range 初始化
             ranges.Add(range.Name, range); //将 range 放入集合,后续可根据range名获取range
             if (range.getRange() == null)  //如果对应的工作表中range区域 不存在,则报错,并将系统状态设置为Designer状态
             {
                 AlertUtil.Show("error", "Range对应命名区域不存在或配置异常,RangeId:" + cfg.RangeName + " 即将进入Designer模式");
                 statu = SysStatu.Designer;
             }
         }
         catch (Exception e)
         {
             Console.WriteLine(e.ToString());
             MessageBox.Show("Range对应命名区域不存在或配置异异常,RangeId:" + cfg.RangeName + "\n" + e.ToString());
             this.statu = SysStatu.RangeError;
             return;
         }
     }
     if (ranges.Count == 0)
     {
         this.statu = SysStatu.Designer;
         AlertUtil.Show("info", "未查询到有效DATA,进入设计模式!");
     }
 }
Пример #12
0
        private void OnDalshboardItemClick(object sender, EventArgs e)
        {
            DXMenuItem item = (DXMenuItem)sender;
            int        i    = int.Parse(item.Tag.ToString());

            AlertUtil.StartWait();
            XDashBoardForm dashboardFrom = new XDashBoardForm(cfgData.dashboards[i - 1]);

            dashboardFrom.Show();
            AlertUtil.StopWait();
        }
Пример #13
0
 //状态变化
 private void ChangeToStatu(SysStatu newstatu)
 {
     //labels["lbl_User"].Text = app.statu.ToString();
     if (currentXRange != null && newstatu != app.statu)
     {
         currentXRange.ResetSelected();
     }
     app.statu = newstatu;
     AlertUtil.Show("状态变更", "状态变更为" + newstatu);
     ChangeButtonsStatu();
 }
Пример #14
0
 public void OnResult(SHARE_MEDIA media)
 {
     if (media == SHARE_MEDIA.WeixinFavorite)
     {
         AlertUtil.ToastShort(context, "Êղسɹ¦");
     }
     else
     {
         AlertUtil.ToastShort(context, "·ÖÏí³É¹¦");
     }
 }
Пример #15
0
        public static UserObject GetNextAlert(string processorId, string alertQueueFileName)
        {
            Mutex mutex = new Mutex(false, _mobiusAlertQueue);

            mutex.WaitOne();             // get exclusive access
            int alertId;

            try
            {
                StreamReader sr      = new StreamReader(alertQueueFileName);
                string       content = sr.ReadToEnd();
                sr.Close();
                if (Lex.IsNullOrEmpty(content))                 // all done if nothing left in queue
                {
                    //AlertCount = 0;
                    return(null);
                }

                int i1 = content.IndexOf(",");
                if (i1 >= 0)
                {
                    alertId = Int32.Parse(content.Substring(0, i1));
                    content = content.Substring(i1 + 1);
                }
                else
                {
                    alertId = Int32.Parse(content);
                    content = "";
                }
                StreamWriter sw = new StreamWriter(alertQueueFileName);
                sw.Write(content);
                sw.Close();
                //_remainingingAlertCount--;
            }
            catch (Exception ex)
            {
                AlertUtil.LogAlertMessage("Error accessing alert queue: " + ex.Message + processorId);
                return(null);
            }

            finally { mutex.ReleaseMutex(); }

            UserObject uo = UserObjectDao.Read(alertId);             // read the alert

            if (uo == null)
            {
                AlertUtil.LogAlertMessage("Error reading alert " + alertId + processorId);
            }
            return(uo);
        }
Пример #16
0
 private void textBox1_TextChanged(object sender, EventArgs e)
 {
     try
     {
         Int32.TryParse(textBox1.Text, out value);
     }
     catch (Exception ex)
     {
         textBox1.Text = "";
         value         = 0;
         Console.WriteLine(ex.ToString());
         AlertUtil.AlertIntegerParseErr();
     }
 }
Пример #17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.layout1);
            toolbar       = FindViewById <Toolbar>(Resource.Id.toolbar);
            btn_tabStatus = toolbar.FindViewById <Button>(Resource.Id.btn_tabStatus);
            //btn_test =toolbar.FindViewById<Button>(Resource.Id.btn_test);



            btn_tabStatus.Click += (s, e) =>
            {
                AlertUtil.ToastShort(this, "123");
            };
        }
Пример #18
0
        public override void doResize(int rowcount)
        {
            if (rowcount == 1)
            {
                rowcount = 2;
            }
            if (!isFilled)
            {
                AlertUtil.Show("错误!", "Table" + Name + "需先查询才能Update");
                return;
            }
            Range range    = this.table.Range;
            Range newrange = RangeUtil.rangeResize(range, rowcount);

            changeDefinedRange(newrange);
        }
Пример #19
0
        public String executeCmd(XCommand cmd)
        {
            this.executeState = "Executing...";
            String ans = "OK";

            AlertUtil.StartWait();
            Notify();
            if (cmd != null)
            {
                CommandTask task = new CommandTask(cmd, user);
                ans = task.doTask();
            }
            this.executeState = "OK";
            Notify();
            AlertUtil.StopWait();
            return(ans);
        }
Пример #20
0
        //读取配置文件中的配置表格
        private Table getCfgTable(String tableName)
        {
            Table table = null;

            try
            {
                table = cfgtables[tableName];
                if (table.Range == null)
                {
                    AlertUtil.Show("error", "名称为" + tableName + "的EXCEL Table区域配置异常,请确认配置");
                    return(null);
                }
            }
            catch (Exception)
            {
                AlertUtil.Show("warning", "未找到名称为" + tableName + "的EXCEL Table区域,请确认配置");
            }
            return(table);
        }
Пример #21
0
        public String execute(XSheetUser user)
        {
            StartNotify();
            String ans = "OK";

            foreach (char item in cfg.CRUDP)
            {
                /*if (!user.getPrivilege(rsheet).Contains(item))
                 * {
                 *  ans = "No privilege!";
                 *  return ans;
                 * }*/
            }
            if (actions.Count <= 0)
            {
                AlertUtil.Show("error", String.Format("Command :{0} 中未找到对应的Action,Command无法执行", this.CommandName));
            }
            else
            {
                actions = actions.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
                int i = 0;
                while (i <= actions.Keys.Max())
                {
                    if (actions.Keys.Contains(i))
                    {
                        actions[i].dRange.getRange().Worksheet.Calculate();
                        ans = actions[i].doAction();
                        i   = actions[i].getNextIndex(ans, i);
                    }
                    else
                    {
                        i++;
                    }
                }
            }

            /*foreach (KeyValuePair<int, XAction> kv in actions)
             * {
             *  kv.Value.dRange.getRange().Worksheet.Calculate();
             * }*/
            FinishNotify();
            return(ans);
        }
Пример #22
0
 //文档加载事件,用于初始化
 public void spreadsheetMain_DocumentLoaded(object sender, EventArgs e)
 {
     AlertUtil.StartWait();
     init();
     setdashboardButton();
     AlertUtil.StopWait();
     if ((int)app.statu > 0)
     {
         String right = GetUserPrivilege();
         if (right == null || right == "")
         {
             MessageBox.Show("你没有访问该应用初始Sheet的权利");
             spreadsheetMain.Document.CreateNewDocument();
         }
         else
         {
             executer.executeCmd(currentSheet, SysEvent.Sheet_Init);
         }
     }
     spreadsheetMain.Document.Calculate();
 }
Пример #23
0
        //根据名称获取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);
        }
Пример #24
0
        /// <summary>
        /// Start new process to check queued alerts
        /// </summary>

        public void StartQueueProcessor(
            string args)
        {
            _numberOfCurrentProcessors++;
            string msg = "Starting queue processor " + NumberOfCurrentProcessors;

            AlertUtil.LogAlertMessage(msg);
            Progress.Show(msg);

            if (Lex.Contains(args, "singleProcessor"))             // use single queue processor within this process (for debug)
            {
                CheckQueuedAlerts(args);
            }

            else             // start separate process to check the queued alerts
            {
                try
                { CommandLine.StartForegroundSession("Check Queued Alerts " + args, null); }
                catch (Exception ex)
                { AlertUtil.LogAlertMessage("Couldn't start new queue processor:\r\n" + ex.Message); }
            }
        }
Пример #25
0
 //IShareBoardListener
 public void Onclick(SnsPlatform snsPlatform, SHARE_MEDIA media)
 {
     if (snsPlatform.MShowWord.Equals("ä¯ÀÀÆ÷´ò¿ª"))
     {
         try
         {
             Intent intent = new Intent(Intent.ActionView);
             intent.SetData(Android.Net.Uri.Parse(umWeb.ToUrl()));
             context.StartActivity(intent);
         }
         catch (System.Exception e)
         {
             AlertUtil.ToastShort(context, "ä¯ÀÀÆ÷´ò¿ªÊ§°Ü");
         }
     }
     else
     {
         new ShareAction(context).WithMedia(umWeb)
         .SetPlatform(media)
         .SetCallback(this)
         .Share();
     }
 }
Пример #26
0
        private Range getRowRangeByIndex(int rowNum)
        {
            int   rowindex = -1;
            Range rangetmp = getRange();

            for (int i = 0; i < rangetmp.RowCount; i++)
            {
                int tmp;
                try
                {
                    if (rangetmp[i, 0].Tag != null && int.TryParse(rangetmp[i, 0].Tag.ToString(), out tmp))
                    {
                        if (tmp == rowNum)
                        {
                            rowindex = i;
                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    AlertUtil.Show("error", e.ToString());
                }
            }
            if (rowindex >= 0)
            {
                int   factindex = getRange().TopRowIndex + rowindex;
                int   lcolindex = getRange().LeftColumnIndex;
                int   rcolindex = getRange().RightColumnIndex;
                Range range     = getRange().Worksheet.Range.FromLTRB(lcolindex, factindex, rcolindex, factindex);
                return(range);
            }
            else
            {
                return(null);
            }
        }
Пример #27
0
        public override void fill(DataTable dt)
        {
            Range range       = getRange();
            Cell  data1stcell = get1stDataCell(range);

            string[,] arrtmp = new string[range.RowCount, range.ColumnCount];
            try
            {
                range.Worksheet.Import(arrtmp, data1stcell.RowIndex, data1stcell.ColumnIndex);
                range.Worksheet.Import(dt, false, data1stcell.RowIndex, data1stcell.ColumnIndex);
                data.setData(dt);
                //range.Borders.SetAllBorders(Color.Black, BorderLineStyle.None);

                /*for (int i = 0; i < range.RowCount; i++)
                 * {
                 *  setRowBorderNone(i);
                 * }*/
                doResize(dt.Rows.Count);
            }
            catch (Exception e)
            {
                AlertUtil.Show("error", e.ToString());
            }
        }
Пример #28
0
 public override String ExecuteSql(List <String> Sqls)
 {
     AlertUtil.Show("XRangeRG Warning!", "Range区域不允许单独执行SQL");
     return("OK");
 }
Пример #29
0
 public override void onUpdateSelect()
 {
     AlertUtil.Show("XRangeRG Warning!", "Range区域不允许onUpdateSelect");
     return;
 }
Пример #30
0
/// <summary>
/// Method to run query in background and save the results for later retrieval
/// </summary>
/// <param name="q"></param>
/// <param name="emailSubject">Send email if defined</param>
/// <param name="templateName"></param>
/// <returns></returns>

        public static string RunBackgroundQuery(
            Query q,
            string emailSubject,
            string templateName)
        {
            ResultsFormat    rf;
            QueryManager     qm;
            DataTableManager dtm;
            string           msg = "", html = "", resultsFileName;
            string           viewCmd = "View Background Query Results";

            bool notifyUserByEmail = !Lex.IsNullOrEmpty(emailSubject);

            try                                       // execute the query & read in all results
            {
                QbUtil.AddQueryAndRender(q, false);   // add it to the query builder
                q.BrowseSavedResultsUponOpen = false; // be sure query is run rather than using existing results

                msg = QueryExec.RunQuery(q, OutputDest.WinForms);

                qm  = q.QueryManager as QueryManager;
                dtm = qm.DataTableManager;
                DialogResult dr = dtm.CompleteRetrieval();
            }
            catch (Exception ex)              // some exceptions are normal, e.g. no criteria, others may be bugs
            {
                msg = "RunQueryInBackground could not complete due to an unexpected exception: " + DebugLog.FormatExceptionMessage(ex);
                ServicesLog.Message(msg);
                if (notifyUserByEmail)
                {
                    Email.Send(null, SS.I.UserInfo.EmailAddress, emailSubject, msg);
                }

                return(msg);
            }

            if (dtm.KeyCount == 0)
            {
                msg = "Query " + Lex.Dq(q.UserObject.Name) + " returned no results.";
                if (notifyUserByEmail)
                {
                    Email.Send(null, SS.I.UserInfo.EmailAddress, emailSubject, msg);
                }
                return(msg);
            }

            try
            {
                resultsFileName = q.ResultsDataTableFileName;                 // see if name supplied in query
                if (Lex.IsNullOrEmpty(resultsFileName))
                {
                    resultsFileName = "Query_" + q.UserObject.Id + "_Results.bin";
                }
                resultsFileName = ServicesIniFile.Read("BackgroundExportDirectory") + @"\" + resultsFileName;
                dtm.WriteBinaryResultsFile(resultsFileName);                 // write the file
                UserObject cidListUo = SaveBackgroundQueryResultsReferenceObject(qm, "BkgrndQry", resultsFileName);

                if (!Lex.IsNullOrEmpty(templateName))
                {
                    html = ReadTemplateFile(templateName);
                }

                if (notifyUserByEmail)
                {
                    AlertUtil.MailResultsAvailableMessage(                     // send the mail
                        q,
                        dtm.KeyCount,
                        SS.I.UserInfo.EmailAddress,
                        emailSubject,
                        viewCmd,
                        cidListUo.Id,
                        null,
                        html);
                }

                else
                {
                    html = SubstituteBackgroundExportParameters(html, "", "", dtm.RowCount, dtm.KeyCount, false, "");
                    return(html);                    // return the html
                }
            }
            catch (Exception ex)
            {
                msg = "Error sending background query results: " + DebugLog.FormatExceptionMessage(ex);
                ServicesLog.Message(msg);
            }

            return(msg);
        }