J'essaie de joindre cette table (ci-dessous) à une autre en faisant correspondre la colonne rowNoVFPD à celle d'une autre table.

La colonne VFPDplus1 est affectée à l'aide de la formule :
Lag(:VFPD, -1).
Lorsque j'essaie de faire cela avec JSL, la colonne VFPDplus1 copie en blanc, mais sinon correctement.
Lorsque j'essaie d'utiliser l'option JMP "Rejoindre" dans la barre d'outils "Tableau", elle est correctement copiée.
Comment puis-je résoudre ce problème en JSL ?
Ma fonction de jointure actuelle s'écrit :
Data Table( "markTableSubset" ) << Join(
with( Data Table( "VFPD" ) ),
by matching columns( :FloorVdiv64 = :rowNoVFPD )
);
J'ai trouvé mon problème après quelques semaines d'absence pour me vider la tête.
Voici un exemple d'extrait de mon script d'origine :
If( File Exists( path ), //Check file exits, import VFPD file
vfpdTable = Open( path, Import Settings( Data Starts( 5 ) ) );
Column( 1 ) << Data Type( Numeric ) << Modeling Type( "Continuous" ) << Set Name( "rowNoVFPD" );
Column( 2 ) << Set Name( "VFPD" );
New Column( "VFPDplus1", Numeric, Continuous, Formula (Lag(:VFPD,(-1)))); //Look at next row for interpolation after joining
Column( 3 ) << delete property(formula); //Copying formula causes issues when joining
);
Mes tables pouvaient dépasser plus de 500 000 lignes car ce sont de grands ensembles de données expérimentaux, donc la formule n'avait pas fini de calculer les résultats pour la colonne complète au moment où je supprime la propriété de formule (un retour à l'une de mes tentatives initiales pour obtenir la jointure travailler), n'appliquait donc aucun des résultats de la formule avant de se joindre. La même chose se produisait si j'essayais de rejoindre immédiatement après avoir créé la nouvelle colonne de formules.
Depuis, j'ai changé le script pour ajouter un délai de 1 seconde pour permettre à la formule de calculer entièrement, et je peux maintenant rejoindre sans problème. J'espère que cela aide quelqu'un d'autre qui rencontre le même problème.
If( File Exists( path ), //Check file exits, import VFPD file
vfpdTable = Open( path, Import Settings( Data Starts( 5 ) ) );
Column( 1 ) << Data Type( Numeric ) << Modeling Type( "Continuous" ) << Set Name( "rowNoVFPD" );
Column( 2 ) << Set Name( "VFPD" );
New Column( "VFPDplus1", Numeric, Continuous, Formula (Lag(:VFPD,(-1)))); //Look at next row for interpolation after joining
Wait(1); //Necessary to stop deleting the formula before it's calculated the full column
Column( 3 ) << delete property(formula); //Copying formula causes issues when joining
);