powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по формированию двойной html для SA-Web ?
2 сообщений из 2, страница 1 из 1
Вопрос по формированию двойной html для SA-Web ?
    #35540626
Stalker4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всезнающий All,

Возможно вопрос и не совсем сюда, но боюсь, что в теме по работе с HTML
могут не знать особенности работы web-сервисов SA.

Sybase SA 10.1.x или SA 11.x, браузеры SM, FF, IE.

Есть Web-raw сервис, который возвращает html с описанием заданного документа.
В конце этого html находится кнопка, по нажатию которой пользователю
дается возможность загрузить к себе на компьютер текст этого документа
(.doc файл).

Когда пользователь нажимает кнопку, то вызывается соответствующий
web-сервис, который с помощью SP дает возможность загрузить к себе на
компьютер текст этого документа.

Вот текст этой SP:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE PROCEDURE "DBA"."WebGetTextDocument"(in pID integer)
result (rawdoc long binary)
BEGIN
        
 declare bResult long binary;

 select DOCDATA into bResult
 from dba.DOCUMENTSTEXT
 where DOCUMENTCODE = pID and DOCTYPE =  1 ;

 if bResult is null then
   call sa_set_http_header('Content-Type', 'text/html'); 
   set bResult = '<html><head></head>\n<body>\n';
   set bResult = bResult||'<SCRIPT>\n <!--\n';
   set bResult = bResult||'alert('||CHAR( 39 )||'У проекта отсутствует текст документа.'||CHAR( 39 )||'); \n';
   set bResult = bResult||'//-->\n </SCRIPT>\n';
   set bResult = bResult || '</body>\n</html>';
 else
   call sa_set_http_header('Content-Type', 'application/x-zip');
   call sa_set_http_header('Content-Length', String(Length(bResult)));   
   call sa_set_http_header('Content-Disposition', 'attachment; filename=Project'||cast(pID as char)||'.doc');   
 end if;
 
 select bResult;

END

Смысл этой SP простой: проверяем наличие в базе текста документа и если он
есть, то отдаем его пользователю, иначе отображаем окно сообщением про
отсутствие текста документа.

Пользователь жмет на кнопку:
1) Если текст документа найден, то появляется стандартный диалог
"Сохранить как ..." и пользователь нажав в этом диалоге на кнопку
"Сохранить", сохраняет себе на компьютер текст этого документа.
Во время всей этой операции, в браузере под диалогом "Сохранить как ...",
отображается html страница с описанием документа.

2) Если текст документа не найден, то я с помощью JavaScript'а
(функция alert) показываю пользователю окно с сообщением про отсутствие
текста документа.
Но вся проблема в том, что я не могу (или не знаю как) вернуть только
alert, без сопутствующего html-окружения. И в результате моя html с
описанием документа заменятся пустой html c alert.
И для того, что бы вернуть описание документа назад, надо нажать в
браузере кнопку "Назад".

Вопрос: Как мне показать пользователю сообщение про отсутствие текста
документа, что бы при этом не трогалась (т.е. оставалась на заднем фоне)
моя страница с описанием документа ?

Пока я нашел один выход: В скрипте после alert, я поставил
"window.back();", но мне этот вариант не нравится, так как он ведет к
повторному чтению html страницы с описанием документа.
...
Рейтинг: 0 / 0
Вопрос по формированию двойной html для SA-Web ?
    #35540637
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к SA действительно не относится. Ну да ладно, на первый раз прощаю.

Лучше всего при формировании первой страницы (с описанием документа) проверять: "а есть ли у тебя этот документ?" И если нету, то сразу в описании предупреждать что мол "текст документа недоступен" а если есть, то только тогда писать ссылку на скачивание. Проблема исчезнет в зародыше.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по формированию двойной html для SA-Web ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]