Создание пошаговой формы - wizard форма.

Документация по мастер формам: https://falcon.web-automation.ru/docs/formy--kak-sdelat-formu-v-vide-mastera-shagov

GetItem: 

CREATE PROCEDURE [dbo].[fm_clientQuestionaries_getItem]
@itemID int,
	@username nvarchar(256),
@parameters ExtendedDictionaryParameter READONLY
AS
BEGIN
declare @langID int
	select @langID = try_cast(Value as int) from @parameters where [Key] = 'langID'



	declare @userGuid uniqueidentifier
select @userGuid = try_cast(Value as uniqueidentifier) from @parameters where [Key] = 'falconGuid'

	select
		(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'channel') channel,
	'Yandex||Google||Youtube||Socials||Newtorking' example_channel,
	1 edt_channel,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'link') link,
	1 edt_link,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'negative') negative,
	1 edt_negative,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'positive') positive,
	1 edt_positive,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'mostinteresting') mostinteresting,
	1 edt_mostinteresting,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'notenough') notenough,
	1 edt_notenough,
		(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'moreinformation') moreinformation,
	1 edt_moreinformation,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'alternative') alternative,
	1 edt_alternative,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'po') po,
	1 edt_po,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'like') [like],
	1 edt_like,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'email') email,
	1 edt_email,
	(select answer from falcon_clientQuestionaries where userGuid = @userGuid and question = 'phone') phone,
	1 edt_phone,
	'1' access,
	1 edt_access

select 'line' progressType,
	iif(@langID=1, 'Getting a discount on Falcon Space (demo)', 'Получение скидки на Falcon Space (демо)') Title,
iif(@langID=1, 'Your discount will be based on the completeness of your Falcon Space questions. 

Each questionnaire is checked manually after filling in and the amount of the discount is confirmed.', 'Ваша скидка будет зависеть от степени заполненности вопросов по Falcon Space. 

Каждая анкета проверяется после заполнения вручную и подтверждается размер скидки. ') Subtitle ,
		iif(@langID=1, 'Get discount', 'Получить скидку') ButtonText, 
        'h3' headerTag
END

Разметка формы: 

{form-title}

{form-subtitle}
{form-progress}
  <div class="as-form-master hide">
    <div class="as-form-masterProgress text-center my-3"></div>
    <div class="as-form-step pr-2" data-step="1" data-title="1" data-icon="fa-check">
        {collabel-channel}<br>
        {colcontrol-channel}
        {colexample-channel}
      <br>
      	<div class="text-right navBtns">
           <a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="2" data-title="2" data-icon="fa-check">
        {collabel-link}
      	{colcontrol-link}
      	<div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="3" data-title="3" data-icon="fa-check">
        {collabel-negative}
      	{colcontrol-negative}
        <div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="4" data-title="4" data-icon="fa-check">
        {collabel-positive}
      	{colcontrol-positive}
      	<div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="5" data-title="5" data-icon="fa-check">
        {collabel-mostinteresting}
      	<div class="as-clientQuestionaries mt-2 ml-4">{colcontrol-mostinteresting}</div>
        <div class="text-right navBtns">
         	<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="6" data-title="6" data-icon="fa-check">
        {collabel-notenough}
      	{colcontrol-notenough}
        <div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>

    <div class="as-form-step pr-2" data-step="7" data-title="7" data-icon="fa-check">
        {collabel-moreinformation}
      	{colcontrol-moreinformation}
      	<div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="8" data-title="8" data-icon="fa-check">
        {collabel-alternative}
      	{colcontrol-alternative}
      	<div class="text-right navBtns">
           <a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
      		<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="9" data-title="9" data-icon="fa-check">
        {collabel-po}
      	{colcontrol-po}
        <div class="text-right navBtns">
      		<a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="10" data-title="10" data-icon="fa-check">
        <div class="row">
          <div class="col-12 col-md-12">{collabel-like}</div>
      	  <div class="col-12 col-md-12">{colcontrol-like}</div>
        </div>
      	<div class="text-right navBtns">
           <a href="#" class="as-form-stepPrev btn btn-outline-primary mt-3"><i class="fa fa-chevron-left"></i></a>
        	<a href="#" class="as-form-stepNext btn btn-primary mt-3"><i class="fa fa-chevron-right"></i></a>
        </div>
    </div>
    <div class="as-form-step pr-2" data-step="11" data-title="Finish" data-icon="fa-percent">
        {colwithlabel-email}
      	{colwithlabel-phone}
      	{colwithlabel-access}
      	<div class="text-right navBtns">
          <a href="#" class="as-form-stepPrev btn btn-outline-primary"><i class="fa fa-chevron-left"></i></a>
          {form-button}
      	</div>
      	{form-result}
    </div>
  </div>


Сохранение полей: 

CREATE PROCEDURE [dbo].[fm_clientQuestionaries_saveEditableField]
@pk nvarchar(128),	    -- id for item
	@fieldCode nvarchar(64),    -- form field
	@value nvarchar(max),	  -- field value
	@username nvarchar(256),  -- current user
@parameters ExtendedDictionaryParameter READONLY
AS
BEGIN

	declare @langID int
	select @langID = try_cast(Value as int) from @parameters where [Key] = 'langID'

	declare @userGuid uniqueidentifier
select @userGuid = try_convert(uniqueidentifier, Value) from @parameters where [key] = 'falconGuid'

	if(@fieldCode='channel') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'channel') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'channel'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'channel', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='link') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'link') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'link'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'link', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='negative') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'negative') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'negative'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'negative', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='positive') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'positive') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'positive'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'positive', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='mostinteresting') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'mostinteresting') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'mostinteresting'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'mostinteresting', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='notenough') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'notenough') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'notenough'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'notenough', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='moreinformation') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'moreinformation') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'moreinformation'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'moreinformation', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='alternative') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'alternative') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'alternative'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'alternative', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='po') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'po') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'po'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'po', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='like') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'like') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'like'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'like', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='email') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'email') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'email'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'email', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='phone') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'phone') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'phone'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'phone', @value)
		select 1 Result, '' Msg
		return
	end

	if(@fieldCode='access') begin
	if (select count(*) from falcon_clientQuestionaries where userGuid = @userGuid and question = 'access') > 0
	update falcon_clientQuestionaries set answer = @value where userGuid = @userGuid and question = 'access'
else
			insert into falcon_clientQuestionaries (userGuid, question, answer) values (@userGuid, 'access', @value)
		select 1 Result, '' Msg
		return
	end

	select 0 Result, 'No entity code' Msg
END

Другие модули

Редактирование одиночных полей формы в личном кабинете

Кнопка очистки формы

Цвет фона формы. Как изменить фон формы на сайте

Сообщение-уведомление на сайте вместо показа формы (NoForm). Отображение сообщения о недоступности формы

Работа с буфером обмена на сайте. Как скопировать текст в буфер обмена

Обновление содержимого страницы сайта (Refresh container). Перезагрузка части страницы

Любой вид формы на сайте - гибкая разметка формы

Выбор адреса и координат с подгрузкой из Google Maps API

Последние обновления

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства