Отключение обновления экрана

Автор sofi, 13 сентября 2014, 06:08

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

rami

Вчера сделал сначала для заполнения двух первых столбцов, но потом увидел что во вновь выложенном вами документе "появились" форматы и строки итогов, пришлось переделать заново. Сейчас можно передать на "ходовые испытания".

sofi

Большое спасибо Rami!!! :)
Все вроде хорошо, осталось понять, как это работает!
(Будет настроение подпишите коменты плз.)

Я тут изгильнулся, убрал UDF, сделал на основе DaysInMonth, во как!
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

rami

Цитата: sofi от 16 сентября 2014, 16:39Я тут изгильнулся, убрал UDF, сделал на основе DaysInMonth, во как!
DaysInMonth2 = DateSerial(y, m + 1, 1) - DateSerial(y, m, 1)В функции DateSerial  m не может быть больше 12, для декабря даёт ошибку.

sofi

#33
На это не смотрите, это я экспериментировал, забыл убрать!
В коде использовал штатную DaysInMonth

P.S.
Хотя, странно, на листе с таблицей, справа вверху, есть две
ячейки со штатной DaysInMonth и UDF (в которой Вы указываете на ошибку)
набрал в ячейке "ДАТА" 2 декабря 2014 года, работает без ошибки, 31 день!

Может есть разница в "m" и "m + 1",
посмотрел справочник у Билла по DaysInMonth, там написано, что можно.
В "кальке" фиг знает, инфы у меня нет.
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

Hasim

Цитата: rami от 16 сентября 2014, 17:09
Вчера сделал сначала для заполнения двух первых столбцов, но потом увидел что во вновь выложенном вами документе "появились" форматы и строки итогов, пришлось переделать заново. Сейчас можно передать на "ходовые испытания".
Заодно и иврит подучим.

kompilainenn

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

rami

Цитата: Hasim от 17 сентября 2014, 09:30Заодно и иврит подучим.
Учите, только поскорей 8-), а то я задолбался уже от этих локализаций, если поставить русский язык, то все мои документы валятся.

После нажатия на кнопку "Расчёт" все будет в соответствии с вашими региональмыми настройками.

Hasim

Цитата: rami от 17 сентября 2014, 10:24После нажатия на кнопку "Расчёт" все будет в соответствии с вашими региональмыми настройками.
А до этого, ну, например, при открытии файла, можно задать региональные настройки?

sofi

#38
А почему в коде:
Цитировать(Format(YM, "YYYY MMMM"))
сразу не написать:
(Format(YM, "MMMM YYYY"))

и будет всем счастье!  ;)

Я сразу исправил и все хорошо, Rami респект!
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

rami

Цитата: Hasim от 17 сентября 2014, 12:13А до этого, ну, например, при открытии файла, можно задать региональные настройки?
Региональные настройки вы задаёте у себя. Данные о которых идёт речь, форматируются в макросе: oSheet.getCellByPosition(0,n+6).setstring(Format(YM,"YYYY MMMM")) в соответствии с текущими языковыми настройками и сохраняются как строка, поэтому при открытии "числовой формат" строк не меняется. Если бы формат был бы числовой, то при открытии вы бы увидели названия месяцев в соответствии с вашей локалью на русском.

Цитата: sofi от 17 сентября 2014, 12:38А почему в коде:
Цитата:
(Format(YM, "YYYY MMMM"))
сразу не написать:
(Format(YM, "MMMM YYYY"))
sofi, то что вы сделали, меняет местами годы и месяцы, но не локальные настройки. Лично мне кажется красивее, когда годы находятся слева от месяцев (при выравнивании по левому краю), тогда годы выравниваются по вертикальной прямой, а не ломаной линии.

Hasim

Цитата: rami от 17 сентября 2014, 13:09Региональные настройки вы задаёте у себя.
Вот я и хочу, чтобы у меня можно было бы выбрать региональные настройки при открытии конкретного файла.
Чтобы файл на иврите открывался с "ивритскими" настройками, а файл на китайском - с "китайскими".

JohnSUN

Ну, хорошо. Теперь, когда первоначальная задача с миганием экрана уже никого не беспокоит, а все занялись лингвистическим многообразием, можно я спрошу?

Если в итоговом листе нет ни одной формулы (те два теста в H3 и J3 не считаются), то почему для формирования расчетного листка был выбран Эксель (Calc)? Почему эту таблицу нельзя было сформировать, скажем, как отчет в Base? Или как документ во Writer'е?
А если уж был выбран такой инструмент, почему большую часть задач (то же форматирование даты, или вычисление количества дней, или вычисление 25% от какого-то странного произведения) нельзя было возложить на формулы, стили и условное форматирование?

(Hint: если поиск ошибки в расчетах будет идти с трудом, посмотри внимательно на ROUND(RC[-1]/DaysInMonth(RC[-1]);2) - в сентябре 1902-ого года было 30 дней, ни больше и не меньше)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: JohnSUN от 17 сентября 2014, 14:03Если в итоговом листе нет ни одной формулы (те два теста в H3 и J3 не считаются), то почему для формирования расчетного листка был выбран Эксель (Calc)? Почему эту таблицу нельзя было сформировать, скажем, как отчет в Base? Или как документ во Writer'е?
Я не знаю для чего всё это нужно, если для писем или отчётов, то база данных + отчёт или рассылка писем —самое оно, но sofi пишет, что они шесть лет работали в этом стиле и горя не знали, не думаю, что надо их познакомить с горем ;D
Цитата: JohnSUN от 17 сентября 2014, 14:03А если уж был выбран такой инструмент, почему большую часть задач (то же форматирование даты, или вычисление количества дней, или вычисление 25% от какого-то странного произведения) нельзя было возложить на формулы, стили и условное форматирование?
Я отвечал на заданные вопросы по макросам.
Отговорка на "почему?" — наверно "чтобы шаловливые ручки не поломали"

sofi

#43
Цитироватькрасивее, когда годы находятся слева от месяцев
Нельзя! Есть установленная форма.
Как итог, эта таблица дополняется разным текстом и данными и
оформляется в виде Постановления судебного пристава, а затем
уходит во всякие суды и прокуратуры.
ЦитироватьОтговорка на "почему?" — наверно "чтобы шаловливые ручки не поломали"
Абсолютно, верно!
Эта программа считает долг по алиментам и используется в 36 отделах судебных приставов.
Т.е. это просто "считалка", эдакий специализированный калькулятор.
А пример который мы обсуждаем, это его маленький кусочек.
В реальной программе используются довольно сложные математические алгоритмы, т.к.
все должно соответствовать закону, а он тоже не простой.
Формулы в файле-примере, это всякая чушь, а не реалии!  
В 2008 году по глубочайшей просьбе моей жены, все это было сделано в Excel.
Недавно "сверху", дали указание, снести везде Windows и MS Office и поставить
Linux и OpenOffice.
Естественно, никакой поддержки по этим продуктам не оказывалось и не оказывается,
ни то-что пользователем-приставам, даже IT регионального управления ни хрена не знают,
во-общем, все, как обычно!
А без этой "считалки" приставу просто ж......! Но это никого не ......!
Вот я и ковыряюсь потихоньку на общественных началах! ;D
Цитироватьпосмотри внимательно на ROUND(RC[-1]/DaysInMonth(RC[-1]);2)
Опечатался, в реальном файле все правильно! Все равно, спасибо!

   
Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!

JohnSUN

Ну, раз уж всё-таки начали формулировать задачу детальнее, то, может быть, есть смысл продолжить? (А тему как-нибудь потом переименуем в "Калькулятор алиментов"... Или, чтобы не отпугивать алиментщиков, "Помесячный калькулятор")
Каково назначение колонок в Калькуляторе?
A - понятно, очередной месяц оплаты - просто дата, которую нужно отобразить в виде названия месяца. В самой первой строке - начало выплат (дата судебного решения?), в самой последней - дата совершеннолетия, что ли?
B - количество дней в месяце - целое число. В первой строке - сколько дней до конца месяца, в последней - сколько дней прошло с начала месяца (фактически число, день, DAY(финишной даты))
C - какая-то ежемесячная ставка, что ли? Что это за 1000? Зарплата алиментщика? Она фиксированная по всей высоте таблицы? Или нужно предусмотреть ввод разных сумм за разные периоды?
D - C/B округлённое до копеек... Похоже, дневной доход... И вот тут вопрос по первой и последним строкам - там что за значение должно быть? Или здесь должно быть что-то вроде =C8/MAX(DAYSINMONTH(A8);B8)? В этой же колонке для строк промежуточных итогов или слово "ИТОГО:", или дата из следующей строки, отформатированная как год.
Пустые колонки E-G... Я так понимаю, отметки о реальной оплате? Или что?
И почему-то в самой последней колонке 25% от произведения дней на дневной доход. Опять-таки, округлённое до копеек. Если я правильно понял логику расчета, там должна быть разность "начислено-уплачено".
В итоговых строках должны накапливаться какие-то итоговые значения. Какие?
Что и куда должен внести пристав и что он должен получить в результате?
Как ведется учет - один алиментщик=одна книга или один алиментщик=один лист в большой общей книге?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне