Работа с формами FSPG
Документация по формам под SQL Server
Важные отличия:
- в FSPG нет процедуры CheckItem - все проверки делаем в SaveItem.
- в SaveItems все поля передаются только в parameters (в TSQL версии для совместимости была поддержка старого способа передачи параметров в виде @fieldXXX полей).
Процедура GetItem пример:
CREATE OR REPLACE PROCEDURE public.fm_newtable_getitem(OUT res text, IN itemid text, IN username text, IN parameters text)
LANGUAGE plpgsql
AS $procedure$
BEGIN
-- SELECT 1
CREATE TEMP TABLE sel1 ON COMMIT DROP AS
select '' code;
-- SELECT 2
CREATE TEMP TABLE sel2 ON COMMIT DROP AS
select '' Title, '' Subtitle, 'h2' HeaderTag, 1 LineLabel;
select to_jsonb(t1.*) from (
select
(select json_agg(e.*) from sel1 e) sel1,
(select json_agg(e.*) from sel2 e) sel2
) t1
into res;
END;
$procedure$
Процедура SaveItem (обратите внимание, как извлекаются параметры формы из parameters):
CREATE OR REPLACE PROCEDURE public.fm_newtable_saveitem(OUT res text, IN itemid text, IN username text, IN parameters text)
LANGUAGE plpgsql
AS $procedure$
declare fieldcode text;
tableid int;
BEGIN
select value->>'value' from json_array_elements(parameters::json)
where value->>'key' = 'code' limit 1 into fieldcode;
insert into as_crud_tables (code, title,
"titleTooltip", "addEditLink", "commentsCode", "immediatelyLoad", "emptyText",
"filterLinkTitle", "showChecksCol", "showNumsCol", "showToolbar", "getItemsURLParameters",
"toolbarAdditional", "groupOperationsToolbar", "getFilterMakeupCallback",
"filterCallback", "processRowCallback", "getItemsCallback", "remove", comments,
"ctrlClickShowComment", "pageSize", roles)
values (fieldcode, fieldcode,
'', '', '', TRUE, 'Нет элементов', '', FALSE, TRUE, TRUE,
'', '', '', '', '', '', '', FALSE, FALSE,
FALSE, 50, 'admin')
returning id into tableid;
-- SELECT 1
CREATE TEMP TABLE sel1 ON COMMIT DROP AS
select 1 Result, 'OK' Msg, '/table/'|| tableid::text successUrl, 1 EnableSaveAlert;
-- SELECT 2 Outer actions
CREATE TEMP TABLE sel2 ON COMMIT DROP AS
select '' type;
select to_jsonb(t1.*) from (
select
(select json_agg(e.*) from sel1 e) sel1,
(select json_agg(e.*) from sel2 e) sel2
) t1
into res;
END;
$procedure$
Что еще посмотреть по PostgreSQL & Falcon Space
Ищем партнеров-разработчиков на T-SQL и PL/pgSQL
Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML
Falcon Space - платформа для создания сайтов с личными кабинетами
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта