青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 124,  comments - 29,  trackbacks - 0

TCP/UDP協議基礎

(轉載)

 

  理解數據包,對于網絡管理的網絡安全具有至關重要的意義。比如,防火墻的作用本質就是檢測網絡中的數據包,判斷其是否違反了預先設置的規則,如果違反就加以阻止。圖1就是瑞星個人版防火墻軟件設置規則的界面。細心的讀者會發現,圖1中的“協議”欄中有“TCP”、“UDP”等名詞,它們是什么意思呢?現在我們就來講講什么是TCP和UDP。

  面向連接的TCP

  “面向連接”就是在正式通信前必須要與對方建立起連接。比如你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。

  TCP(Transmission Control Protocol,傳輸控制協議)是基于連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什么時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之后,主機A才向主機B正式發送數據。

  TCP協議能為應用程序提供可靠的通信連接,使一臺計算機發出的字節流無差錯地發往網絡上的其他計算機,對可靠性要求高的數據通信系統往往使用TCP協議傳輸數據。


圖2

  我們來做一個實驗,用計算機A(安裝Windows 2000 Server操作系統)從“網上鄰居”上的一臺計算機B拷貝大小為8,644,608字節的文件,通過狀態欄右下角網卡的發送和接收指標就會發現:雖然是數據流是由計算機B流向計算機A,但是計算機A仍發送了3,456個數據包,如圖2所示。這些數據包是怎樣產生的呢?因為文件傳輸時使用了TCP/IP協議,更確切地說是使用了面向連接的TCP協議,計算機A接收數據包的時候,要向計算機B回發數據包,所以也產生了一些通信量。


圖3

  如果事先用網絡監視器監視網絡流量,就會發現由此產生的數據流量是9,478,819字節,比文件大小多出10.96%(如圖3所示),原因不僅在于數據包和幀本身占用了一些空間,而且也在于TCP協議面向連接的特性導致了一些額外的通信量的產生。

  面向非連接的UDP協議

  “面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態就直接發送。這與現在風行的手機短信非常相似:你在發短信的時候,只需要輸入對方手機號就OK了。

  UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!


圖4

  UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那么網絡就是通的。例如,在默認狀態下,一次“ping”操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到后會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。

  附表:tcp協議和udp協議的差別

  TCP協議和UDP協議各有所長、各有所短,適用于不同要求的通信環境。TCP協議和UDP協議之間的差別如附表所示。

posted @ 2010-06-04 14:05 天書 閱讀(2294) | 評論 (0)編輯 收藏

TCP/UDP協議基礎

(轉載)

 

  理解數據包,對于網絡管理的網絡安全具有至關重要的意義。比如,防火墻的作用本質就是檢測網絡中的數據包,判斷其是否違反了預先設置的規則,如果違反就加以阻止。圖1就是瑞星個人版防火墻軟件設置規則的界面。細心的讀者會發現,圖1中的“協議”欄中有“TCP”、“UDP”等名詞,它們是什么意思呢?現在我們就來講講什么是TCP和UDP。

  面向連接的TCP

  “面向連接”就是在正式通信前必須要與對方建立起連接。比如你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。

  TCP(Transmission Control Protocol,傳輸控制協議)是基于連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什么時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之后,主機A才向主機B正式發送數據。

  TCP協議能為應用程序提供可靠的通信連接,使一臺計算機發出的字節流無差錯地發往網絡上的其他計算機,對可靠性要求高的數據通信系統往往使用TCP協議傳輸數據。


圖2

  我們來做一個實驗,用計算機A(安裝Windows 2000 Server操作系統)從“網上鄰居”上的一臺計算機B拷貝大小為8,644,608字節的文件,通過狀態欄右下角網卡的發送和接收指標就會發現:雖然是數據流是由計算機B流向計算機A,但是計算機A仍發送了3,456個數據包,如圖2所示。這些數據包是怎樣產生的呢?因為文件傳輸時使用了TCP/IP協議,更確切地說是使用了面向連接的TCP協議,計算機A接收數據包的時候,要向計算機B回發數據包,所以也產生了一些通信量。


圖3

  如果事先用網絡監視器監視網絡流量,就會發現由此產生的數據流量是9,478,819字節,比文件大小多出10.96%(如圖3所示),原因不僅在于數據包和幀本身占用了一些空間,而且也在于TCP協議面向連接的特性導致了一些額外的通信量的產生。

  面向非連接的UDP協議

  “面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態就直接發送。這與現在風行的手機短信非常相似:你在發短信的時候,只需要輸入對方手機號就OK了。

  UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!


圖4

  UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那么網絡就是通的。例如,在默認狀態下,一次“ping”操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到后會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。

  附表:tcp協議和udp協議的差別

  TCP協議和UDP協議各有所長、各有所短,適用于不同要求的通信環境。TCP協議和UDP協議之間的差別如附表所示。

posted @ 2010-06-04 14:05 天書 閱讀(320) | 評論 (0)編輯 收藏

 //設置textbox每行最多顯示固定個字符
        public static void SetTextBoxColumn(TextBox textBox1, int charCount)
        {
            try
            {
                for (int i = 0; i < textBox1.Lines.Length; i++)
                {
                    if (textBox1.Lines[i].Length > charCount)
                    {
                        int firstCharIndex = textBox1.GetFirstCharIndexFromLine(i);
                        string str = textBox1.Lines[i];
                        textBox1.Text = textBox1.Text.Insert(firstCharIndex + charCount, "\r\n");

                    }
                }
            }
            catch { }
        }

posted @ 2010-05-17 16:05 天書 閱讀(1034) | 評論 (0)編輯 收藏
private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
           
            if (e.KeyCode == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                
            }
        }
posted @ 2010-05-07 19:19 天書 閱讀(1372) | 評論 (0)編輯 收藏

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraCharts;

namespace ChartControl
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Dictionary<string, double> chartPieDataDic = new Dictionary<string, double>();
        private Dictionary<string, double> chartBarDataDic = new Dictionary<string, double>();
        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;
            InitPieChartData();
            InitBarChartData();
            showPie();
           
        }
        private void showPie()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "全省話務分析餅圖-話務類型分布";

            chartControl1.Titles.Clear();
            chartControl1.Titles.Add(title);

            Series series1 = new Series("話務類型", ViewType.Pie);
            ((PiePointOptions)series1.PointOptions).PointView = PointView.ArgumentAndValues;

            foreach (KeyValuePair<string, double> keyvalue in chartPieDataDic)
            {
                series1.Points.Add(new SeriesPoint(keyvalue.Key, new double[] { keyvalue.Value }));
            }

            chartControl1.Series.Clear();
            chartControl1.Series.Add(series1);
        }

        private void InitPieChartData()
        {
            try
            {
                chartPieDataDic.Add("大連", 0.2);
                chartPieDataDic.Add("沈陽", 0.26);
                chartPieDataDic.Add("錦州", 0.15);
                chartPieDataDic.Add("盤錦", 0.15);
                chartPieDataDic.Add("本溪", 0.1);
                chartPieDataDic.Add("撫順", 0.12);
                chartPieDataDic.Add("營口", 0.02);
            }
            catch { }
        }
        private void InitBarChartData()
        {
            try
            {
                chartBarDataDic.Add("2001", 0.05);
                chartBarDataDic.Add("2002", 0.02);
                chartBarDataDic.Add("2003", 0.08);
                chartBarDataDic.Add("2004", 0.15);
                chartBarDataDic.Add("2005", 0.1);
                chartBarDataDic.Add("2006", 0.3);
                chartBarDataDic.Add("2007", 0.2);
                chartBarDataDic.Add("2008", 0.1);
            }
            catch { }
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.Text.IndexOf("餅圖") != -1)
            {
                showPie();
            }
            else if (comboBox1.Text.IndexOf("柱圖") != -1)
            {
                showBar();
            }
            else if (comboBox1.Text.IndexOf("線圖") != -1)
            {
                showLine();
            }
            else if (comboBox1.Text.IndexOf("點圖") != -1)
            {
                showPoint();
            }
        }

        private void showBar()
        {
            try
            {
                ChartTitle title = new ChartTitle();
                title.Text = "市網元容量增長率統計分析柱圖";

                chartControl1.Titles.Clear();
                chartControl1.Titles.Add(title);

                Series series2 = new Series("大連", ViewType.Bar);
                Series series3 = new Series("沈陽", ViewType.Bar);
                Series series4 = new Series("本溪", ViewType.Bar);
                foreach (KeyValuePair<string, double> kvp in chartBarDataDic)
                {
                    series2.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value}));
                    series3.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value + 0.08}));
                    series4.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value + 0.02}));
                }


                chartControl1.Series.Clear();
                chartControl1.Series.Add(series2);
                chartControl1.Series.Add(series3);
                chartControl1.Series.Add(series4);

                chartControl1.Legend.Visible = true; // 顯示標簽(旁邊的標注哪個顏色代表哪個城市)
            }
            catch { }
        }

        private void showLine()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "線圖";
            chartControl1.Titles.Clear();
            chartControl1.Titles.Add(title);

            Series series1 = new Series("遼寧", ViewType.Line);
            series1.ArgumentScaleType = ScaleType.Numerical;

            series1.Points.Add(new SeriesPoint(1, new double[] { 10 }));
            series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));
            series1.Points.Add(new SeriesPoint(3, new double[] { 14 }));
            series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));
            series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(6, new double[] { 26 }));
            series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));
            series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));

            ((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;


            Series series2 = new Series("山東", ViewType.Line);
            series2.ArgumentScaleType = ScaleType.Numerical; //這句話必須有,否則點畫不出來.
            ((LineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.DashDotDot;
            series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));
            series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));
            series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));
            series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));
            series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));
            series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));
            series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));
            series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));

            ((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;

            chartControl1.Series.Clear();
            chartControl1.Series.Add(series1);
            chartControl1.Series.Add(series2);
            chartControl1.Legend.Visible = true;
        }
        private void showPoint()
        {
            ChartTitle title = new ChartTitle();
            title.Text = "點圖";
            chartControl1.Titles.Clear();
            chartControl1.Titles.Add(title);

            Series series1 = new Series("上線人數", ViewType.Point);
            series1.ArgumentScaleType = ScaleType.Numerical;

            series1.Points.Add(new SeriesPoint(1, new double[] { 20 }));
            series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));
            series1.Points.Add(new SeriesPoint(3, new double[] { 11 }));
            series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));
            series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(6, new double[] { 21 }));
            series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));
            series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));

            ((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;


            Series series2 = new Series("下線人數", ViewType.Point);
            series2.ArgumentScaleType = ScaleType.Numerical; //這句話必須有,否則點畫不出來.

            series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));
            series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));
            series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));
            series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));
            series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));
            series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));
            series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));
            series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));

            ((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;

            chartControl1.Series.Clear();
            chartControl1.Series.Add(series1);
            chartControl1.Series.Add(series2);
            chartControl1.Legend.Visible = true;
        }
    }
}

posted @ 2010-05-07 16:09 天書 閱讀(9971) | 評論 (0)編輯 收藏
<?xml version="1.0" encoding="GB2312"?>
<Head>
<Column DisTitle="報表名" DisWidth="150">
  
<Field>tableCName</Field> 
  
<Type>string</Type>
  
<Visible>true</Visible>
</Column>
<Column DisTitle="表英文名" DisWidth="0">
  
<Field>tableEName</Field> 
  
<Type>string</Type> 
  
<Visible>false</Visible>
</Column>
<Column DisTitle="數據開始時間" DisWidth="150">
    
<Field>databtime</Field> 
    
<Type>string</Type> 
    
<Visible>true</Visible> 
</Column>
<Column DisTitle="數據結束時間" DisWidth="150">
    
<Field>dataetime</Field> 
    
<Type>string</Type> 
    
<Visible>true</Visible> 
</Column>
<Column DisTitle="匯總是否成功" DisWidth="300">
  
<Field>collectSuccess</Field> 
  
<Type>string</Type> 
  
<Visible>true</Visible>
</Column>
<Column DisTitle="是否存在風險" DisWidth="100">
  
<Field>containDanger</Field> 
  
<Type>string</Type> 
  
<Visible>true</Visible>
</Column>
<Column DisTitle="表描述" DisWidth="300">
  
<Field>discription</Field> 
  
<Type>string</Type> 
  
<Visible>true</Visible>
</Column>
</Head>
    public static List<MyColumn> GetColumnInfo(string fileName, string Node)
        {
            
try
            {
                
string xmlFile = String.Format("{0}\\{1}", System.Windows.Forms.Application.StartupPath, fileName);

                XmlDocument xmldoc 
= new XmlDocument();
                xmldoc.Load(xmlFile);
                
if (xmldoc != null)
                {
                    XmlNode colnode 
= xmldoc.SelectSingleNode(Node);
                    
if (colnode != null)
                    {
                        List
<MyColumn> cols = new List<MyColumn>();
                        
foreach (XmlNode headnode in colnode.ChildNodes)
                        {
                            MyColumn col 
= new MyColumn();
                            col.Caption 
= headnode.Attributes["DisTitle"].Value;
                            col.Width 
= Convert.ToInt32(headnode.Attributes["DisWidth"].Value);
                            col.FieldName 
= headnode.SelectSingleNode("Field").InnerText;
                            col.Visible 
= Convert.ToBoolean(headnode.SelectSingleNode("Visible").InnerText);


                            
string type = headnode.SelectSingleNode("Type").InnerText;

                            
if (String.Compare(type, "int"true== 0 || String.Compare(type, "long"true== 0 || String.Compare(type, "short"true== 0)
                            {
                                col.colType 
= Type.GetType("System.Int64");
                            }
                            
else if (String.Compare(type, "double"true== 0)
                            {
                                col.colType 
= Type.GetType("System.Double");
                            }
                            
else
                            {
                                col.colType 
= Type.GetType("System.String");
                            }
                            cols.Add(col);
                        }

                        
return cols;
                    }
                }
                
return null;
            }
            
catch(Exception ex)
            {
                MessageBox.Show(ex.Message 
+ ex.StackTrace);
                
return null;
            }
        }
posted @ 2010-04-23 12:00 天書 閱讀(473) | 評論 (0)編輯 收藏
行款不要設置成自動
列寬要設置成自動
posted @ 2010-04-23 11:57 天書 閱讀(3005) | 評論 (1)編輯 收藏
原因在于接口函數中沒有用到該類型(也就是說在所有的接口函數中都沒有用到這個類型)
posted @ 2010-04-22 15:22 天書 閱讀(286) | 評論 (0)編輯 收藏
1: 加GridLevelNode時注意加的位置!!!   不能一味的往頂層節點上加!
 2:一定要把新建的 view放到 viewCollection里面. this.gridControlUserTable.ViewCollection.Add(newGridView)
3:新建的關系名一定要和新建的level保持一致!!!!
4:注意GridView的更新(父GridView的更新)
  private void gridControlUserTable_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                //gridView  datatable  GridLevelNode都用同一個名字
                //ViewCaption中放類別, 1, 用戶相關表.  0, 用戶無關表
                GridView curView = (DevExpress.XtraGrid.Views.Grid.GridView)gridControlUserTable.FocusedView; //當前的GridView
                curView.MasterRowExpanding += new MasterRowCanExpandEventHandler(curView_MasterRowExpanding);
                curView.MasterRowExpanded += new CustomMasterRowEventHandler(curView_MasterRowExpanded);


                string viewName = curView.Name;
                string id = "view" + icount.ToString();
                int ihandle = curView.FocusedRowHandle; //當前的行號
                DataRow dr = curView.GetDataRow(ihandle); //當前的行


                GridView newGridView = null;
                DataTable newDataTable = null;
                DevExpress.XtraGrid.GridLevelNode gridLevel = null;
                icount++;
                #region 頂層的gridView
                if (curView.Name == "gridViewParent")//頂層的gridView
                {
                    string tableEName = dr["tableEName"].ToString();
                    string supplierRelated = dr["supplierRelated"].ToString();

                    #region 頂層
                    newGridView = new GridView();
                    newGridView.Name = id;
                    newGridView.OptionsView.ShowGroupPanel = false;
                    newGridView.OptionsBehavior.Editable = false;
                    newGridView.OptionsDetail.ShowDetailTabs = false;
                    newGridView.OptionsCustomization.AllowColumnMoving = false;
                    newGridView.OptionsBehavior.AutoExpandAllGroups = true;
                    this.gridControlUserTable.ViewCollection.Add(newGridView);

                    RelatedTableRecord[] relatedTableInfoArray = null;
                    UnrelatedTableRecord[] unRelatedTableInfoArray = null;
                    if (supplierRelated == "1")//廠商相關
                    {

                        relatedTableInfoArray = PublicFunction.GetRelatedTableInfos(tableEName, btime, etime);
                        if (relatedTableInfoArray == null || relatedTableInfoArray.Length == 0)
                        {
                            return;
                        }
                        CollectCommon.SetGridViewColumn(newGridView, "Config\\CollectMonitor\\supplierRelatedColumn.xml", "/Head");
                        newGridView.ViewCaption = "1";
                    }
                    else if (supplierRelated == "0")//廠商無關
                    {

                        unRelatedTableInfoArray = PublicFunction.GetUnRelatedTableInfos(tableEName, "", btime, etime);
                        if (unRelatedTableInfoArray == null || unRelatedTableInfoArray.Length == 0)
                        {
                            return;
                        }
                        CollectCommon.SetGridViewColumn(newGridView, "Config\\CollectMonitor\\supplierUnRelatedColumn.xml", "/Head");
                        newGridView.ViewCaption = "0";
                    }

                    newDataTable = new DataTable(id);
                    CollectCommon.SetDataTableColumn(newGridView, newDataTable);
                    if (supplierRelated == "1")//廠商相關
                    {
                        CollectCommon.FillTableData(newDataTable, relatedTableInfoArray);
                    }
                    else//廠商無關
                    {
                        CollectCommon.FillTableData(newDataTable, unRelatedTableInfoArray);
                    }
                    ds.Tables.Add(newDataTable);

                    gridLevel = new DevExpress.XtraGrid.GridLevelNode();
                    gridLevel.LevelTemplate = newGridView;
                    gridLevel.RelationName = id;

                    gridControlUserTable.LevelTree.Nodes.Add(gridLevel);

                    DataRelation dataRelation = new DataRelation(id, ds.Tables["parent"].Columns["tableEName"], ds.Tables[id].Columns["tableEName"], false);
                    ds.Relations.Add(dataRelation);

                    newGridView.RefreshData();
                    gridViewParent.RefreshData();

                    #endregion
                }
                #endregion
                #region 非頂層表
                else//非頂層表
                {
                    if (curView.ViewCaption == "1")//廠商相關表,再鉆取最后一層,廠商無關的信息表,就鉆取到頭了.
                    {
                        #region
                        string tableEName = dr["tableEName"].ToString();
                        string supplier = dr["supplier"].ToString();
                        UnrelatedTableRecord[] unRelatedTableInfoArray = null;
                        unRelatedTableInfoArray = PublicFunction.GetUnRelatedTableInfos(tableEName, supplier, btime, etime);
                        if (unRelatedTableInfoArray == null || unRelatedTableInfoArray.Length == 0)
                        {
                            return;
                        }
                        newGridView = new GridView();
                        newGridView.Name = id;
                        newGridView.OptionsView.ShowGroupPanel = false;
                        newGridView.OptionsBehavior.Editable = false;
                        newGridView.OptionsDetail.ShowDetailTabs = false;
                        newGridView.OptionsCustomization.AllowColumnMoving = false;
                        newGridView.OptionsBehavior.AutoExpandAllGroups = true;
                        newGridView.ViewCaption = "0";
                        this.gridControlUserTable.ViewCollection.Add(newGridView);

                        CollectCommon.SetGridViewColumn(newGridView, "Config\\CollectMonitor\\supplierUnRelatedColumn.xml", "/Head");

                        newDataTable = new DataTable(id);
                        CollectCommon.SetDataTableColumn(newGridView, newDataTable);
                        CollectCommon.FillTableData(newDataTable, unRelatedTableInfoArray);

                        ds.Tables.Add(newDataTable);

                        gridLevel = new DevExpress.XtraGrid.GridLevelNode();
                        gridLevel.LevelTemplate = newGridView;
                        gridLevel.RelationName = id;

                        string parentTableName = curView.Name;
                        string parentLevelName = curView.Name;

                        //AddGridLevelNode(gridControlUserTable, parentLevelName, gridLevel);
                        
                        gridControlUserTable.LevelTree.Nodes[0].Nodes.Add(gridLevel);

                        DataColumn[] parentColumns = new DataColumn[2];
                        DataColumn[] childColumns = new DataColumn[2];
                        parentColumns[0] = ds.Tables[parentTableName].Columns["tableEName"];
                        parentColumns[1] = ds.Tables[parentTableName].Columns["supplier"];


                        childColumns[0] = ds.Tables[id].Columns["tableEName"];
                        childColumns[1] = ds.Tables[id].Columns["supplier"];

                        DataRelation dataRelation = new DataRelation(id, parentColumns, childColumns, false);
                        //DataRelation dataRelation = new DataRelation(id, parentColumns[0], childColumns[0], false);
                        ds.Relations.Add(dataRelation);
                        curView.RefreshData();
                        
                        #endregion
                    }
                    else if (curView.ViewCaption == "0")//廠商無關表
                    {

                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
posted @ 2010-04-17 18:04 天書 閱讀(4388) | 評論 (0)編輯 收藏
原因:
IE瀏覽器設代理了,把代理去掉就能調起來了。

posted @ 2010-03-15 13:49 天書 閱讀(299) | 評論 (0)編輯 收藏
僅列出標題
共13頁: 1 2 3 4 5 6 7 8 9 Last 

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

好友的Bolg

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一级在线观看| 欧美天堂亚洲电影院在线观看| 夜夜精品视频| 欧美日韩在线视频一区二区| 亚洲毛片视频| 91久久精品久久国产性色也91 | 美女999久久久精品视频| 亚洲四色影视在线观看| 国产精品稀缺呦系列在线| 亚洲欧美日产图| 亚洲精品国产精品国产自| 久久资源av| 欧美77777| 亚洲一区国产| 欧美一区成人| 亚洲人体影院| 日韩一级网站| 国产一区二区三区免费在线观看| 久久久久久久成人| 欧美日韩国产一中文字不卡 | 老色鬼精品视频在线观看播放| 另类图片国产| 久久精品国产亚洲高清剧情介绍| 久久裸体艺术| 亚洲私人影院| 亚洲国产婷婷香蕉久久久久久99| 亚洲精品乱码久久久久久久久| 久久狠狠久久综合桃花| 欧美成人午夜激情| 久久精品国产第一区二区三区最新章节| 久久精品欧美日韩| 午夜在线电影亚洲一区| 欧美日韩精品福利| 欧美激情免费观看| 亚洲大片在线观看| 久久―日本道色综合久久| 一区二区三区 在线观看视频| 亚洲午夜精品福利| 亚洲一区二区三区精品动漫| 老司机一区二区| 噜噜噜噜噜久久久久久91| 国产老肥熟一区二区三区| 亚洲一区二区精品在线| 在线午夜精品自拍| 欧美日韩中文字幕日韩欧美| 黑人操亚洲美女惩罚| 亚洲欧美电影在线观看| 亚洲欧美日韩综合aⅴ视频| 国产精品一区二区黑丝| 久久国产精品免费一区| 欧美大片一区二区| 一本色道88久久加勒比精品 | 亚洲免费激情| 久久久久久97三级| 亚洲国产婷婷香蕉久久久久久99| 亚洲美女在线看| 国产精品一二三视频| 久久夜色精品国产| 一区二区三区日韩欧美精品| 欧美一区二区三区视频免费播放| 国产一区二区欧美日韩| 欧美人在线观看| 亚洲欧美日韩国产综合精品二区| 久久婷婷人人澡人人喊人人爽| 亚洲国产人成综合网站| 欧美四级剧情无删版影片| 欧美中文字幕在线视频| 日韩亚洲一区二区| 欧美成人性网| 久久永久免费| 亚洲在线免费视频| 亚洲国产天堂久久国产91| 国产午夜精品全部视频播放| 欧美大尺度在线观看| 欧美伊人久久大香线蕉综合69| 亚洲激情欧美激情| 久久婷婷久久| 久久噜噜亚洲综合| 香蕉亚洲视频| 亚洲综合色激情五月| 99国产麻豆精品| 亚洲精品欧美| 久久久亚洲影院你懂的| 欧美一区三区二区在线观看| 亚洲靠逼com| 一本色道久久综合亚洲精品不卡| 欧美福利专区| 亚洲黄色尤物视频| 在线视频欧美一区| 亚洲一区二区三区免费观看| 91久久精品久久国产性色也91| 亚洲国产日韩综合一区| 欧美激情女人20p| 亚洲精品视频在线播放| 99国产精品99久久久久久粉嫩| 亚洲精选国产| 欧美一区二区三区成人| 久久综合久色欧美综合狠狠| 欧美精品aa| 国产精品xvideos88| 国产情人节一区| 亚洲精品国产欧美| 欧美一级免费视频| 亚洲国产一区二区三区高清| 99在线精品免费视频九九视| 欧美一区二区大片| 欧美日韩123| 极品中文字幕一区| 一区二区三区产品免费精品久久75| 久久成人18免费观看| 欧美高清在线视频| 欧美亚洲日本国产| 欧美日韩在线电影| 欧美色图五月天| 亚洲国产日韩一区| 久久综合色婷婷| 亚洲一区视频在线| 国产精品爱啪在线线免费观看| 亚洲国产欧美日韩另类综合| 久久黄色网页| 午夜精彩视频在线观看不卡| 性欧美在线看片a免费观看| 欧美激情自拍| 亚洲美女色禁图| ●精品国产综合乱码久久久久| 亚洲激情视频| 男人的天堂亚洲| 久久国产99| 亚洲国产成人精品女人久久久| 久久综合久久美利坚合众国| 久久精品亚洲精品| 136国产福利精品导航网址应用| 你懂的国产精品永久在线| 另类国产ts人妖高潮视频| 91久久精品美女| 日韩午夜视频在线观看| 欧美丝袜一区二区三区| 久久久久久日产精品| 欧美成人一区二免费视频软件| 亚洲精品国产精品乱码不99 | 久久久精品999| 91久久久久久国产精品| 亚洲日本理论电影| 国产视频一区免费看| 欧美www视频在线观看| 91久久久精品| 久久国产主播| 99www免费人成精品| 亚洲女同性videos| 日韩一区二区久久| 欧美在线一级va免费观看| 亚洲精品一级| 午夜精品久久久久影视| 99re6这里只有精品| 久久青草久久| 欧美在线地址| 国产精品高潮呻吟久久av黑人| 久久久亚洲高清| 国产情人节一区| 亚洲线精品一区二区三区八戒| 亚洲大胆视频| 艳女tv在线观看国产一区| 精品动漫一区二区| 午夜欧美理论片| 亚洲一区二区日本| 欧美视频在线不卡| 亚洲精品一级| 中文日韩欧美| 欧美一级精品大片| 99国产一区| 欧美亚州在线观看| 亚洲一区二区视频| 欧美在线三区| 一区在线电影| 久久亚洲影音av资源网| 你懂的国产精品| 一区二区三区 在线观看视| 欧美午夜片欧美片在线观看| 亚洲美女黄色片| 欧美伊人影院| 亚洲人成亚洲人成在线观看| 欧美 日韩 国产 一区| 亚洲精品国偷自产在线99热| 亚洲在线第一页| 国产欧美视频一区二区三区| 久久er精品视频| 亚洲大胆在线| 欧美一级在线视频| 伊人久久大香线蕉综合热线| 欧美aa国产视频| 亚洲免费在线精品一区| 蜜臀99久久精品久久久久久软件| 亚洲精品一区中文| 国产精品久久久久久久浪潮网站| 欧美亚洲综合久久| 最新国产精品拍自在线播放| 久久久精品tv| 久久精品中文字幕免费mv| 99精品国产在热久久下载| 国产欧美一区二区三区国产幕精品|