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;
Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.