Необходимо переделать макрос для OOo ((за вознагрождение))

Модератор: Модераторы разделов

Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Необходимо переделать макрос для OOo

Сообщение DjSpike »

Есть оптовый прайс в xls формате, в нем один макрос для добавления позиции в заказ. В OOo этот макрос не работает. Кто может его переделать ??? Вознаграждение гарантирую...
Прайс можно скачать по этой ссылке http://www.komus-opt.ru/price/komus_opt_price_0.rar
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
Lan4
Сообщения: 339
Статус: hikki
ОС: Arch

Re: Необходимо переделать макрос для OOo

Сообщение Lan4 »

M$ офис... ужс)
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
18.01.2011 23:16
В OOo этот макрос не работает. Кто может его переделать ??? Вознаграждение гарантирую...

А обязательно макросом? А нативными способами ООCalc?
Я так понял, надо переместить строку из листа "Опт_price...) в лист "Заказ"?


PS. При сохранении в xls макросы OOCalc с огромной долей вероятности работать не будут.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

Желательно макрос, мне нужно чтобы при скачивании нового прайса девушка сама могла заменить нерабочий макрос M$ на рабочий в OOo и спокойно сделать заказ..
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Необходимо переделать макрос для OOo

Сообщение bormant »

DjSpike,
опишите, пожалуйста, типовые сценарии работы с прайсом (use case), отметив места, в которых требуется поддержка средствами макроса.

Как один из вариантов:
1) установить курсор в строку с желаемым товаром (достаточно ли встроенных средств Calc: поиск по Ctrl+F, фильтрация);
2) вызвать макрос (сочетание клавиш, кнопка тулбара), который добавит товар в заказ.
2а) какая информация требуется на этом этапе, какая её честь общая для всего заказа (курс валюты?), а какая может быть индивидуальна для отдельной позиции? и т.п.

Да и в общем, ТЗ в данной ситуации намного лучше описания "как было в Excel".

ps. Графа "Наличие на складе: да/нет" разорвала на куски: например, хочется 100 шт., а на складе "да". Отговорка "была, но уже продали" к конкретно этой ситуации не принимается -- она одинакова для всего диапазона от 1 до 100 шт.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
18.01.2011 23:29
девушка сама могла заменить нерабочий макрос M$ на рабочий в OOo и спокойно сделать заказ..

Суровые у вас девушки, которые могут заменить eventListener ....
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

bormant писал(а):
19.01.2011 13:11
DjSpike,
опишите, пожалуйста, типовые сценарии работы с прайсом (use case), отметив места, в которых требуется поддержка средствами макроса.

Как один из вариантов:
1) установить курсор в строку с желаемым товаром (достаточно ли встроенных средств Calc: поиск по Ctrl+F, фильтрация);
2) вызвать макрос (сочетание клавиш, кнопка тулбара), который добавит товар в заказ.
2а) какая информация требуется на этом этапе, какая её честь общая для всего заказа (курс валюты?), а какая может быть индивидуальна для отдельной позиции? и т.п.

Да и в общем, ТЗ в данной ситуации намного лучше описания "как было в Excel".

ps. Графа "Наличие на складе: да/нет" разорвала на куски: например, хочется 100 шт., а на складе "да". Отговорка "была, но уже продали" к конкретно этой ситуации не принимается -- она одинакова для всего диапазона от 1 до 100 шт.

ТЗ.
Нужно написать макрос для OOo.Calc который при двойном клике в колонке "Артикул" перенесет текущую позицию на страницу "Заказ" и проставит цену..
А чтобы не писать с нуля можно посмотреть как работает аналогичный макрос в xls. в прайсе который можно скачать по ссылке указанной в первом посте.
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
19.01.2011 18:59
.
А чтобы не писать с нуля можно посмотреть как работает аналогичный макрос в xls. в прайсе который можно скачать по ссылке указанной в первом посте.

Хехе... То, что там понаписано, в Writer работать практически не будет. И чтобы посмотртеть, надо иметь Word.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

Как-то так.
Реализована вставка по даблклику на коде товара. Код помечается цветом и перечеркиванием.
Даблклик на помеченной строке должен удалять всю соответсвующую строку на листе "заказ", но по уму надо реализовать поиск и перемещение до требуемой стоки на листе "заказ". Эту часть надо допиливать, заменив оператор removebyindex() .
если надо, попилю дополнительно.

Если надо будет этот код переносить на другие получаемые прайсы, то надо будет прописать его во внешней библиотеке и вызывать через

Код: Выделить всё

GlobalScope.loadlibrary("файл_куда_сохранили_библиотеку")

или сохранить как макрос в ООО, а не в документе ООО, как сейчас.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

При попытке запустить RegisterMouseClickHandler ругается на отсутствие библиотеки GlobalScope.BasicLibraries.LoadLibrary("XrayTool"). В гугле нашел только это http://www.ooomacros.org/dev.php точнее вот http://sourceforge.net/project/showfiles.p...ckage_id=101416

Но при этом скачивается архив в котором только инструкция, ты не мог бы поделится данной библиотекой, или подсказать как ее ставить.

Если закоментировать эту строчку, то вродебы нормально работает. единственное не появляется окно с запросом кол-во..
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
20.01.2011 22:17
При попытке запустить RegisterMouseClickHandler ругается на отсутствие библиотеки GlobalScope.BasicLibraries.LoadLibrary("XrayTool")

У вас не установлена отладочная библиотека.


Но при этом скачивается архив в котором только инструкция, ты не мог бы поделится данной библиотекой, или подсказать как ее ставить.

В данной инструкции есть кнопка, которая устанавливает расширение. После этого надо прибить все процесс soffice и запустить заново. Полезная отладочная библиотека.

единственное не появляется окно с запросом кол-во..

Допилил. Если в это окно ничего не вводить, будет вставляться минимальное количество.
Если установить библиотеки Инфры (идут с OOo Pro), то можно сумму прописью вывести
Допилил удаление строки подаблклику на помеченном (синем иперечеркнутом) коде товаре.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

Сумма прописью не нужна...
На закладке "Заказ" в первой колонке не правильно высчитывается знчение, выдает результат: #ЗНАЧЕН!

И подскажи еще один момент, ты сказал что
Если надо будет этот код переносить на другие получаемые прайсы, то надо будет прописать его во внешней библиотеке и вызывать через
. Как это фактически можно сделать ???
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
21.01.2011 10:55
Сумма прописью не нужна...
На закладке "Заказ" в первой колонке не правильно высчитывается знчение, выдает результат: #ЗНАЧЕН!

исправлено

И подскажи еще один момент, ты сказал что
Если надо будет этот код переносить на другие получаемые прайсы, то надо будет прописать его во внешней библиотеке и вызывать через
. Как это фактически можно сделать ???

Во первых, "не надо", а удобнее. Чтобы не копипастить (как в исходном заднии) код непосредствено в документ.
Сохранить в файл .bas (прямо из IDE) и загружать при помощи того же globalscope.loadlibray... на который ругался прежде.
Возможно придется переделать ссылки на объекты листов книги, поскольку в данном примере идут "жескссылки по именам листов.
В OOo есть четыре способа хранения кода:
- непосредственно в документе. Удобно при дистрибуции документов.
- в userspace (в~/openoffice.org)
- в пространстве всей инсталляции (в виде расширения, например)
- как отдельную библиотеку (обычный basic файл)

Кстати, в центральном офисе Комуса все хомячки пользуют ООо. не знаю, как у вас.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

Кстати, в центральном офисе Комуса все хомячки пользуют ООо. не знаю, как у вас.

Блин почему у них прайс тогда в xls... :)

У нас тоже везде OOo. И даже на домашних компьютерах работников....

Ты можешь сделать этот макрос, в виде расширения (я думаю что это лучше чем отдельная библиотека ? )???
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
21.01.2011 13:59
Ты можешь сделать этот макрос, в виде расширения (я думаю что это лучше чем отдельная библиотека ? )???

Слабо представляю как делать в виде расширения. Да и грузить его при каждой загрузке любого документа OOo, думаю, не правильно. Думаю, мало приятно, когда события мыши начнут обрабатываться таким образом в каждом документе. Программеров-то попинаю, но у них сейчас работы выше крыши. По поводу расширения надо попинать Инфра-ресурс.

Не вижу причин не использовать как отдельную библиотеку. Xray же прекрасно работает!
Просто надо скопировать пользователю и подключать при загрузке документа.

Блин! прошлый раз не тот файл залился опять. Исправленный - ниже.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: Необходимо переделать макрос для OOo

Сообщение DjSpike »

Мне в принципе не принципиально как, главное чтобы это могла сделать девушка которая работает с этим прайсом...
Что ты имеешь ввиду под
подключать при загрузке документа.

Надо будет каждый раз запускать макрос RegisterMouseClickHandler вручную ?
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Необходимо переделать макрос для OOo

Сообщение BIgAndy »

DjSpike писал(а):
21.01.2011 20:23
RegisterMouseClickHandler вручную ?

Либо так, либо сохранить его в ООо (не в документе) и загружать при каждом старте сервис ->настройка->события.

Можно попробовать написать макрос, который проверяет имя документа и грузит макро RegisterMouseClickHandler по этому условию.
В любом случае, я не знаю полностью ваших условий, и вообще, испоьзование электронных таблиц для подобной работы несколько спорный вариант.
ООо позволяет сделать всё это в Base, просто прилинковав с http/ftp/vebdav/ssh.... ресурса эту электронную таблицу и работать унифицированным образом с постоянно актуальными данными. Возможно, и макросов не понадобится.
Спасибо сказали: