Нужна помощь с диалогом

Автор andreya81, 11 сентября 2013, 08:25

0 Пользователи и 1 гость просматривают эту тему.

andreya81

Сделал таблицу к ней прикрепил диалог для ввода данных при ее работе выскакивает ошибка:Ошибка времени выполнения BASIC. Вызвано исключение  Type: com.sun.star.uno.RuntimeException Message: .
Помогите разобраться, что не так. Заранее благодарен за помощь :-\
И еще как сделать чтобы первая пустая ячейка искалась на определенном листе, спрашиваю об этом потому, что создал такой же для другой таблицы, а он гад (другого слова не подберешь) ищет ячейку все равно в первой таблице и ставит данные в нее :-\

[вложение удалено Администратором]

JohnSUN

Ну, с ошибкой разберешься и сам, это не сложно. Просто при открытом окне Бэйсика нажми кнопку "Компилировать" на панели инструментов и ошибка выскочит на строке "= n - 1", какой-то символ там неправильный, хоть и выглядит пристойно. Просто сотри хвост строки, начиная со знака равенства и перепиши его еще раз.

А с номером листа - ничего не поделаешь, гад он и есть гад. И все-равно он будет лезть на первый лист... Потому что именно так ты ему и сказал делать. Все эти твои многократно повторенные .Sheets(0). для него, гада тупого, и означают "первый лист". Если тебя такое поведение скрипта не устраивает - попробуй изменить именно эти куски... или продолжай ругаться...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

andreya81

#2
А посмотрите такой пример. Назначил я ему имена листов но все равно на первый переходит :-\ Как ему указать чтобы он искал первую пустую ячейку именно на этом листе. Я думаю надо что-то дописать перед k=1? но не знаю что :-\

[вложение удалено Администратором]

Hasim

Цитата: JohnSUN от 11 сентября 2013, 11:18Ну, с ошибкой разберешься и сам, это не сложно.
Не всё там так просто.
Замените
ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n)).Value = n - 1
на
n1=n-1
ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n)).Value = n1

Ошибка пропадет.
А теперь закройте файл с сохранением, опять откройте и нажмите на кнопку.
Что вышло?

andreya81

#4
Цитата: Hasim от 11 сентября 2013, 12:42
Цитата: JohnSUN от 11 сентября 2013, 11:18Ну, с ошибкой разберешься и сам, это не сложно.
Не всё там так просто.
Замените
ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n)).Value = n - 1
Спасибо за ответ но с этим я уже справился. Меня сейчас добивает почему он не заполняет лист Material
на
n1=n-1
ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n)).Value = n1

Ошибка пропадет.
А теперь закройте файл с сохранением, опять откройте и нажмите на кнопку.
Что вышло?
Спасибо за ответ, но с этим я уже справился меня сейчас волнует почему диалог NewMaterial заполняет таблицу MKR, а не Material

Hasim

Я про другую ошибку, которая выплывает на вашем файле (уже как бы исправленном).


[вложение удалено Администратором]

andreya81

Вы правы ошибка выскакивает но после выполнения в окне Бэйсик исчезает. Черт знает что ей надо.

andreya81

Что означает эта ошибка:Ошибка времени выполнения BASIC.
Вызвано исключение
Type: com.sun.star.uno.RuntimeException
Message: .


[вложение удалено Администратором]

Hasim

Нужно читать то, что после
...
...
Message:
!!!!!
!!!!!

Та ошибка, что у меня на картинке, это
...LibraryNotLoaded...
т.е.
...БиблиотекаНеЗагружена...

andreya81

У меня после Message ничего не видно. Ну ладно. И все-таки подскажите новичку в программировании StarBasic как это исправить :-\

JohnSUN

Может, как-то так?

[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

andreya81

Спасибо огромное. Очередной раз Вы меня выручаете. Премного Вам благодарен. :)

Hasim

Цитата: JohnSUN от 11 сентября 2013, 15:42Может, как-то так?
JohnSUN, ну ты то пишешь объяснения на целую страницу, а то вообще ничего не объясняешь.
А там, кстати, есть загадка для новичков: зачем нужно специально загружать библиотеку, и можно ли обойтись без ее загрузки?

JohnSUN

Ты понимаешь, просто уже надоело повторяться: об этой Tools и её загрузке и Питоньяк писал, и я почти перед каждым .LoadLibrary комментарий пишу...
Например, помнишь loadSomeLibs?
Спросят напрямую - отвечу.  А так, когда просто к слову пришлось, не хочется отвлекаться на дополнительные описания.

У тебя свободных пару дней не найдется? Просто пробежаться по всей библиотеке и набросать краткое описание самых ходовых функций-процедур из неё. Ну, имя-параметры-что делает... И в отдельной теме [MEMO] эту таблицу пристроить. Будут новички интересоваться - будем ссылку на эту тему давать...

PS. И когда они уже тип GetLastUsedRow изменят?!!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне