details: /erp/devel/main/rev/c4e24674dbf8
changeset: 9087:c4e24674dbf8
user: Martin Taal <martin.taal <at> openbravo.com>
date: Thu Dec 09 18:25:07 2010 +0100
summary: Added logic to compute the row number for a given record id
details: /erp/devel/main/rev/3322e18ae878
changeset: 9088:3322e18ae878
user: Martin Taal <martin.taal <at> openbravo.com>
date: Thu Dec 09 18:34:01 2010 +0100
summary: Removed unneeded method, added javadoc
details: /erp/devel/main/rev/35c9b49515ef
changeset: 9089:35c9b49515ef
user: RM packaging bot <staff.rm <at> openbravo.com>
date: Fri Dec 10 06:35:55 2010 +0000
summary: CI: promote changesets from pi to main
diffstat:
src-db/database/sourcedata/AD_MODULE.xml | 4 +-
src/org/openbravo/dal/service/OBQuery.java | 32 ++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 2 deletions(-)
diffs (63 lines):
diff -r 79e55dfc8af0 -r 35c9b49515ef src-db/database/sourcedata/AD_MODULE.xml
--- a/src-db/database/sourcedata/AD_MODULE.xml Thu Dec 09 09:43:14 2010 +0100
+++ b/src-db/database/sourcedata/AD_MODULE.xml Fri Dec 10 06:35:55 2010 +0000
@@ -6,7 +6,7 @@
<!--0--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
<!--0--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--0--> <NAME><![CDATA[Core]]></NAME>
-<!--0--> <VERSION><![CDATA[2.50.19053]]></VERSION>
+<!--0--> <VERSION><![CDATA[2.50.19088]]></VERSION>
<!--0--> <DESCRIPTION><![CDATA[Core module is the base one]]></DESCRIPTION>
<!--0--> <HELP><![CDATA[Core module is the base one, all developments in core
are included as part of the standard Openbravo ERP.]]></HELP>
<!--0--> <URL><![CDATA[www.openbravo.com]]></URL>
@@ -22,7 +22,7 @@
<!--0--> <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
<!--0--> <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
<!--0--> <REFERENCEDATAINFO><![CDATA[Standard document types for orders,
invoices, etc. and settings]]></REFERENCEDATAINFO>
-<!--0--> <VERSION_LABEL><![CDATA[dev]]></VERSION_LABEL>
+<!--0--> <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
<!--0--> <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
<!--0--></AD_MODULE>
diff -r 79e55dfc8af0 -r 35c9b49515ef src/org/openbravo/dal/service/OBQuery.java
--- a/src/org/openbravo/dal/service/OBQuery.java Thu Dec 09 09:43:14
2010 +0100
+++ b/src/org/openbravo/dal/service/OBQuery.java Fri Dec 10 06:35:55
2010 +0000
@@ -151,6 +151,38 @@
return ((Number) qry.uniqueResult()).intValue();
}
+ /**
+ * Computes the row number of a record which has the id which is passed in
as a parameter. The
+ * rownumber computation takes into account the filter and sorting settings
of the the OBQuery
+ * object.
+ *
+ * @param targetId
+ * the record id
+ * @return the row number or -1 if not found
+ */
+ public int getRowNumber(String targetId) {
+ String qryStr = createQueryString();
+ if (qryStr.toLowerCase().contains(FROM_SPACED)) {
+ final int index = qryStr.indexOf(FROM_SPACED) + FROM_SPACED.length();
+ qryStr = qryStr.substring(index);
+ }
+ final Query qry = getSession().createQuery("select id " + FROM_SPACED +
qryStr);
+ setParameters(qry);
+
+ final ScrollableResults results = qry.scroll(ScrollMode.FORWARD_ONLY);
+ try {
+ while (results.next()) {
+ final String id = results.getString(0);
+ if (id.equals(targetId)) {
+ return results.getRowNumber();
+ }
+ }
+ } finally {
+ results.close();
+ }
+ return -1;
+ }
+
private String stripOrderBy(String qryStr) {
if (qryStr.toLowerCase().indexOf(ORDERBY) != -1) {
return qryStr.substring(0, qryStr.toLowerCase().indexOf(ORDERBY));
------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits