퇴근5분전

 

 DB는 간단하게 Table 생성하고,

이번에 새로 만든 GridForm을 이용한 화면을 추가하면서 이글을 써본다.

정말 쓸게 없지만...  그만큼 간단하게 개발되는걸 남겨본다..

 

화면을 만들기 위해 사용자 정의 컨트롤을 추가하고 부모객체를 UserControl 에서 JSFW_Content 로 바꿔준다.

 

public partial class TestReportList : JSFW_Content
{
        public TestReportList()
        {
            InitializeComponent();
        }        
}

요렇게 하면 상속된 화면으로 바뀐다.

 

여기에 Jsfw_Grid를 올려준후 그리드는 dock = fill로 꽉 채워준다. ( 화면에 변화가 안보일것임. )

 

그 다음 그리드에 뿌려질 데이타를 위해 정의된 테이블 객체를 생성한다. JSFW.ProjectHistory.DB._JSFW_DB_WorksDataSet.TestReportDataTable rpt = new DB._JSFW_DB_WorksDataSet.TestReportDataTable();
      

그리드 초기화 하는 구문과 ( Jsfw_Grid.init = delegate{}; )을 폼 데이타 초기화( Init() ) 구문을 작성한다.

 public partial class TestReportList : JSFW_Content
    {
        JSFW.ProjectHistory.DB._JSFW_DB_WorksDataSet.TestReportDataTable rpt = new DB._JSFW_DB_WorksDataSet.TestReportDataTable();
        public TestReportList()
        {
            InitializeComponent();

            //그리드를 초기화 하는 구문
            jsfW_GRID1.Init = delegate
            {
                jsfW_GRID1.Headers = new Headers()
                {
                    {
                        new Header( rpt.IDColumn.ColumnName , "ID")         
                        { Width=50, Identity=true, DataType=typeof(int) } 
                    },
                    {
                        new Header( rpt.RptTitleColumn.ColumnName , "테스트명")         
                        { Width=250, AllowEditing=true, DataType=typeof(string) } 
                    }                     
                };
                jsfW_GRID1.Headers.PrimaryItems.Add(jsfW_GRID1.Headers[rpt.IDColumn.ColumnName]);
                jsfW_GRID1.SelectionMode = SourceGrid.GridSelectionMode.Row;
            };
        }

        public override void Init()
        {
            base.Init();

            // 그리드에 데이타 바인딩.
            jsfW_GRID1.DataSource = rpt.MDB_Load(DBENUM.WORKS.getConnectionStringInfo<AccessConnectionString>(), "");
        }
    }

 

JSFW_Window에 담아 띄워보면..

 

 

이렇게 그리드까지 만들어졌다.

 

기능 버튼( 추가, 삭제, 조회, 닫기, 보기 )을 추가해본다. 이때 ToolElmt 라는 프로퍼티에 버튼 리스트를 넣는다.

JSFW_ToolButtonElement 라는 버튼 객체인데. 이외에도 여러 타입이 있으나...

 

public partial class TestReportList : JSFW_Content
    {
        JSFW.ProjectHistory.DB._JSFW_DB_WorksDataSet.TestReportDataTable rpt = new DB._JSFW_DB_WorksDataSet.TestReportDataTable();
        public TestReportList()
        {
            InitializeComponent();

            ToolElmt = new JSFW_ToolElementList()
            {
                { new JSFW_ToolButtonElement(){ Text="추가", Key="ADD", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)},
                                                delegate{  }},  
                { new JSFW_ToolButtonElement(){ Text="삭제", Key="DEL", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)}, 
                                                delegate{   }}, 
                { new JSFW_ToolButtonElement(){ Text="저장", Key="SAVE", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)},
                                                delegate{   }}, 
                { new JSFW_ToolButtonElement(){ Text="조회", Key="SELECT", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)},
                                                delegate{ Init(); }}, 
                { new JSFW_ToolButtonElement(){ Text="닫기", Key="CLOSE", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)},
                                                delegate{ Master.Close(); }},
                { new JSFW_ToolSplitElement() { Width = 20 } },
                { new JSFW_ToolButtonElement(){ Text="상세보기", Key="DETAIL", Flat= FlatStyle.Flat, BackColor=Color.FromArgb(0,174,255), ForeColor = Color.FromArgb(255,255,255)},
                                                delegate{   }}
            };

            jsfW_GRID1.Init = delegate
            {
                jsfW_GRID1.Headers = new Headers()
                {
                    {
                        new Header( rpt.IDColumn.ColumnName , "ID")         
                        { Width=50, Identity=true, DataType=typeof(int) } 
                    },
                    {
                        new Header( rpt.RptTitleColumn.ColumnName , "테스트명")         
                        { Width=250, AllowEditing=true, DataType=typeof(string) } 
                    }                     
                };
                jsfW_GRID1.Headers.PrimaryItems.Add(jsfW_GRID1.Headers[rpt.IDColumn.ColumnName]);
                jsfW_GRID1.SelectionMode = SourceGrid.GridSelectionMode.Row;
            };
        }

        public override void Init()
        {
            base.Init();
            jsfW_GRID1.DataSource = rpt.MDB_Load(DBENUM.WORKS.getConnectionStringInfo<AccessConnectionString>(), "");
        }
    }

 

버튼들이 추가된 모습을 확인할수 있다.

 

각 추가기능을 넣으면..

추가

private void Insert()
{
      jsfW_GRID1.NewRow();
}

삭제

private void Delete()
{
      jsfW_GRID1.DeleteRow();
}

저장

private void Save()
{
      IList<QueryParams> prms = jsfW_GRID1.GetQueryParams();
      prms.MDB_Save(DataBaseConnectionInfoManager.Get<AccessConnectionString>(DBENUM.WORKS));
      Init();
}

힛... 너무 짧은가?... 이게 다임...

GetQueryParams() 에서 자동으로 쿼리를 만들어서 내보내 줌!

 

보기는 다음 편에 이어서...

 

 

 

 

 

 

 

'# 9) My Program(.NET) > JsFW40' 카테고리의 다른 글

금전관리 프로그램.  (0) 2015.09.26
그리드 폼 만들기 (2)  (0) 2014.03.18
PRJMNG] JS 디자이너~  (0) 2012.12.27
jsfw ] New Version!  (0) 2012.05.13
[JsFW40] 코딩을 시작하다!!  (0) 2010.11.10