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-файлов.