Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Фев 28, 2014 07:49  копирование файла на сервер |
|
Полезность: Нет оценки
|
Можно ли в проверке скопировать файл на сервер (если выбрать в параметере типа Экспорт-импорт). Я так понимаю пока тело не выполнилось копирование на сервак не производится. Есть ли варианты закинуть до исполнения тела? Спасибо. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Фев 28, 2014 09:04   |
|
Полезность: Нет оценки
|
Можно
Поищите примеры вида
Код: | stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' |
Суть в том, что в секции валидации можно поднять форму другой операции (конкретно COPYFILES), которая скопирует фалы. |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Фев 28, 2014 09:46   |
|
Полезность: Нет оценки
|
prog пишет: | Можно
Поищите примеры вида
Код: | stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' |
Суть в том, что в секции валидации можно поднять форму другой операции (конкретно COPYFILES), которая скопирует фалы. |
Попробовал - то же самое. В поиске в дистрибутивных эта операция везде из тела вызывается. Хотя может с параметрами намудрил -но copyfiles не ругался - ругается уже попытка открытия файла на серваке (нет такого файла) |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Фев 28, 2014 09:59   |
|
Полезность: Нет оценки
|
код в студию |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Фев 28, 2014 10:26   |
|
Полезность: Нет оценки
|
Код: |
[DOCUMENT]::[COPYFILES].idx := 0;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_NAME] :=P_FILE.[SRC_NAME];;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_PATH] := P_FILE.[SRC_PATH];
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE] := true;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_DELETE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_NAME] := filename;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_PATH] := ::[SYSTEM_PARAMS].[GET]('PATH',null);
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_DELETE] := false;
stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %> ');
|
|
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Фев 28, 2014 10:48   |
|
Полезность: 1
|
галка выводить команды в буфер сессии стоит? |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Фев 28, 2014 11:00   |
|
Полезность: Нет оценки
|
prog пишет: | галка выводить команды в буфер сессии стоит? |
стоит.
главное не ругается, ругаться начинает на то, что файл не найден далее . Т.е. у вас прямо из проверки запускается копирование на сервер нового файла (думаю с каким то старым именем может и откроет) и потом открывает? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Фев 28, 2014 11:19   |
|
Полезность: 2
|
У меня нет для вас готового примера. Я ожидал что вы опубликуете больше кода своей операции.
Если вызвать COPYFILES,а следующей строкой искать файл ничего не выйдет. Ведь подниматься форма операции COPYFILES будет по окончанию серверной валидации.
Думаю, нужно по нажатию кнопки выполнять stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES а затем через клиент-скрипт опять запускать серверную валидацию. Например как это делается в операциях вывода в excel.
Ну проверять мне лень, уж извините. |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Фев 28, 2014 12:58   |
|
Полезность: Нет оценки
|
prog пишет: | У меня нет для вас готового примера. Я ожидал что вы опубликуете больше кода своей операции.
Если вызвать COPYFILES,а следующей строкой искать файл ничего не выйдет. Ведь подниматься форма операции COPYFILES будет по окончанию серверной валидации.
Думаю, нужно по нажатию кнопки выполнять stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES а затем через клиент-скрипт опять запускать серверную валидацию. Например как это делается в операциях вывода в excel.
Ну проверять мне лень, уж извините. |
спасибо, попробую |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Мар 03, 2014 03:12   |
|
Полезность: Нет оценки
|
Gobur пишет: |
Код: |
[DOCUMENT]::[COPYFILES].idx := 0;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_NAME] :=P_FILE.[SRC_NAME];;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_PATH] := P_FILE.[SRC_PATH];
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE] := true;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_DELETE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_NAME] := filename;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_PATH] := ::[SYSTEM_PARAMS].[GET]('PATH',null);
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_DELETE] := false;
stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %> ');
|
|
При копировании на сервер разве должно быть не наоборот ?
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE] := true;
+
подозрительная P_FILE , вы случайно не завели её на форме ?
тогда смысл в COPYFILES ? |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Вс Июл 05, 2015 21:37   |
|
Полезность: Нет оценки
|
С локала на сервер в проверке вот так получилось
Проверка
&cp.tbl_F$L(1).[SRC_PATH] := 'C:\XLTX';-- путь к файлу-источнику.
&cp.tbl_F$L(1).[SRC_NAME] := 'xlsx.xltx';-- имя файла-источника.
&cp.tbl_F$L(1).[SRC_MASK] := null;--'';-- маска файлов источника.
&cp.tbl_F$L(1).[SRC_TYPE] := false;-- тип источника (false – клиент, true – сервер).
&cp.tbl_F$L(1).[SRC_DELETE] := false;-- признак удаления источника.
&cp.tbl_F$L(1).[DST_PATH] := '.';-- путь к файлу-приемнику.
&cp.tbl_F$L(1).[DST_NAME] := 'xlsx.xltx';-- имя файла-приемника.
&cp.tbl_F$L(1).[DST_MASK] := null;--'';-- маска файлов приемника.
&cp.tbl_F$L(1).[DST_TYPE] := true;-- тип приемника (false – клиент, true – сервер).
&cp.tbl_F$L(1).[DST_DELETE] := false;-- признак удаления приемника.
Клиент скрипт
Public Sub Button4_OnClick
Form1.ScriptPlayEx("<%PLPCALL [DOCUMENT].[COPYFILES]() %>")
End Sub |
|
 |
Ngswolf Участник со стажем
Вступление в Клуб: 06.05.2015
|
Пт Июл 31, 2015 14:33   |
|
Полезность: Нет оценки
|
А что делать, если имя файла-источника определяется только в теле операции?
Почему-то обработчик все-равно пытается найти какой-то временный файл с именем "IBS0000162449.tmp" |
|
 |
Alex294 Участник со стажем
Вступление в Клуб: 02.06.2013
|
Пт Июл 31, 2015 14:41   |
|
Полезность: Нет оценки
|
Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК". |
|
 |
Ngswolf Участник со стажем
Вступление в Клуб: 06.05.2015
|
Пт Июл 31, 2015 15:09   |
|
Полезность: Нет оценки
|
Alex294 пишет: | Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК". |
А что, если он пытается скопировать файл до того, как я дойду до присвоения имени? Просто по нажатию ОК у меня зовутся другие операции, и может после того, как там отработает тело начинается копирование файла? |
|
 |
Alex294 Участник со стажем
Вступление в Клуб: 02.06.2013
|
Пн Авг 03, 2015 10:10   |
|
Полезность: Нет оценки
|
Ngswolf пишет: | Alex294 пишет: | Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК". |
А что, если он пытается скопировать файл до того, как я дойду до присвоения имени? Просто по нажатию ОК у меня зовутся другие операции, и может после того, как там отработает тело начинается копирование файла? |
admin.chm:
"Копирование файла на сервер происходит до отработки тела операции, а на клиентскую машину файл копируется только после отработки тела операции.
"
Как видно речь идет о теле конкретной операции и другие операции тут не причем. |
|
 |
|