How to populate a static junk dimension made of N boolean flags

Hi, we want to populate a junk dimension (a table with N boolean fields - 18 in our case).
The records must contain all the possibile combinations of all the fields (with 18 integer fields whose value can be either 0 or 1, the number of possible combinations is 262144).
I'm looking for suggestions on how to do this (with a single SQL statement or with a cursor inside a procedure, they are both fine).
Thanks,
Andrea

You could use cross products/joins to achieve the result. Here is an example:
SQL> WITH boolean_flags AS
  2  (
  3          SELECT  0 AS FLG FROM DUAL UNION ALL
  4          SELECT  1 AS FLG FROM DUAL
  5  )
  6  SELECT  A.FLG
  7  ,       B.FLG
  8  ,       C.FLG
  9  FROM    BOOLEAN_FLAGS   A
10  ,       BOOLEAN_FLAGS   B
11  ,       BOOLEAN_FLAGS   C
12  /
       FLG        FLG        FLG
         0          0          0
         0          0          1
         0          1          0
         0          1          1
         1          0          0
         1          0          1
         1          1          0
         1          1          1If you need it to be more dynamic you can generate the SQL dynamically as shown below. This example would work for the number of columns ranging from 1-26 (I didn't do heavy testing):
SQL> VAR c REFCURSOR;
SQL>
SQL> DECLARE
  2          numDimensions   NUMBER  := 3;
  3          sqlText         VARCHAR2(4000) :='WITH boolean_flags AS
  4                                          (
  5                                                  SELECT  0 AS FLG FROM DUAL UNION ALL
  6                                                  SELECT  1 AS FLG FROM DUAL
  7                                          )
  8                                          SELECT A.FLG ';
  9          sqlFromText     VARCHAR2(4000) :='FROM BOOLEAN_FLAGS    A';
10  BEGIN
11          FOR i IN 2..numDimensions
12          LOOP
13                  sqlText := sqlText || ', ' || CHR(64+i) || '.FLG ';
14
15                  sqlFromText := sqlFromText || ', BOOLEAN_FLAGS ' || CHR(64+i);
16          END LOOP;
17
18          OPEN :c FOR sqlText || sqlFromText;
19  END;
20  /
PL/SQL procedure successfully completed.
SQL> PRINT C
       FLG        FLG        FLG
         0          0          0
         0          0          1
         0          1          0
         0          1          1
         1          0          0
         1          0          1
         1          1          0
         1          1          1
8 rows selected.Edited by: Centinul on Dec 28, 2009 9:35 AM

Similar Messages

  • How to populate data in TargetCube from SourceCube for a particular product/currency dimension selected in form1.

    Hi,
    Need help regarding Business rule scenario "How to populate data in "Target Form (plantype2)" from "Source Form(plantype1)" for a particular product/currency dimension combination selected in form1"
    Scenario 1) :  I have data for Product(Computer)/Currency(USD) dimension combination in Source Form
                        When i open Target Form and then select a Product(Computer)/Currency(USD) combination and then right click on form to invoke a Business rule to get data for this same                     product/currency combination from Source Form.
    Scenario 2) : If there isnt any data in Source Form for product(Computer)/Currency(USD) combination, then the data for product(computer)/Currency(Default Currency) to be populated into Target                     Form.
    The members in Currency Dimension (Shared Dimension) are USD & Default Currency.
    Can anyone please help.
    Thanks,
    Rajkumar

    Adding to what Celvin Kattookaran has said
    You can either write a Business Rule / Calculation script with @XREF function and also you can check condition if there is data in USD then populate USD else "Default currency"
    If you want that data in source to be available in target, then you can use @XWRITE in a rule from source cube to push the data to Target.
    Amarnath
    ORACLE | Essbase

  • How to populate the time component of a cube?

    We have a question regarding how to populate the time component of a cube. Let me explain:
    We are using OWB 10gR2. We have created a cube with several dimensions. We are now building the mapping to load the cube. The cube operator has two columns for every dimension (e.g., "customer" and "customer_id" for the "customer" dimension).
    We understand that, in this case, "customer_id" stands for the dimension business key, so we create an arrow from the business key in the source table to the "customer_id" column in the cube operator.
    So far so good. The mapping works all right, and the cube is loaded correctly.
    Now we need to do the same for the time dimension. We have already created the time dimension and we have loaded it. We have also included it in the cube, so now we have two new columns in it: "time_day_code" and "time", both NUMBER data type.
    We have the "sale_date" column (DATE data type), in the source system and, of course, now we want to populate the date column in the cube. We suppose that, somehow, we have to translate the "sale_date" field into the numeric column of the surrogate key of the time dimension. How should do we do this? I suppose that OWB must do the translation for us, just as it does for the other dimensions, but how? We have been looking into the manuals, and we have found no explanation on how to go about this.
    Any help would be appreciated.
    Best regards
    Juan Algaba

    Hi Juan
    You are right this should have been in the manuals, checked and there is only a brief mention (Using a Time Dimension in a Cube Mapping section)
    The identifier format should have been documented for each level and will involve creating the formatted attribute for input to the cube operator's time dimension reference attribute.
    The time dimension business keys are stored as follows;
    Day Level - YYYYMMDD
    Month Level - YYYYMM
    Week Level - YYYYWW
    Quarter - YYYYQ
    Year - YYYY
    If you have a source that has a SQL date datatype for example and want to construct the key for a cube's time dimension at the day level something like the following expression can be used to construct the time reference from a SQL date...
    to_number(to_char( time_key, 'YYYYMMDD'))
    The result of this expression can be used as input to the cube's time dimension attribute.
    Cheers
    David

  • How can I create accurate decimal dimensions when creating a new document or using the art board in Illustrator CS6? When I type in a number with a decimal, it automatically rounds the number up.

    How can I create accurate decimal dimensions when creating a new document or using the art board in Illustrator CS6? When I type in a number with a decimal, it automatically rounds the number up.

    For my part you are welcome, sdowers.
    Unfortunately, the uncertainty arising from the rounding has been up several times here in this forum.
    I just came to remember a warning that needs to be given:
    The rounding of the representation of a numerical value may be harmless in itself, but if you use it for any operation that changes the value, such as multiplication or whatever, things will go wrong because the operation will be made on the basis of the rounded value instead of the true value. So, as in your first case in post #2, 39.625 rounded to 39.63 will become 79.26 instead of 79.25.

  • How to populate field catalogue fields in ALV using  dynamic internal table

    Hi All,
    Please let me know how to populate field catalogue fields in ALV using  dynamic internal table.
    I have created <dyn_table> using code below.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
                     EXPORTING
                       it_fieldcatalog = g_t_ifc
                        it_fieldcatalog = g_t_fieldcat
                     IMPORTING
                        ep_table        = dy_table.
      ASSIGN dy_table->* TO <dyn_table>.
    Create dynamic work area and assign to FS
      CREATE DATA dy_line LIKE LINE OF <dyn_table>.
      ASSIGN dy_line->* TO <dyn_wa>.
    Now this  <dyn_table>  has fields like idoc no.,creation date ,
    segment field 1, segment field 2 etc..Now idoc no.,creation date  are static fields from table EDIDC. And segment field 1, segment field 2 etc are dynamic fields from table EDSAPPL.
    In my  ALV report I am getting the final layout properly but I am unable to move values to corresponding fields in the final layout shown.Please let me know how to populate these fields from different tables.
    I tried this way but its not working.
    SORT g_t_edid4 BY docnum.
      LOOP AT g_t_edidc INTO g_r_edidc.
        READ TABLE g_t_edid4 into g_r_edid4
                         WITH KEY docnum = g_r_edidc-docnum
                                        BINARY SEARCH.
        IF sy-subrc = 0.
          <dyn_wa> =  g_r_edid4-sdata.
         MOVE-CORRESPONDING g_r_edid4 to <dyn_wa>.
       CLEAR g_r_edid4.
        ENDIF.
    MOVE-CORRESPONDING g_r_edidc to <dyn_wa>.
    APPEND <dyn_wa> TO <dyn_table>.

    You have to assign each field to field symbol and then assign the value to that field symbol and asssign that field symbol to workarea field symbol.
    LOOP AT g_t_edidc INTO g_r_edidc.
    READ TABLE g_t_edid4 into g_r_edid4
    WITH KEY docnum = g_r_edidc-docnum
    BINARY SEARCH.
    IF sy-subrc = 0.
    ASSIGN COMPONENT 'SDATA' OF STRUCTURE <DYN_WA> TO <DYN_FLD>.
    <DYN_FLD> = g_r_edid4-sdata.
    " <dyn_wa> = g_r_edid4-sdata.
    " Assign each fields like this.
    " MOVE-CORRESPONDING g_r_edid4 to <dyn_wa>.
    CLEAR g_r_edid4.
    ENDIF.
    " MOVE-CORRESPONDING g_r_edidc to <dyn_wa>.
    APPEND <dyn_wa> TO <dyn_table>.
    Regards,
    Naimesh Patel

  • How to populate the Zfield in info cube

    Dear All,
    This the data in the infocube 0sd_c03
    0material          0sold_to          Truck No          Zfield Need to update
    3000          TESTING          2199          1
    HSD BS II          OMC          2198          1
    HSD BS II          TESTING          2201          3
    3000          TESTING          2201          3
    HSD BS II          OMC          2200          2
    3000          TESTING          2200          2
    I need the logic to be build is
    For one Truck no, if sold to and material are unique then i need to update a flag (Zfield) as 1
    For one Truck no, if sold to is one and for 2 different materials then i need to update the flag (Zfield) as 2
    For one Truck no, if sold to are 2 and for 2 different materials then i need to update the flag (Zfield) as 3
    is it possible to do if so please let me know how to populate the same. please give me some idea about the coding
    if you have any doubts please ask
    regards
    venu

    Hi Venu,
    You can use Virtual Characteristics are characteristics whose values will be derived during query time.
    0INFOPROV will be found in data package dimension.
    Check below link:
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/e051fda8-71a9-2a10-ac9e-8d17414a8c8c&overridelayout=true
    Virtual characteristic
    Regards
    Chandra

  • How to Populate the JTable Object programatically with SQL Results

    I'm wondering if someone could help me on how to populate the JTable Object with SQL Results wherein the Row of tjhe JTable object is automatically adjusted depending on how many records you have queried.
    Thanks in advance and God bless! (",)
    * frmMain.java
    * Created on October 4, 2006, 6:15 AM
    package tds;
    import java.io.*;
    import java.awt.Toolkit;
    import javax.swing.JFrame;
    import javax.imageio.*;
    import javax.swing.JFrame;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    * @author Dexter.Carlit
    public class frmMain extends javax.swing.JFrame {
    private Connection connection = null;
    private DefaultTableModel model;
    /** Creates new form frmMain */
    public frmMain() {
    initComponents();
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
    jSplitPane = new javax.swing.JSplitPane();
    jScrollPane1 = new javax.swing.JScrollPane();
    jPanel3 = new javax.swing.JPanel();
    jScrollPane2 = new javax.swing.JScrollPane();
    jTree1 = new javax.swing.JTree();
    jTabbedPane1 = new javax.swing.JTabbedPane();
    jPanel1 = new javax.swing.JPanel();
    jPanel4 = new javax.swing.JPanel();
    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jTextField1 = new javax.swing.JTextField();
    jTextField2 = new javax.swing.JTextField();
    jLabel3 = new javax.swing.JLabel();
    jTextField3 = new javax.swing.JTextField();
    jLabel4 = new javax.swing.JLabel();
    jTextField4 = new javax.swing.JTextField();
    jPanel5 = new javax.swing.JPanel();
    jScrollPane3 = new javax.swing.JScrollPane();
    jGrid = new javax.swing.JTable();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jProgressBar1 = new javax.swing.JProgressBar();
    jPanel2 = new javax.swing.JPanel();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowOpened(java.awt.event.WindowEvent evt) {
    formWindowOpened(evt);
    getAccessibleContext().setAccessibleName("frmMain");
    jSplitPane.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    jSplitPane.setDividerLocation(200);
    jSplitPane.setDividerSize(10);
    jScrollPane2.setViewportView(jTree1);
    org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
    jPanel3.setLayout(jPanel3Layout);
    jPanel3Layout.setHorizontalGroup(
    jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel3Layout.createSequentialGroup()
    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 916, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    jPanel3Layout.setVerticalGroup(
    jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE)
    jScrollPane1.setViewportView(jPanel3);
    jSplitPane.setLeftComponent(jScrollPane1);
    jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
    jLabel1.setText("First Name:");
    jLabel2.setText("Last Name:");
    jLabel3.setText("Position :");
    jLabel4.setText("Department:");
    jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Search Results"));
    jGrid.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
    new String [] {
    "LName", "FName", "Position", "Department", "Office No", "Local No", "Office Mobile No", "Home No", "MobileNo", "Email Address"
    jGrid.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
    jGrid.setColumnSelectionAllowed(true);
    jGrid.setName("");
    jGrid.setTableHeader(jGrid.getTableHeader());
    jScrollPane3.setViewportView(jGrid);
    jScrollPane3.getAccessibleContext().setAccessibleName("rset");
    org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
    jPanel5.setLayout(jPanel5Layout);
    jPanel5Layout.setHorizontalGroup(
    jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jScrollPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 386, Short.MAX_VALUE)
    jPanel5Layout.setVerticalGroup(
    jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jScrollPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 175, Short.MAX_VALUE)
    jButton1.setText("Find");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    jButton1MouseClicked(evt);
    jButton2.setText("Clear");
    jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    jButton2MouseClicked(evt);
    org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
    jPanel4.setLayout(jPanel4Layout);
    jPanel4Layout.setHorizontalGroup(
    jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel4Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4Layout.createSequentialGroup()
    .add(jLabel1)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4Layout.createSequentialGroup()
    .add(jLabel2)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jTextField2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE)
    .add(1, 1, 1))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4Layout.createSequentialGroup()
    .add(jLabel3)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jTextField3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 138, Short.MAX_VALUE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jLabel4)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jTextField4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 138, Short.MAX_VALUE))
    .add(jPanel4Layout.createSequentialGroup()
    .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
    .addContainerGap())
    jPanel4Layout.linkSize(new java.awt.Component[] {jButton1, jButton2}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel4Layout.setVerticalGroup(
    jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel4Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(jLabel1)
    .add(jTextField1))
    .add(18, 18, 18)
    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(jLabel2)
    .add(jTextField2))
    .add(16, 16, 16)
    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(jLabel3)
    .add(jTextField3)
    .add(jLabel4)
    .add(jTextField4))
    .add(14, 14, 14)
    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(jButton2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .add(jButton1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jProgressBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE))
    .addContainerGap())
    jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jProgressBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    jTabbedPane1.addTab("Search", jPanel1);
    org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(
    jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(0, 458, Short.MAX_VALUE)
    jPanel2Layout.setVerticalGroup(
    jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(0, 401, Short.MAX_VALUE)
    jTabbedPane1.addTab("Directory", jPanel2);
    jSplitPane.setRightComponent(jTabbedPane1);
    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jSplitPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 675, Short.MAX_VALUE)
    layout.setVerticalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jSplitPane)
    pack();
    }// </editor-fold>//GEN-END:initComponents
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    }//GEN-LAST:event_jButton1ActionPerformed
    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseClicked
    jGrid.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
    {null, null, null, null, null, null, null, null, null, null},
    {null, null, null, null, null, null, null, null, null, null},
    {null, null, null, null, null, null, null, null, null, null},
    {null, null, null, null, null, null, null, null, null, null}
    new String [] {
    "LName", "FName", "Position", "Department", "Office No", "Local No", "Office Mobile No", "Home No", "MobileNo", "Email Address"
    jGrid.updateUI();
    }//GEN-LAST:event_jButton2MouseClicked
    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked
    try {
    //Load and register SQL Server driver
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    //Establish a connection
    Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://X.X.X.X:1433","MyAccount","MyPassword");
    //Create a Statement object
    Statement sql_stmt = connection.createStatement();
    //Create a ResultSet object, execute the query and return a
    // resultset
    ResultSet rset = sql_stmt.executeQuery("SELECT * FROM EpxDirectory..Directory Order By LName");
    // Populates a JTABLE Object
    int i=0;
    while (rset.next()){
    String LName = rset.getString(1);
    String FName = rset.getString(2);
    String Position = rset.getString(3);
    String Dept_Code = rset.getString(4);
    String OffPhoneNo = rset.getString(5);
    String LocalNo = rset.getString(6);
    String OffMobileNo = rset.getString(7);
    String HomePhoneNo = rset.getString(8);
    String MobileNo = rset.getString(9);
    String Email = rset.getString(10);
    jGrid.updateUI();
    jGrid.setValueAt(rset.getString(1).trim(),i,0);
    jGrid.setValueAt(rset.getString(2).trim(),i,1);
    jGrid.setValueAt(rset.getString(3).trim(),i,2);
    jGrid.setValueAt(rset.getString(4).trim(),i,3);
    jGrid.setValueAt(rset.getString(5).trim(),i,4);
    jGrid.setValueAt(rset.getString(6).trim(),i,5);
    jGrid.setValueAt(rset.getString(7).trim(),i,6);
    jGrid.setValueAt(rset.getString(8).trim(),i,7);
    jGrid.setValueAt(rset.getString(9).trim(),i,8);
    jGrid.setValueAt(rset.getString(10).trim(),i,9);
    i++;
    //Close the ResultSet and Statement
    rset.close();
    sql_stmt.close();
    //Close the database connection
    connection.close();
    System.out.println(Integer.toString(i) + " rows found");
    } catch(Exception e) {
    System.out.println("Failed to connect; Please view Stack Trace");
    e.printStackTrace();
    }//GEN-LAST:event_jButton1MouseClicked
    private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
    }//GEN-LAST:event_formWindowOpened
    public static void run(){
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    frmMain frmMain = new frmMain();
    frmMain.setLocationRelativeTo(null); // Center the JFrame on the
    frmMain.setVisible(true);
    private void exitApplication() {
    // try {
    // //gui.putStatus("Closing the connection....please wait.....");
    // if(connection != null) {
    // // connection.close(); //Closing the connection object.
    // } catch(SQLException ex) { //Trap SQLException
    // //gui.putStatus(ex.toString());
    System.exit(0); //Exit the aplication
    * @param args the command line arguments
    public static void main(String args[]) {
    run();
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JTable jGrid;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JProgressBar jProgressBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JSplitPane jSplitPane;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTree jTree1;
    // End of variables declaration//GEN-END:variables
    }

    Use code tags.
    Don't mix GUI and JDBC together. Split them out into separate classes.
    You have a good start, but you will need to loop through your resultset and also pull the ResultSet metaData for you column headings

  • How to populate new values in JTable?

    hello swing experts!!!
    i have a problem plz i need your help. tnx.
    so here's the scenario.
    i have a program that retrieves information from the database and display it in the JTable. i have JTextBox to search users by "Name" and when i click JButton "search" it will populate all the users that has the "Name" in the JTable.
    i already know how to populate a JTable at first like giving a JTable(row,column) or a model = new DefaultTableModel(row,col). but
    i dont know how to *"Re-populate"* values in the JTable? an algorithm/steps/code snippets on how it will work will be a great help. tnx!

    Just a small example :
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    public class Testing
         public static void main(String... args)
              final DefaultTableModel model = new DefaultTableModel()
                   @Override
                   public boolean isCellEditable(int row, int column)
                        return false;
              model.addColumn("One");
              model.addColumn("Two");
              final JTable table = new JTable(model);
              JButton button = new JButton("Click to add data to the table");
              //get your data in a vector from the list you are getting from the database
              final Vector<String> newRow = new Vector<String>();
              newRow.add("Value1");
              newRow.add("Value2");
              button.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent ae)
                        model.addRow(newRow);
              JFrame frame = new JFrame("Testing");
              frame.getContentPane().add(button, BorderLayout.NORTH);
              frame.getContentPane().add(table, BorderLayout.CENTER);
              frame.setSize(400, 200);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setLocationRelativeTo(null);
              frame.setVisible(true);
    }

  • How to populate TableView data on the other screen TextField

    Hi guru’s
    I am having problem in populating data from a table in one screen to a Text Field in the other screen. I have two classes FirstClass containing a textbox and a button. On pressing a button a second window is opened containing a Table of values. As the user double clicks a row the value of the second column of the row should be inserted into the textbox of the FirstClass. Code of both the classes is attached. Thanking you in anticipation.
    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.geometry.Insets;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.GridPane;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    public class FirstClass extends Application {
    public static void main(String[] args) {
         launch(args);
    @Override
    public void start(final Stage primaryStage) {
         primaryStage.setTitle("First Class");
    GridPane gridpane = new GridPane();
              gridpane.setPadding(new Insets(5));
              gridpane.setHgap(5);
              gridpane.setVgap(5);
    final TextField userNameFld = new TextField();
    gridpane.add(userNameFld, 1, 1);
    Button btn = new Button();
    btn.setText("Show Table");
    gridpane.add(btn, 1, 3);
    btn.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
         String a = TableClass.showDialog(primaryStage, true, "Table Window" );
         userNameFld.setText(a);
    StackPane root = new StackPane();
    Scene scene =new Scene(root, 300, 250);
    root.getChildren().addAll(gridpane);
    primaryStage.setScene(scene);
    primaryStage.show();
    import javafx.beans.property.SimpleStringProperty;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.event.EventHandler;
    import javafx.geometry.Insets;
    import javafx.scene.Scene;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.GridPane;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Modality;
    import javafx.stage.Stage;
    public class TableClass extends Stage {
         private static TableClass dialog;
         private static String value = "";
         public static class Person {
    private final SimpleStringProperty firstName;
    private final SimpleStringProperty lastName;
    private Person(String fName, String lName) {
    this.firstName = new SimpleStringProperty(fName);
    this.lastName = new SimpleStringProperty(lName);
    public String getFirstName() {
    return firstName.get();
    public void setFirstName(String fName) {
    firstName.set(fName);
    public String getLastName() {
    return lastName.get();
    public void setLastName(String fName) {
    lastName.set(fName);
         private TableView<Person> table = new TableView<Person>();
         private final ObservableList<Person> data =
         FXCollections.observableArrayList(
         new Person("JACK", "BROWN"),
         new Person("JOHN", "VIANNEYS"),
         new Person("MICHAEL", "NELSON"),
         new Person("WILLIAM", " CAREY")
         public TableClass(Stage owner, boolean modality, String title) {
              super();
              initOwner(owner);
              Modality m = modality ? Modality.APPLICATION_MODAL : Modality.NONE;
              initModality(m);
              setOpacity(1);
              setTitle(title);
              StackPane root = new StackPane();
              Scene scene = new Scene(root, 750, 750);
              setScene(scene);
              GridPane gridpane = new GridPane();
              gridpane.setPadding(new Insets(5));
              gridpane.setHgap(5);
              gridpane.setVgap(5);
              TableColumn firstNameCol = new TableColumn("First Name");
         firstNameCol.setMinWidth(100);
         firstNameCol.setCellValueFactory(
         new PropertyValueFactory<Person,String>("firstName")
         TableColumn lastNameCol = new TableColumn("Last Name");
         lastNameCol.setMinWidth(200);
         lastNameCol.setCellValueFactory(
         new PropertyValueFactory<Person,String>("lastName")
         table.setItems(data);
         table.getColumns().addAll(firstNameCol, lastNameCol);
         table.setOnMouseClicked(new EventHandler<MouseEvent>() {
                   public void handle(MouseEvent me) {
                        if (me.getClickCount() >= 2) {
                   String srr = table.getItems().get(table.getSelectionModel().getSelectedIndex()).getLastName();
                   value = srr;
                   dialog.hide();
         gridpane.add(table, 1, 5,1,20 );
              root.getChildren().add(gridpane);
         public static String showDialog(Stage stg, Boolean a , String title){
              dialog = new TableClass( stg,a, title);
              dialog.show();
              return value;
    }

    Cross posted
    http://www.coderanch.com/t/582014/JavaFX/java/populate-TableView-data-other-screen
    http://stackoverflow.com/questions/10734649/how-to-populate-tableview-data-on-the-other-screen-textfield-in-javafx-2-0
    Moderator advice: Please read the announcement(s) at the top of the forum listings and the FAQ linked from every page. They are there for a purpose.
    Then edit your post and format the code correctly.
    db

  • How to populate an array with random text files.

    I am making a Jeopardy program. I have my program set up so that it retrieves 5 random text files. I just want to know how I populate one array with all the lines from the text files my program is retrieving.

    You can read a textfile line by line and add each line to an ArrayList. An ArrayList is very much like an array only that it's "open ended". You can start adding lines without first knowing how many you're going to get. If you still want an ordinary "static" array when you're finished reading lines you can easily get one from the ArrayList and then drop the ArrayList.

  • DWH: how do you analyze fact and dimension tables

    Hi,
    I was wondering how you analyze your fact and dimension tables.
    Our fact table is partitioned per month. Each partition contains 4M rows and is 270 MB large. We are using 9 dimensions, 6 have about 50'000 rows (2MB), 1 about 1M rows (50MB) and 2 about 3M rows (200MB). All tables are compressed. The version of Oracle we are using is 9.2.0.5.
    What I was wondering is how you would, using dbms_stats, analyze the fact and dimension tables. Which percentage would you analyze? On which column would you build histograms?

    nope, but i could copy-paste the URL or I could copy-paste the entire thread from the other forum. Id did the one that made more sense to me.

  • Mapping for "Junk dimensions"

    I'm trying to implement a mapping for some columns in what Kimball calls a "Junk Dimension." There are 25 columns in the dimension with cardinality's ranging from 2 to 10. There are 100,000,000 possible values, but only around 100,000 actually exist in the data set. I'd rather just populate the table with the 100,000 rows.
    Here's a refernece to Kimball's discussion of this:
    http://www.kimballgroup.com/html/designtipsPDF/DesignTips2003/KimballDT48DeClutter.pdf
    Is the only way to do this in OWB to use a deduplicator (DISTINCT)?
    If I have 2 dimensions like this, plus the fact table, am I going to fully scan the source table 3 times, once for each of the 2 distinct queries, and once for mapping into the fact table?
    Is there a more efficient solution?

    With “Statuses dimension” everything is clear – it’s classic junk dimension sourced from distinct values of different status fields.
    About “Bands dimension”… Have you explicitly define (somewhere) bands for every value you are expecting to classify? If so, creating this dimension is much straightforward as previous – to join source table with “band definition tables” and collect distinct combinations of every “band id” into “band junk”.
    If you are going to create bands implicitly (or dynamically – by applying expression like “trunc(x,-2)” ), approach may be the same. Just take additional care to not archive “useless banding” – remember that there are recommendation in statistics regarding optimal number of bands depending on number of measures (records) and magnitude of values (from min to max value).
    I would not advise you to apply this “function lookup” approach. It will perform very poor on large dataset (because SQL <-> PLSQL context switching and additional exception handling – if key not found). Better try to browse source data during stage operation, find new key combinations for junk dimensions and load them. After that use simple join / lookup to get dimension key.
    Sergey

  • How will u know that a dimension can b a lineitem Dim b4  loading into Cube

    Hi, Im new to this. My qury is how will u know that a dim will b a LineItem dimension bfore loading in to cube , are there anystandard to b followed. Ca u give me some realtime detailed scenarious.

    Hi,
         When compared to a fact table, dimensions ideally have a small cardinality. However, there is an exception to this rule. For example, there are InfoCubes in which a characteristic Document is used, in which case almost every entry in the fact table is assigned to a different Document. This means that the dimension (or the associated dimension table) has almost as many entries as the fact table itself. We refer here to a degenerated dimension.
    Generally, relational and multi-dimensional database systems have problems to efficiently process such dimensions. You can use the indicators line item and high cardinality to execute the following optimizations:
          1.      Line item: This means the dimension contains precisely one characteristic. This means that the system does not create a dimension table. Instead, the SID table of the characteristic takes on the role of dimension table. Removing the dimension table has the following advantages:
           When loading transaction data, no IDs are generated for the entries in the dimension table. This number range operation can compromise performance precisely in the case where a degenerated dimension is involved.
          A table- having a very large cardinality- is removed from the star schema. as a result, the SQL-based queries are simpler. In many cases, the database optimizer can choose better execution plans.
    Nevertheless, it also has a disadvantage: A dimension marked as a line item cannot subsequently include additional characteristics. This is only possible with normal dimensions.
    We recommend that you use DataStore objects, where possible, instead of InfoCubes for line items. See Creating DataStore Objects.
           2.      High cardinality: This means that the dimension is to have a large number of instances (that is, a high cardinality). This information is used to carry out optimizations on a physical level in depending on the database platform. Different index types are used than is normally the case. A general rule is that a dimension has a high cardinality when the number of dimension entries is at least 20% of the fact table entries. If you are unsure, do not select a dimension having high cardinality.
    Activities
    When creating dimensions in the InfoCube maintenance, flag the relevant dimension as a Line Item/ having High Cardinality.
    Define lots of small dimensions rather than a few large dimensions.
         The size of the dimension tables should account for less than 10% of the fact table.
         If the size of the dimension table amounts to more than 10% of the fact table, mark the dimension as a line item dimension.
    To attain good performance for a query on non-cumulative InfoCubes, you should take note of the following:
    Compression:
    Compress all requests in the non-cumulative InfoCube, or at least most of them.
    The performance of a query based on a non-cumulative InfoCube depends heavily on how the InfoCube is compressed. If you want to improve the performance of a query of this type, first check – in so far as this is possible - whether the data in the InfoCube should be compressed. You should always compress data when you are sure that the request affected will not need to be deleted from the InfoCube.
    Validity Table
    Use as few validity-determining characteristics as possible.
    The number and cardinality of the validity-determining characteristics heavily influences performance. Therefore, you should only define characteristics as validity-determining characteristics when it is really necessary.
    Time Restrictions in the Query
    As far as possible, restrict queries based on non-cumulative InfoCubes to time characteristics.
    The stricter the time-based restriction, the faster the query is generally executed, as the non-cumulative is reconstructed if the number of times is smaller.
    Time Drilldown in the Query
    If you no longer need the average, split a query on a non-cumulative InfoCube (which contains both key figures with LAST aggregation and key figures with AVERAGE aggregation) into two queries.
    With non-cumulative key figures with the exception aggregation LAST, the time characteristic included in the drilldown makes a difference to performance. If, for example, both Calendar Day and Calendar Month are included in the InfoCube, drilldown by month is faster than drilldown by day, because the number of times for which a non-cumulative has to be calculated is smaller.
    For the other types of exception aggregation (average, average weighted with factory calendar, minimum and maximum), this rule is not valid as in these cases, the data is always calculated on the level of the most detailed time characteristic first before exception aggregation is performed.
    Totals Rows
    Hide the totals row in the query when not required.
    Depending on the type of aggregation being used, the calculation of totals rows can be very time-consuming.
    When selecting MDC dimensions, proceed as follows:
            Select dimensions for which you often use restrictions in queries.
            Select dimensions with a low cardinality.
    The MDC dimension is created in the column with the dimension keys (DIMID). The number of different combinations in the dimension characteristics determines the cardinality. Therefore, select a dimension with either one, or few characteristics and with only a few different characteristic values.
    Line item dimensions are not usually suitable, as they normally have a characteristic with a high cardinality.
    If you specifically want to create an MDC dimension for a characteristic with a low cardinality, you can define this characteristic as a line item dimension in the InfoCube. This differs from the norm that line item dimensions contain characteristics with a very high cardinality. However, this has the advantage for multidimensional clustering that the fact table contains the SID values of the characteristic, in place of the dimension keys, and the database query can be restricted to these SID values.
            You cannot select more than three dimensions, including the time dimension.
            Assign sequence numbers, using the following criteria:
            Sort the dimensions according to how often they occur in queries (assign the lowest sequence number to the InfoObject that occurs most often in queries).
            Sort the dimensions according to selectivity (assign the lowest sequence number to the dimension with the most different data records).
    Note: At least one block is created for each value combination in the MDC dimension. This memory area is reserved independently of the number of data records that have the same value combination in the MDC dimension. If there is not a sufficient number of data records with the same value combinations to completely fill a block, the free memory remains unused. This is so that data records with a different value combination in the MDC dimension cannot be written to the block.
    If for each combination that exists in the InfoCube, only a few data records exist in the selected MDC dimension, most blocks have unused free memory. This means that the fact tables use an unnecessarily large amount of memory space. Performance of table queries also deteriorates, as many pages with not much information must be read.
    Example
    The size of a block depends on the PAGESIZE and the EXTENTSIZE of the tablespace. The standard PAGESIZE of the fact-table tablespace with the assigned data class DFACT is 16K. Up to Release SAP BW 3.5, the default EXTENTSIZE value was 16. As of Release SAP NetWeaver 2004s the new default EXTENTSIZE value is 2.
    With an EXTENTSIZE of 2 and a PAGESIZE of 16K the memory area is calculated as 2 x 16K = 32K, this is reserved for each block.
    The width of a data record depends on the number of dimensions and the number of key figures in the InfoCube. A dimension key field uses 4 bytes and a decimal key figure uses 9 bytes. If, for example an InfoCube has 3 standard dimensions, 7 customer dimensions and 30 decimal key figures, a data record needs 10 x 4 bytes + 30 x 9 bytes = 310 bytes. In a 32K block, 32768 bytes / 310 bytes could write 105 data records.
    If the time characteristic calendar month (0CALMONTH) and a customer dimension are selected as the MDC dimension for this InfoCube, at least 100 data records should exist for each InfoPackage, for each calendar month and for each dimension key of the customer dimension. This allows optimal use of the memory space in the F fact table. In the E fact table, this is valid for each calendar month and each dimension key of the customer dimension,dimension contains a characteristic whose value already uniquely determines the values of all other characteristics from a business-orientated viewpoint, then the dimension is named after this characteristic.
      The customer dimension could, for example, be made up of the customer number, the customer group and the levels of the customer hierarchy.
    The sales dimension could contain the characteristics ‘sales person’, ‘sales group’ and ‘sales office’.                                            
    The time dimension could be given using the characteristics ‘day’ (in the form YYYYMMDD), ‘week’ (in the form YYYY.WW), ‘month’ (in the form YYYY.MM), ‘year’ (in the form YYYY) and ‘period’ (in the form YYYY.PPP).
    Use
    When defining an InfoCube, characteristics for dimensions are grouped together to enable them to be stored in a star schema table (dimension table). The aforementioned business-orientated grouping can be the basis for this. With the aid of a simple foreign key dependency, dimensions are linked to one of the key fields of the fact table.
    When you create an InfoCube, the dimensions data package, time and unit are already defined by default. The data package dimension contains technical characteristics. Time characteristics and units are automatically assigned to the corresponding dimensions. When you activate the InfoCube, only those dimensions that contain InfoObjects are activated.
    From a technical viewpoint several characteristic values are mapped to an abstract dimension key (DIM ID), to which the values in the fact table refer. The characteristics chosen for an InfoCube are divided up among InfoCube-specific dimensions when creating the InfoCube.
    Also refer to the following for specific cases arising when defining dimensions:
    Line Item and High Cardinality
    The methods for setting and getting data from a named range use the separation between the description of the range and the data itself. Note that the sequence must be observed both in the range description (structure soi_range_list ) and in the data (structure soi_generic_table ). This means that you must list all data from the first range before you can insert data into the second range.
    Structure soi_range_list
    Field
    Type
    Description
    name
    C
    Name of the range
    rows
    C
    Number of rows
    columns
    C
    Number of columns
    code
    C
    Function in the range:
    SPREADSHEET->SPREADSHEET_CLEAR : Deletes range
    SPREADSHEET->SPREADSHEET_COLUMNSHIDE : Hides columns
    SPREADSHEET->SPREADSHEET_ROWSHIDE : Hides rows
    SPREADSHEET->SPREADSHEET_PROTECT : Range is protected
    SPREADSHEET->SPREADSHEET_UNPROTECT : Range is not protected
    SPREADSHEET->SPREADSHEET_COLUMNSSHOW : Columns are displayed.
    SPREADSHEET->SPREADSHEET_ROWSSHOW : Rows are displayed.
    SPREADSHEET->SPREADSHEET_INSERTALL : The entire table is inserted, regardless of the size of the area
    SPREADSHEET->SPREADSHEET_NEWRANGE : Creates a new range
    The name identifies the range in the worksheet. This is, in effect, the key with which you always access the range. The size of the range is always given in columns and rows.
    Some functions allow you to access a specific area in a worksheet. You can see from the table which functions are implemented.
    Description of Data Type soi_generic_table
    In this table, you can save data from the range and use the  Data Provider to transfer it to or retrieve it from the frontend. The data is transferred directly as a string with no type information.
    Structure soi_generic_table
    Field
    Type
    Description
    row
    C(4)
    Row
    column
    C(4)
    Column
    value
    C(256)
    Value
    The sequence of the data must correspond to the sequence of the range description, for example, range1 before range2 . The data table must then contain the data for the ranges in the sequence range1 range2 .
    Description of Data Type soi_format_table
    Use this table to specify the format of a range. The format consists of various attributes, all of which can be set in a single line. Each variable attribute corresponds to a column of the structure.
    To create a work area for this table, use the structure soi_format_item as a reference.
    The entry "-1" always indicates that the existing attribute value for the range should not be changed.
    Structure soi_format_table
    Field
    Type
    Description
    name
    C(256)
    Name of the range
    front
    I
    Font color (see color palette)
    back
    I
    Background color (see color palette)
    font
    C(256)
    Name of the font family. The following values are permitted:
    'Arial'
    'Courier New'
    'Times New Roman'
    size
    I
    Font size
    '-1' : Unchanged
    bold
    I
    '1' : Bold
    '0' : Normal
    '-1' : Unchanged
    italic
    I
    '1' : Italic
    '0' : Normal
    '-1' : Unchanged
    align
    I
    Alignment:
    '-1' : Unchanged
    '0' : Right-justified
    '1' : Centered
    '2' : Left-justified
    frametype
    I
    Control byte for setting the frame
    '-1' : Unchanged
    framecolor
    I
    Frame color (see color palette)
    '-1' : Unchanged
    currency
    C(3)
    ISO standard currency code
    number
    I
    Specifies the format of a cell in a range.
    1: Display as a simple number
    2: Scientific display
    3: Display as a percentage
    The control byte type contains the following bits. If a bit is set, its corresponding line is drawn. You can set the thickness of the line to one of four levels using bits 6 and 7.
    Bit
    Description
    0
    Sets the left margin
    1
    Sets the top margin
    2
    Sets the bottom margin
    3
    Sets the right margin
    4
    Horizontal line
    5
    Sets the left margin
    6
    Thickness
    7
    Thickness
    Description of Data Type soi_full_range_table
    Each line of a table with the type soi_full_range_table specifies the full definition of a range. The individual lines have the data type soi_full_range_item .
    Structure soi_full_range_table
    Field
    Type
    Description
    name
    C(128)
    Name of the range
    top
    I
    Top row of the range
    left
    I
    Leftmost column of the range
    rows
    I
    Number of rows in the range
    columns
    I
    Number of columns in the range
    sheets
    C(128)
    Worksheet on which the range is defined
    Description of Data Type soi_cell_table
    Each line of a table with the type soi_cell_table specifies the attributes of a range of cells. However, no range name is used. Instead, the cell area is defined by its starting position and the number of rows and columns it contains.The individual lines have the data type soi_cell_item .
    Structure soi_cell_table
    Field
    Type
    Description
    top
    I
    Top row of the range
    left
    I
    Leftmost column of the range
    rows
    I
    Number of rows in the range
    columns
    I
    Number of columns in the range
    front
    I
    Font color (see color palette)
    back
    I
    Background color (see color palette)
    font
    C(256)
    Font. The following are permitted:
    Arial
    Courier New
    Times Roman
    size
    I
    Font size
    Use -1 if the font size is to remain unchanged.
    bold
    I
    '1' : Bold
    '0' : Normal
    '-1' : Unchanged
    italic
    I
    '1' : Italic
    '0' : Normal
    '-1' : Unchanged
    align
    I
    Alignment:
    '-1' : Unchanged
    '0' : Right-justified
    '1' : Centered
    '2' : Left-justified
    frametype
    I
    Control byte for setting the frame
    '-1' : Unchanged
    framecolor
    I
    Frame color (see color palette)
    '-1' : Unchanged
    currency
    C(3)
    ISO standard currency code
    number
    I
    Specifies the format of a cell in a range.
    1: Display as a simple number
    2: Scientific display
    3: Display as a percentage
    decimals
    I
    Number of decimal places
    input
    I
    '0' : Input off
    '1' : Input on
    Description of Data Type soi_dimension_table
    You can use an internal table with this type to identify a range by specifying the coordinates of its top left-hand corner, its length, and its width. The lines of soi_dimension_table have the line type soi_dimension_item .
    Structure soi_dimension_item
    Field
    Type
    Decription
    top
    I
    Topmost row of the range
    left
    I
    Leftmost column of the range
    rows
    I
    Number of rows
    columns
    I
    Number of columns
    Term
    Definition
    Board
    A tabbed area in the workspace used to manipulate the model and its elements: Design board, Layout board and Source board.
    Characteristic
    A type of InfoObject in SAP BI systems that provides a classification such as company code, product, customer group, fiscal year, period, or region. Related to the OLAP-standard term dimension.
    Component
    A reusable model element, such as a UI component or a data service.
    Cube
    A set of data organized as a multidimensional structure defined according to dimensions and measures.
    Related SAP BI terms include InfoCube and query.
    Data binding
    A connection between two UI components (or between a web service and a UI component) that channels identical data from the output port of one UI component to the input port of the other UI component.
    Data flow
    The means by which data is channeled between a data service and connected UI components, or between two UI components whose connection was changed from Data binding to Data flow.
    Data mapping
    Connection between two model elements, describing, for example, the data that is input to an element or the fields that are output from another element.
    Data service
    Any function call, business object or query imported into the model. At runtime, the data service is called and returns results.
    Data store
    A central data container where data of a model can be temporarily stored for future use.
    Dimension
    In OLAP-standard systems:
    A collection of similar data which, together with other such collections, forms the structure of a cube. Typical dimensions include time, product, and geography. Each dimension may be organized into a basic parent-child hierarchy or, if supported by the data source, a hierarchy of levels.  For example, a geography dimension might include levels for continent, country, state, and city.
    The related term in SAP BI systems is characteristic.
    In SAP BI systems:
    A grouping of those evaluation groups (characteristics) that belong together under a common superordinate term.
    With the definition of an InfoCube, characteristics are grouped together into dimensions in order to store them in a star schema table (dimension table).
    Element
    A general term indicating any item used to create a model, including: components, connectors and operators.
    Enterprise service
    A Web service defined to perform functions of an SAP system. Web services are published to and stored within a repository.
    Field
    An element of a table that contains a single piece of data. Fields are organized into rows, which contain all the data relevant for one specific entry in the table.  In some databases, field is a synonym for column.
    Filter
    A set of criteria that restricts the set of records returned as the result of a query. With filters, you define which subset of data appears in the result set.
    Hierarchy
    A logical tree structure that organizes the members of a dimension into a parent-child relationship. If supported by the data source, the hierarchy consists of levels, where the top level is an aggregate of all members and each subsequent level has zero or more child members.
    InfoArea
    An element for grouping meta-objects in the Business Information Warehouse. Each InfoProvider is assigned to an InfoArea. The resulting hierarchy is displayed in the Administrator Workbench.
    InfoCube
    An SAP BI system that consists of a quantity of relational tables created according to the star schema: a large fact table in the center, with several dimension tables surrounding it. It provides a self-contained dataset which can be used for analysis and reporting.
    Similar to the OLAP-standard term cube.
    InfoObject
    A business evaluation object (for example, customer or quantity) in SAP BI systems. Types of InfoObjects include characteristics, key figures, units, time characteristics, and technical characteristics (such as request numbers).
    JDBC
    Java Database Connectivity, which provides an API that lets you access relational databases using the Java programming language. This enables connectivity to a wide range of SQL databases, and also provides access to tabular data sources such as spreadsheets or flat files. The BI JDBC Connector accesses data from JDBC-compliant systems.
    Join
    A relationship between two tables that produces a result set that combines their contents. You create a join by indicating how selected fields in one table are related to selected fields in the other table.
    Key figure
    A value or quantity in SAP BI systems. Related to the OLAP-standard term measure. You may also define calculated key figures, which are derived using a formula.
    Layer
    A collection of UI elements that are all visible at the same time at runtime.
    Level
    A set of nodes (members) in a tree hierarchy in supporting data sources that are at the same distance from the root of the tree. For example, in a geography hierarchy, the top level might be all places, the second level might be continents, the third level might be countries, and the fourth level might be cities.
    MDX
    Multidimensional Expressions, a query language used to retrieve and manipulate multidimensional data.
    Measure
    One category of values – usually numeric – used to define a cube. These values are derived from one or more columns in the cube's fact table and are the basis for aggregation and analysis.
    Related SAP BI terms include key figure and structure element.
    Member
    An element of a dimension that represents one or more occurrences of data. A member can be unique (it occurs only once) or non-unique (it may occur more than once in its dimension).  For example, in a geography dimension that includes cities in the US, the member Portland could be non-unique, since there is a city called Portland in the state of Oregon and in the state of Maine.
    In SAP BI systems, members are referred to as instances of characteristics.
    Model
    An object created in Storyboard. Models may contain packages, pages, iViews and any other model elements.
    Multidimensional data
    Data in dimensional models suitable for business analytics. In this documentation, we use the term multidimensional data synonymously with OLAP data.
    Navigation line
    A connection that provides event annotation, running between model layers. The source element raises the event that can be handled by the connected element. By default, a navigation line is curved.
    ODBO
    OLE DB for OLAP – Microsoft’s set of objects and interfaces that extend the ability of OLE DB to provide access to multidimensional data sources on the Windows platform. Providers of OLAP data can implement the interfaces described with OLE DB for OLAP to allow all OLAP clients to access their data. The BI ODBO Connector accesses data from ODBO-compliant systems.
    OLAP
    Online analytical processing – a system of organizing data in a multidimensional model that is suitable for decision support. SAP BI systems are OLAP systems.
    Operation
    A functionality provided by a Web service.
    Operator
    A mechanism used to manipulate data returned from the data service before it is displayed in the iView.
    Package
    A high-level “container”; it can contain any number of pages, iViews or other packages.
    Port
    A defined point of interface into and out of a component.
    Query
    In SAP BI systems, a collection of selected characteristics and key figures (InfoObjects) used together to analyze the data of an InfoProvider. A query always refers exactly to one InfoProvider, whereas you can define as many queries as you like for each InfoProvider.
    Query view
    In SAP BI systems, a view of a query after navigation, saved in an InfoCube. You can use this saved query view as a basis for data analysis and reporting.
    Relational database
    A repository for typically large amounts of information, structured in accordance with the relational model, in tables with columns. A relational database is created and administered by a relational database management system (RDBMS).
    Row
    A set of fields within a table that contains the data for one specific entry in the table. Each row in a given table has the same structure, predefined for a particular table. In some databases, row is a synonym for record.
    SAP Query
    A component that allows you to create custom reports without any ABAP programming knowledge. The BI SAP Query Connector uses SAP Query to access data from such SAP operational applications.
    Storyboard
    The Visual Composer client from which you design models.
    Table
    A set of rows, also known as a relation. The table is the central object of the relational model.
    Task panel
    A work area of the Visual Composer Storyboard desktop that displays a specific set of tools for building a model.
    Toolbar
    The horizontal row of buttons under the main menu (main toolbar) or the vertical row of buttons in the task panel (task-panel toolbar).
    Toolbox
    A set of board-specific tools that assist in performing tasks in the Visual Composer workspace.
    Value help
    The offering, typically in a pop-up dialog box, of possible valid values for an input field. Also known as input help, selection help, or F4 help.
    Web service
    An interface between two or more software applications that is implemented with the industry standards SOAP, WSDL and UDDI.
    Workspace
    The main grid area of Visual Composer that displays the model as it is built and modified. The workspace consists of boards.
    XMLA
    XML for Analysis, an XML-messaging-based protocol specified by Microsoft for exchanging analytical data between client applications and servers (for example, OLAP providers) using HTTP and SOAP as a service on the Web. The BI XMLA Connector accesses data from XMLA-compliant systems.
    Clustering allows you to save sorted data records in the fact table of an InfoCube. Data records with the same dimension keys are saved in the same extents (related database storage unit). This means that same data records are not spread across a large memory area and thereby reduces the number of extents that the system has to read when it accesses tables. This greatly accelerates read, write and delete access to the fact table.
    Prerequisites
    Currently the function is only supported by the database platform DB2 for Linux, UNIX, and Windows. You can use partitioning to improve the performance of other databases. For more information, see Partitioning.
    Features
    Two types of clustering are available: Index clustering and multidimensional clustering (MDC).
    Index Clustering
    Index clustering organizes the data records of a fact table according to the sort sequence of an index. Organization is linear and corresponds to the values of the index field.
    If a data record cannot be inserted in accordance with the sort sequence because the relevant extent is already full, the data record is inserted into an empty extent at the end of the table. For this reason, the system cannot guarantee that the sort sequence is always correct, particularly if you perform many insert and delete operations. Reorganizing the table restores the sort sequence and frees up memory space that is no longer required.
    The clustering index of an F fact table is, by default, the secondary index in the time dimension. The clustering index of an E fact table is, by default, the acting primary index (P index).
    As of release SAP BW 2.0, index clustering is standard for all InfoCubes and aggregates.
    Multidimensional Clustering (MDC)
    Multidimensional clustering organizes the data records of a fact table in accordance with one or more fields that you define freely. The selected fields are also marked as MDC dimensions. Only data records that have the same values in the MDC dimensions are saved in an extent. In the context of MDC, an extent is called a block. The system can always guarantee that the sort sequence is correct. Reorganizing the table is not necessary, even with many insert and delete operations.
    Block indexes from within the database, instead of the default secondary indexes, are created for the selected fields. Block indexes link to extents instead of data record numbers and are therefore much smaller. They save memory space and the system can search through them more quickly. This accelerates table requests that are restricted to these fields.
    You can select the key fields of the time dimension or any customer-defined dimensions of an InfoCube as an MDC dimension. You cannot select the key field of the package dimension; it is automatically added to the MDC dimensions in the F fact table.
    You can also select a time characteristic instead of the time dimension. In this case, the fact table has an extra field. This contains the SID values of the time characteristic. Currently only the time characteristics Calendar Month (0CALMONTH) and Fiscal Year/Period (0FISCPER) are supported. The time characteristic must be contained in the InfoCube. If you select the Fiscal Year/Period (0FISCPER) characteristic, a constant must be set for the Fiscal Year Variant (0FISCVARNT) characteristic.
    Clustering is applied to all the aggregates of the InfoCube. If an aggregate does not contain an MDC dimension of the InfoCube, or if all the InfoObjects of an MDC dimension are created as line item dimensions in the aggregate, the aggregates are clustered using the remaining MDC dimensions. Index clustering is used for the aggregate if the aggregate does not contain any MDC dimensions of the InfoCube, or if it only contains MDC dimensions.
    Multidimensional clustering was introduced in Release SAP NetWeaver 2004s and can be set up separately for each InfoCube.
    For procedures, see Definition of Clustering.
    Screen capture input to SAP Business Graphics must adhere to certain format rules in order to be recognized correctly.
    SAP Business Graphics assumes that your screen data resembles the basic SAP table structure. This structure is somewhat flexible, but the table must obey the format rules listed in this section.
    Restrictions on the Format of the Data
    If you use the screen capture facility to input graphics data, the input table can contain either a single list of values, or rows and columns. If the data is a single list, you can include the values themselves and labels for each value. If the data has rows and columns, you can include a label for each row, a label for each column, and the table values themselves.
    You cannot use the screen capture facility to input data in multiple tables. If you want to graph data occurring in multiple tables, you must write the input values to a file using ABAP programming tools. See SAP Graphics: Programming Interfaces for more information.
    Format Rules for Numerical Values
    Numerical values must obey the following rules:
    Within a numerical value, the screen capture recognizes only the minus sign (hyphen), the comma, and the decimal point (period) as legitimate punctuation. Exponential notation and other variations are not recognized.
    Note that the functions of the period and the comma in the English system are exactly opposite to their functions in some European systems. If your numbers are not being interpreted correctly, check with the system administrator to determine how these characters should be used.
    The minus sign must occur after the number, with no intervening spaces.
    All numbers in a row must be separated by spaces.
    A column of numbers is right-justified and identified by the position of its right-most character. Each number belonging to this column must have its right-most character in the correct position.
    If you have values partially or entirely out of alignment with the given right-most character position, they will not be interpreted as belonging to the proper column. In most cases, the screen capture program assumes these are values for an entirely new column.
    You may leave out values for a given row or column.
    Format Rules for Text Strings
    You can include labels in the table to name the rows and columns. You can also provide a title for the set of rows, for the set of columns, and for the graph as a whole.
    SAP Business Graphics does not accept more than 32 elements per dimension. As a result, you cannot have more than 32 rows or 32 columns in your table.
    Any string of characters not identifiable as a number is assumed to be a label. Labels may occur at the beginnings of a row, at the head of a column, as a title for the rows or columns, or as the graph main title. A non-numeric item placed in among the data values is ignored by the graphics program.
    A legitimate number occurring where a label should be is interpreted as a number. If you want to use labels that look like numbers, you must modify them to contain at least one non-numeric character.
    Placement of labels for row-names or column-names:
    Row-names can occur only at the beginning (left side) of a row.
    Column-names should line up above the columns they are heading, but do not necessarily need to begin in the same column. They should be separated by at least two spaces.
    If you don't adhere to these requirements, the screen capture program attempts to pick out the labels anyway. However, the results may not be what you expect. (Check the selection bars in the Selection view to see if your headers were correctly identified.)
    Placement of titles for rows or columns as a set:
    The title for the rows as a set should be placed directly above the column of row-names.
    The title for the columns as a set should occur directly above the first of the column-names, and begin in exactly the same position.
    The main title for the graph should occur in the very first line of the highlighted area. If you have more text there than just the title, the screen capture program attempts to pick out the string in the center of the line. The longest string in the center of the line separated from other text by double spaces is assumed to be the title.
    The maximum length for a text string cannot be specified exactly since this depends on the size of your window, the resolution of your monitor, and other factors.
    Many strings too long for a small window are displayed correctly when you enlarge the window to full-screen size. In general, you must experiment to find the optimal length for text strings.

  • How to populate budget in creation of Fund?

    Hi Gurus,
    Can anybody give me a clue on how to populate the 'budget'or 'Expired' in the process of creating a fund  in CRM? I could not fill out because the fields are grey .
    Thanks

    nobody can answer , so delete it

  • How to populate the condition tables of CRM 7.0

    Hello Friends,
    How to populate values in CND* tables , i assume these are the tables that hold the conditions.
    Thanks and Regards,
    Vasu

    Hi,
    if you refer to CND* tables those are tables involved in the condition master data exchange between ERP and CRM (on CRM side). Actual condition tables for pricing related condition records start with CNC*. In the help there is a documentation of the condition master data tables for pricing available: http://help.sap.com/saphelp_crm70/helpdata/EN/0e/91f9392486ce1ae10000000a114084/content.htm
    Hope this helps.
    Best Regards,
    Michael

Maybe you are looking for

  • Use a multiple selection parameter in the data model

    Hi i have created a parameter with the property multiple selection. This parameter i use in the Data Model where area, if i just mark one value the report works well if i mark more the one the report run into a error. WHERE PSNR IN :ma the xdo looks

  • Sending Email From Mobile Phone

    So I have Postfix working great and I've always used webmail if I needed to send email from PC's outside of $mynetworks. So fast forward to today where I got my 1st Android powered mobile phone and I can configure the Android mail client to send/rece

  • Vendor payment alert

    Dear All, i  want to send a message regarding  the vendor payment release status, From which table  can get    vendor  payment data, please give some logic to send  alert to vendor  the movemet payment is released, With regards, ARABBAS

  • One pricing condition for BOM and other for individual component

    Hello SAP gurus, We have two pricing condition types created and assigned in the pricing procedure which has been created with reference to PR00 and condition records are maintained for both the condition types. But, we want only one pricing conditio

  • How do I change the font style

    How do I change the font style?