FCLT#84567 AiAi CLOB groepering in rapport

svn path=/Website/branches/v2024.2/; revision=65476
This commit is contained in:
Jos Groot Lipman
2024-07-09 07:31:49 +00:00
parent 94013785a5
commit cea48bb736

View File

@@ -577,6 +577,30 @@ function report_GET(params)
if (hasAggregate) break;
}
// CLOB (mld_melding_omschrijving) mag niet in de ORDER BY genoemd worden
// TODO: in de toekomst misschien explicieter rapport kolom type 'memo' onderkennen?
var sqlc = "SELECT column_name, data_type"
+ " FROM user_tab_columns"
+ " WHERE table_name = " + safe.quoted_sql_upper(model.table);
var oRs = Oracle.Execute(sqlc);
var isclob = {};
while (!oRs.EOF)
{
isclob[oRs("column_name").Value] = (oRs("data_type") == 'CLOB');
oRs.MoveNext();
}
oRs.Close()
// CLOB is problematisch in GROUP BY
for (var fld in model.fields)
{
var field = model.fields[fld];
if (isclob[field.dbs.toUpperCase()])
{
field.sql = "TO_CHAR(SUBSTR({0}, 1, 4000))".format(field.dbs);
}
}
// Controleren of de urllink parameter een &##TRANSIT## heeft. Dan geven wel alle filtervelden door
if (params.urllink && params.urllink.link && params.urllink.link.match(/&##TRANSIT##/i))
{
@@ -814,20 +838,6 @@ function report_GET(params)
autosorting = autosorting && (field.sorting.id == 3)
}
// CLOB (mld_melding_omschrijving) mag niet in de ORDER BY genoemd worden
// TODO: in de toekomst misschien explicieter rapport kolom type 'memo' onderkennen?
var sqlc = "SELECT column_name, data_type"
+ " FROM user_tab_columns"
+ " WHERE table_name = " + safe.quoted_sql_upper(query.tables[0]);
var oRs = Oracle.Execute(sqlc);
var isclob = {};
while (!oRs.EOF)
{
isclob[oRs("column_name").Value] = (oRs("data_type") == 'CLOB');
oRs.MoveNext();
}
oRs.Close()
if (autosorting)
{
for (var i=0; i < query.selects.length; i++)