czwartek, 12 maja 2016

Pentaho formula - początek tygodnia

Pentaho jest produktem służącym do analizy danych i do raportowania. W skład pakietu wchodzi Report Designer - narzędzie do tworzenia raportów. Raporty mogą zawierać parametry. Na potrzeby jednego z raportów chciałem mieć parametry data od/data do domyślnie ustawione na od - początek tygodnia (poniedziałek) a do - dziś. Wyszła z tego dość skomplikowana formuła, którą zamieszczam poniżej.


Pentaho formula: Begginning of the week date (last monday)
=IF(DAY(TODAY()) - WEEKDAY(TODAY()) -2 > 0;DATE(YEAR(TODAY());MONTH(TODAY());DAY(TODAY())- WEEKDAY(TODAY()) + 3);IF (MONTH(TODAY()) > 1 ; DATE( YEAR(TODAY()); MONTH(TODAY()) -1 ; DAY(MONTHEND(DATE(YEAR(TODAY());MONTH(TODAY())-1;1)))-WEEKDAY(MONTHEND(DATE(YEAR(TODAY());MONTH(TODAY())-1;1) )) +3);DATE( YEAR(TODAY())-1; 12 ;  DAY(MONTHEND(DATE(YEAR(TODAY() -1 );12;1))) -WEEKDAY( MONTHEND(DATE(YEAR(TODAY()-1);12;1) )) +3)))

poniedziałek, 11 kwietnia 2016

Xamarin ListView z ViewCell

Chcę zrobić widok z listą obiektów definiowanych w XAMLu. Jednak po zdefiniowaniu kontrolek poszczególne wiersze zachodziły na siebie (rozmiar widoku wiersza jest większy niż rozmiar wiersza). Okazało się, że są na to dwie metody: Albo empirycznie ustalić rozmiar wiersza i ustawić właściwość RowHeight, albo ustawić (w ListView) właściwość HasUnevenRows na "True". To drugie rozwiązanie jest zasobożerne i pan Petzold w swojej książce je odradza. Mimo wszystko ja właśnie je wybrałem bo wydaje mi się bardziej eleganckie.

<ListView x:Name="ExpenseList" HasUnevenRows="True">
 <ListView.ItemTemplate> 
   <DataTemplate> 
      <ViewCell> 
       <ContentView> 
        <StackLayout VerticalOptions="StartAndExpand"> 
            <StackLayout Orientation="Horizontal">
              <Label>Amount</Label>
              <Label Text="{Binding Amount}" HorizontalOptions="FillAndExpand" />
            </StackLayout> 
            <StackLayout Orientation="Horizontal">
               <Label>Description</Label>
               <Label Text="{Binding Description}" />
            </StackLayout> 
            <StackLayout Orientation="Horizontal">
               <Label>Transaction type</Label>
               <Label Text="{Binding TypeOfExpense}" />
            </StackLayout> 
            <StackLayout Orientation="Horizontal">
               <Label>Date</Label>
               <Label Text="{Binding Date}" HorizontalOptions="FillAndExpand"/>
            </StackLayout> 
        </StackLayout> 
     </ContentView> 
   </ViewCell> 
  </DataTemplate> 
 </ListView.ItemTemplate> 
</ListView>