public PXSqlValueSet(QueryLib_24.ValueSetRow inRow, PXSqlMeta_24 meta, bool isDefaultInGui) { this.mValueSet = inRow.ValueSet; this.elimination = new EliminationAux(inRow.EliminationMethod, inRow.EliminationCode, meta.Config.Codes); this.mSortCodeExists = inRow.SortCodeExists; this.mValuePoolId = inRow.ValuePool; this.mValuePres = inRow.ValuePres; this.mGeoAreaNo = inRow.GeoAreaNo; this.mMetaId = inRow.MetaId; this.IsDefault = isDefaultInGui; foreach (string langCode in inRow.texts.Keys) { //PresText came in version 2.1 and is optional ... desciption is up to 200 chars string asPresText = inRow.texts[langCode].PresText; if (String.IsNullOrEmpty(asPresText)) { asPresText = inRow.texts[langCode].Description; int gridPosition = asPresText.IndexOf('#'); if (gridPosition > 0) { asPresText = asPresText.Substring(0, gridPosition); } } mPresText[langCode] = asPresText; } //private int mNumberOfValues; is set outside class. Bad thing? Yes }
//for magic all public PXSqlValueSet(Dictionary <string, string> presText, string valuePoolId, List <EliminationAux> elims, string sortCodeExists, string valuePres) { this.mValueSet = PCAxis.PlugIn.Sql.PXSqlKeywords.FICTIONAL_ID_ALLVALUESETS; this.mPresText = presText; this.mValuePoolId = valuePoolId; this.elimination = EliminationAux.MergeEliminations(elims); this.mSortCodeExists = sortCodeExists; this.mValuePres = valuePres; this.mGeoAreaNo = ""; }
public static EliminationAux MergeEliminations(List <EliminationAux> elims) { if (elims.Count == 1) { return(elims[0]); } int numberOfElimA = 0; int numberOfElimN = 0; int numberOfElimOtherCode = 0; EliminationAux elimByCode = elims[0]; foreach (EliminationAux elimval in elims) { if (elimval.EliminationMethod == elimval.DBCodeForByAggregation()) { numberOfElimA++; } else if (elimval.EliminationMethod == elimval.DBCodeForByNotAllowed()) { numberOfElimN++; } else { numberOfElimOtherCode++; elimByCode = elimval; } } //jfi sep 2015. This: //if ((numberOfElimA == ElimValues.Count - 1) && (numberOfElimOtherCode == 1)) //was found to be too strict in VariablerOgVerdimengder-4.doc if ((numberOfElimOtherCode == 1)) { return(elimByCode); } else { return(new EliminationAux(null, null, elims[0].ccodes)); } }