La valeur d'origine de la table que je souhaite recoder sera toujours 01/01/1900. Je souhaite la recoder à la date du jour. Cela ne renvoie qu'un espace vide, et non la date du jour. Avez-vous une idée de ce que je dois modifier ?
Merci!
Transfers << Begin Data Update;
Transfers << Recode Column(
Transfers:OrderDate,
{Map Value( _rcOrig, {-126144000, short date(today())}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :OrderDate )
);
Transfers << End Data Update;
Pour recoder les entrées d'une colonne et enregistrer le résultat dans la même colonne, on peut sélectionner En place dans le menu déroulant :

Dans le code JSL, la colonne cible correspondra à la colonne d'entrée.
Hm, pourquoi le code ne fonctionne pas ?
a) Date courte() convertit la date en chaîne - mais la colonne est numérique.
b) Même après avoir supprimé la fonction date() courte, cela ne fonctionne pas. Parce que Valeur de la carte() n'autorise pas les expressions ? Peut-être :

Alors essayons :
Transfers = New Table( "transfers",
Add Rows( 1 ),
Compress File When Saved( 1 ),
New Column( "OrderDate",
Format( "y/m/d"),
Set Values( [-126144000] )
)
);
Transfers << Begin Data Update;
Eval (Eval Expr(Transfers << Recode Column(
Transfers:OrderDate,
{Map Value( _rcOrig, {-126144000, Expr(today())}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :OrderDate )
)));
Transfers << End Data Update;