FSN#31698 Rapportgenerator beter automatisch COLS aanmakaen
svn path=/Website/trunk/; revision=24495
This commit is contained in:
@@ -71,6 +71,97 @@ model_reportcolumns =
|
||||
}
|
||||
},
|
||||
|
||||
_view2columns: function (usrrap_key)
|
||||
{
|
||||
var sql = "SELECT fac_usrrap_view_name"
|
||||
+ " FROM fac_usrrap"
|
||||
+ " WHERE fac_usrrap_key = " + usrrap_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var view_name = oRs("fac_usrrap_view_name").Value;
|
||||
oRs.Close();
|
||||
// Rapport kan ook zijn XXXX.RAP_YYYYY?
|
||||
var view_name_short = view_name;
|
||||
var i = view_name_short.indexOf('.');
|
||||
if (i != -1)
|
||||
view_name_short = view_name_short.substring(i+1);
|
||||
|
||||
var sequence = 10;
|
||||
var sql = "SELECT INITCAP(column_name) column_name"
|
||||
+ " , data_type"
|
||||
+ " , data_length"
|
||||
+ " , data_precision"
|
||||
+ " , data_scale"
|
||||
+ " FROM user_tab_columns"
|
||||
+ " WHERE table_name = UPPER(" + safe.quoted_sql(view_name_short) + ")"
|
||||
+ " ORDER BY column_id";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var colname = oRs.Fields("column_name").Value.toLowerCase();
|
||||
var colpar = { caption: oRs.Fields("column_name").Value, // Met de initcap
|
||||
name: colname,
|
||||
datatype: "varchar",
|
||||
group: 'G',
|
||||
sequence: sequence,
|
||||
visible: 'V',
|
||||
filter: null
|
||||
};
|
||||
sequence += 10;
|
||||
var ucolname = colname.toUpperCase();
|
||||
|
||||
var special_cols = ucolname.match(/^(HIDE_F_|FCLT_X_|FCLT_3D_|FCLT_KEY|FCLT_F_|HTML_|FCLT_D_|FCLT_C_)/);
|
||||
if (special_cols)
|
||||
colpar.caption = colpar.caption.substring(special_cols[0].length);
|
||||
|
||||
if (ucolname.match(/^(HIDE_F_|FCLT_3D_|FCLT_KEY)/))
|
||||
colpar.visible = 'H'; // Hidden
|
||||
|
||||
if (ucolname.match(/^(FCLT_X_)/))
|
||||
colpar.visible = 'I'; // Invisible, je mag hem wel aanzetten
|
||||
|
||||
if (view_name_short.match(/_V_UDR/))
|
||||
colpar.visible = 'H'; // Hidden, die hebben te veel kolommen
|
||||
|
||||
if (ucolname.match(/^(FCLT_F_|FCLT_D_)/))
|
||||
colpar.filter = 'A';
|
||||
|
||||
var ora_type = oRs("data_type").Value;
|
||||
var ora_length = oRs("data_length").Value;
|
||||
var ora_precision = oRs("data_precision").Value;
|
||||
var ora_scale = oRs("data_scale").Value;
|
||||
|
||||
if (ucolname.match("^FCLT_F_|FCLT_X_")) // Filter, altijd varchar
|
||||
{
|
||||
colpar.filter = 'A';
|
||||
}
|
||||
else if (ucolname.match("^FCLT_C_")) // Currency
|
||||
{
|
||||
colpar.datatype = 'currency';
|
||||
}
|
||||
else if (ucolname.match("^HTML_"))
|
||||
{
|
||||
colpar.datatype = 'html';
|
||||
}
|
||||
else if (ora_type == 'NUMBER')
|
||||
{
|
||||
colpar.datatype = 'number';
|
||||
if (ora_scale > 0)
|
||||
{
|
||||
colpar.datatype = 'float';
|
||||
}
|
||||
}
|
||||
else if (ora_type == "DATE") //
|
||||
{
|
||||
colpar.datatype = 'date';
|
||||
}
|
||||
|
||||
var params = { };
|
||||
model_reportcolumns._REST_POST(params, colpar, usrrap_key);
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
},
|
||||
|
||||
REST_GET: function _GET(params)
|
||||
{
|
||||
var query = api2.sqlfields(params, model_reportcolumns );
|
||||
@@ -83,6 +174,11 @@ model_reportcolumns =
|
||||
+ " ORDER BY fac_usrrap_cols_volgnr";
|
||||
|
||||
var json = api2.sql2json (params, sql, model_reportcolumns );
|
||||
if (!json.length)
|
||||
{
|
||||
model_reportcolumns._view2columns(parseInt(params.filter.pid,10));
|
||||
var json = api2.sql2json (params, sql, model_reportcolumns );
|
||||
}
|
||||
|
||||
return json;
|
||||
},
|
||||
@@ -98,10 +194,8 @@ model_reportcolumns =
|
||||
return { key: the_key };
|
||||
},
|
||||
// Only internally used by report_clone
|
||||
REST_POST: function (params, jsondata, parent_key) /* insert columns */
|
||||
_REST_POST: function (params, jsondata, parent_key) /* insert columns */
|
||||
{
|
||||
if (!params.internal)
|
||||
INTERNAL_ERROR_INTERNAL_ONLY;
|
||||
var fields = api2.update_fields(params, model_reportcolumns, jsondata); // Build updater
|
||||
|
||||
fields["id"] = model_reportcolumns.fields["id"];
|
||||
|
||||
Reference in New Issue
Block a user