|
Индикация загрузки | ☑ | ||
---|---|---|---|---|
0
Родной
11.10.11
✎
13:07
|
Наверное бредовая идея, но.
При загрузке/выгрузки данных из переферийных баз хочется видеть индикатор обмена. Тоесть сколько времени еще осталось до окончания загрузки/выгрузки. Объемы большие и иногда ждать завершения можно долго.. Что тут можно предпринять ? |
|||
1
catena
11.10.11
✎
13:14
|
Количество выгружаемых данных известно?
Вообще (ТекущееВремя-НачальноеВремя)/выгрузили - среднее время выгрузки объекта ОбщееКоличество*СреднееВремя - времениПрошло - сколько осталось. Как-то так :) |
|||
2
Wobland
11.10.11
✎
13:14
|
там же XMLка. то есть заранее неизвестно, сколько бует
|
|||
3
Живой Ископаемый
11.10.11
✎
13:16
|
2(2) это не повод... В конце концов в типовых мы можем сказать в настройках чтобы в рамках одной транзакции выгружать 1 объект, и количество объектов для выгрузки мы тоже можем узнать заранее.. Но детали я пока придумать не могу
|
|||
4
Живой Ископаемый
11.10.11
✎
13:16
|
а, блин, загрузки...
|
|||
5
Живой Ископаемый
11.10.11
✎
13:16
|
тогда в начале сообщения записывать количество объектов, в этом сообщении.
|
|||
6
Родной
11.10.11
✎
13:18
|
Ну наверное можно заранее дополнительно прочитать этот xml и выяснить сколько будет всего. думаю это будет не долго.
Время вряд ли возможно посчитать, так как нагрузки меняются, а вот "осталось x из y" сообщать можно... |
|||
7
Живой Ископаемый
11.10.11
✎
13:18
|
2(6) можно, но тогда время загрузки увеличится ровно в два раза
|
|||
8
Родной
11.10.11
✎
13:19
|
(7)простое чтение иксмл занимает столько же времени, что и чтение + запись ? херрасе...
|
|||
9
Wobland
11.10.11
✎
13:19
|
(0) дарю:
Перем обMSScriptControl, стр10, плк10; Процедура ОсновныеДействияФормыПроведение(Кнопка) ЭлементыФормы.НадписьОбщееКоличество.Заголовок=""; ЭлементыФормы.Индикатор.МаксимальноеЗначение=ОбщееКоличество; ЭлементыФормы.Индикатор.Значение=0; Н=0; СуммаВремени=0; ДлинаБаяна=1; НаправлениеБаяна=2; Пока Выборка.Следующий() Цикл Старт=обMSScriptControl.eval("new Date().getTime()"); ОбработкаПрерыванияПользователя(); Н=Н+1; Осталось=ОбщееКоличество-Н; ЭлементыФормы.Индикатор.Значение=ЭлементыФормы.Индикатор.Значение+1; Финиш=обMSScriptControl.eval("new Date().getTime()"); СуммаВремени=СуммаВремени+Финиш-Старт; ОсталосьВремени=Осталось*СуммаВремени/(60000*Н); Минут=Цел(ОсталосьВремени); Секунд=Формат(Цел((ОсталосьВремени-Минут)*60), "ЧЦ=2; ЧН=; ЧВН="); ДлинаБаяна=ДлинаБаяна+НаправлениеБаяна; ДлинаБаяна=Макс(ДлинаБаяна, 1); Если ДлинаБаяна>8 ИЛИ ДлинаБаяна<2 Тогда НаправлениеБаяна=-НаправлениеБаяна; КонецЕсли; ф=(10-ДлинаБаяна)/2+2; ЭлементыФормы.НадписьОбщееКоличество.Заголовок=Строка(Минут)+":"+Секунд+Лев(стр10, ф)+"[:"+Лев(плк10, ДлинаБаяна)+":]"+Лев(стр10, ф)+Осталось; КонецЦикла; КонецПроцедуры обMSScriptControl=Новый COMОбъект("MSScriptControl.ScriptControl"); обMSScriptControl.language="javascript"; стр10=" "; плк10="||||||||||"; |
|||
10
Живой Ископаемый
11.10.11
✎
13:21
|
2(8) нет, если просто как чтение ХМЛ, тогда нет
|
|||
11
Родной
11.10.11
✎
13:23
|
(10)Ну да. Скопировать файл. просто прочитать. выяснить сколько там объектов. и из оригинального файла начать стандартную загрузку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |