如何使用公式為雙數據創建指標列我想通過應用以下JSL代碼為雙數據創建公式指示器列:
dt << Clear Column Selection();
dt << Select Duplicate Rows();
dt << Name Selection in Column( Selected( 1 ), Unselected( 0 ) );
dt << Clear Select();
儘管我得到了正確的結果,但代碼會產生很多錯誤消息。如果可以改進代碼那將是很好的。
Re:如何使用公式為雙數據創建指標列我希望有一個社區成員可以比我下面使用的方法更好地解決您的問題。 根據您的需要,在嘗試使用數據表的選擇功能時存在衝突問題,但是您希望清除選擇。 這將迫使重新計算公式。 所以我所做的是讓公式創建數據表的子集,對子集化數據表執行計算(隔離選擇),然後將子集中的結果讀回原始數據表....然後刪除子集化數據表。 看一看,看看你是否理解我在做什麼。 它似乎工作。
If( Row() == 1,
dt = Current Data Table();
dt << Select Columns( :Column 1, :Column 2 );
dt2 = dt << subset(
private,
dt,
selected rows( 0 ),
selected columns( 1 )
);
dt2 << Select Duplicate Rows();
dt2 << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 )
);
);
x = dt2:MultipleData[Row()];
If( Row() == N Rows( dt ),
dt << clear column selection;
Close( dt2, nosave );
);
x;
Re:如何使用公式為雙數據創建指標列吉姆,嗨,
感謝您的支持。我試圖簡化我的主題。我的目標是創建一個用於處理多個數據的列。我能夠使用以下JSL執行此操作:
Names Default To Here( 1 );
dt = Current Data Table();
dt << Select Columns( :Column 1, :Column 2);
dt << Select Duplicate Rows();
dt << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 ));
dt << Clear Select();
對於附加文件的第1列和第2列的多個數據。這很好用。 但是,因為工作文件經常通過SQL使用新數據更新,所以我更願意創建公式列“MultipleData”。
不幸的是,如果您的最後一個代碼被應用,我只會得到零。什麼可以解決方案?
Re:如何使用公式為雙數據創建指標列好的......我以前的評論是基於這樣的假設:代碼是在開放代碼中運行的,而不是作為公式運行的。 使用它作為公式,有一些問題。
- 如果要引用數據表,則必須在公式中定義指向數據表的指針dt。
- 您正在使用在執行時自動移動所有行的函數。 公式還循環遍歷數據表中的所有行,並為每一行執行一次公式。 因此,以您的方式使用代碼意味著您反復運行“選擇重複行”,在實際操作中,您只需要執行一次。
- 你公司第一行的紅線實際上是一個警告,而不是一個錯誤。
下面是我將使用的代碼版本,如果將其用作公式。
If( Row() == 1,
dt = Current Data Table();
dt << Clear Column Selection();
dt << Select Duplicate Rows();
dt << Name Selection in Column( Selected( 1 ), Unselected( 0 ) );
dt << Clear Select();
);
我不清楚你為什麼要把它放到公式列中,因為你放入它的列將包含所有缺失的值......所以你可能想重新考慮你的過程。
Re:如何使用公式為雙數據創建指標列第一
在公式編輯器中,第一個代碼行標有紅線。
第二
如果正在應用公式,將出現一個彈出窗口,其中包含“發送預期可編寫腳本的對象...;發送,dt << / * ### * /”或“Selection()/ * ### *”等消息/“
Re:如何使用公式為雙數據創建指標列你的代碼看起來不錯......你得到的錯誤是什麼?
Re:如何使用公式為雙數據創建指標列吉姆,嗨,
謝謝你的解決方案。我在一個大型數據庫(大約100k行和100列)上使用公式列測試了您的代碼。它工作正常。
我的解決方案是以下JSL代碼:
Names Default To Here( 1 );
dt = Current Data Table();
//Delete preveious version of the indicator column
dt << Delete Columns("MultipleData");
wait(2);
//Create the new version of the indicator column
dt << Select Columns( :Column 1, :Column 2);
dt << Select Duplicate Rows();
dt << Name Selection in Column(
Column Name( "MultipleData" ),
Selected( 1 ),
Unselected( 0 ));
dt << Clear Select();
dt << Clear Column Selection();正如我之前提到的,公式解決方案與您的代碼一樣,是首選。在更新數據集的情況下更方便。