Как создать выгрузку документа в 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= ...
}
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы Импорт-экспорт на сайте через Excel Генерация документов Docx и Xlsx. Выгрузка Excel, Word по шаблону Таблица. Стилизация Excel при выгрузке таблицы в MS Excel Проверка орфографии в тексте через Яндекс Speller Как создать выгрузку документа в Excel через форму с последующей загрузкой на Google Disk и скачиваем в формате PDF Интеграция с Google Drive API
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы