Ejemplo n.º 1
0
        /// <summary>
        /// 전월 사용량 반영
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnApplyPreMonth_Click(object sender, EventArgs e)
        {
            if (Global.YYYYMM == null)
            {
                return;
            }

            string message = "전월 사용량을 다시 가져옵니다."
                             + Environment.NewLine
                             + Environment.NewLine
                             + "현재 사용량을 다시 입력하고 직접 확인 해야 합니다.";

            DialogResult result = HBMessageBox.Show(message, "", MessageBoxButtons.YesNo);

            if (result == DialogResult.No)
            {
                return;
            }

            // 결과 메시지
            Util.MessageSaveResult(AdmExpQuery.UpdateAdmExpPreMonth(Global.YYYYMM));

            // 재조회
            SelectAdmExp(false);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 데이터 변경 사항 체크 및 저장 확인
        /// </summary>
        public void CheckUnsavedData()
        {
            if (Global.admExpDT != null)
            {
                DataTable chkDT = Global.admExpDT.GetChanges();

                if (chkDT != null && chkDT.Rows.Count > 0)
                {
                    string message = "저장 되지 않은 내역이 존재합니다."
                                     + Environment.NewLine
                                     + Environment.NewLine
                                     + "저장 하시겠습니까?";

                    DialogResult result = HBMessageBox.Show(message, "", MessageBoxButtons.YesNo);

                    // 예 를 선택한 경우 저장.
                    if (result == DialogResult.Yes)
                    {
                        SaveAdmExp(false);  // false : 저장 후 조회안함
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 변경 내용 저장 및 닫기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            // 마지막 조회 후 변경된 행만 가져온다
            DataTable saveDT = Global.homeInfoDT.GetChanges();

            // 저장 대상이 없으면 그냥 닫는다
            if (saveDT == null || saveDT.Rows.Count == 0)
            {
                HBMessageBox.Show("변경 된 내용이 없습니다");
                return;
            }

            // 저장
            int result = HomeInfoQuery.SaveHomeInfo(saveDT);

            // 결과 메시지
            Util.MessageSaveResult(result);

            // 성공 시 창을 닫는다
            if (result > 0)
            {
                Close();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// csv 내보내기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnExportAdmExp_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "Csv|*.csv";
            sfd.Title  = "Save an Csv File";
            sfd.ShowDialog();

            // 취소 검사
            if (sfd.FileName != "")
            {
                StringBuilder export_data = new StringBuilder();

                // 내보낼 데이터 조회
                DataTable dt_homeinfo = HomeInfoQuery.GetHomeInfo();    // 세대정보
                DataTable dt_comcode  = ComCodeQuery.GetComCode();      // 공통코드
                DataTable dt_admexp   = AdmExpQuery.GetAdmExp();        // 관리비

                // 조회된 데이터를 변수에 담는다
                export_data = _exportTable("homeinfo", dt_homeinfo, export_data);
                export_data = _exportTable("comcode", dt_comcode, export_data);
                export_data = _exportTable("admexp", dt_admexp, export_data);

                // 쓰기 스트림 생성
                StreamWriter file = new StreamWriter(sfd.FileName);

                // 파일에 쓰기
                file.Write(export_data);

                // 파일 닫기
                file.Close();

                // 작업완료 안내
                HBMessageBox.Show("내보내기 완료");
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 관리비 조회
        /// </summary>
        /// <param name="yyyymm"></param>
        public void SelectAdmExp(bool msgShow)
        {
            // 변경 된 데이터 저장 여부 확인
            CheckUnsavedData();

            // 공통코드 데이터 로드 Global.comcodeDT
            ComCodeQuery.GetComCode();

            /*
             * 1. 해당 월의 데이터가 있으면 조회한다.
             * 2. 데이터가 없는 경우 새로 양식을 생성한다.
             * 3. 조회 시 세대 정보는 해당 시점에 실제 저장된 것을 가져온다.
             * 4. 전월사용량은 전월데이터를 참고하여 가져온다. (없으면 가져오지 않는다)
             * */

            // [버그수정] 조회 전 기존내용 초기화
            // 조회된 상태 -> 새로 생성 조회 되는 경우 그리드 헤더가 설정 안되는 문제 + 색상 적용 오류 문제 수정.
            // ----------------------------------------------------------------------------------------------------
            gridAdmExp.DataSource = null;
            Init_GridAdmExp();
            // ----------------------------------------------------------------------------------------------------

            // 현재년월 데이터 조회
            gridAdmExp.DataSource = AdmExpQuery.GetAdmExpInfo(Global.YYYYMM);

            // 저장된 내용이 없으면 빈 셀 출력
            if (Global.admExpDT.Rows.Count == 0)
            {
                // 더미 데이터 생성
                if (AdmExpQuery.CreateAdmExpInfo(Global.YYYYMM) > 0)
                {
                    HBMessageBox.Show("데이터 생성 완료", "관리비 조회");
                }

                // 저장된 데이터 불러오기
                gridAdmExp.DataSource = AdmExpQuery.GetAdmExpInfo(Global.YYYYMM);
            }
            else
            {
                if (msgShow)
                {
                    HBMessageBox.Show("조회 완료", "관리비 조회");
                }
            }

            // 합계 부분 추가
            gridAdmExp.ShowRowHighlight = false;
            Global.admExpDT.Rows.Add(new object[] { "", "합계", "", "", "", "", "", "", "", "", "9999" });

            // 합계 계산
            _CalcAdmExpSum();

            // 콤마 추가
            //NumCommaAll(true);

            // 변경사항 커밋
            Global.admExpDT.AcceptChanges();

            gridAdmExp.ShowRowHighlight = true;

            // 당월 사용량 입력 가능하도록 준비
            gridAdmExp.Focus();
            gridAdmExp.CurrentCell = gridAdmExp.Rows[0].Cells[(int)Common.AdmExp.nowmonth];
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 관리비 저장
        /// </summary>
        public void SaveAdmExp(bool select)
        {
            /* 변경사항 체크 -> 저장 시 조회 하지 않도록 하기 위해 파라미터 추가
             * true  : 조회
             * false : 미 조회
             */

            // 마지막 조회 후 변경된 행만 가져온다.
            DataTable saveDT = Global.admExpDT.GetChanges();

            // 저장 대상이 없으면 그냥 닫는다.
            if (saveDT == null || saveDT.Rows.Count == 0)
            {
                HBMessageBox.Show("변경 된 내용이 없습니다");
                return;
            }

            // 콤마 제거
            for (int i = 0; i < saveDT.Rows.Count; i++)
            {
                Util.NumComma(saveDT, i, (int)Common.AdmExp.premonth, false);   // 전월지침
                Util.NumComma(saveDT, i, (int)Common.AdmExp.nowmonth, false);   // 당월지침
                Util.NumComma(saveDT, i, (int)Common.AdmExp.useamount, false);  // 사용량
                Util.NumComma(saveDT, i, (int)Common.AdmExp.usecost, false);    // 사용금액
                Util.NumComma(saveDT, i, (int)Common.AdmExp.admexpcost, false); // 관리비
                Util.NumComma(saveDT, i, (int)Common.AdmExp.totalcost, false);  // 합계
            }

            // 데이터 저장
            int saveResult = AdmExpQuery.SaveAdmExpInfo(saveDT);

            // 성공, 실패 여부 메시지 출력
            Util.MessageSaveResult(saveResult);

            // 저장 성공 시 그리드 데이터 비운다
            if (saveResult > 0)
            {
                // 성공 시 테이블을 비운다

                /*
                 * [버그] AcceptChanges()는 프로그램 종료단계에서 저장 시 잘못된 인덱스 참조 오류가 발생.
                 * 그리드 이벤트 관련 문제 인듯 한데 정확한 원인은 확인 안됨.
                 *
                 * 어차피 저장 후 새로 조회하면 되므로 성공적으로 저장된 경우에 한해 비운다.
                 */
                Global.admExpDT = null;
            }

            // 저장 후 결과 메시지 출력
            //Util.MessageSaveResult(AdmExpQuery.SaveAdmExpInfo(saveDT));

            // 변경사항 커밋
            Global.admExpDT = null; // 이미 저장은 끝났고,
            //Global.admExpDT.AcceptChanges(); [버그수정] 창 닫으면서 저장 시 수행 후 잘못된 인덱스 참조 오류 발생.

            // 조회
            if (select)
            {
                SelectAdmExp(false);    // false : 조회 완료 메시지 출력 안함.
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// csv 복원
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnImportAdmExp_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "Csv|*.csv";
            ofd.Title  = "Save an Csv File";
            ofd.ShowDialog();

            // 취소가 아닌 경우 진행
            if (ofd.FileName != "")
            {
                // 읽기 스트림 생성
                StreamReader file = new StreamReader(ofd.FileName);

                DataTable impDT = new DataTable();

                impDT.Columns.Add("01");
                impDT.Columns.Add("02");
                impDT.Columns.Add("03");
                impDT.Columns.Add("04");
                impDT.Columns.Add("05");
                impDT.Columns.Add("06");
                impDT.Columns.Add("07");
                impDT.Columns.Add("08");
                impDT.Columns.Add("09");
                impDT.Columns.Add("10");
                impDT.Columns.Add("11");
                impDT.Columns.Add("12");
                impDT.Columns.Add("13");
                impDT.Columns.Add("14");

                string line = "";
                int    col  = 0;

                // 파일의 끝까지 줄단위로 읽어들인다
                while ((line = file.ReadLine()) != null)
                {
                    col = 0;

                    DataRow dr = impDT.NewRow();

                    // 읽어들인 라인을 , 단위로 쪼개서 분리
                    string[] rowData = line.Split(',');

                    // 쪼개진 데이터 개별 처리
                    foreach (string str in rowData)
                    {
                        dr[col] = str;
                        col++;
                    }

                    impDT.Rows.Add(dr);

                    dr = null;
                }

                // 파일 닫기
                file.Close();

                // 데이터 저장
                // [미구현]

                // 완료 메시지 표시
                HBMessageBox.Show("복원 완료");
            }
        }