Ejemplo n.º 1
0
        private double GetMatrixCntValue(string Paper)
        {
            oMatrix = oForm.Items.Item("mtx").Specific;

            string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

            XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

            var query0 = from c in root.Descendants("Row")
                         where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_PAPERTP" && o.Element("Value").Value.Contains(Paper))
                            && c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_DEPAMT" && o.Element("Value").Value != "0")
                         select c;

            return query0.Count();

            //return GetCoumnValue(query0, FieldName).Count();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 메트릭스의 컬럼 합계를 계산하고 헤더테이블의 DBDataSource에 갱신합니다.
        /// </summary>
        private void SetMatrixCalc_Sum()
        {
            try
            {
                oMatrix = oForm.Items.Item("mtx1").Specific;

                string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

                XDocument root = XDocument.Parse(sXML.Replace(",",""));//1000단위 구분기호 삭제

                //필터링 : 내용구분 코드가 등록되지 않는 행은 합계에서 제외 합니다.
                var query = 
                            from
                                c in root.Descendants("Row")
                            where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_ITMGRPCD" && o.Element("Value").Value != "")
                            select c;


                //System.Data.DataTable dt = XElementToDataTable(query);
                //System.Data.DataSet dst = new System.Data.DataSet();
                //dst.Tables.Add(dt);
                //dst.WriteXml(@"C:\test3.xml");

                //dt=null;
                //dst = null;

                //금액 집계
                double U_AMT = GetCoumnValue(query, "U_AMT").Sum();//매출 금액
                double U_VAT = GetCoumnValue(query, "U_VAT").Sum();//매출 부가세액
                double U_LINETOT = GetCoumnValue(query, "U_LINETOT").Sum();//매출 부가세액

                double U_AMTBP = GetCoumnValue(query, "U_AMTBP").Sum();//대행사 매입 금액
                double U_VATBP = GetCoumnValue(query, "U_VATBP").Sum();//대행사 매입 부가세액
                double U_LINETOTB = GetCoumnValue(query, "U_LINETOTB").Sum();//대행사 매입 부가세액

                #region DBDataSource 적용
                SAPbouiCOM.DBDataSource oKIS_SD0030T_HRD = oForm.DataSources.DBDataSources.Item("@KIS_SD0030T_HRD");

                oKIS_SD0030T_HRD.SetValue("U_AMTSUM", 0, U_AMT.ToString());
                oKIS_SD0030T_HRD.SetValue("U_VATSUM", 0, U_VAT.ToString());
                oKIS_SD0030T_HRD.SetValue("U_DOCTOT", 0, U_LINETOT.ToString());

                oKIS_SD0030T_HRD.SetValue("U_AMTSUMB", 0, U_AMTBP.ToString());
                oKIS_SD0030T_HRD.SetValue("U_VATSUMB", 0, U_VATBP.ToString());
                oKIS_SD0030T_HRD.SetValue("U_DOCTOTB", 0, U_LINETOTB.ToString());

                oKIS_SD0030T_HRD = null; 
                #endregion

            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 메트릭스의 컬럼 합계를 계산하고 헤더테이블의 DBDataSource에 갱신합니다.
        /// </summary>
        private void SetMatrixCalc_Sum()
        {
            try
            {
                oMatrix = oForm.Items.Item("mtx").Specific;

                #region 필터링
                string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

                XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

                //필터링 : 합계에서 제외 할 행을 필터링한다.
                var query0 = from c in root.Descendants("Row") select c;

                // 정상 : 에러코드에 값이 있는 없는 행
                //var query1 = from c in root.Descendants("Row")
                //             where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value == "")
                //             select c;
                ////var query1 = query0.Where(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value == "");

                #endregion

                #region 금액 집계
                double U_REQAMT = GetCoumnValue(query0, "U_REQAMT").Sum();      //청구금액
                double U_IMPAMT = GetCoumnValue(query0, "U_IMPAMT").Sum();      //출금불능금액
                double U_DEPAMT = GetCoumnValue(query0, "U_DEPAMT").Sum();      //입금액

                SAPbouiCOM.Column oColumn;
                oColumn = (SAPbouiCOM.Column)oMatrix.Columns.Item("U_DEPAMT"); oColumn.ColumnSetting.SumType = BoColumnSumType.bst_Manual; oColumn.ColumnSetting.SumValue = U_DEPAMT.ToString();
                oColumn = (SAPbouiCOM.Column)oMatrix.Columns.Item("U_IMPAMT"); oColumn.ColumnSetting.SumType = BoColumnSumType.bst_Manual; oColumn.ColumnSetting.SumValue = U_IMPAMT.ToString();
                #endregion

                #region DBDataSource 적용
                /*
                SAPbouiCOM.DBDataSource oKIS_SO0190T_HRD = oForm.DataSources.DBDataSources.Item("@KIS_SO0190T_HRD");

                oKIS_SO0190T_HRD.SetValue("U_NOMCNT", 0, U_NOMCNT.ToString());
                oKIS_SO0190T_HRD.SetValue("U_UNSCNT", 0, U_UNSCNT.ToString());
                oKIS_SO0190T_HRD.SetValue("U_TOTCNT", 0, U_TOTCNT.ToString());
                
                oKIS_SO0190T_HRD = null;
                */
                #endregion

            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        public virtual bool ET_btnJDT_BFClick(ItemEvent pVal)
        {
            oForm = B1Connections.theAppl.Forms.Item(pVal.FormUID);
            oButton = ((SAPbouiCOM.Button)(oForm.Items.Item("btnJDT").Specific));
            oMatrix = oForm.Items.Item("mtx").Specific;
            // ADD YOUR ACTION CODE HERE ...

            if (string.IsNullOrEmpty(oDB_M.GetValue("U_JDTDOC", 0).Trim()) == false)
            {
                B1Connections.theAppl.StatusBar.SetText("분개전기가된 문서는 다시전기 할 수 없습니다.", BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error);
                return false;
            }
            if (oForm.Mode == BoFormMode.fm_UPDATE_MODE)
            {
                B1Connections.theAppl.StatusBar.SetText("데이터가 수정되었습니다. 저장후 진행해주세요. ", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                return false;
            }

            string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

            XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

            //필터링 : 내용구분 코드가 등록되지 않는 행은 합계에서 제외 합니다.
            var query =
                        from
                            c in root.Descendants("Row")
                        where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_DEPDT" && string.IsNullOrEmpty(o.Element("Value").Value))
                        select c;
            if (query.Count() > 0)
            {
                B1Connections.theAppl.StatusBar.SetText("입금일을 입력후 진행해주세요. ", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                return false;
            }

            return true;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 대변 - 직배/지방 추가, 선수금
        /// </summary>
        /// <param name="FieldName"></param>
        /// <param name="Paper"></param>
        /// <returns></returns>
        private double GetMatrixSumValue(string FieldName, string Paper, string Type)
        {
            // Type의 값이 1 이면 선수금계정
            // U_CENTGBN - U10 : 직배, U20 : 지방
            oMatrix = oForm.Items.Item("mtx").Specific;

            string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

            XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

            
            //필터링 : 합계에서 제외 할 행을 필터링한다.
            var query0 = from c in root.Descendants("Row")
                         where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_PAPERTP" && o.Element("Value").Value.Contains(Paper))
                                                                                 
                         select c;

            // U_CENTGBN - U10 : 직배
            // U_CENTGBN - U20 : 지방
            var query_U10 = query0.Where(c => c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_CENTGBN" && o.Element("Value").Value == "U10"));
            var query_U20 = query0.Where(c => c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_CENTGBN" && o.Element("Value").Value != "U10"));

            double u10 = GetCoumnValue(query_U10, FieldName).Sum();
            double u20 = GetCoumnValue(query_U20, FieldName).Sum();
            double rValue = 0;

            // 선수금은 지방금액의 1/2
            if (Type == "1")
            {
                rValue = u20 / 2;
            }
            else
            {
                rValue = u10 + (u20 / 2);
            }

            return rValue;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 메트릭스의 컬럼 합계를 계산하고 헤더테이블의 DBDataSource에 갱신합니다.
        /// </summary>
        private void SetMatrixCalc_Sum()
        {
            try
            {
                oMatrix = oForm.Items.Item("mtx").Specific;

                #region 필터링
                string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

                XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

                //필터링 : 합계에서 제외 할 행을 필터링한다.
                var query0 = from c in root.Descendants("Row") select c;

                // 정상 : 에러코드에 값이 있는 없는 행
                var query1 = from c in root.Descendants("Row")
                             where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value == "")
                             select c;
                //var query1 = query0.Where(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value == "");

                // 비정상 : 에러코드에 값이 있는 있는 행
                var query2 = from c in root.Descendants("Row")
                             where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value != "")
                             select c;
                //var query2 = query0.Where(o => o.Element("ID").Value == "U_ERRCD" && o.Element("Value").Value != "");

                //System.Data.DataTable dt = XElementToDataTable(query);
                //System.Data.DataSet dst = new System.Data.DataSet();
                //dst.Tables.Add(dt);
                //dst.WriteXml(@"C:\test3.xml");

                //dt=null;
                //dst = null;
                #endregion

                #region 금액 집계

                double U_REQAMT = GetCoumnValue(query0, "U_REQAMT").Sum();      //청구금액
                double U_DEPAMT = GetCoumnValue(query0, "U_DEPAMT").Sum();      //입금액
                double U_CMMAMT = GetCoumnValue(query0, "U_CMMAMT").Sum();      //수수료

                double U_NOMAMT = GetCoumnValue(query1, "U_DEPAMT").Sum();      //정상 입금액
                double U_UNSAMT = GetCoumnValue(query2, "U_DEPAMT").Sum();      //비정상 입금액

                double U_TOTCNT = GetCoumnValue(query0, "U_DEPAMT").Count();    //전체 건수
                double U_NOMCNT = GetCoumnValue(query1, "U_DEPAMT").Count();    //정상 건수
                double U_UNSCNT = GetCoumnValue(query2, "U_DEPAMT").Count();    //비정상 건수
                #endregion

                #region DBDataSource 적용
                SAPbouiCOM.DBDataSource oKIS_SO0170T_HRD = oForm.DataSources.DBDataSources.Item("@KIS_SO0170T_HRD");

                oKIS_SO0170T_HRD.SetValue("U_NOMCNT", 0, U_NOMCNT.ToString());
                oKIS_SO0170T_HRD.SetValue("U_UNSCNT", 0, U_UNSCNT.ToString());
                oKIS_SO0170T_HRD.SetValue("U_TOTCNT", 0, U_TOTCNT.ToString());

                oKIS_SO0170T_HRD.SetValue("U_NOMAMT", 0, U_NOMAMT.ToString());
                oKIS_SO0170T_HRD.SetValue("U_UNSAMT", 0, U_UNSAMT.ToString());
                oKIS_SO0170T_HRD.SetValue("U_TOTAMT", 0, U_DEPAMT.ToString());
                oKIS_SO0170T_HRD.SetValue("U_CMMAMT", 0, U_CMMAMT.ToString());

                oKIS_SO0170T_HRD = null;

                SAPbouiCOM.Column oColumn;
                oColumn = (SAPbouiCOM.Column)oMatrix.Columns.Item("U_DEPAMT"); oColumn.ColumnSetting.SumType = BoColumnSumType.bst_Manual; oColumn.ColumnSetting.SumValue = U_DEPAMT.ToString();
                oColumn = (SAPbouiCOM.Column)oMatrix.Columns.Item("U_CMMAMT"); oColumn.ColumnSetting.SumType = BoColumnSumType.bst_Manual; oColumn.ColumnSetting.SumValue = U_CMMAMT.ToString();

                #endregion

            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 메트릭스의 컬럼 합계를 계산하고 헤더테이블의 DBDataSource에 갱신합니다.
        /// </summary>
        private void SetMatrixCalc_Sum()
        {
            try
            {
                oMatrix = oForm.Items.Item("mtx1").Specific;

                string sXML = oMatrix.SerializeAsXML(BoMatrixXmlSelect.mxs_All);

                XDocument root = XDocument.Parse(sXML.Replace(",", ""));//1000단위 구분기호 삭제

                //필터링 : 내용구분 코드가 등록되지 않는 행은 합계에서 제외 합니다.
                var query =
                            from
                                c in root.Descendants("Row")
                            where c.Elements("Columns").Elements("Column").Any(o => o.Element("ID").Value == "U_ITMGRPCD" && o.Element("Value").Value != "")
                            select c;


                //System.Data.DataTable dt = XElementToDataTable(query);
                //System.Data.DataSet dst = new System.Data.DataSet();
                //dst.Tables.Add(dt);
                //dst.WriteXml(@"C:\test3.xml");

                //dt=null;
                //dst = null;

                //금액 집계
                double U_AMT = GetCoumnValue(query, "U_AMT").Sum();//매출 금액 합계
                double U_VAT = GetCoumnValue(query, "U_VAT").Sum();//매출 부가세액 합계
                double U_LINETOT = GetCoumnValue(query, "U_LINETOT").Sum();//매출 금액 합계

                double U_AMTBP = GetCoumnValue(query, "U_AMTBP").Sum();//대행사 매입 금액 합계
                double U_VATBP = GetCoumnValue(query, "U_VATBP").Sum();//대행사 매입 부가세액 합계
                double U_LINETOTB = GetCoumnValue(query, "U_LINETOTB").Sum();//대행사 금액 합계

                #region DBDataSource 적용
                SAPbouiCOM.DBDataSource oKIS_SD0050T_HRD = oForm.DataSources.DBDataSources.Item("@KIS_SD0050T_HRD");

                oKIS_SD0050T_HRD.SetValue("U_AMTSUM", 0, U_AMT.ToString());
                oKIS_SD0050T_HRD.SetValue("U_VATSUM", 0, U_VAT.ToString());
                oKIS_SD0050T_HRD.SetValue("U_DOCTOT", 0, U_LINETOT.ToString());

                oKIS_SD0050T_HRD.SetValue("U_AMTSUMB", 0, U_AMTBP.ToString());
                oKIS_SD0050T_HRD.SetValue("U_VATSUMB", 0, U_VATBP.ToString());
                oKIS_SD0050T_HRD.SetValue("U_DOCTOTB", 0, U_LINETOTB.ToString());

                oKIS_SD0050T_HRD = null;
                #endregion

                double edtDOCTOT = U_LINETOT;//double.Parse(FN.GetItemValue(ref oForm, "edtDOCTOT").PadLeft(1, '0'));//매출총계
                double edtDPMSUM = double.Parse(FN.GetItemValue(ref oForm, "edtDPMSUM").PadLeft(1, '0'));//매출 선금금액
                double edtINCSUM = double.Parse(oForm.DataSources.UserDataSources.Item("edtINCSUM").Value.PadLeft(1, '0'));//매출 입금금액
                double edtOPENIN = edtDOCTOT - edtINCSUM - edtDPMSUM;//매출 미지급금액

                double edtDOCTOTB = U_LINETOTB;//double.Parse(FN.GetItemValue(ref oForm, "edtDOCTOTB").PadLeft(1, '0'));//매출총계
                double edtPAYSUM = double.Parse(oForm.DataSources.UserDataSources.Item("edtPAYSUM").Value.PadLeft(1, '0'));//대행사 지급금액
                double edtOPENPAY = edtDOCTOTB - edtPAYSUM;//대행사 미수금금액

                //oForm.DataSources.UserDataSources.Item("edtINCSUM").Value = edtINCSUM.ToString();
                oForm.DataSources.UserDataSources.Item("edtOPENIN").Value = edtOPENIN.ToString();

                //oForm.DataSources.UserDataSources.Item("edtPAYSUM").Value = edtPAYSUM.ToString();
                oForm.DataSources.UserDataSources.Item("edtOPENPAY").Value = edtOPENPAY.ToString();
            }
            catch (Exception)
            {
                throw;
            }
        }