Solucionado TimePickers

ConfiguracionSimplificada
Elena 2021-07-21 00:19:07 +02:00
parent 34108e7ec3
commit 9327b6cd7e
3 changed files with 75 additions and 25 deletions

View File

@ -24,7 +24,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Carga y Descarga" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Carga y Descarga" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=timeCargDesc, Mode = TwoWay}" Margin="9,8,14,7"/> <xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeCargDesc, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid> </Grid>
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -32,7 +32,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Desplazamiento ini/fin" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Desplazamiento ini/fin" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=timeDespIniFin, Mode = TwoWay}" Margin="9,8,14,7"/> <xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeDespIniFin, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid> </Grid>
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -40,7 +40,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Hora inicio jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Hora inicio jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=timeIniJornada, Mode = TwoWay}" Margin="9,8,14,7"/> <xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeIniJornada, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid> </Grid>
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -48,7 +48,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Reducción por tráfico (%)" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Reducción por tráfico (%)" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<TextBox Grid.Column="1" Height="20" Margin="10,8,32,7" PreviewTextInput="TextBox_PreviewTextInput" Text="{Binding Path=TextPercentTrafico, Mode = TwoWay}" TextAlignment="Right" MaxLength="3"/> <TextBox Grid.Column="1" Height="20" Margin="10,8,15,7" PreviewTextInput="TextBox_PreviewTextInput" Text="{Binding Path=TextPercentTrafico, Mode = TwoWay}" TextAlignment="Right" MaxLength="3"/>
</Grid> </Grid>
<Label Margin="15,5,0,0" Content="Tiempos del convenio" FontWeight="DemiBold"/> <Label Margin="15,5,0,0" Content="Tiempos del convenio" FontWeight="DemiBold"/>
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
@ -57,7 +57,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=timeJornadaConv, Mode = TwoWay}" Margin="9,8,14,7"/> <xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeJornadaConv, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid> </Grid>
<Grid Margin="0,0,0,0"> <Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -65,7 +65,7 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Content="Descanso personal" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/> <Label Content="Descanso personal" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=timeDescPers, Mode = TwoWay}" Margin="9,8,14,7"/> <xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeDescPers, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</UserControl> </UserControl>

View File

@ -39,26 +39,38 @@ namespace OliviaAddInPro
//en minutos //en minutos
private int timeCargDesc; private int timeCargDesc;
public string TimeCargDesc public DateTime TimeCargDesc
{ {
get { return PanelGlobal.Hm_int2str(timeCargDesc); } get { return PanelGlobal.Hm_int2DateTime(timeCargDesc); }
set { base.SetProperty(ref timeCargDesc, PanelGlobal.Hm_str2int(value), () => TimeCargDesc); } set
{
timeCargDesc = PanelGlobal.Hm_DateTime2int(value);
base.NotifyPropertyChanged("TimeCargDesc");
}
} }
//en minutos //en minutos
private int timeDespIniFin; private int timeDespIniFin;
public int TimeDespIniFin public DateTime TimeDespIniFin
{ {
get { return timeDespIniFin; } get { return PanelGlobal.Hm_int2DateTime(timeDespIniFin); }
set { base.SetProperty(ref timeDespIniFin, value, () => TimeDespIniFin); } set
{
timeDespIniFin = PanelGlobal.Hm_DateTime2int(value);
base.NotifyPropertyChanged("TimeDespIniFin");
}
} }
//en minutos desde las 00 horas //en minutos desde las 00 horas
private int timeIniJornada; private int timeIniJornada;
public int TimeIniJornada public DateTime TimeIniJornada
{ {
get { return timeIniJornada; } get { return PanelGlobal.Hm_int2DateTime(timeIniJornada); }
set { base.SetProperty(ref timeIniJornada, value, () => TimeIniJornada); } set
{
timeIniJornada = PanelGlobal.Hm_DateTime2int(value);
base.NotifyPropertyChanged("TimeIniJornada");
}
} }
//Tráfico, de 0 a 100 //Tráfico, de 0 a 100
@ -71,18 +83,26 @@ namespace OliviaAddInPro
//en minutos desde las 00 horas //en minutos desde las 00 horas
private int timeJornadaConv; private int timeJornadaConv;
public int TimeJornadaConv public DateTime TimeJornadaConv
{ {
get { return timeJornadaConv; } get { return PanelGlobal.Hm_int2DateTime(timeJornadaConv); }
set { base.SetProperty(ref timeJornadaConv, value, () => TimeJornadaConv); } set
{
timeJornadaConv = PanelGlobal.Hm_DateTime2int(value);
base.NotifyPropertyChanged("TimeJornadaConv");
}
} }
//en minutos //en minutos
private int timeDescPers; private int timeDescPers;
public int TimeDescPers public DateTime TimeDescPers
{ {
get { return timeDescPers; } get { return PanelGlobal.Hm_int2DateTime(timeDescPers); }
set { base.SetProperty(ref timeDescPers, value, () => TimeDescPers); } set
{
timeDescPers = PanelGlobal.Hm_DateTime2int(value);
base.NotifyPropertyChanged("TimeDescPers");
}
} }
#endregion Properties #endregion Properties

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace OliviaAddInPro namespace OliviaAddInPro
{ {
@ -30,20 +31,49 @@ namespace OliviaAddInPro
/** /**
* Dado un tiempo en minutos devuelve las horas modulo 60 y los minutos restantes * Dado un tiempo en minutos devuelve las horas modulo 60 y los minutos restantes
*/ */
public static string Hm_int2str(double t) /*public static string Hm_int2str(double t)
{ {
int[] hm = { 0, 0 }; int[] hm = { 0, 0 };
hm[0] = (int)(t / 60); hm[0] = (int)(t / 60);
hm[1] = (int)(t - hm[0] * 60); hm[1] = (int)(t - hm[0] * 60);
return String.Format("%dd:%dd",hm[0], hm[1]); return String.Format("%dd h %dd m", hm[0], hm[1]);
} }
public static int Hm_str2int(string hm) public static int Hm_str2int(string hm)
{ {
int t=0; int h = 0;
int m = 0;
int t = 0;
Match match = Regex.Match(hm, "^([0-9]+).([0-9]+).([0-9]+) ([0-9]+):([0-9]+):([0-9]+)");
if (match.Success)
{
h = int.Parse(match.Groups[4].Value);
m = int.Parse(match.Groups[5].Value);
t = h * 60 + m;
}
return t;
}*/
public static DateTime Hm_int2DateTime(double t)
{
int[] hm = { 0, 0 };
hm[0] = (int)(t / 60);
hm[1] = (int)(t - hm[0] * 60);
DateTime dt=new DateTime(2021, 01, 01, hm[0], hm[1], 0);
return dt;
}
public static int Hm_DateTime2int(DateTime dt)
{
int h = 0;
int m = 0;
int t = 0;
h = dt.Hour;
m = dt.Minute;
t = h * 60 + m;
return t; return t;
} }
} }