2 using System.Collections.Generic;
3 using System.ComponentModel;
9 using System.Text.RegularExpressions;
15 namespace sage.ew.formul.Forms
58 protected Dictionary<TypeFilter, IEwFiltro> _oListFilters =
new Dictionary<TypeFilter, IEwFiltro>();
65 protected bool _lFiltroArticulosPresente =
false;
69 protected bool _lFiltroFamiliaPresente =
false;
73 protected bool _lFiltroSubfamiliaPresente =
false;
77 protected bool _lFiltroMarcaPresente =
false;
81 protected bool _lFiltroEjercicioPresente =
false;
85 protected bool _lFiltroFechaPresente =
false;
89 protected bool _lFiltroArticulosUnico =
false;
94 protected Dictionary<string, object> _dOpciones =
new Dictionary<string, object>();
98 public Dictionary<string, object> _Opciones
100 get {
return _dOpciones; }
101 set { _dOpciones = value; }
107 protected SortedList<int, String> _dImportanciaFiltros =
new SortedList<int, String>();
111 protected Dictionary<string, object> _dFiltros =
new Dictionary<string, object>();
115 public Dictionary<string, object> _Filtros
117 get {
return _dFiltros; }
118 set { _dFiltros = value; }
129 public DataRow _PropiedadesListado
131 get {
return _drPropiedadesListado; }
132 set { _drPropiedadesListado = value; }
143 public DataTable _Resultados = null;
148 private DataTable _PesosFiltros
152 if (this._lPesosFiltros == null)
154 _lPesosFiltros =
new DataTable();
155 string lcSql =
"SELECT peso, LOWER(clase) as clase FROM " + DB.SQLDatabase(
"COMUNES",
"FILTROS");
156 DB.SQLExec(lcSql, ref this._lPesosFiltros);
158 return this._lPesosFiltros;
161 private DataTable _lPesosFiltros = null;
165 #region CONSTRUCTORES 172 InitializeComponent();
175 #endregion CONSTRUCTORES 177 #region METODOS PRIVADOS 208 DataRow[] ldRows = null;
209 if(!
string.IsNullOrWhiteSpace(tcNombreOriginal) && tcNombreOriginal !=
"txtpersonalizado")
210 ldRows = this._PesosFiltros.Select(
"clase like " + DB.SQLString(
"%" + tcNombreOriginal));
211 if (ldRows == null || ldRows.Length <= 0)
212 ldRows = this._PesosFiltros.Select(
"clase like " + DB.SQLString(
"%" + toControl.GetType().Name));
214 switch (toControl.GetType().Name)
216 case "txtEjercicioDesdeHasta":
217 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 50;
220 case "txtFechaDesdeHasta":
221 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 100;
224 case "txtSerieDesdeHasta":
225 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 200;
228 case "txtClienteDesdeHasta":
229 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 300;
232 case "txtCPostalDesdeHasta":
233 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 400;
236 case "txtVendedorDesdeHasta":
237 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 500;
240 case "txtOperariosDesdeHasta":
241 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 600;
244 case "txtAlmacenDesdeHasta":
245 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 700;
248 case "txtObraDesdeHasta":
249 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 800;
252 case "txtFPagoDesdeHasta":
253 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 900;
256 case "txtFamiliaDesdeHasta":
257 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1000;
260 case "txtSubfamDesdeHasta":
261 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1100;
264 case "txtMarcaDesdeHasta":
265 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1200;
268 case "txtArticuloDesdeHasta":
269 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1300;
272 case "txtSerieArtDesdeHasta":
273 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1400;
275 case "txtTipoServDesdeHasta":
276 case "txtLoteDesdeHasta":
277 case "txtFiltroLoteMinMax":
278 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1500;
281 case "txtCaducidadDesdeHasta":
282 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1550;
285 case "txtRutaDesdeHasta":
286 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1600;
289 case "txtTipoFacturacionDesdeHasta":
290 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1700;
293 case "txtImporteMinMax":
294 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 1800;
298 if (ldRows.Length > 0) lnPeso = Convert.ToInt32(ldRows[0][
"peso"].ToString());
else lnPeso = 9900;
304 bool llPesoLibre =
false;
307 if (_dImportanciaFiltros.ContainsKey(lnPeso))
311 else llPesoLibre =
true;
327 if (_Filtros.ContainsKey(tcNombre))
329 tcNombre = tcNombre + _Filtros.Count(x => x.Key.Contains(tcNombre) ==
true).ToString();
335 tcNombre = tcNombre.Normalize(NormalizationForm.FormD);
336 Regex reg =
new Regex(
"[^a-zA-Z0-9 ]");
337 tcNombre = reg.Replace(tcNombre,
"");
338 tcNombre = tcNombre.Replace(
" ",
"");
342 if (tcNombre.TrimEnd().Length > 20) tcNombre = tcNombre.Substring(0, 20);
344 if (_Opciones != null && _Opciones.ContainsKey(tcNombre))
347 while (_Opciones.Count(x => x.Key == tcNombre + lnCont) > 0) lnCont++;
348 tcNombre = tcNombre + lnCont;
384 #region Grupo Articulos 388 if (_lFiltroArticulosPresente && !_lFiltroArticulosUnico)
390 string lcNombreFiltro =
string.Empty;
392 if (!_lFiltroFamiliaPresente)
396 lcNombreFiltro = loControl.Name = _ObtenerNombreControl(
"txtFamiliaDesdeHasta");
397 _dImportanciaFiltros.Add(_ObtenerPesoControl(loControl,
"txtfamilias"), lcNombreFiltro);
398 _dFiltros.Add(lcNombreFiltro, loControl);
407 _AddControlType(loControl,
TypeFilter.Familia);
410 if (!_lFiltroSubfamiliaPresente)
414 lcNombreFiltro = loControl.Name = _ObtenerNombreControl(
"txtSubfamDesdeHasta");
415 _dImportanciaFiltros.Add(_ObtenerPesoControl(loControl,
"txtsubfamilias"), lcNombreFiltro);
416 _dFiltros.Add(lcNombreFiltro, loControl);
425 _AddControlType(loControl,
TypeFilter.SubFamilia);
428 if (!_lFiltroMarcaPresente)
432 lcNombreFiltro = loControl.Name = _ObtenerNombreControl(
"txtMarcaDesdeHasta");
433 _dImportanciaFiltros.Add(_ObtenerPesoControl(loControl,
"txtmarcas"), lcNombreFiltro);
434 _dFiltros.Add(lcNombreFiltro, loControl);
446 _oListFilters[
TypeFilter.Articulo]._AgrupacionFiltro = _Listado._AgrupacionFiltroArticulo;
448 List<IEwFiltro> loList = (from loFiltro in _oListFilters
450 select loFiltro.Value).ToList();
452 _oListFilters[
TypeFilter.Articulo]._ControlesAgrupacionFiltros = loList;
453 _oListFilters[
TypeFilter.Articulo]._AfterOpenCloseFilters += (o, e) => { _ResizeFormToScreenSize(); };
456 #endregion Grupo Articulos 458 #region Grupo Ejercicio 463 if (_lFiltroEjercicioPresente && _lFiltroFechaPresente)
468 #endregion Grupo Ejercicio 486 if (!_oListFilters.ContainsKey(toType)) _oListFilters.Add(toType, loControl);
495 if (!
string.IsNullOrWhiteSpace(this._Listado._Error_Message))
497 tcError += (!
string.IsNullOrWhiteSpace(tcError) ?
" " :
"") + _Listado._Error_Message;
498 _Listado._Error_Message =
string.Empty;
500 _MessageBox(tcError, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
509 string lcNombre =
"";
510 if (!
string.IsNullOrWhiteSpace(_PropiedadesListado[
"nombre"].ToString()))
512 lcNombre = ((string)_PropiedadesListado[
"nombre"]);
514 toLabelTitulo.Text = lcNombre;
517 if (!
string.IsNullOrWhiteSpace(_PropiedadesListado[
"Tipo"].ToString()))
519 string tituloFormulario =
"";
520 switch (((Int32)_PropiedadesListado[
"Tipo"]))
523 string lcOperativo = (_Listado != null && _Listado._ListadoOperativo ?
" operativo " :
" ");
524 tituloFormulario = $
"Listado{lcOperativo}de {lcNombre}";
527 tituloFormulario =
"Proceso de " + lcNombre;
530 tituloFormulario =
"Gráfica de " + lcNombre;
534 tituloFormulario = toLabelTitulo.Text;
537 Text = tituloFormulario;
541 #endregion METODOS PRIVADOS 543 #region METODOS PUBLICOS 553 if (this._Listado != null)
556 if (this._Listado._Valid())
559 if (!
string.IsNullOrWhiteSpace(this._Listado._Info_Message))
561 this._MessageBox(this._Listado._Info_Message, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
562 this._Listado._Info_Message =
"";
569 if (!
string.IsNullOrWhiteSpace(this._Listado._Error_Message))
571 this._MessageBox(this._Listado._Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.Abort);
572 this._Listado._Error_Message =
"";
591 #endregion METODOS PUBLICOS Interficie para los controles tipo filtro
Control para filtros Desde - Hasta
Control para filtros de fechas
Clase para el filtradod de ejercicios
Color _ColorActivo
Defino los colores activos
virtual bool _AnchoFijoFiltros
Establece los filtros Desde y Hasta en posiciones fijas independientes del tamaño o variables en func...
Interficie de listados que todo listado de Eurowin TPV deberá cumplir para toda clase que se defina c...
Control para filtros Desde - Hasta
Control para filtros Desde - Hasta
Color _ColorFuenteActivo
Defino los colores de Fuente activos
Color _ColorBase
Defino los colores normal
Color _ColorFuenteBase
Defino los colores de fuente normal
Plantilla para la creación de controles de tipo Filtro