buttarelli
24-06-2004, 14:50
Ciao a tutti!
Ho un "problema" con una maledetta funzione che continua a generare un maledetto warning "Return value of function TsdmTransiti.AggiornaDesTransiti might be undefined".
Riporto di seguito la funzione completa.
Ringrazio anticipatamente tutti coloro che mi saranno d'aiuto per risolvere questo fastidioso inconveniente.
Ciao
////////////////////////////////////////////////////////////////////////////////
function TsdmTransiti.AggiornaDesTransiti(const AIdTransiti: String = ''): String;
////////////////////////////////////////////////////////////////////////////////
var
Ora1, Ora2, Ora3, Ora4, Ora5, Ora6, Ora7, Ora8, Ora9, Ora10, Ora11,
Ora12, Ora13, Ora14, Ora15, Ora16, Ora17, Ora18, Ora19, Ora20: String;
OraPausa, ElencoOre, DescrCausale, DesTransiti: String;
Tipo1, Tipo2, Tipo3, Tipo4, Tipo5, Tipo6, Tipo7, Tipo8, Tipo9, Tipo10, Tipo11,
Tipo12, Tipo13, Tipo14, Tipo15, Tipo16, Tipo17, Tipo18, Tipo19, Tipo20: String;
OreEffettive: TStringList;
I: Integer;
begin
Result := '';
DesTransiti := '';
OreEffettive := TStringList.Create;
try
with quArchTransiti do
begin
Close;
Params.ParamByName( 'ID_TRANSITI' ).AsString := AIdTransiti;
Open;
First;
if FieldByName( 'GIORNATA_ORE' ).AsString = 'G' then begin
DescrCausale := Trim( FieldByName( 'DESCRIZIONE' ).AsString );
DesTransiti := DescrCausale;
end;
Tipo1 := UpperCase( Trim( FieldByName( 'WK_TIPO1' ).AsString ) );
Tipo2 := UpperCase( Trim( FieldByName( 'WK_TIPO2' ).AsString ) );
Tipo3 := UpperCase( Trim( FieldByName( 'WK_TIPO3' ).AsString ) );
Tipo4 := UpperCase( Trim( FieldByName( 'WK_TIPO4' ).AsString ) );
Tipo5 := UpperCase( Trim( FieldByName( 'WK_TIPO5' ).AsString ) );
Tipo6 := UpperCase( Trim( FieldByName( 'WK_TIPO6' ).AsString ) );
Tipo7 := UpperCase( Trim( FieldByName( 'WK_TIPO7' ).AsString ) );
Tipo8 := UpperCase( Trim( FieldByName( 'WK_TIPO8' ).AsString ) );
Tipo9 := UpperCase( Trim( FieldByName( 'WK_TIPO9' ).AsString ) );
Tipo10 := UpperCase( Trim( FieldByName( 'WK_TIPO10' ).AsString ) );
Tipo11 := UpperCase( Trim( FieldByName( 'WK_TIPO11' ).AsString ) );
Tipo12 := UpperCase( Trim( FieldByName( 'WK_TIPO12' ).AsString ) );
Tipo13 := UpperCase( Trim( FieldByName( 'WK_TIPO13' ).AsString ) );
Tipo14 := UpperCase( Trim( FieldByName( 'WK_TIPO14' ).AsString ) );
Tipo15 := UpperCase( Trim( FieldByName( 'WK_TIPO15' ).AsString ) );
Tipo16 := UpperCase( Trim( FieldByName( 'WK_TIPO16' ).AsString ) );
Tipo17 := UpperCase( Trim( FieldByName( 'WK_TIPO17' ).AsString ) );
Tipo18 := UpperCase( Trim( FieldByName( 'WK_TIPO18' ).AsString ) );
Tipo19 := UpperCase( Trim( FieldByName( 'WK_TIPO19' ).AsString ) );
Tipo20 := UpperCase( Trim( FieldByName( 'WK_TIPO20' ).AsString ) );
if FieldByName( 'ORA1_EFF' ).AsString <> '' then
Ora1 := FormatDateTime( 'hh:nn', FieldByName( 'ORA1_EFF' ).AsDateTime )
else
Ora1 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA1' ).AsDateTime );
if FieldByName( 'ORA2_EFF' ).AsString <> '' then
Ora2 := FormatDateTime( 'hh:nn', FieldByName( 'ORA2_EFF' ).AsDateTime )
else
Ora2 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA2' ).AsDateTime );
if FieldByName( 'ORA3_EFF' ).AsString <> '' then
Ora3 := FormatDateTime( 'hh:nn', FieldByName( 'ORA3_EFF' ).AsDateTime )
else
Ora3 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA3' ).AsDateTime );
if FieldByName( 'ORA4_EFF' ).AsString <> '' then
Ora4 := FormatDateTime( 'hh:nn', FieldByName( 'ORA4_EFF' ).AsDateTime )
else
Ora4 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA4' ).AsDateTime );
if FieldByName( 'ORA5_EFF' ).AsString <> '' then
Ora5 := FormatDateTime( 'hh:nn', FieldByName( 'ORA5_EFF' ).AsDateTime )
else
Ora5 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA5' ).AsDateTime );
if FieldByName( 'ORA6_EFF' ).AsString <> '' then
Ora6 := FormatDateTime( 'hh:nn', FieldByName( 'ORA6_EFF' ).AsDateTime )
else
Ora6 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA6' ).AsDateTime );
if FieldByName( 'ORA7_EFF' ).AsString <> '' then
Ora7 := FormatDateTime( 'hh:nn', FieldByName( 'ORA7_EFF' ).AsDateTime )
else
Ora7 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA7' ).AsDateTime );
if FieldByName( 'ORA8_EFF' ).AsString <> '' then
Ora8 := FormatDateTime( 'hh:nn', FieldByName( 'ORA8_EFF' ).AsDateTime )
else
Ora8 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA8' ).AsDateTime );
if FieldByName( 'ORA9_EFF' ).AsString <> '' then
Ora9 := FormatDateTime( 'hh:nn', FieldByName( 'ORA9_EFF' ).AsDateTime )
else
Ora9 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA9' ).AsDateTime );
if FieldByName( 'ORA10_EFF' ).AsString <> '' then
Ora10 := FormatDateTime( 'hh:nn', FieldByName( 'ORA10_EFF' ).AsDateTime )
else
Ora10 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA10' ).AsDateTime );
if FieldByName( 'ORA11_EFF' ).AsString <> '' then
Ora11 := FormatDateTime( 'hh:nn', FieldByName( 'ORA11_EFF' ).AsDateTime )
else
Ora11 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA11' ).AsDateTime );
if FieldByName( 'ORA12_EFF' ).AsString <> '' then
Ora12 := FormatDateTime( 'hh:nn', FieldByName( 'ORA12_EFF' ).AsDateTime )
else
Ora12 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA12' ).AsDateTime );
if FieldByName( 'ORA13_EFF' ).AsString <> '' then
Ora13 := FormatDateTime( 'hh:nn', FieldByName( 'ORA13_EFF' ).AsDateTime )
else
Ora13 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA13' ).AsDateTime );
if FieldByName( 'ORA14_EFF' ).AsString <> '' then
Ora14 := FormatDateTime( 'hh:nn', FieldByName( 'ORA14_EFF' ).AsDateTime )
else
Ora14 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA14' ).AsDateTime );
if FieldByName( 'ORA15_EFF' ).AsString <> '' then
Ora15 := FormatDateTime( 'hh:nn', FieldByName( 'ORA15_EFF' ).AsDateTime )
else
Ora15 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA15' ).AsDateTime );
if FieldByName( 'ORA16_EFF' ).AsString <> '' then
Ora16 := FormatDateTime( 'hh:nn', FieldByName( 'ORA16_EFF' ).AsDateTime )
else
Ora16 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA16' ).AsDateTime );
if FieldByName( 'ORA17_EFF' ).AsString <> '' then
Ora17 := FormatDateTime( 'hh:nn', FieldByName( 'ORA17_EFF' ).AsDateTime )
else
Ora17 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA17' ).AsDateTime );
if FieldByName( 'ORA18_EFF' ).AsString <> '' then
Ora18 := FormatDateTime( 'hh:nn', FieldByName( 'ORA18_EFF' ).AsDateTime )
else
Ora18 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA18' ).AsDateTime );
if FieldByName( 'ORA19_EFF' ).AsString <> '' then
Ora19 := FormatDateTime( 'hh:nn', FieldByName( 'ORA19_EFF' ).AsDateTime )
else
Ora19 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA19' ).AsDateTime );
if FieldByName( 'ORA20_EFF' ).AsString <> '' then
Ora20 := FormatDateTime( 'hh:nn', FieldByName( 'ORA20_EFF' ).AsDateTime )
else
Ora20 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA20' ).AsDateTime );
OraPausa := FormatDateTime( 'h:nn', FieldByName( 'ORA_PAUSA' ).AsDateTime );
if ( Tipo1 <> 'A' ) and ( Ora1 <> '00.00' ) then
OreEffettive.Add( Tipo1 + '-' + Ora1 )
else
OreEffettive.Add( '' );
if ( Tipo2 <> 'A' ) and ( Ora2 <> '00.00' ) then
OreEffettive.Add( Tipo2 + '-' + Ora2 )
else
OreEffettive.Add( '' );
if ( Tipo3 <> 'A' ) and ( Ora3 <> '00.00' ) then
OreEffettive.Add( Tipo3 + '-' + Ora3 )
else
OreEffettive.Add( '' );
if ( Tipo4 <> 'A' ) and ( Ora4 <> '00.00' ) then
OreEffettive.Add( Tipo4 + '-' + Ora4 )
else
OreEffettive.Add( '' );
if ( Tipo5 <> 'A' ) and ( Ora5 <> '00.00' ) then
OreEffettive.Add( Tipo5 + '-' + Ora5 )
else
OreEffettive.Add( '' );
if ( Tipo6 <> 'A' ) and ( Ora6 <> '00.00' ) then
OreEffettive.Add( Tipo6 + '-' + Ora6 )
else
OreEffettive.Add( '' );
if ( Tipo7 <> 'A' ) and ( Ora7 <> '00.00' ) then
OreEffettive.Add( Tipo7 + '-' + Ora7 )
else
OreEffettive.Add( '' );
if ( Tipo8 <> 'A' ) and ( Ora8 <> '00.00' ) then
OreEffettive.Add( Tipo8 + '-' + Ora8 )
else
OreEffettive.Add( '' );
if ( Tipo9 <> 'A' ) and ( Ora9 <> '00.00' ) then
OreEffettive.Add( Tipo9 + '-' + Ora9 )
else
OreEffettive.Add( '' );
if ( Tipo10 <> 'A' ) and ( Ora10 <> '00.00' ) then
OreEffettive.Add( Tipo10 + '-' + Ora10 )
else
OreEffettive.Add( '' );
if ( Tipo11 <> 'A' ) and ( Ora11 <> '00.00' ) then
OreEffettive.Add( Tipo11 + '-' + Ora11 )
else
OreEffettive.Add( '' );
if ( Tipo12 <> 'A' ) and ( Ora12 <> '00.00' ) then
OreEffettive.Add( Tipo12 + '-' + Ora12 )
else
OreEffettive.Add( '' );
if ( Tipo13 <> 'A' ) and ( Ora13 <> '00.00' ) then
OreEffettive.Add( Tipo13 + '-' + Ora13 )
else
OreEffettive.Add( '' );
if ( Tipo14 <> 'A' ) and ( Ora14 <> '00.00' ) then
OreEffettive.Add( Tipo14 + '-' + Ora14 )
else
OreEffettive.Add( '' );
if ( Tipo15 <> 'A' ) and ( Ora15 <> '00.00' ) then
OreEffettive.Add( Tipo15 + '-' + Ora15 )
else
OreEffettive.Add( '' );
if ( Tipo16 <> 'A' ) and ( Ora16 <> '00.00' ) then
OreEffettive.Add( Tipo16 + '-' + Ora16 )
else
OreEffettive.Add( '' );
if ( Tipo17 <> 'A' ) and ( Ora17 <> '00.00' ) then
OreEffettive.Add( Tipo17 + '-' + Ora17 )
else
OreEffettive.Add( '' );
if ( Tipo18 <> 'A' ) and ( Ora18 <> '00.00' ) then
OreEffettive.Add( Tipo18 + '-' + Ora18 )
else
OreEffettive.Add( '' );
if ( Tipo19 <> 'A' ) and ( Ora19 <> '00.00' ) then
OreEffettive.Add( Tipo19 + '-' + Ora19 )
else
OreEffettive.Add( '' );
if ( Tipo20 <> 'A' ) and ( Ora20 <> '00.00' ) then
OreEffettive.Add( Tipo20 + '-' + Ora20 )
else
OreEffettive.Add( '' );
for I := 0 to 19 do begin
if ( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'E' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'EP' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'ER' ) then
ElencoOre := ElencoOre + '[' + MidStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) + 1, Length( OreEffettive[ I ] ) ) + ' - '
else if ( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'U' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'UP' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'UR' ) then
ElencoOre := ElencoOre + MidStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) + 1, Length( OreEffettive[ I ] ) ) + '] '
end;
DesTransiti := DesTransiti + ' ' + ElencoOre;
DesTransiti := Trim( DesTransiti );
if RightStr( DesTransiti, 1 ) = '-' then
DesTransiti := LeftStr( DesTransiti, Length( DesTransiti ) - 1 );
DesTransiti := Trim( DesTransiti );
if OraPausa <> '0.00' then
DesTransiti := DesTransiti + ' (P. ' + OraPausa + ')';
while not Eof do begin
if FieldByName( 'GIORNATA_ORE' ).AsString = 'H' then
DesTransiti := DesTransiti + ' - ' +
FormatDateTime( 'h:nn', FieldByName( 'ORE' ).AsDateTime ) + ' h. ' +
FieldByName( 'DESCRIZIONE' ).AsString;
Next;
end;
DesTransiti := Trim( DesTransiti );
end;
finally
OreEffettive.Free;
end;
Result := DesTransiti;
end;
Ho un "problema" con una maledetta funzione che continua a generare un maledetto warning "Return value of function TsdmTransiti.AggiornaDesTransiti might be undefined".
Riporto di seguito la funzione completa.
Ringrazio anticipatamente tutti coloro che mi saranno d'aiuto per risolvere questo fastidioso inconveniente.
Ciao
////////////////////////////////////////////////////////////////////////////////
function TsdmTransiti.AggiornaDesTransiti(const AIdTransiti: String = ''): String;
////////////////////////////////////////////////////////////////////////////////
var
Ora1, Ora2, Ora3, Ora4, Ora5, Ora6, Ora7, Ora8, Ora9, Ora10, Ora11,
Ora12, Ora13, Ora14, Ora15, Ora16, Ora17, Ora18, Ora19, Ora20: String;
OraPausa, ElencoOre, DescrCausale, DesTransiti: String;
Tipo1, Tipo2, Tipo3, Tipo4, Tipo5, Tipo6, Tipo7, Tipo8, Tipo9, Tipo10, Tipo11,
Tipo12, Tipo13, Tipo14, Tipo15, Tipo16, Tipo17, Tipo18, Tipo19, Tipo20: String;
OreEffettive: TStringList;
I: Integer;
begin
Result := '';
DesTransiti := '';
OreEffettive := TStringList.Create;
try
with quArchTransiti do
begin
Close;
Params.ParamByName( 'ID_TRANSITI' ).AsString := AIdTransiti;
Open;
First;
if FieldByName( 'GIORNATA_ORE' ).AsString = 'G' then begin
DescrCausale := Trim( FieldByName( 'DESCRIZIONE' ).AsString );
DesTransiti := DescrCausale;
end;
Tipo1 := UpperCase( Trim( FieldByName( 'WK_TIPO1' ).AsString ) );
Tipo2 := UpperCase( Trim( FieldByName( 'WK_TIPO2' ).AsString ) );
Tipo3 := UpperCase( Trim( FieldByName( 'WK_TIPO3' ).AsString ) );
Tipo4 := UpperCase( Trim( FieldByName( 'WK_TIPO4' ).AsString ) );
Tipo5 := UpperCase( Trim( FieldByName( 'WK_TIPO5' ).AsString ) );
Tipo6 := UpperCase( Trim( FieldByName( 'WK_TIPO6' ).AsString ) );
Tipo7 := UpperCase( Trim( FieldByName( 'WK_TIPO7' ).AsString ) );
Tipo8 := UpperCase( Trim( FieldByName( 'WK_TIPO8' ).AsString ) );
Tipo9 := UpperCase( Trim( FieldByName( 'WK_TIPO9' ).AsString ) );
Tipo10 := UpperCase( Trim( FieldByName( 'WK_TIPO10' ).AsString ) );
Tipo11 := UpperCase( Trim( FieldByName( 'WK_TIPO11' ).AsString ) );
Tipo12 := UpperCase( Trim( FieldByName( 'WK_TIPO12' ).AsString ) );
Tipo13 := UpperCase( Trim( FieldByName( 'WK_TIPO13' ).AsString ) );
Tipo14 := UpperCase( Trim( FieldByName( 'WK_TIPO14' ).AsString ) );
Tipo15 := UpperCase( Trim( FieldByName( 'WK_TIPO15' ).AsString ) );
Tipo16 := UpperCase( Trim( FieldByName( 'WK_TIPO16' ).AsString ) );
Tipo17 := UpperCase( Trim( FieldByName( 'WK_TIPO17' ).AsString ) );
Tipo18 := UpperCase( Trim( FieldByName( 'WK_TIPO18' ).AsString ) );
Tipo19 := UpperCase( Trim( FieldByName( 'WK_TIPO19' ).AsString ) );
Tipo20 := UpperCase( Trim( FieldByName( 'WK_TIPO20' ).AsString ) );
if FieldByName( 'ORA1_EFF' ).AsString <> '' then
Ora1 := FormatDateTime( 'hh:nn', FieldByName( 'ORA1_EFF' ).AsDateTime )
else
Ora1 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA1' ).AsDateTime );
if FieldByName( 'ORA2_EFF' ).AsString <> '' then
Ora2 := FormatDateTime( 'hh:nn', FieldByName( 'ORA2_EFF' ).AsDateTime )
else
Ora2 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA2' ).AsDateTime );
if FieldByName( 'ORA3_EFF' ).AsString <> '' then
Ora3 := FormatDateTime( 'hh:nn', FieldByName( 'ORA3_EFF' ).AsDateTime )
else
Ora3 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA3' ).AsDateTime );
if FieldByName( 'ORA4_EFF' ).AsString <> '' then
Ora4 := FormatDateTime( 'hh:nn', FieldByName( 'ORA4_EFF' ).AsDateTime )
else
Ora4 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA4' ).AsDateTime );
if FieldByName( 'ORA5_EFF' ).AsString <> '' then
Ora5 := FormatDateTime( 'hh:nn', FieldByName( 'ORA5_EFF' ).AsDateTime )
else
Ora5 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA5' ).AsDateTime );
if FieldByName( 'ORA6_EFF' ).AsString <> '' then
Ora6 := FormatDateTime( 'hh:nn', FieldByName( 'ORA6_EFF' ).AsDateTime )
else
Ora6 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA6' ).AsDateTime );
if FieldByName( 'ORA7_EFF' ).AsString <> '' then
Ora7 := FormatDateTime( 'hh:nn', FieldByName( 'ORA7_EFF' ).AsDateTime )
else
Ora7 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA7' ).AsDateTime );
if FieldByName( 'ORA8_EFF' ).AsString <> '' then
Ora8 := FormatDateTime( 'hh:nn', FieldByName( 'ORA8_EFF' ).AsDateTime )
else
Ora8 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA8' ).AsDateTime );
if FieldByName( 'ORA9_EFF' ).AsString <> '' then
Ora9 := FormatDateTime( 'hh:nn', FieldByName( 'ORA9_EFF' ).AsDateTime )
else
Ora9 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA9' ).AsDateTime );
if FieldByName( 'ORA10_EFF' ).AsString <> '' then
Ora10 := FormatDateTime( 'hh:nn', FieldByName( 'ORA10_EFF' ).AsDateTime )
else
Ora10 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA10' ).AsDateTime );
if FieldByName( 'ORA11_EFF' ).AsString <> '' then
Ora11 := FormatDateTime( 'hh:nn', FieldByName( 'ORA11_EFF' ).AsDateTime )
else
Ora11 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA11' ).AsDateTime );
if FieldByName( 'ORA12_EFF' ).AsString <> '' then
Ora12 := FormatDateTime( 'hh:nn', FieldByName( 'ORA12_EFF' ).AsDateTime )
else
Ora12 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA12' ).AsDateTime );
if FieldByName( 'ORA13_EFF' ).AsString <> '' then
Ora13 := FormatDateTime( 'hh:nn', FieldByName( 'ORA13_EFF' ).AsDateTime )
else
Ora13 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA13' ).AsDateTime );
if FieldByName( 'ORA14_EFF' ).AsString <> '' then
Ora14 := FormatDateTime( 'hh:nn', FieldByName( 'ORA14_EFF' ).AsDateTime )
else
Ora14 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA14' ).AsDateTime );
if FieldByName( 'ORA15_EFF' ).AsString <> '' then
Ora15 := FormatDateTime( 'hh:nn', FieldByName( 'ORA15_EFF' ).AsDateTime )
else
Ora15 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA15' ).AsDateTime );
if FieldByName( 'ORA16_EFF' ).AsString <> '' then
Ora16 := FormatDateTime( 'hh:nn', FieldByName( 'ORA16_EFF' ).AsDateTime )
else
Ora16 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA16' ).AsDateTime );
if FieldByName( 'ORA17_EFF' ).AsString <> '' then
Ora17 := FormatDateTime( 'hh:nn', FieldByName( 'ORA17_EFF' ).AsDateTime )
else
Ora17 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA17' ).AsDateTime );
if FieldByName( 'ORA18_EFF' ).AsString <> '' then
Ora18 := FormatDateTime( 'hh:nn', FieldByName( 'ORA18_EFF' ).AsDateTime )
else
Ora18 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA18' ).AsDateTime );
if FieldByName( 'ORA19_EFF' ).AsString <> '' then
Ora19 := FormatDateTime( 'hh:nn', FieldByName( 'ORA19_EFF' ).AsDateTime )
else
Ora19 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA19' ).AsDateTime );
if FieldByName( 'ORA20_EFF' ).AsString <> '' then
Ora20 := FormatDateTime( 'hh:nn', FieldByName( 'ORA20_EFF' ).AsDateTime )
else
Ora20 := FormatDateTime( 'hh:nn', FieldByName( 'WK_ORA20' ).AsDateTime );
OraPausa := FormatDateTime( 'h:nn', FieldByName( 'ORA_PAUSA' ).AsDateTime );
if ( Tipo1 <> 'A' ) and ( Ora1 <> '00.00' ) then
OreEffettive.Add( Tipo1 + '-' + Ora1 )
else
OreEffettive.Add( '' );
if ( Tipo2 <> 'A' ) and ( Ora2 <> '00.00' ) then
OreEffettive.Add( Tipo2 + '-' + Ora2 )
else
OreEffettive.Add( '' );
if ( Tipo3 <> 'A' ) and ( Ora3 <> '00.00' ) then
OreEffettive.Add( Tipo3 + '-' + Ora3 )
else
OreEffettive.Add( '' );
if ( Tipo4 <> 'A' ) and ( Ora4 <> '00.00' ) then
OreEffettive.Add( Tipo4 + '-' + Ora4 )
else
OreEffettive.Add( '' );
if ( Tipo5 <> 'A' ) and ( Ora5 <> '00.00' ) then
OreEffettive.Add( Tipo5 + '-' + Ora5 )
else
OreEffettive.Add( '' );
if ( Tipo6 <> 'A' ) and ( Ora6 <> '00.00' ) then
OreEffettive.Add( Tipo6 + '-' + Ora6 )
else
OreEffettive.Add( '' );
if ( Tipo7 <> 'A' ) and ( Ora7 <> '00.00' ) then
OreEffettive.Add( Tipo7 + '-' + Ora7 )
else
OreEffettive.Add( '' );
if ( Tipo8 <> 'A' ) and ( Ora8 <> '00.00' ) then
OreEffettive.Add( Tipo8 + '-' + Ora8 )
else
OreEffettive.Add( '' );
if ( Tipo9 <> 'A' ) and ( Ora9 <> '00.00' ) then
OreEffettive.Add( Tipo9 + '-' + Ora9 )
else
OreEffettive.Add( '' );
if ( Tipo10 <> 'A' ) and ( Ora10 <> '00.00' ) then
OreEffettive.Add( Tipo10 + '-' + Ora10 )
else
OreEffettive.Add( '' );
if ( Tipo11 <> 'A' ) and ( Ora11 <> '00.00' ) then
OreEffettive.Add( Tipo11 + '-' + Ora11 )
else
OreEffettive.Add( '' );
if ( Tipo12 <> 'A' ) and ( Ora12 <> '00.00' ) then
OreEffettive.Add( Tipo12 + '-' + Ora12 )
else
OreEffettive.Add( '' );
if ( Tipo13 <> 'A' ) and ( Ora13 <> '00.00' ) then
OreEffettive.Add( Tipo13 + '-' + Ora13 )
else
OreEffettive.Add( '' );
if ( Tipo14 <> 'A' ) and ( Ora14 <> '00.00' ) then
OreEffettive.Add( Tipo14 + '-' + Ora14 )
else
OreEffettive.Add( '' );
if ( Tipo15 <> 'A' ) and ( Ora15 <> '00.00' ) then
OreEffettive.Add( Tipo15 + '-' + Ora15 )
else
OreEffettive.Add( '' );
if ( Tipo16 <> 'A' ) and ( Ora16 <> '00.00' ) then
OreEffettive.Add( Tipo16 + '-' + Ora16 )
else
OreEffettive.Add( '' );
if ( Tipo17 <> 'A' ) and ( Ora17 <> '00.00' ) then
OreEffettive.Add( Tipo17 + '-' + Ora17 )
else
OreEffettive.Add( '' );
if ( Tipo18 <> 'A' ) and ( Ora18 <> '00.00' ) then
OreEffettive.Add( Tipo18 + '-' + Ora18 )
else
OreEffettive.Add( '' );
if ( Tipo19 <> 'A' ) and ( Ora19 <> '00.00' ) then
OreEffettive.Add( Tipo19 + '-' + Ora19 )
else
OreEffettive.Add( '' );
if ( Tipo20 <> 'A' ) and ( Ora20 <> '00.00' ) then
OreEffettive.Add( Tipo20 + '-' + Ora20 )
else
OreEffettive.Add( '' );
for I := 0 to 19 do begin
if ( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'E' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'EP' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'ER' ) then
ElencoOre := ElencoOre + '[' + MidStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) + 1, Length( OreEffettive[ I ] ) ) + ' - '
else if ( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'U' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'UP' ) or
( LeftStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) - 1 ) = 'UR' ) then
ElencoOre := ElencoOre + MidStr( OreEffettive[ I ], PosEx( '-', OreEffettive[ I ] ) + 1, Length( OreEffettive[ I ] ) ) + '] '
end;
DesTransiti := DesTransiti + ' ' + ElencoOre;
DesTransiti := Trim( DesTransiti );
if RightStr( DesTransiti, 1 ) = '-' then
DesTransiti := LeftStr( DesTransiti, Length( DesTransiti ) - 1 );
DesTransiti := Trim( DesTransiti );
if OraPausa <> '0.00' then
DesTransiti := DesTransiti + ' (P. ' + OraPausa + ')';
while not Eof do begin
if FieldByName( 'GIORNATA_ORE' ).AsString = 'H' then
DesTransiti := DesTransiti + ' - ' +
FormatDateTime( 'h:nn', FieldByName( 'ORE' ).AsDateTime ) + ' h. ' +
FieldByName( 'DESCRIZIONE' ).AsString;
Next;
end;
DesTransiti := Trim( DesTransiti );
end;
finally
OreEffettive.Free;
end;
Result := DesTransiti;
end;