Skip to content

Instantly share code, notes, and snippets.

@dodgex
Created April 14, 2015 08:53
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save dodgex/2f21eedafa102a720eef to your computer and use it in GitHub Desktop.
dump TM1 view
void printView(TM1Cube oCube, String viewName) {
TM1View view = oCube.getView(viewName);
view.constructArray();
int arrayRows = view.getNumberOfArrayRows();
int arrayColumns = view.getNumberOfArrayColumns();
int dataRows = view.getNumberOfArrayAxisTuples(new TM1Val(2)).getInt();
int dataCols = view.getNumberOfArrayAxisTuples(new TM1Val(1)).getInt();
int metaCols = arrayColumns - dataCols;
int metaRows = arrayRows - dataRows;
int columnSubsetCount = view.getColumnSubsetCount();
TM1Subset[] columnSubsets = new TM1Subset[columnSubsetCount];
for (int i = 1; i <= columnSubsetCount; i++) {
columnSubsets[i - 1] = view.getColumnSubset(i);
}
int rowSubsetCount = view.getRowSubsetCount();
TM1Subset[] rowSubsets = new TM1Subset[rowSubsetCount];
for (int i = 1; i <= rowSubsetCount; i++) {
rowSubsets[i - 1] = view.getRowSubset(i);
}
String[] header = new String[arrayColumns];
String[][] data = new String[arrayRows][arrayColumns];
for (int column = 0; column < arrayColumns; column++) {
header[column] = "Column " + column;
for (int row = 0; row < arrayRows; row++) {
TM1Val ret = view.getArrayFormattedValue(column + 1, row + 1);
if (row < metaRows && column < metaCols) {
data[row][column] = "";
} else if (row < metaRows && column >= metaCols) {
data[row][column] =
columnSubsets[row].getElement(ret.getInt())
.getName().getString();
} else if (row >= metaRows && column < metaCols) {
data[row][column] =
rowSubsets[column].getElement(ret.getInt())
.getName().getString();
} else {
data[row][column] = ret.getString();
}
}
}
System.out.println(FlipTable.of(header, data));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment