void RecuperarControlValues() { foreach (var item in queryMethodsMulti) { CControlValues control = new CControlValues(); control.IDL = Convert.ToDecimal(item.Idl); control.IPC = Convert.ToDecimal(item.Ipc); control.LFB = Convert.ToDecimal(item.Lfb); control.LFM = Convert.ToDecimal(item.Lfm); control.MDL = Convert.ToDecimal(item.Mdl); control.LDR = Convert.ToDecimal(item.Linealidad); dicControlValues.Add(item.Elemento.PadRight(2, '_') + item.Longitud.ToString(), control); } }
public CCeldaProcesada ProcesarMuestra(int idmuestra, string elemento, string value_celda) { if (dicControlValues.ContainsKey(elemento) && !value_celda.Contains("NULL")) { System.Drawing.Color colorError = System.Drawing.Color.NavajoWhite; CCeldaProcesada celdaProcesada = new CCeldaProcesada(); decimal value_celda_decimal = Convert.ToDecimal(value_celda); CControlValues controlValues = dicControlValues[elemento]; // procesar celda: idmuestra + elemento DataRow fila = dicFilasLeyes[idmuestra]; celdaProcesada.ColorCelda = Color.White; celdaProcesada.ValueCelda = value_celda; string nombreMuestra = fila["Muestra"].ToString(); string metodo = fila["Metodo"].ToString(); decimal factor = Convert.ToDecimal(fila["Factor"]); decimal dilucion2 = Convert.ToDecimal(fila["Dilucion"]); if (EsDUP(nombreMuestra)) { // encontrar muestra original int idmuestra_orig = queryFilasIteva.Single(c => nombreMuestra.Contains(c.Muestra) && nombreMuestra != c.Muestra).Idmuestra; DataRow drOri = dicFilasLeyes[idmuestra_orig]; decimal value_orig = Convert.ToDecimal(drOri[elemento].ToString().Replace('<', ' ')); decimal MDL_or_IDL = metodo == "MT" ? controlValues.MDL : controlValues.IDL; celdaProcesada.ValueCelda = "OK Dup"; if (value_orig > MDL_or_IDL) { if (!(Math.Abs(value_orig - value_celda_decimal) < 0.15M * value_orig)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out Dup"; } } else { if (!(value_celda_decimal < 2.2M * controlValues.MDL)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out Dup"; } } } else if (EsLFM(nombreMuestra)) { int idmuestra_orig = queryFilasIteva.Single(c => nombreMuestra.Contains(c.Muestra) && nombreMuestra != c.Muestra).Idmuestra; DataRow drOri = dicFilasLeyes[idmuestra_orig]; decimal value_orig = Convert.ToDecimal(drOri[elemento].ToString().Replace('<', ' ')); decimal MDL_or_IDL = metodo == "MT" ? controlValues.MDL : controlValues.IDL; celdaProcesada.ValueCelda = "OK LFM"; if (value_orig > MDL_or_IDL) { if (!EstaEntre(Math.Abs(value_orig - value_celda_decimal), controlValues.LFM * 0.70M, controlValues.LFM * 1.30M)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out LFM"; } } else { if (!EstaEntre(value_celda_decimal, controlValues.LFM * 0.70M, controlValues.LFM * 1.30M)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out LFM"; } } } else if (EsSoloMuestra(nombreMuestra)) { decimal MDL_or_IDL = metodo == "MT" ? controlValues.IDL : controlValues.MDL; string limite_inferior = metodo == "MT" ? "IDL" : "MDL"; string txt; if (value_celda_decimal < MDL_or_IDL) { celdaProcesada.ValueCelda = "<" + MDL_or_IDL; } else { if (value_celda_decimal < controlValues.LDR) { celdaProcesada.ValueCelda = (value_celda_decimal * factor * dilucion2).ToString(); } else { celdaProcesada.ValueCelda = ">" + controlValues.LDR.ToString(); } } #region comentario ///Metodo: ///LimiteInferior: ///LimiteSuperior: ///Prueba: LimiteInferior < lectura < LimiteSuperior ....... ///Resultado: StringBuilder mensaje = new StringBuilder(); mensaje.Append("Metodo: {0}"); mensaje.Append("\nLímite inferior {1}: {2}"); mensaje.Append("\nLímite superior LDR: {3}"); mensaje.Append("\nPrueba: {4} < {5} < {6}"); mensaje.Append("\nResultado: {7}"); txt = string.Format(mensaje.ToString(), metodo, limite_inferior, MDL_or_IDL, controlValues.LDR, MDL_or_IDL, value_celda, controlValues.LDR, celdaProcesada.ValueCelda); dicToolTip.Add(idmuestra.ToString() + elemento, txt); #endregion } // agregar/actualizar el diccionario string key = idmuestra.ToString() + elemento; celdaProcesada.Idmuestra = idmuestra; celdaProcesada.Elemento = elemento; if (!dicCeldaProcesada.ContainsKey(key)) { dicCeldaProcesada.Add(key, celdaProcesada); } else { dicCeldaProcesada[key] = celdaProcesada; } return(celdaProcesada); } else { return(null); } }
public CCeldaProcesada ProcesarMuestraControl(int idmuestra, string elemento, string value_celda) { if (dicControlValues.ContainsKey(elemento) && !value_celda.Contains("NULL")) { System.Drawing.Color colorError = System.Drawing.Color.NavajoWhite; CCeldaProcesada celdaProcesada = new CCeldaProcesada(); decimal value_celda_decimal = Convert.ToDecimal(value_celda); CControlValues controlValues = dicControlValues[elemento]; // procesar celda: idmuestra + elemento DataRow fila = dicFilasLeyes[idmuestra]; celdaProcesada.ColorCelda = Color.White; celdaProcesada.ValueCelda = value_celda; string nombreMuestra = fila["Muestra"].ToString(); string metodo = fila["Metodo"].ToString(); decimal factor = Convert.ToDecimal(fila["Factor"]); decimal dilucion2 = Convert.ToDecimal(fila["Dilucion"]); if (EsIPC(nombreMuestra)) // IPC { celdaProcesada.ValueCelda = "OK IPC"; if (!EstaEntre(value_celda_decimal, controlValues.IPC * 0.9M, controlValues.IPC * 1.1M)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out IPC"; } StringBuilder mensaje = new StringBuilder(); mensaje.Append("IPC de {0}: {1}"); mensaje.Append("\nIntervalo: {1} * 0.9 <= lectura <= {1} * 1.1"); mensaje.Append("\nIntervalo: {2} <= {4} <= {3}"); mensaje.Append("\nResultado: {5}"); string txt = string.Format( mensaje.ToString(), elemento, controlValues.IPC, controlValues.IPC * 0.9M, controlValues.IPC * 1.1M, value_celda, celdaProcesada.ValueCelda); dicToolTip.Add(idmuestra.ToString() + elemento, txt); } else if (EsLRB(nombreMuestra)) // LRB en (MT ó MD) { decimal MDL_or_IDL = metodo == "MT" ? controlValues.MDL : controlValues.IDL; celdaProcesada.ValueCelda = "OK LRB"; if (!(value_celda_decimal < MDL_or_IDL * 2.2M)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Cont LRB"; } } else if (EsLFB(nombreMuestra)) { int idbatch_muestra = queryFilasIteva.Single(c => c.Idmuestra == idmuestra).Idbatch; int idmuestra_lrb = queryFilasIteva.Single(c => c.Muestra == "LRB" && c.Idbatch == idbatch_muestra).Idmuestra; DataRow drLrb = dicFilasLecturas[idmuestra_lrb]; decimal lrb = Convert.ToDecimal(drLrb[elemento]); celdaProcesada.ValueCelda = "OK LFB"; if (!EstaEntre(Math.Abs(value_celda_decimal - lrb), controlValues.LFB * 0.85M, controlValues.LFB * 1.15M)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Cont LFB"; } } else if (EsDUP(nombreMuestra)) { // encontrar muestra original int idmuestra_orig = queryFilasIteva.Single(c => nombreMuestra.Contains(c.Muestra) && nombreMuestra != c.Muestra).Idmuestra; DataRow drOri = dicFilasLeyes[idmuestra_orig]; decimal value_orig = Convert.ToDecimal(drOri[elemento].ToString().Replace('<', ' ')); decimal MDL_or_IDL = metodo == "MT" ? controlValues.MDL : controlValues.IDL; celdaProcesada.ValueCelda = "OK Dup"; if (value_orig > MDL_or_IDL) { if (!(Math.Abs(value_orig - value_celda_decimal) < 0.15M * value_orig)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out Dup"; } } else { if (!(value_celda_decimal < 2.2M * controlValues.MDL)) { celdaProcesada.ColorCelda = colorError; celdaProcesada.ValueCelda = "Out Dup"; } } } // agregar/actualizar el diccionario string key = idmuestra.ToString() + elemento; celdaProcesada.Idmuestra = idmuestra; celdaProcesada.Elemento = elemento; if (!dicCeldaProcesada.ContainsKey(key)) { dicCeldaProcesada.Add(key, celdaProcesada); } else { dicCeldaProcesada[key] = celdaProcesada; } return(celdaProcesada); } else { return(null); } }