Search in sources :

Example 1 with Row

use of com.ramussoft.report.data.Row in project ramus by Vitaliy-Yakovchuk.

the class XMLReportEngine method getRecIDEF0Kod.

private static String getRecIDEF0Kod(final Row function) {
    final Row f = (Row) function.getParent();
    if (f == null || f.getParent() == null)
        return "";
    String id = Integer.toString(function.getId());
    if (id.length() > 1)
        id = "." + id + ".";
    return getRecIDEF0Kod(f) + id;
}
Also used : Row(com.ramussoft.report.data.Row)

Example 2 with Row

use of com.ramussoft.report.data.Row in project ramus by Vitaliy-Yakovchuk.

the class QueryPrint method print.

@Override
public void print(Out out, Data data) {
    int begin = 0;
    for (int i = query.length() - 1; i >= 0; i--) {
        if (query.charAt(i) == '.') {
            begin = i;
            break;
        }
    }
    String name = "";
    if (begin + 1 < query.length())
        name = query.substring(begin + 1);
    boolean first = true;
    Row row;
    List<Row> list = new ArrayList<Row>();
    while ((row = rows.next()) != null) {
        if (list.indexOf(row) < 0)
            list.add(row);
        else
            continue;
        if (!first)
            out.print("; ");
        else {
            first = false;
            beforePrint(out, data);
        }
        out.print(row.getAttribute(name, rows));
    }
    if (!first) {
        afterPrint(out, data);
    }
}
Also used : ArrayList(java.util.ArrayList) Row(com.ramussoft.report.data.Row)

Example 3 with Row

use of com.ramussoft.report.data.Row in project ramus by Vitaliy-Yakovchuk.

the class TableBodyQuery method print.

@Override
public void print(List<Object> buffer, Data data) {
    String tableQuary = tablePrint.getQuery();
    String[] words = query.split("\\.");
    String[] tableWords = tableQuary.split("\\.");
    int i = 0;
    while (words[i].equals(tableWords[i])) {
        if (i + 1 >= tableWords.length) {
            i++;
            break;
        }
        if (i + 2 >= words.length) {
            i++;
            break;
        }
        i++;
    }
    if (i == 0) {
        String name1 = "Unknown";
        String name2 = "Unknown";
        if (words.length > 0)
            name2 = words[0];
        if (tableWords.length > 0)
            name1 = tableWords[0];
        throw new DataException("Error.differentBaseQualifiers", "Report contains diffetents base qualifiers in queries", name1, name2);
    }
    Rows rows = tablePrint.getRows();
    int diff = tableWords.length - i;
    while (diff > 0) {
        diff--;
        rows = rows.getParent();
    }
    if (rows == null)
        rows = data.getBaseRows();
    if (i + 1 < words.length) {
        StringBuffer sb = new StringBuffer();
        boolean first = true;
        for (int j = i; j < words.length - 1; j++) {
            if (first)
                first = false;
            else
                sb.append('.');
            sb.append(words[j]);
        }
        rows = data.getRowsByQuery(rows.getCurrent(), sb.toString());
        first = true;
        List<Row> list = new ArrayList<Row>();
        Row row;
        while ((row = rows.next()) != null) {
            if (list.indexOf(row) < 0)
                list.add(row);
            else
                continue;
            if (first)
                first = false;
            else
                buffer.add("; ");
            buffer.add(rows.getAttribute(words[words.length - 1]));
        }
    } else {
        buffer.add(rows.getAttribute(words[words.length - 1]));
    }
}
Also used : DataException(com.ramussoft.report.data.DataException) ArrayList(java.util.ArrayList) Row(com.ramussoft.report.data.Row) Rows(com.ramussoft.report.data.Rows)

Example 4 with Row

use of com.ramussoft.report.data.Row in project ramus by Vitaliy-Yakovchuk.

the class OwnersConnection method getConnected.

@Override
public Rows getConnected(final Data data, Row row) {
    Integer type = (Integer) row.getAttribute(IDEF0Plugin.getFunctionTypeAttribute(row.getEngine()));
    if (type != null && type.intValue() == 1003) {
        Long id = (Long) row.getAttribute(IDEF0Plugin.getLinkAttribute(row.getEngine()));
        Rows rows = new Rows(row.getRowSet(), data, false);
        if (id != null) {
            Row row2 = data.findRow(id);
            if (row2 != null) {
                List<AnyToAnyPersistent> list = (List) row2.getAttribute(IDEF0Plugin.getStreamAddedAttribute(row2.getEngine()));
                for (AnyToAnyPersistent anyPersistent : list) {
                    Row row3 = data.findRow(anyPersistent.getOtherElement());
                    row3.setElementStatus(anyPersistent.getElementStatus());
                    rows.add(row3);
                }
            }
        }
        return rows;
    }
    OwnersConnection connection = (OwnersConnection) data.get("OunersConnection");
    if (connection != null)
        return connection.getOuners(data, row);
    final Engine engine = data.getEngine();
    ArrayList<Long> ounerQualifierIds = loadOunerIDs(engine);
    owners = new Hashtable<Row, List<Row>>();
    final Attribute ounerAttribute = IDEF0Plugin.getFunctionOunerAttribute(engine);
    final Hashtable<Row, List<Row>> mech = new Hashtable<Row, List<Row>>();
    RowMapper mapper = new RowMapper() {

        @Override
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            RowSet rowSet = data.getRowSet(rs.getLong(1));
            Row row = (Row) rowSet.findRow(rs.getLong(2));
            if (row == null)
                return null;
            Long o = (Long) row.getAttribute(ounerAttribute);
            if (o != null) {
                Element element = engine.getElement(o);
                if (element != null) {
                    RowSet ounerRowSet = data.getRowSet(element.getQualifierId());
                    Row owner = (Row) ounerRowSet.findRow(o);
                    if (row == null || owner == null)
                        return null;
                    mech.put(row, Arrays.asList(owner));
                }
                return null;
            }
            RowSet ounerRowSet = data.getRowSet(rs.getLong(3));
            Row ouner = (Row) ounerRowSet.findRow(rs.getLong(4));
            if (row == null || ouner == null)
                return null;
            List<Row> l = mech.get(row);
            if (l == null) {
                l = new ArrayList<Row>(2);
                mech.put(row, l);
            }
            if (!l.contains(ouner))
                l.add(ouner);
            return null;
        }
    };
    if (ounerQualifierIds.size() > 0) {
        data.getTemplate().queryWithoutResults("SELECT b.qualifier_id, function, ramus_elements.qualifier_id, ramus_elements.element_id FROM\n" + "ramus_attribute_sector_borders, ramus_attribute_other_elements, ramus_attribute_any_to_any_elements, ramus_elements, ramus_elements b\n" + "WHERE ramus_attribute_any_to_any_elements.element_id=ramus_attribute_other_elements.other_element\n" + "AND ramus_elements.element_id=ramus_attribute_any_to_any_elements.other_element\n" + "AND ramus_attribute_sector_borders.element_id = ramus_attribute_other_elements.element_id\n" + "AND function_type=1 AND ramus_attribute_sector_borders.attribute_id in\n" + "(SELECT attribute_id FROM ramus_attributes WHERE attribute_system=true AND attribute_name='F_SECTOR_BORDER_END')\n" + "AND b.element_id=function\n" + "AND ramus_elements.qualifier_id in " + toIns(ounerQualifierIds), mapper, true);
    }
    try {
        data.getTemplate().queryWithoutResults("SELECT (SELECT qualifier_id FROM ramus_elements WHERE element_id=ouner_id) as function_qualifier_id, " + "ouner_id AS function,  " + "(SELECT qualifier_id FROM ramus_elements WHERE element_id=other_element) as ouner_qualifier_id, " + "other_element as ouner_id FROM ramus_attribute_any_to_any_elements, ramus_attribute_function_ouners " + "WHERE ramus_attribute_any_to_any_elements.element_id IN " + "(SELECT value FROM ramus_attribute_longs WHERE ramus_attribute_longs.element_id=ramus_attribute_function_ouners.element_id)", mapper, true);
    } catch (Exception e) {
        e.printStackTrace();
    }
    data.getTemplate().queryWithoutResults("SELECT ramus_attribute_function_ouners.element_id,\n" + "(SELECT MAX(ramus_elements.qualifier_id) FROM ramus_elements WHERE ramus_elements.element_id=ramus_attribute_function_ouners.element_id),\n" + "ramus_elements.qualifier_id,\n" + " ouner_id FROM ramus_elements, ramus_attribute_function_ouners WHERE ramus_elements.element_id=ouner_id " + "AND ramus_attribute_function_ouners.ouner_id IN (SELECT element_id FROM ramus_attribute_function_types WHERE type<1001)", new RowMapper() {

        @Override
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            RowSet rowSet = data.getRowSet(rs.getLong(2));
            Row row = (Row) rowSet.findRow(rs.getLong(1));
            RowSet ounerRowSet = data.getRowSet(rs.getLong(3));
            Row ouner = (Row) ounerRowSet.findRow(rs.getLong(4));
            if (ouner != null && row != null) {
                List<Row> l = mech.get(row);
                if (l == null) {
                    l = new ArrayList<Row>(2);
                    mech.put(row, l);
                }
                if (!l.contains(ouner))
                    l.add(ouner);
            }
            return null;
        }
    }, true);
    RowSet rowSet = data.getRowSet(row.getQualifier());
    setRecOuners(rowSet.getRoot(), mech, null);
    data.put("OunersConnection", this);
    return getOuners(data, row);
}
Also used : Attribute(com.ramussoft.common.Attribute) SQLException(java.sql.SQLException) Element(com.ramussoft.common.Element) RowSet(com.ramussoft.report.data.RowSet) ArrayList(java.util.ArrayList) AnyToAnyPersistent(com.ramussoft.idef0.attribute.AnyToAnyPersistent) ResultSet(java.sql.ResultSet) ArrayList(java.util.ArrayList) List(java.util.List) Engine(com.ramussoft.common.Engine) Rows(com.ramussoft.report.data.Rows) RowMapper(com.ramussoft.jdbc.RowMapper) Hashtable(java.util.Hashtable) IOException(java.io.IOException) InvalidPropertiesFormatException(java.util.InvalidPropertiesFormatException) SQLException(java.sql.SQLException) DataException(com.ramussoft.report.data.DataException) Row(com.ramussoft.report.data.Row)

Example 5 with Row

use of com.ramussoft.report.data.Row in project ramus by Vitaliy-Yakovchuk.

the class StreamConnection method getConnected.

@SuppressWarnings("unchecked")
@Override
public Rows getConnected(Data data, Row row) {
    List<AnyToAnyPersistent> list = (List) row.getAttribute(IDEF0Plugin.getStreamAddedAttribute(data.getEngine()));
    Rows rows = new Rows(data.getRowSet(qualifier), data, false);
    for (AnyToAnyPersistent p : list) {
        Row row2 = rows.getRowById(p.getOtherElement());
        if (row2 != null) {
            row2.setElementStatus(p.getElementStatus());
            rows.add(row2);
        }
    }
    return rows;
}
Also used : List(java.util.List) Row(com.ramussoft.report.data.Row) AnyToAnyPersistent(com.ramussoft.idef0.attribute.AnyToAnyPersistent) Rows(com.ramussoft.report.data.Rows)

Aggregations

Row (com.ramussoft.report.data.Row)19 Rows (com.ramussoft.report.data.Rows)9 AnyToAnyPersistent (com.ramussoft.idef0.attribute.AnyToAnyPersistent)6 ArrayList (java.util.ArrayList)6 List (java.util.List)6 RowSet (com.ramussoft.report.data.RowSet)5 Engine (com.ramussoft.common.Engine)4 Attribute (com.ramussoft.common.Attribute)3 RowMapper (com.ramussoft.jdbc.RowMapper)3 ResultSet (java.sql.ResultSet)3 SQLException (java.sql.SQLException)3 Qualifier (com.ramussoft.common.Qualifier)2 DataException (com.ramussoft.report.data.DataException)2 Hashtable (java.util.Hashtable)2 Element (com.ramussoft.common.Element)1 SectorBorderPersistent (com.ramussoft.idef0.attribute.SectorBorderPersistent)1 XMLReportEngine (com.ramussoft.report.XMLReportEngine)1 IOException (java.io.IOException)1 InvalidPropertiesFormatException (java.util.InvalidPropertiesFormatException)1