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(); }
/// <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; } }
/// <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; } }
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; }
/// <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; }
/// <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; } }
/// <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; } }