Exemplo n.º 1
0
        /// <summary>
        /// 在窗口中操作的特殊类型
        /// </summary>
        /// <param name="type"></param>
        public void SetType(ETERM_COMMAND_TYPE type)
        {
            switch (type)
            {
            case ETERM_COMMAND_TYPE.RECEIPT_PRINT:
                this.m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.RECEIPT_CANCEL:
                this.m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.ETDZ_ONEKEY_RT:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.ETDZ_ONEKEY_PAT:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.ETDZ:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.PNR_ORDER_SUBMIT:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.QUEUE_CLEAR_AUTO:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.RRT_AIRCODE2PNR:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.TPR_IMPORT:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.TOL_INCOMING:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.SS_4PassengerAddForm:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.DETR_ExpiredTicketFind:
                m_cmdtype = type;
                break;

            case ETERM_COMMAND_TYPE.DETR_GetReceiptNoFinance:
                m_cmdtype = type;
                break;

            default:
                throw new Exception("不能通过SetType设置,需要调用HandleCommand");
            }
        }
Exemplo n.º 2
0
        void CheckXepnr()
        {
            ETERM_COMMAND_TYPE t = new ETERM_COMMAND_TYPE();

            for (int i = 0; i < ls.Count; ++i)
            {
                t = CommandType(ls[i]);
                if (t == ETERM_COMMAND_TYPE.RT)
                {
                    return;
                }
            }

            throw new Exception("\r\n请先RT操作");
        }
Exemplo n.º 3
0
        /// <summary>
        /// 将待发送的指令送到池中处理,得到具体要发送的文本
        /// </summary>
        public string HandleCommand(string cmd)
        {
            m_cmdtype = CommandType(cmd);
            switch (m_cmdtype)
            {
            case ETERM_COMMAND_TYPE.AV:
                if (EagleString.egString.right(cmd.ToLower().Trim(), 3) == "/eg")
                {
                    System.Windows.Forms.MessageBox.Show("AV指令不可以自动翻页");

                    return("");
                }
                break;

            case ETERM_COMMAND_TYPE.DETR:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.DETRF:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.TRFD:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.TRFU:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.TRFX:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.QT:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.TPR:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.TSL:
                ls.Clear();
                break;

            case ETERM_COMMAND_TYPE.ETDZ:
                if (ls[0].ToLower().IndexOf("rt") != 0)
                {
                    throw new Exception("未产生PNR,不能ETDZ");
                }
                break;
            }
            if (!RelationCommand(cmd))
            {
                return(cmd);
            }
            string s = cmd.ToLower();

            if (s == "i" || s == "ig")
            {
                m_cmdtype = ETERM_COMMAND_TYPE.NONE;
                ls.Clear();
                return("i");
            }
            if (ls.Count > 0)
            {
                string last = ls[ls.Count - 1];
                if (SameCommand(s))
                {
                    if (s.IndexOf("xe") == 0 || s.IndexOf("pn") == 0 || s.IndexOf("pb") == 0)
                    {
                        ls.Add(s);//不重复上一次指令才增加(XE,PN,PB除外)
                    }
                    else
                    {
                        ls.RemoveAt(ls.Count - 1);
                        ls.Add(s);//替换掉最后一个指令
                    }
                }
                else
                {
                    if (last.IndexOf("@") >= 0 || last.IndexOf("\\") >= 0)//若上一条为封口,则先清空
                    {
                        ls.Clear();
                    }
                    ls.Add(s);
                }
            }
            else
            {
                ls.Add(s);
            }
            CommandSendControl(s);
            return("i~" + string.Join("~", ls.ToArray()));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 在池中处理前,判断该指令的类型,以便与返回结果结合做相应处理
        /// </summary>
        private ETERM_COMMAND_TYPE CommandType(string cmd)
        {
            string             s   = cmd.ToLower().Trim();
            ETERM_COMMAND_TYPE ret = ETERM_COMMAND_TYPE.NONE;

            if (s.IndexOf("a") == 0)//AV指令可缩写为A
            {
                ret = ETERM_COMMAND_TYPE.AV;
            }
            else if (s.IndexOf("etdz") == 0)
            {
                ret = ETERM_COMMAND_TYPE.ETDZ;
            }
            else if (s.IndexOf("trfd") == 0)
            {
                ret = ETERM_COMMAND_TYPE.TRFD;
            }
            else if (s.IndexOf("trfx") == 0)
            {
                ret = ETERM_COMMAND_TYPE.TRFX;
            }
            else if (s.IndexOf("rt") == 0)
            {
                if (s.Length >= 7)
                {
                    ret = ETERM_COMMAND_TYPE.RT;
                    if (EagleString.egString.right(s, 3).ToLower() == "/eg" && s.Length >= 10)
                    {
                        string temp = s.Substring(0, s.Length - 3).Trim();
                        //m_rtpnr = egString.right(temp, 5);//modified by king 2010.12.07 升级6位PNR
                        m_rtpnr = s.Substring(temp.LastIndexOf("/") + 1);
                    }
                    else
                    {
                        //m_rtpnr = egString.right(s, 5);//modified by king 2010.12.07 升级6位PNR
                        m_rtpnr = s.Substring(s.LastIndexOf("/") + 1);
                    }
                }
            }
            else if (s.IndexOf("sfc") == 0)
            {
                ret = ETERM_COMMAND_TYPE.SFC;
            }
            else if (s.IndexOf("pat") == 0)
            {
                ret = ETERM_COMMAND_TYPE.PAT;
            }
            else if (IsEntireSsCommand(s))
            {
                ret = ETERM_COMMAND_TYPE.SS;
            }
            else if (s.IndexOf("xepnr") == 0)
            {
                ret = ETERM_COMMAND_TYPE.XEPNR;
            }
            else if (s.IndexOf("pn") == 0)
            {
                ret = ETERM_COMMAND_TYPE.PN;
            }
            else if (s.IndexOf("detr") == 0 && s.IndexOf(",f") > 0)
            {
                ret = ETERM_COMMAND_TYPE.DETRF;
            }
            else if (s.IndexOf("detr") == 0)
            {
                ret = ETERM_COMMAND_TYPE.DETR;
            }
            else if (s.IndexOf("tpr") == 0)
            {
                ret = ETERM_COMMAND_TYPE.TPR;
            }
            else if (s.IndexOf("tsl") == 0)
            {
                ret = ETERM_COMMAND_TYPE.TSL;
            }
            else if (s[0] >= '0' && s[0] <= '9')
            {
                ret = ETERM_COMMAND_TYPE.MODIFYING;
            }
            else if (s.IndexOf("fd") == 0)
            {
                ret = ETERM_COMMAND_TYPE.FD;
            }
            return(ret);
        }
Exemplo n.º 5
0
 /// <summary>
 /// 设置指令类型
 /// </summary>
 /// <param name="cmd"></param>
 /// <returns></returns>
 public void SetCommandType(string cmd)
 {
     m_cmdtype = CommandType(cmd);
 }