I'm not sure this has been covered. So far I have seen the method mentioned but no code. Well here is the code I used to restore from .rej files via TI. This code assumes that the largest cube has 9 dimensions. This can be changed very easily to accomondate more:
Code: Select all
IF(CubeExists(CubeName)=1);
J=0;
While(J<10);
J=J+1;
DimName=TabDim(CubeName,J);
IF(DimName@<>'');
Dims=J;
EndIF;
End;
IF(Dims=2);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2);
EndIF;
ElseIF(Dims=3);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3);
EndIF;
ElseIF(Dims=4);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4);
EndIF;
ElseIF(Dims=5);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4,Dim5);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4,Dim5);
EndIF;
ElseIF(Dims=6);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6);
EndIF;
ElseIF(Dims=7);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7);
EndIF;
ElseIF(Dims=8);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7,Dim8);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7,Dim8);
EndIF;
ElseIF(Dims=9);
IF(DataValueType@='N');
CellPutN(NewValue,CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7,Dim8,Dim9);
ElseIF(DataValueType@='S');
CellPutS(STR(NewValue,14,0),CubeName,Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Dim7,Dim8,Dim9);
EndIF;
EndIF;
EndIF;
Jim.