퇴근5분전

DB Select했던것을 좀더 추가해서 구성한다. 

목적 : DebugForm활용법.
         GridView 바인딩 및 표시설정 방법
         UniList 소개.

디버그 활성화!
   JsFW.DEBUG.DebugQueryForm.SetDebugAuthority();
디버그 비즈 등록
  base.ShowDebugWindow(tb, this); // 디버그 창에 호출전 디버그 등록! 

끝... 넘 쉬운가?
디버그 창 뜬모습을 볼까낭


디버그 윈폼에 보면 사용한 쿼리 와 우측엔 파라미터가 나온다. 
아래는 해당 쿼리와 파라미터로 결과를 다시 쿼리 할수 있다.

파라미터를 사용시.. 쿼리 합성을 통해 쿼리를 파라미터와 치환도 가능하다.
또. 쿼리할때마다 쌓인다!


그리드 뷰
기본 그리드 뷰를 래핑한클래스로 프레임웍 내 표준 데이타 UniList로 데이타 I/O를 적용한 것임.
아래 보면 데이타 바인딩을 하고
컬럼을 지정해서 변경할수 있다.

            DataSet ds =   tb.List(null);
            gridView1.Bind(ds.Tables[0]);
            using (JsFW.Win.Controls.GridView_ColumnAtt att = new GridView_ColumnAtt())
            {
                att.Add(new GridView_ColumnInfo("object_id", "ID", 100f, DataGridViewContentAlignment.MiddleCenter));
                att.Add(new GridView_ColumnInfo("name", "프로시져명", 400f, DataGridViewContentAlignment.MiddleCenter));
                att.Setting( gridView1.SetColumnAtt ); // 대리자 등록.
                gridView1.SetConfig(true, true);
            }

gridView1.SetConfig(true, true); // 그리드 읽기전용,   Numbering

** 체크박스가 추가된 그리드, 그리드 두개짜리를 TwoGridView 가 존재한다 ( 추후에.. )

선택된 Row데이타 뽑기

            UniList selectData = gridView1.DataParameters;
            Alert( selectData.ToString("@name") );
            selectData.Clear();
            selectData = null;

** @name은 데이타의 Key로써  쿼리 파라미터로 바로 변환 되도록 정한 규칙이다.



전체 소스!!

  public partial class Form1 : BaseForm
    {
        Table_1 tb = new Table_1();

        public Form1()
        {
            InitializeComponent();

            this.NotifyIcon = Resources.Icon1;
            this.NotifyIcon_Visible = true;
            this.NotifyIcon_Menu = new ContextMenu();
            this.NotifyIcon_Menu.MenuItems.Add(new MenuItem("종료하기", delegate { this.Close(); }));

            JsFW.DEBUG.DebugQueryForm.SetDebugAuthority();

            gridView1.UniGriView_Click_Delegage += new UniGridView_Click(gridView1_UniGriView_Click_Delegage);
        }

        void gridView1_UniGriView_Click_Delegage()
        {
            // 그리드 클릭시..

            UniList selectData = gridView1.DataParameters;
            Alert( selectData.ToString("@name") );
            selectData.Clear();
            selectData = null;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Alert("하이! ", 10);
        }

        protected override void OnUniButton_Click(object sender, JsFW_ButtonEventArgs e)
        {
            base.OnUniButton_Click(sender, e);

            switch (e.Code)
            {
                case Button_Codes.등록: break;
                case Button_Codes.닫기: break;
                case Button_Codes.Special :
                    switch (e.Special)
                    {
                        case Button_Codes_Special.SpecialBtn1: break;
                        case Button_Codes_Special.없다: break;
                    }
                    break;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            base.ShowDebugWindow(tb, this); // 디버그 창에 호출전 디버그 등록!

            DataSet ds =   tb.List(null);
            gridView1.Bind(ds.Tables[0]);
            using (JsFW.Win.Controls.GridView_ColumnAtt att = new GridView_ColumnAtt())
            {
                att.Add(new GridView_ColumnInfo("object_id", "ID", 100f, DataGridViewContentAlignment.MiddleCenter));
                att.Add(new GridView_ColumnInfo("name", "프로시져명", 400f, DataGridViewContentAlignment.MiddleCenter));
                att.Setting( gridView1.SetColumnAtt ); // 대리자 등록.
                gridView1.SetConfig(true, true);
            }
        }
    }

    public class Table_1 : JsFW.ADONET.DataBase_Business
    {
        public override DataSet List(JsFW.BasicObjects.IUniDataParameter iDataPrms)
        {
            return ExcuteDataSet("Select * From sys.procedures", CommandType.Text, new System.Data.SqlClient.SqlParameter[0]);
        }
    }