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

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>
            亚洲国产视频一区二区| 国产精品自拍小视频| 亚洲二区在线视频| 久久免费99精品久久久久久| 亚洲欧美日韩一区在线| 午夜精品久久久久久久| 久久成人综合视频| 男人的天堂亚洲在线| 亚洲国产日韩欧美| 亚洲一区二区成人| 欧美在线免费| 欧美激情视频在线播放| 欧美三日本三级少妇三2023| 国产欧美日韩不卡免费| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲国产精品久久久久| 亚洲一区高清| 快射av在线播放一区| 亚洲精选一区| 久久久91精品国产一区二区三区 | 嫩草影视亚洲| 欧美色一级片| 一区二区在线视频观看| 999在线观看精品免费不卡网站| 亚洲欧美日韩精品久久亚洲区| 久久午夜电影网| 一二三区精品福利视频| 久久久久女教师免费一区| 欧美日韩视频在线| 亚洲国产另类精品专区| 久久久91精品国产| 一区二区三区视频在线看| 久久琪琪电影院| 国产亚洲精品久久久| 亚洲一区日韩| 亚洲国产视频a| 久久夜色精品亚洲噜噜国产mv| 国产精品视频免费在线观看| 亚洲免费观看高清完整版在线观看熊| 久久人91精品久久久久久不卡| 99国内精品| 欧美不卡一区| 亚洲国产精品精华液网站| 久久九九久精品国产免费直播| 一本色道久久综合亚洲精品高清 | 亚洲一区久久| 日韩视频精品| 欧美理论电影在线播放| 亚洲国产日韩一区| 久久人人97超碰人人澡爱香蕉| 亚洲一级特黄| 国产精品久久午夜| 亚洲午夜精品一区二区| 亚洲免费电影在线| 欧美日本亚洲韩国国产| 亚洲最新中文字幕| 亚洲精品一区二区三区婷婷月 | 亚洲免费av网站| 欧美精品www| 一区二区三区www| 亚洲精品一区二区三| 欧美日韩亚洲综合| 中文在线资源观看网站视频免费不卡 | 国产偷自视频区视频一区二区| 亚洲性视频网站| 一个色综合av| 国产精品午夜在线观看| 国产一区自拍视频| 久久成人精品视频| 午夜欧美视频| 黄网站色欧美视频| 欧美国产视频在线| 欧美日韩美女一区二区| 亚洲欧美一区在线| 久久gogo国模裸体人体| 在线观看中文字幕不卡| 欧美国产日韩一区二区三区| 欧美久久久久久久久| 亚洲一区网站| 欧美在线观看视频在线| 亚洲国产天堂网精品网站| 亚洲人体影院| 国产日韩欧美精品| 欧美激情1区2区3区| 国产精品成人va在线观看| 久久久91精品国产| 欧美国产精品中文字幕| 欧美亚洲一区在线| 美女露胸一区二区三区| 亚洲综合日韩中文字幕v在线| 欧美在线免费看| 99pao成人国产永久免费视频| 亚洲午夜精品久久久久久浪潮| 国产主播在线一区| 99国内精品| 亚洲国产精品一区二区第四页av | 久久夜色精品亚洲噜噜国产mv| 日韩视频免费在线观看| 香蕉免费一区二区三区在线观看| 亚洲第一级黄色片| 亚洲综合视频在线| 亚洲精品免费电影| 性亚洲最疯狂xxxx高清| 一区二区三区三区在线| 久久综合久久综合这里只有精品| 亚洲一区二区成人| 美女精品视频一区| 久久久.com| 国产精品国产三级国产普通话99| 免费视频久久| 国产噜噜噜噜噜久久久久久久久 | 夜夜嗨av一区二区三区四区| 尤妮丝一区二区裸体视频| 亚洲一区二区三区免费视频| 亚洲每日在线| 久久这里有精品视频| 欧美中文字幕第一页| 欧美日韩一区二区三| 亚洲国产精品小视频| 在线日韩中文| 久久精品国产一区二区三区| 欧美与欧洲交xxxx免费观看| 国产精品vip| 一区二区av在线| 这里只有精品电影| 欧美日韩国产在线观看| 最新中文字幕一区二区三区| 欧美极品一区| 欧美aⅴ99久久黑人专区| 韩国精品在线观看| 亚洲欧美日韩在线| 小嫩嫩精品导航| 国产精品免费视频观看| 一区二区三区www| 亚洲一区二区三区在线| 国产精品v欧美精品∨日韩| 一本色道久久| 午夜精品久久久久久久白皮肤 | 亚洲人成在线观看一区二区| 久久女同互慰一区二区三区| 久久中文字幕一区二区三区| 韩日欧美一区二区三区| 久久久久久久久久久一区| 蜜乳av另类精品一区二区| 亚洲国产精品久久91精品| 欧美超级免费视 在线| 亚洲国产经典视频| 一本久久综合亚洲鲁鲁| 国产精品久久7| 欧美伊人久久久久久午夜久久久久| 久久精品日韩一区二区三区| 在线播放精品| 欧美精品在线视频| 亚洲欧洲免费视频| 亚洲一区二区动漫| 国产欧美一区二区三区在线看蜜臀 | 亚洲综合色网站| 国产免费观看久久| 久久蜜桃av一区精品变态类天堂| 欧美激情精品久久久久久免费印度| 亚洲激情小视频| 欧美网站在线观看| 久久精品二区三区| 亚洲精品乱码视频| 久久精品国产欧美激情| 亚洲大片av| 国产精品入口66mio| 久久久人成影片一区二区三区| 亚洲国产精品国自产拍av秋霞| 亚洲女同同性videoxma| 亚洲第一在线综合网站| 欧美涩涩视频| 久久性天堂网| 亚洲深爱激情| 欧美国产免费| 欧美一区永久视频免费观看| 亚洲人妖在线| 韩日欧美一区| 国产精品视频一| 欧美日韩成人精品| 久久久亚洲一区| 亚洲欧美日韩高清| 亚洲精品综合| 免费中文日韩| 久久精品1区| 亚洲一区二区在| 日韩午夜av在线| 亚洲国产福利在线| 黄色一区二区三区四区| 国产精品嫩草影院一区二区| 欧美激情1区| 麻豆国产va免费精品高清在线| 亚洲伊人色欲综合网| 亚洲国产精品成人一区二区| 欧美中文字幕在线播放| 亚洲一区二区少妇| 一区二区日韩伦理片| 亚洲人被黑人高潮完整版| 免费观看欧美在线视频的网站| 亚洲欧美视频|