Exemplo n.º 1
0
        /// <summary>
        /// 可选显示共享航班
        /// </summary>
        /// <param name="lv"></param>
        /// <param name="b_display_no_seat">否显示无座舱位</param>
        /// <param name="pWays">显示方式:最低价,全部</param>
        /// <param name="b_share">是否显示共享航班</param>
        /// <param name="b_spec">是否显示特殊舱位</param>
        public void ToListView(ListView lv, bool b_display_no_seat, TO_LIST_WAYS pWays, bool b_share)
        {
            if (lv.InvokeRequired)
            {
                if (mi == null)
                {
                    mi = new MyInvoke(ToListView);
                    lv.Invoke(mi, new object[] { lv, b_display_no_seat, pWays, b_share });
                    //ToListView(lv, b_display_no_seat, pWays);
                    return;
                }
            }
            else
            {
                try
                {
                    if (lv == null)
                    {
                        throw new Exception("未创建LV_LOWEST吗");
                    }

                    for (int i = 0; i < si.Length; ++i)
                    {
                        if (!si[i].b_directly && pWays == TO_LIST_WAYS.LOWEST)
                        {
                            continue;                                                   //filter the not direct arrive flight, 全部显示时,是否有直飞由AV指令控制,不需要在这里控制
                        }
                        for (int j = 0; j < si[i].fi.Length; ++j)
                        {
                            if (si[i].fi[j].SharedFlight && (!b_share))
                            {
                                continue;                                         //jump over shared flight
                            }
                            if (m_shield_airline.IndexOf(si[i].fi[j].info_AirLine) >= 0)
                            {
                                continue;                                                         //jump over shield airline
                            }
                            ListViewItem lvi = new ListViewItem();
                            si[i].fi[j].Price = m_price;
                            si[i].fi[j].ToListViewItem(lvi, b_display_no_seat, pWays, m_base_id, m_display_seat_amount);
                            lv.Items.Add(lvi);
                        }
                    }
                    //{ "序号","航空公司","航班","起飞城市","抵达城市","起飞时间","抵达时间","机型"}
                    //switch (pWays)
                    //{//这是增加的第一行的
                    //    case TO_LIST_WAYS.ALL:
                    //        if (!string.IsNullOrEmpty(lv.Items[0].Text))
                    //        {
                    //            ListViewItem lvi = new ListViewItem();
                    //            lvi.Text = "";
                    //            lvi.SubItems.Add("");// lvi.SubItems.Add(m_airline + m_int_flighno.ToString());
                    //            lvi.SubItems.Add("");//lvi.SubItems.Add(m_policy_string);
                    //            lvi.SubItems.Add("");//lvi.SubItems.Add(m_citypair);
                    //            lvi.SubItems.Add("");//lvi.SubItems.Add(m_time_begin);
                    //            lvi.SubItems.Add("");//lvi.SubItems.Add(m_time_end);
                    //            lvi.SubItems.Add("");//lvi.SubItems.Add(m_plane_type);
                    //            lvi.SubItems.Add("");
                    //            int[] a_rebates = new int[] { 150, 130, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30 };
                    //            for (int i = 0; i < a_rebates.Length; ++i)
                    //            {
                    //                lvi.SubItems.Add(egString.TicketPrice(m_price, a_rebates[i]).ToString()+"元");
                    //            }
                    //            lv.Items.Insert(0, lvi);
                    //        }
                    //        break;
                    //}
                    for (int i = 0; i < lv.Items.Count; ++i)
                    {
                        ListViewItem lvi = lv.Items[i];
                        if (i % 2 == 1)
                        {
                            lvi.BackColor = Color.LightGray;
                        }
                    }
                }
                catch (Exception ex)
                {
                    EagleFileIO.LogWrite("AvResult.ToListView:" + ex.Message);
                }
                mi = null;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 将FI加入到一个LVI中,ID需要加上基数
        /// </summary>
        /// <param name="lvi"></param>
        /// <param name="b_display_no_seat_bunks">pWays=0时有效</param>
        /// <param name="pWays">0:加全部舱位到lvi,1:仅加最底价舱位到lvi</param>
        public void ToListViewItem(ListViewItem lvi, bool b_display_no_seat_bunks, TO_LIST_WAYS pWays, int baseNumber, bool display_seats)
        {
            if (lvi == null)
            {
                lvi = new ListViewItem();
            }
            lvi.SubItems.Clear();

            switch (pWays)
            {
            case TO_LIST_WAYS.ALL:    //"序号","航空公司","航班","起飞城市","抵达城市","起飞时间","抵达时间","机型"
                lvi.Text = Convert.ToString(baseNumber + m_id);
                lvi.SubItems.Add(EagleString.BaseFunc.AirLineCnName(m_airline));
                lvi.SubItems.Add(m_airline + m_int_flighno.ToString());
                //lvi.SubItems.Add(m_policy_string);
                //lvi.SubItems.Add(m_citypair);
                if (display_seats)
                {
                    lvi.SubItems.Add(EagleString.EagleFileIO.CityCnName(m_citypair.Substring(0, 3)));
                    lvi.SubItems.Add(EagleString.EagleFileIO.CityCnName(m_citypair.Substring(3)));
                }
                else
                {
                    lvi.SubItems.Add(m_citypair.Substring(0, 3));
                    lvi.SubItems.Add(m_citypair.Substring(3));
                }
                lvi.SubItems.Add(m_time_begin.Insert(2, ":"));
                lvi.SubItems.Add(m_time_end.Insert(2, ":"));
                lvi.SubItems.Add(m_plane_type);
                for (int i = 0; i < m_bunk.Count; ++i)
                {
                    string temp = "";
                    if (b_display_no_seat_bunks)
                    {
                        temp = (m_bunk[i]);
                    }
                    else
                    {
                        temp = (m_bunk[i][1] > 'A' ? "" : m_bunk[i]);
                    }
                    if (display_seats)
                    {
                        if (temp != "")
                        {
                            if (temp[1] == 'A')
                            {
                                temp = ">10";
                            }
                            else
                            {
                                temp = temp.Substring(1);
                            }
                        }
                    }
                    lvi.SubItems.Add(temp);
                }
                break;

            case TO_LIST_WAYS.LOWEST:    //add subItems : Lowest Bunk , Lowest Price
                lvi.Text = m_id.ToString();
                lvi.SubItems.Add(m_airline + m_int_flighno.ToString());
                //lvi.SubItems.Add(m_policy_string);
                //lvi.SubItems.Add(m_citypair);
                lvi.SubItems.Add(m_time_begin);
                lvi.SubItems.Add(m_time_end);
                //lvi.SubItems.Add(m_plane_type);
                for (int i = m_bunkseq.Length - 1; i >= 0; --i)
                {
                    char c = m_bunkseq[i];
                    if (c > 'Z' || c < 'A')
                    {
                        continue;
                    }
                    bool bFlag = false;
                    for (int j = 0; j < m_bunk.Count; ++j)
                    {
                        string d = m_bunk[j].Trim();
                        if (d == "" || d[0] != c || d[1] > 'A')
                        {
                            continue;
                        }
                        lvi.SubItems.Add(m_bunk[j]);
                        m_bunk_lowest = m_bunk[j][0];
                        lvi.SubItems.Add(egString.TicketPrice(m_price_y, a_rebates[i]).ToString());
                        lvi.SubItems.Add("0");    //profit
                        lvi.SubItems.Add(a_rebates[j].ToString());
                        bFlag = true;
                        break;
                    }
                    if (bFlag)
                    {
                        break;
                    }
                }
                break;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 始终不显示共享航班的调用
 /// </summary>
 public void ToListView(ListView lv, bool b_display_no_seat, TO_LIST_WAYS pWays)
 {
     ToListView(lv, b_display_no_seat, pWays, false);
 }