13 using System.Collections.Generic;
17 using System.Windows.Forms;
27 protected List<String> _oReportColumns = null;
29 protected bool _UsaSeries = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_series"));
30 protected bool _TrabajaConObras = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_obra"));
48 public override Dictionary<string, string> _NavigateButtons
52 return new Dictionary<string, string>() { {
"servicio",
"Ver Servicio" } };
56 base._NavigateButtons = value;
64 return _oTipoServicio;
68 _oTipoServicio = value;
80 if (_oCamposAdicionales == null)
85 return _oCamposAdicionales;
91 List<IInfoAdicionalListados> loInfo =
new List<IInfoAdicionalListados>();
93 loInfo.Add(_CamposAdicionales);
98 protected override void _OnLoadInfoAdicional(Dictionary<string, object> toFiltros, Dictionary<string, object> toOpciones)
100 if (toFiltros.ContainsKey(
"txtTipoServDesdeHasta") && toFiltros[
"txtTipoServDesdeHasta"] is
txtFiltroBase)
107 public override void _SetDefaultValues(Dictionary<string, object> toControlsFiltros = null, Dictionary<string, object> toControlsOpciones = null)
109 base._SetDefaultValues(toControlsFiltros, toControlsOpciones);
113 if (toControlsOpciones.ContainsKey(
"cmbSiNoTodoscombo") && toControlsOpciones[
"cmbSiNoTodoscombo"] is
ewcombobox)
115 loCombo = (
ewcombobox)toControlsOpciones[
"cmbSiNoTodoscombo"];
116 loCombo.SelectedIndex = loCombo.FindString(
"Todos");
119 if (toControlsFiltros.ContainsKey(
"txtTipoServDesdeHasta") && toControlsFiltros[
"txtTipoServDesdeHasta"] is
txtFiltroBase)
121 if (toControlsOpciones.ContainsKey(
"btOpcionesDefectoCamposAdic"))
124 btCamposAdicionales.
_Negocio = _CamposAdicionales;
125 btCamposAdicionales.Text =
"Filtro información adicional";
126 btCamposAdicionales.
_Tooltip =
"Filtrar por los campos adicionales del tipo de servicio";
130 _oFiltroTipo = (
txtFiltroBase)toControlsFiltros[
"txtTipoServDesdeHasta"];
136 if (toControlsFiltros.ContainsKey(
"txtEstServ") && toControlsFiltros[
"txtEstServ"] is
txtFiltroBase)
138 loTxtFiltroBase = (
txtFiltroBase)toControlsFiltros[
"txtEstServ"];
139 loTxtFiltroBase._VariableFiltro =
"estserv";
142 if (toControlsFiltros.ContainsKey(
"txtGrupTipGas") && toControlsFiltros[
"txtGrupTipGas"] is
txtFiltroBase)
144 loTxtFiltroBase = (
txtFiltroBase)toControlsFiltros[
"txtGrupTipGas"];
145 loTxtFiltroBase._VariableFiltro =
"grupogastos";
148 if (toControlsFiltros.ContainsKey(
"txtTipoGastos") && toControlsFiltros[
"txtTipoGastos"] is
txtFiltroBase)
150 loTxtFiltroBase = (
txtFiltroBase)toControlsFiltros[
"txtTipoGastos"];
151 loTxtFiltroBase._VariableFiltro =
"tipogasto";
154 if (toControlsFiltros.ContainsKey(
"txtTecnicos") && toControlsFiltros[
"txtTecnicos"] is
txtFiltroBase)
156 loTxtFiltroBase = (
txtFiltroBase)toControlsFiltros[
"txtTecnicos"];
157 loTxtFiltroBase._VariableFiltro =
"tec_in";
160 if (toControlsFiltros.ContainsKey(
"txtTecnicos1") && toControlsFiltros[
"txtTecnicos1"] is
txtFiltroBase)
162 loTxtFiltroBase = (
txtFiltroBase)toControlsFiltros[
"txtTecnicos1"];
163 loTxtFiltroBase._VariableFiltro =
"tec_out";
167 _HideFilters(
new List<string>() {
"txtArticuloDesdeHasta",
"txtMarcaDesdeHasta",
"txtFamiliaDesdeHasta",
"txtSubfamDesdeHasta" }, toControlsFiltros);
170 private void _HideFilters(List<String> toListNames, Dictionary<string, object> toControlsFiltros = null)
174 if (toControlsFiltros is Dictionary<string, object>)
176 foreach (String lcName
in toListNames)
178 if (toControlsFiltros.ContainsKey(lcName) && toControlsFiltros[lcName] is
txtFiltroBase)
181 loTxtFiltroBase.Visible =
false;
187 private void _oFiltroHasta__Codigo_Cambiado()
189 _CamposAdicionales._TipoServicio = _oFiltroTipo._Hasta;
193 private void btCamposAdicionales_OnClickInvalidate(
ewbutton toButton, ref
bool tlCancel)
195 if (String.IsNullOrEmpty(_oFiltroTipo._Desde.Trim()))
197 FUNCTIONS._MessageBox(
"Para poder filtrar por la información adicional, debe indicar el tipo de servicio.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
209 return base._Valid();
215 if (tldTranslate == null) tldTranslate =
new Dictionary<string, string>();
217 foreach (var filtroCampoAdicional
in _oCamposAdicionales.
GetFiltros())
219 String lcCodigoColumna = filtroCampoAdicional.ObtenerCodigoParaColumna();
220 String lcNombreColumna = filtroCampoAdicional.ObtenerDescripcionParaColumna();
222 if (!tldTranslate.ContainsKey(lcCodigoColumna)) tldTranslate.Add(lcCodigoColumna, lcNombreColumna);
225 base._SetColumnCaptions(tldTranslate);
231 if (!String.IsNullOrEmpty(tcCodigoTipoServicio))
233 _CamposAdicionales._WhereAdicional = tcSqlWhere;
234 _CamposAdicionales._TipoServicio = tcCodigoTipoServicio;
236 toDt = _CamposAdicionales.IncorporarInformacionDeCamposAdicionales(toDt);
238 List<String> loList = _CamposAdicionales.GetCodigosColumnas().ToList();
240 if (_ReportColumns.Count > 0)
242 loList.ForEach(f => _ReportColumns.Add(f));
246 foreach (DataColumn loColumn
in toDt.Columns)
248 if(!loList.Contains(loColumn.ColumnName) && !loColumn.ExtendedProperties.ContainsKey(
"NoBuild"))
250 loColumn.ExtendedProperties.Add(
"NoBuild",
true);
264 public override void _Navigate(String tcKeyNavigate, DataRow trRow)
267 String lcEmpresa, lcCodigo;
269 if (trRow is DataRow)
271 lcEmpresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
273 switch (tcKeyNavigate)
277 lcCodigo = Convert.ToString(trRow[
"cliente"]).TrimEnd();
278 if (!String.IsNullOrWhiteSpace(lcCodigo)) _Navegar(
Pantalla.Clientes,
new List<string>() { lcCodigo });
283 lcCodigo = Convert.ToString(trRow[
"tiposerv"]).Trim();
285 if (!String.IsNullOrWhiteSpace(lcCodigo))
288 loTipoServicio.
_Show();
294 if (!String.IsNullOrEmpty(Convert.ToString(trRow[
"numero"]).Trim()))
297 loServicio.
_Empresa = Convert.ToString(trRow[
"empresa"]).TrimEnd();
298 loServicio.
_Ejercicio = Convert.ToString(trRow[
"ejercicio"]).TrimEnd();
299 loServicio.
_Letra = Convert.ToString(trRow[
"letra"]).TrimEnd();
300 loServicio.
_Numero = Convert.ToString(trRow[
"numero"]).TrimEnd();
307 lcCodigo = Convert.ToString(trRow[
"albaran"]).Trim();
308 if (!String.IsNullOrEmpty(lcCodigo)) _Navegar(
Pantalla.AlbaVen,
new List<String>() { Convert.ToString(trRow[
"empresa"]), Convert.ToString(trRow[
"alb_let"]), lcCodigo, Convert.ToString(trRow[
"alb_ejer"]) });
318 DataTable loDt =
new DataTable();
319 DataTable loDtTmp =
new DataTable();
320 String lcSql, lcCodigoTipoServicio;
322 _TipoServicio = null;
323 _oReportColumns = null;
325 lcCodigoTipoServicio = (_Filtros.ContainsKey(
"tiposervUnico") && !String.IsNullOrEmpty(Convert.ToString(_Filtros[
"tiposervUnico"]).Trim())) ? Convert.ToString(_Filtros[
"tiposervUnico"]).Trim() :
"";
329 DB.SQLExec(lcSql, ref loDt);
331 loDt = _BeforeInfoAdicional(loDt);
335 loDt = _TrataInfoAdicional(loDt, lcCodigoTipoServicio,
"");
338 _CamposAdicionales._TipoServicio = lcCodigoTipoServicio;
345 if(tldTranslate == null) tldTranslate =
new Dictionary<string, int>();
347 if(!tldTranslate.ContainsKey(
"servicio")) tldTranslate.Add(
"servicio", 80);
348 if (!tldTranslate.ContainsKey(
"estadoserv")) tldTranslate.Add(
"estadoserv", 60);
349 if (!tldTranslate.ContainsKey(
"nombreest")) tldTranslate.Add(
"nombreest", 200);
350 if (!tldTranslate.ContainsKey(
"fecha")) tldTranslate.Add(
"fecha", 80);
351 if (!tldTranslate.ContainsKey(
"cliente")) tldTranslate.Add(
"cliente", 80);
352 if (!tldTranslate.ContainsKey(
"nombre")) tldTranslate.Add(
"nombre", 200);
353 if (!tldTranslate.ContainsKey(
"direccion")) tldTranslate.Add(
"direccion", 200);
354 if (!tldTranslate.ContainsKey(
"poblacion")) tldTranslate.Add(
"poblacion", 100);
355 if (!tldTranslate.ContainsKey(
"provincia")) tldTranslate.Add(
"provincia", 100);
356 if (!tldTranslate.ContainsKey(
"codpost")) tldTranslate.Add(
"codpost", 60);
357 if (!tldTranslate.ContainsKey(
"telefono")) tldTranslate.Add(
"telefono", 60);
358 if (!tldTranslate.ContainsKey(
"problemacorto")) tldTranslate.Add(
"problemacorto", 200);
359 if (!tldTranslate.ContainsKey(
"fech_previ")) tldTranslate.Add(
"fech_previ", 80);
360 if (!tldTranslate.ContainsKey(
"tiposerv")) tldTranslate.Add(
"tiposerv", 60);
361 if (!tldTranslate.ContainsKey(
"nombretipo")) tldTranslate.Add(
"nombretipo", 200);
363 if (_TrabajaConObras)
365 if (!tldTranslate.ContainsKey(
"obra")) tldTranslate.Add(
"obra", 60);
366 if (!tldTranslate.ContainsKey(
"nombreobra")) tldTranslate.Add(
"nombreobra", 200);
369 base._SetColumnWidth(tldTranslate);
374 String lcFiltro =
"", lcValue;
376 lcValue = _Opcion_String(tcFiltro).Trim();
378 if(!String.IsNullOrWhiteSpace(lcValue))
380 lcValue = lcValue.Replace(
" ",
"%").Replace(
"'",
"''");
381 lcFiltro = String.Format(
" AND {1} LIKE '%{0}%' ", lcValue, tcCampo);
391 foreach (DataColumn loColum
in tdtDataTableListado.Columns)
393 lcTitulo = loColum.Caption;
395 if (lcTitulo.Length > 0)
398 if (lcTitulo.Substring(0, 1) ==
"*")
401 lcTitulo = lcTitulo.Substring(1).ToUpper();
403 else if (lcTitulo.Substring(0, 1) ==
"@")
406 lcTitulo = lcTitulo.Substring(1);
410 lcTitulo = FUNCTIONS._Proper(lcTitulo);
414 loColum.Caption = lcTitulo;
425 public abstract string _GetSQL();
Plantilla para la creación de controles de tipo Filtro
override void _Show()
_show
Clase sage.ew.objetos.ewcombobox
Opciones defecto campos adicionales
override bool _Valid()
Método que se utiliza para validar que los filtros e opciones son correctas Este método actualizará l...
virtual DataTable _BeforeInfoAdicional(DataTable toDt)
AgrupacionFiltro
Indica si los filtros de marca/familia/subfamila/articulo se mostrará separados o se creará un agrupa...
override bool _PrintPersonalize(DataTable tdtDataTableListado)
PE-89372: Método para poder personalizar la impresión del listado pasando otro DataTable y realizando...
override void _Navigate(String tcKeyNavigate, DataRow trRow)
Añadir navegación al asiento
new string _Empresa
_Empresa
virtual void _Focus(Boolean tbHasta=false)
Establece el foco en uno de los ewtxtcodlabels del control
virtual void _Show()
Muestra el formulario asiociado
override DataTable _DataTable()
Método que nos devuelve el resultado del datatable. A partir de las propiedades _Filtros, _Opciones y _Ejercicios se obtendrá el DataTable resultante del listado En caso de error deberá actualizar la propiedad _Error_Message y el DataTable resultante será NULO
override void _SetColumnCaptions(Dictionary< string, string > tldTranslate=null)
Responsable de la traducción del DataTable de los resultados. Contiene un dicionario con las principa...
override List< IInfoAdicionalListados > _GetInformacionAdicional()
Devuelve la el listado de objets que tiene información adicional
override void _OnLoadInfoAdicional(Dictionary< string, object > toFiltros, Dictionary< string, object > toOpciones)
Se ejecuta al cargar información adicional
DataTable _TrataInfoAdicional(DataTable toDt, String tcCodigoTipoServicio, String tcSqlWhere)
override void _SetDefaultValues(Dictionary< string, object > toControlsFiltros=null, Dictionary< string, object > toControlsOpciones=null)
Método que se utiliza para establecer los valores por defecto de los controles de los listados...
Clase base para el módulo services
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
Pantalla
Tipos de pantalla
override IEnumerable< FiltroCampoAdicional > GetFiltros()
Obtiene la colección de filtros
override void _SetColumnWidth(Dictionary< string, int > tldTranslate=null)
Especifica el tamaño que tendrá la columan en Pixels para que en el grid no todas las columnas tengan...
new string _Ejercicio
_Ejercicio
string _FiltroText(String tcFiltro, String tcCampo)
CamposAdicionalesParaListados _Negocio
Negocio de campos adicionales (clase base)