Как создать выгрузку документа в Excel через форму с последующей загрузкой на Google Disk и скачиваем в формате PDF

Операция реализуется через цепочку вызовов Внешних действий.  

Генерация Excel-> Загрузка файла на google drive -> Экспорт в PDF

1. Создаем форму с настройками параметров выгрузки и вызываем внешнее действие generatedoc, также указываем spCallback для вывоза после генерации документа.

-- SELECT 2 в SaveItem
-- SELECT 1 (Result, Msg, SuccessUrl, HideFormAfterSubmit, RefreshContainer)
	select 1 Result, ' ' Msg, '' SuccessUrl, 1 HideFormAfterSubmit, '.stageDocs' RefreshContainer

	-- SELECT 2 Вызов внешнего действия
	select 'generatedoc' type, 'stageAct' code, cast(@itemID as nvarchar) itemID,
	'{
    	"companyName" : "'+replace(isnull(@companyName, ''), '"', '')+'",
    	"num" : "'+cast(isnull(@num, 0) as nvarchar)+'",
    	"date" : "'+isnull(@pdate, '')+'",
    	"parentDocName" : "'+isnull(@pparentDocName, '')+'",
    	"sum" : "'+cast(isnull(@psum, '') as nvarchar)+'",
    	"customerPost" : "'+isnull(@customerPost, '')+'",
    	"customerFIO" : "'+isnull(@customerFIO, '')+'",
        "docID": '+cast(@docID as nvarchar)+'
    }' parameters,
    'generatedoc_uploadGD' spCallback,
    cast(@docID as nvarchar) docID
	

2. Создаем процедуру загрузки созданного документа на сервер
В ней извлекаем нужные нам параметры и вызываем через внешнее дейсвтие upload на Google Drive, а также указываем spCallback для обработки пришедшего fileID.

Параметры url и docID извлекаются из parameters (они туда попадают из внешнего действия generatedoc).

ALTER PROCEDURE [dbo].[outer_generatedoc_uploadGD]
	@parameters ExtendedDictionaryParameter readonly,
	@data nvarchar(128) = '',
	@username nvarchar(128) = ''
AS
BEGIN
	-- SELECT 1 ReesultModel
	select 1 Result, '' Msg


	declare @path nvarchar(256)
	select @path = Value2 from @parameters where lower([key]) = 'url'

	declare @docID nvarchar(256)
	select @docID = Value2 from @parameters where lower([key]) = 'docid'

	declare @folderId nvarchar(128)

	select top 1 @folderId = docFolderGoogleID from fin_contragents where id in (select contragentID from rudenas2x.dbo.doc_documents where id = @docID )

	declare @s nvarchar(256) = 'outer_generatedoc_uploadGD = ' +isnull(@path, '') +'    '+  isnull(@folderId, '')
	exec as_print @str = @s


	if(isnull(@path, '')<>'' and isnull(@folderId, '') <>'') begin
		-- SELECT 2 Outer actions
		select 'gd' type, 'upload' action, doc_getDocName(cast(@docID as int)) filename, @path filepath,
			@folderId folderId, 'generatedoc_uploadGD_saveFileID' spCallback, @docID docID
	end

3. Реализуем обработку по сохранению файла и вызову экспорта в PDF

ALTER PROCEDURE [dbo].[outer_generatedoc_uploadGD_saveFileID]
	parameters ExtendedDictionaryParameter readonly,
	@data nvarchar(128) = '',
	@username nvarchar(128) = ''
AS
BEGIN
	-- SELECT 1 ReesultModel
	select 1 Result, '' Msg


	declare @fileId nvarchar(256)
	select @fileId = Value2 from @parameters where lower([key]) = 'fileid'

	declare @docID nvarchar(256)
	select @docID = Value2 from @parameters where lower([key]) = 'docid'

	declare @s nvarchar(256)= 's='+ isnull(@fileId, '')

	if(isnull(@fileId, '')<>'') begin
		update doc_documents set gdfileId = @fileId where id = @docID
	end

	@declare @path nvarchar(128) = '/uploads/e1.pdf'

	-- SELECT 2 Внешнее действие по экспорту
	-- select 'gd' type, 'export' action, @fileId fileId, 'pdf' exportType, @path path

END	

4. На стороне JS в коллбеке формы saveItem вы можете по необходимости обработать созданный @path (должен быть передан в data.additionalData)

as.formcallbacks.[formCode]_saveItem = function(data){
    console.log(data)
    // location.href= ...
}

Falcon Space - функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space

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

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

Платформа Falcon Space

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

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

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

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

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

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

Веб-приложения на чистом MS SQL. Обучение разработке на Falcon Space

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе

Google поиск по нашей документации