IP record ID view
Материал из iDempiere ru
iP_record_ID_view
В системе есть функционал с кнопкой RECORD_ID, когда указывается таблица и по этой кнопке можно перейти на конкретную запись из указанной таблицы. Для скорости работы хочется понимать какую запись откроет кнопка до нажатия на нее.
С помощью функции iP_record_ID_view можно визуализировать содержимое кнопки.
Вариант использования :
Создается виртуальное поле с ColumnSQL = (SELECT iP_record_ID_view(AD_Table_ID, RECORD_ID)) рядом с кнопкой RECORD_ID.
Например:
SELECT iP_record_ID_view(207, 50001); //Результат: 'Fertilizer'
SELECT iP_record_ID_view(208, 125); //Результат: 'Grass - Grass Seed Container'
CREATE OR REPLACE FUNCTION iP_record_ID_view(NUMERIC, NUMERIC) RETURNS SETOF CHARACTER VARYING AS $BODY$ /** @author @kinerix Anna Smirnova */ DECLARE P_ad_table_ID NUMERIC := $1; DECLARE P_record_ID NUMERIC := $2; DECLARE P_tablename CHARACTER VARYING; DECLARE P_columnsnames CHARACTER VARYING; DECLARE StringSQL CHARACTER VARYING(1000); BEGIN P_tablename = (SELECT TableName FROM AD_Table WHERE AD_Table_ID = P_ad_table_ID); P_columnsnames = (SELECT ARRAY_TO_STRING(ARRAY_AGG(a0.ColumnName), ', ')::CHARACTER VARYING FROM (SELECT ColumnName FROM AD_Column WHERE AD_Table_ID = P_ad_table_ID AND IsIdentifier = 'Y' ORDER BY SeqNo) a0); StringSQL= ' SELECT ARRAY_TO_STRING(ARRAY['||P_columnsnames||'], '' - '')::CHARACTER VARYING' ' FROM '||P_tablename|| ' WHERE '||P_tablename||'_ID = '||P_record_ID||' ;'; RETURN QUERY EXECUTE StringSQL; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; ALTER FUNCTION iP_record_ID_view(NUMERIC, NUMERIC) OWNER TO adempiere;