Здесь необходимо признать один факт, который очень навредил развитию Nexus технологии и который давно необходимо было исправить. Этот факт относится к работе с файлами и формами. Содержимое файлов хранится в таблице Files, но в своем собственном формате, который трудно поддерживать вне клиента. Если бы это был b64 формат, или просто байтовый код, то это бы меняло дело. но поскольку это нечто третье похожее на чемодан без ручки. С формами тоже беда так как сильно кастрированное понимание описания VB формы клиентом Nexus, приводит только к пусканию пузырей желания. Хочу, но не могу. И в свете повышения требований к дезайну формы, этот путь становится не пригоден.
Эти размышления, надеюсь здравые, заставили меня пересмотреть работу с файлами и формами на платформе Nexus. Со стороны серверной платформы я добавил две ассемблерные сборки, которые позволяют писать в файл и читать из файла содержимое как в бинарном виде, так и в B64 формате:
exec Read From File? 'C:\\WEBforms\\print.html',114,1 — b64 format
exec Read From File? 'C:\\WEBforms\\print.html',115,0 — binary format
Открытие такой возможности позволило воспользоваться сразу средством MSSQL server
EXECUTE sp_makewebtask
@outputfile=@dst,
@query=@sql,
@templatefile=@tpl,
@dbname=@db_name,
@codepage=1251
которое в своем вызове имеет отличный html шаблон. Причем в этот шаблон, замечу, можно одним махом перевести любой офисный документ, как вордовский так и эксель, что делает создание формы просто плевым делом так как заказчик предоставляет свои формы именно в этом формате.
Далее все просто: шаблон есть, данные в таблице, делаешь sp_makewebtask – получаешь файл и сразу его записываешь в базу данных при помощи Read From File?.
После того, как это сделано. Файл доступен клиенту Nexus для просмотра. Вот форма, которая получается при таком подходе.