Страницы: 1
RSS
Логпрог, проект программы.
 
Имею давнюю разработку в Excel+VBA c очень широким функционалом по обработке информации. Система универсальна. Умеет регистрировать информацию, структурировать ее, модифицировать и хранить.  Информация может быть практически любой. Например эта программа используется мною для регистрации и архивирования  важных файлов. Система запоминает пути хранения, умеет идентифицировать компьютеры, на которых запущена и помогает регистрировать идентифицировать и отслеживать версии рабочих файлов  с учетом их возможного перенесения на новые места.
Разработка, расширение и доработка программы ведется постоянно под периодически меняющиеся нужды и задачи. Поэтому интерфейс программы сырой и много недоработок. В общем, хроническая бета версия, развивающаяся быстрее, чем отлаживается :) Как
Цитата
bedvit написал: Продукт работоспособен только в комплекте с издателем
Так оно и есть. На данный момент до публикации версии, способной самостоятелно работать на стороне далековато. Однако в настоящий момент программа используется в моей торговой организации и заменяет она 1С и менеджерскую базу данных для заказа товара и учета ТМЦ и прочих нужд. Включая например контроль за файлами сайта компании. Т.е сырой продукт вполне работоспособен, но требует многих доработок, которыми я занят непрерывно. Однако новые идеи - основное зло, мешающее этому процессу! Т.к новые идеи это и новые проблемы!
Тем не менее, в продукте реализовано очень много интересных моих заготовок и я в этой теме в отдельных видео планирую раскрывать их примеры. И естественно жду вопросов из разряда:
А может ли Ваша система....?
А Как сделать вот это ...в вашей системе?
Может. Сделать можно... задвайте вопросы. С удовольствием покажу, как та или иная задача решается моей универсальной программой Логпрог.
Для начала здесь основное вводное видео по принципам работы Логпрог.
А здесь пример одного из множеста моих ноухау.
 
А я видео пролистал. Именно пролистал, слушать 1 час - долго.
Только то, что при беглом просмотре не понравилось в реализации.
1. Управление. У пользователей отбираете клавиатуру? Передача управления событиям листа - тоже не всегда хорошая идея. Если 10 лет работать, можно привыкнуть управлять только стрелками (это о командах, назначенных на ерзание курсора туда-сюда), но зачем? Иногда и сами путаетесь )
2. Отрисовка таблиц. Похоже, Вы не знаете об элементарном отключении Application.ScreenUpdating. А это в совокупности с незнанием о внутреннем имени листа наталкивает на мысль, что пробелы присутствуют и что оптимизировать есть что :)
3. 2,5 Мб - это для Excel не "смешной объем", тем более - для обработчика без таблиц с данными. Грузит файл кроме прочего условное форматирование. Или форматы - все в коде? Возможно, листы форматированы с большим запасом. Может, имен много. А может, мегабайты в коде, даже без форм пользователя?

Цитата
Neufazendnik написал: Однако новые идеи - основное зло, мешающее этому процессу!
Неправильно. Основное зло - процесс так создан :)
В Вашей теме о правильном написании кода замечание по циклу... И, догадываюсь, таких недоработок в коде (то же моргание экрана...) много.
 
vikttur,  Благодарю, что просмотрели видео. Я собственно пол дня убил на то, чтобы его создать.
1. По управлению. Что значит отбираю клавиатуру? Я ж именно на клавиатуре жму стрелки. Более того, был сознательный уход от пользования мышью. Я сторонник горяцих клавиш, потому что работа с ними машинальна, вне зависимости от текущего положения курсора не нужно думать, куда его подводить и терять время на выбор пункта меню. Рука на стрелках и машинально набирает одно из четырех нажатий. Все это происходит мгновенно и не задумываясь. Да, порой путаюсь от того, что сам постоянно переделываю набор команд и не успев привыкнуть вношу новшества. Согласитесь, с новым интерфейсом всегда нужно время на адаптацию к нему :)
Я с вами соглашусь, управление через события не идеально и есть вопросы. Но с точки зрения скорости работы как раз оно дает возможность работать машинально и не мечась по всем клавишам, держа руку в одном месте. Это скорость и даже простота. Но, да, нужна привычка. Все так же, как и на работу с горячими клавишами.
В принципе ни что не мешает продублировать систему управления традиционными интерфейсами. Но у меня тупо не было времени заниматься вопросами доработки. Логпрог - концепт. Скелет, на котором постоянно опробуются идеи и параллельно идет использование продукта для собственных нужд.
2. По скринобдэйтинг. Это пример все той же постоянной модернизации. Одним из последних изменений была как раз возня со скринобдэйтинг. В коде, отрисовывающем таблицу, как минимум десяток раз применена эта функция. Проблема в том, что промежуточные обновления при отрисовке требуются хотя бы для того, чтобы показывать изменения в статусбаре. Меня задолбала собственная недоработка, при которой в результате каким-то образом при несвоевременном использовании скринобдэйтинг статусбар при отрисовке таблицы периодически начинал показывать свое прошлое значение. Причем это было очень странное повдение экселя. Само свойство статусбара было уже новым и когда мне нужно было его обновить, то в коде фигурировало screenupdating=true. Но при исполнении кода почему то периодически возвращалось старое содержимое экрана со старым статусбаром. Я много лет не заморачивался, но на днях меня это достало. Я поотключал не думая практически все screenupdating=false на начальном этапе отрисовки таблицы и избавился от одной проблемы, вернув старую детскую - шапка таблицы рисуется дрыгаясь. Как видите, вопросов для доработки очень много. У меня банально нет времени вылизывать до идеала все мелочи, т.к. до окончательного варианта сам же еще 10 раз все промежуточное попеременяю. Прошу не придавать значения не принципиальным недоработкам. Продукт абсолютно сырой в силу того, что он не тривиален, а делать все приодится в одни руки урывками в свободное время. Для меня вот важнее решить вопрос с распределением базы данных из одного файла на несколько, чем подправить дрыгание, убив час на то, чтобы наконец расставить в коде подпрограммы отрисовки screenupdating как положено или же оформить красивое меню в выпадающими списками. Не удивляйтесь. Решаю концептуальные вопросы. До деталей руки просто не доходят.
4. По скорости загрузки. Нет, тут дело не в условном форматировании и не в именах. Всего этого не используется. Формат в столбце определен тем, который я задаю в описателе типов. Там есть свойство для каждой колонки - формат. Этот формат тупо копируется на все строки колонки, с которой он сопоставлен. Так что в коде одна единственная строка с copy. и на этом код больше ничего не форматирует в таблице. Условным форматом пользуюсь охотно в более простых своих приложениях. Люблю этот инструмент. Но в Логпрог место ему не вижу. Здесь его нет. Почему грузится медленно?
70% времени прорисовки отнимает формирование массива данных для отрисовки. По сути это запрос на выборку из базы данных. Как она происходит: лопатятся все строки листов хранения данных определенного типа. У каждой из них есть ссылка, указывающая на перечень разделов, в которые данная строка включена. Проверяется каждая такая ссылка каждой строки данных типа на то, попадает ли данная запись в раздел, который следует отрисовать. Кроме того, если не попадает, попадает ли она в какой-нибудь подраздел из раздела, в который нужно отрисовывать. Если попадает, то ее помечают на отрисовку в конце отрисовываемого списка. Такая выборка- это уже не тривиальный вложенный цикл обработки для каждой строки данных в типе. А данных может быть несколько сотен тысяч! Более того, данные эти не умещаются порой на одном рабочем листе и хранятся на нескольких. Выборка задействует еще и вспомогательные циклы перебора мест хранения данных типа. (собственно вопрос, обсуждаемый в теме)
20% времени занимает отрисовка ссылочных граф. У меня реализована возможность отрисовывать не сами ссылки на какие-то таблицы, а части данных этих таблиц (до четырех граф) получаемые по ссылке. Т.е в памяти базы данных у меня хранится ссылка на другую таблицу. А при отрисовке уже рисуются сами данные, выдернутые по этой ссылке. Например, у меня есть таблица с информацией о заявках на товар разным поставщикам. В этой таблице есть графа со ссылкой на поставщка. Поставщики и информация по ним уже в другой таблице. Вот какой-то из поставщиков был у нас ООО "Рога и Копыта", а потом передумал и бегая от налогов стал ООО "Копыта и рога". В таблице поставщиков я сделал соответствующее исправление его названия. А когда я захочу отрисовать таблицу заявок, то в ней уже не будет устаревшей информации ООО "Рога и Копыта". Там же, в базе данных указана лишь ссылка, а не сама информация. При отрисовке ссылка трансформируется в конкретную информацию по ссылке. Причем, выгружаемую сразу в несколько граф. Я могу в таблице с заявками заполнить сразу 4 графы информацией по единственной ссылке на таблицу с поставщиками. Это название поставщика. Это контактный телефон, адрес эл почты, Фио ответственного лица. Его должность. Вся эта информация 4х граф не хранится на листе хранения данных по отрисовываемому типу - заявок.  Хранится только ссылка на элемент таблицы поставщиков. А вот в тип заявок по ссылке будет отрисовано аж 4 графы! Т.е. отрисовка не тривиальна. Она модийицирует и трансформирует кросссылочную информацию, разворачивая ее. А теперь представьте, что в показанной на видео таблице в одной только записи\строке данных используется как минимум полтора десятка различного рода ссылок. Причем часть из них еще и множественные - т.е одна строка данных ссылается на несколько строк другой таблицы (например номера телефонов так могут выбираться из таблицы телефонов). Я молчу про то, что иногда используется механизм многократного вложенного выбора информации по ссылке. Т.е при отображении одной записи одного типа прорабатывается информация многих записей во многих других типах помимо отрисовываемого. Громадный вычислительный объем.
10% Ну и наконец сама процедура отрисовки очень не тривиальна. Для ускорения ее работы в ней использованы такие ухищрения, как анализ последовательно расположенных блоков данных информации и копирование\перенесение из базы данных на лист контекста их одним блоком с помощью отдельной процедуры перенесения range диапазонов по address.
 
Ну и теперь по существу.
Самый главный вопрос? Зачем отрисовывать каждую ячейку, если можно одним разом отрисовать весь диапазон.
второй главный нюанс. Ctrl+Z не работает. Меня за это на работе не хвалят. Поэтому приходится делать так, чтобы он работал. У людей есть такое свойство ошибаться, особенно если руки кривые. Ткнули кнопку, а чего там было в ячейке они не помнят.
Наверное вместо полупрозрачного списка (оно мешает) я бы создал своё меню на ПКМ в котором указал и комбинацию клавиш.
А если я буду не стрелками перемещаться, а мышой тыкать, то у меня не откроется ничего?
Ну в общем-то я ничего не понял, это надо знать что и для чего оно всё это делается.
Но за идею перемещения по по структуре это вы хорошо взяли.
Я как-то от нечего делать Explorer вроде такого же в Excel написал. ))) С деревом ветвистым и красивым. Удобно было смотреть от куда путь держишь )))
Бойтесь обновлений системы и офиса.
Я уже последние полгода замучился коды модернизировать. Особенно под 10 и офис выше 10. Нет нет да какая-то шляпа вылазит. Причём там где нечему вылазить. Вот например вчера глюк был на работе у коллеги. Формирует КП, а у него формируется книга с оформлением от КП, а данные вообще из разных мест файла. Причём такое даже при желании сложно изобразить. А тут при формировании КП выполнялись макросы причём такое ощущени по результату, будто часть одной процедуры выполнилось о которой там и не слышно в коде, потом часть другой про которую там тоже ни слова не сказано и т.д. Как это происходит вообще непонятно.
На прошлой неделе вообще ересь какая-то была. При обычном двойном клике по ячейке появлялась форма совершенно левая, которая вообще не вызывается таким событием. На двойной клик во всём документе ничего не было, кроме одного листа на котором было просто написано Cancel=true.
В общем последние несколько месяцев такие пёрлы выдаёт.
Ах да ещё. Сегодня случай был. При выделении диапазона любого Excel входил в полный ступор. В диспетчере грузил процессор, на ленте все пиктограммы блокировались, но самое удивительное что мышкой по листу можно было дальше щёлкать по ячейкам. Но даже Ctrl+C не работал. И вот так висит около минуты потом всё нормально. А под конец рабочего дня я так и не дождался пока он из ступора выйдет. Вот что он там делает? Такое ощущение будто в какой то пересчёт впадает.
В общем сюрпризы уже надоедать стали. Хотя OS и Office лицензионные.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Alemox написал:
Зачем отрисовывать каждую ячейку, если можно одним разом отрисовать весь диапазон.
Кто сказал, что можно? В каждой ячейке свои правила трансформации значения, записанного в хранилище БД, в информацию, отрисовываемую в ячейках. В БД например ссылка на некую запись какого-нибудь типа данных. А в отрисованной таблице - контексте уже не ссылка рисуется, а определенное поле этой записи. Или же вот ячейки, расчитываемые функциями по значениям других колонок. В каждой таблице у меня много подобных специфических колонок, хранящихся не в том формате, в котором они отражаются. Прямым путем они не копируются.
Потом, момент второй. Строки таблицы - это же некоторая выборка из БД. Т.е в БД в этой таблице допустим 10000 строк, а в выборку для отрисовки попадает скажем 50 строк. И конечно же без всяких гарантий, что они будут следовать в исходном диапазоне данных сплошным куском друг за другом.
Изменено: Neufazendnik - 24.06.2018 23:58:39
 
Цитата
Alemox написал:
Ctrl+Z не работает.
Да, это неоспоримый минус. Отчасти он компенсируется тем, что в БД всегда хранится исходная таблица. И при сохранении данных в БД, происходит перерисовка всех автовычисляемых граф, а те графы, в которых просто значения без всяких хитростей, не затираются в БД, в случае, если на месте данных теперь чистая ячейка. Т.е информацию можно заменить, но нельзя удалить сохранением. Это сделано для блокировки случайной потери данных, если что-то нечаянно было затерто. Этим же часто пользуюсь вместо ctrl-z просто затираю блок данных, в котором что-то не так пошло и через команду сохранения контекста восстанавливаю прежние значения, которые веновь прорисовываются на прежние места.
 
Цитата
Alemox написал:
Наверное вместо полупрозрачного списка (оно мешает) я бы создал своё меню на ПКМ в котором указал и комбинацию клавиш.
По правде сказать, я редко им пользуюсь. Работаю в основном машинально. Т.к базовые операции в 90% случаев одни и те же во всех таблицах. А специфические операции в основном висят на макросах. Мне некогда тщательно все прорисовывать и особенно в наиболее свежих еще не доработанных таблицах эти макросы я тупо вызываю по alt-F8, даже не прописывая в свойствах таблицы. Просто некогда вылизывать это все до уровня пригодного для других пользователей продукта. Достигаю минимума, который необходим для получения главного и нужного результата и на том останавливаюсь и бегу к следующему вообще неразрешенному вопросу. Из таких вопросов на повестке дня например:
1. Доработать код разделения БД на отдельные файлы вместо единственного.
2. Сделать возможным подключение нескольких БД и работу с любой из них из одного Логпрог. На данном этапе возможно работать только открывая для каждой БД свой отдельный Логпрог. Куча отдельно открытых экземпляров экселя напрягает и не совсем удобно между ними копировать данные через буфер. Инструмент специальная вставка отсутствует.
3. Хочется организовать механизм интеграции баз данных. Т.е возможности показывать несколько БД как продолжение одной логической структуры с возможностью работать с ними как с одной базой.
До тех пор, пока я не реализую подобные задачи, вряд ли у меня найдется время заниматься такими вопросами, как менюшки...
 
Цитата
Alemox написал:
А если я буду не стрелками перемещаться, а мышой тыкать, то у меня не откроется ничего?
Откроется. Способ перемещения без разницы. Но мышкой неудобно и медленнее раз в 100 (на то, чтобы нажать две стрелки друг за другом - нужны миллисекунды. Мышкой так не сделать) в сравнении с работой на клавиатуре. При работе мышкой полностью потеряется все преимущество моего подхода к вызову команд. Ведь он был создан именно для того, чтобы не терять время на тыканье мышкой!
Изменено: Neufazendnik - 25.06.2018 00:18:56
 
Цитата
Alemox написал:
Бойтесь обновлений системы и офиса.
Уже думал об этом. На самом деле это действительно самое страшное. Производитель в любой момент может поставить крест намоем  многолетнем труде, лишив его будущего. Зависимость от MS-Office - да, тяжелая моральная ноша. 16й Офис меня уже раз напугал. Я об этом тему уже делал здесь Очень похоже все на то, что Вы описываете. Но обновлениями за год Майкросовт подлатал продукт так, что большинство глюков месяц-два назад наконец канули в лету. Тем не менее год мучений подобных Вашим мне был обеспечен.
Изменено: Neufazendnik - 25.06.2018 00:28:20
 
Цитата
Neufazendnik написал:
Зависимость от MS-Office
это относится к огромному количеству решений и не только  на скриптах. Изменение версии окружения исполнения или библиотек или ... и  все, многолетний труд в корзине. Даже рекоменация запуска в определенной версии Еxcel  не спасет. Так как есть еще  и линукс и мак, а там другая история совместимости.
Ну и конечно мне странно, что много лет продукт рос без пересмотра архитектуры и тех методов что использовались. Я вспоминаю из доугой темы методы вызова Dir c перенаправлением stdout в файл с последующим чтением его и парсингом. Допускаю что в это не единственый поример , когда применение иного метода проще и эффективнее.  Да собственно все долгоживущие разработки по этому и имеют основные, можорные и текущие версии. Основные , как правило и есть пересмотр архитектуры на базе накопленного опыта и измененных потребностей, конечно если это не чисто маркетинг и срубание бабла.
По вопросам из тем форума, личку не читаю.
 
Цитата
vikttur написал:
В Вашей теме о правильном написании кода замечание по циклу... И, догадываюсь, таких недоработок в коде (то же моргание экрана...) много.
Ну, про замечание ответил там же. Оно было не по делу, т.к код не имел никакой смысловой нагрузки, а показывал отступы. А Вы стали делать замечания по смыслу, которого не было.
Что до мерцания экрана - действителньно - недоработка. Только не концептуальная и не архитектурная, а просто недоделка, которая может быть устранена в любой момент и не вызовет никаких переделок и не нуждается в доработке архитектуры. (Причем, вопрос уже давно был решен в прошлых версиях и только мясяц назад я тронул код, поотключав Screenupdating (я приводил код ранее - Вы можете в нем видеть закомментированные Screenupdating). Мне не сложно их опять включить. Но не до них мне. Таких недоделок действительно уйма. Я их оставляю на потом, потому что они не принципиальны и в любой момент могут быть закрыты, если потребуется. Но опыт говорит о том, что 60% из них и не потребуется переделывать, потому что со временем глобальный подход тоже претерпевает изменения и многие вопросы отпадают всвязи с переделками на более высоком уровне. Для примера, на всем протяжении разработки Логпрога  в голове зреет версия принципиально иной концептуальной реализации внутренней архитектуры. Это повлечет 100% переписывание всей программы. Останутся только наработки - те накопленные инструменты пользователя и принципы управления данными, котрые сформировались благодаря текущей реализации Логпрог.
Возможно, продукт будет в конечном итоге переписываться в другой среде программирования. Поэтому, какая мне разница, что у меня там моргает сегодня? Меня интересуют концептуальные вопросы на данный момент. В данный момент концепция еще не вызрела. Она в развитии. И нет смысла заниматься причесыванием блох на данном жтапе. Это все бесполезная работа. Я использую правило Паретто: 20% усилий дают 80% эффекта. Поэтому продукт хронически недоработан на сегодня.
Изменено: Neufazendnik - 25.06.2018 11:59:45
 
Цитата
Neufazendnik написал:
20% усилий дают 80% эффекта
Только без оставшихся 20% как правило ничего не сделаешь.  ;)
Я никогда не любил это правило. Вы же не покупаете 20% стиральной машинки. Или решили сходит на день рождения купили подарок (это 20% от того, что вы пойдёте на событие), а потом сидели и подумали, а ну его нафиг.  :D
Если делаю для людей, то стараюсь причёсывать до стабильной версии, а не бегать и объяснять, что вот сюда не тыкайте, а вот это не удаляйте.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Alemox написал:
Вы же не покупаете 20% стиральной машинки.
Alemox, от чего же не покупаю? Я имею возможность купить Электролюкс, а имею возможность Ивушку или Вятку-автомат. Выбор за мною Если мне нужно 80% эффекта - т.е стирку при 20% усилий, то я могу взять для этого Вятку-автомат. А если мне нужны все 100% при соответствующих затратах, то куплю LG.
 
Цитата
Neufazendnik написал:
Если делаю для людей,
Не уверен, что на этапе построения фундаметна дома резонно жаловаться, что в подвальных помещениях не вставлены окна. И уж ни в коей мере это не означает, что это делается не для людей. Давайте здраво соизмерять возможности с желаниями. Хрущевки строились тоже для людей и люди были им счастливы. Изменились возможности и хрущевок стало мало и спустя время они стали предметом насмешек. С моим кодом так же. Я реализую серьезный глубокий концепт. Делаю его в одни руки. На этом этапе та землянка, которая уже выстроена - она уже пригодна для выполнения задачи, для которой она создана. Да, ей далеко даже до хрущевки. Но Москва тоже не сразу строилась. Я быть может принимал бы эту критику, если бы я сидел и ничего не делая и не дорабатывая, пытался бы навязывать людям свой продукт. У меня же ситуация далеко не такая. Я презентую проект. Проект, который находится на стадии проектирования и попутного строительства. Я - инженер-геофизик по образованию. В геологии есть такое понятие - разведка с попутной добычей. Это когда еще не оконтурено месторождение и не понятен его масштаб. Ведут исследование, разведывают дальше. Но это не машает уже попутно начинать его использовать. Наверное же не уместно на этой стадии возмущаться, что типа это не для людей, что непонятно, сколько техники нужно завезти и какое производство строить под месторождение. Явление используется ровно на столько, на сколько оно есть. Хочешь - извлекаешь пользу из сегоднешних возможностей, хочешь - не извлекаешь не из каких. Хочешь, берешь идею за основу и показываешь всем, как надо делать и делаешь лучше, чем сделал кто-то.
Изменено: Neufazendnik - 25.06.2018 14:41:08
 
Вас не осуждают. А интересуются почему сделано именно так и не как по другому.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Ну, на эту тему я уже много сказал, так сделано только по причине того, что не до мелочей. Очень много не решенных вопросов и перспективных планов. Каждая идея доводится до того состояния, когда скелет начинает двигаться. Дальше мышцы на скелет не наращиваются. Движения не оттачиваются. Скелет движется угловато, спотыкается и падает. Но... этого достаточно на данном этапе. Потому что я уже перешел к следующему вопросу. К вопросу исследования пространства, в которое дошкандыбал скелет падая и спотыкаясь. Как часто уже оказывалось, что забегая вперед и исследуя это пространство, выясняется, что скелет обтягивать ни чем не нужно было. Его нужно просто брать и переделывать вообще по другому, потому что та модель, которая была изначально принята, мало пригодна для тех условий, которые открылись после того, как эта первая модель к ним пришкандыбала.
Кстати, вот эта возможность шкандыбать - основная причина моей нелюбви к законченным программным продуктам. Многие из них закончены по своей сути и часто не имеют должного простора для подстройки под конкретные задачи пользователся. Меня рамки всегда пугают и то, что многие  задачи на компьютере я предпочитаю решать самостоятельно своими руками, а не пользовать готовые программные продукты - это уже стиль жизни. Да, готовое вылизано. В готовом не моргает экран. Да, меню там замечательные. Там в общем-то все хорошо, кроме главного - функционал законченной системы часто гораздо менее потребностей. Мне, как представляющему границы и возможности программных продуктов, крайне сложно смириться с подобными ограничениями. Поэтому что по мне, так лучше моргающий экран и решенная с помощью него задача, чем вручную без моргающего экрана и без программы сидеть и делать то, что хоть и угловато, но уже автоматизировано и работает, принося пользу. Кто-то скажет, что лучше быть здоровым и богатым, чем бедным и больным. Что мол ни кто же не мешает мне доработать недостатки и сделать систему здоровой и богатой? Как раз Мешает! Мешает вышеназванный принцип приоритета. Эта задача не приоритетна. Приоритетно решение принципиальных проблем, которые на сегодня у пользователя возникли которые не позволяют пользователю получить какой-либо результат. Например, я назвал одной из таких проблем невозможность агрегировать несколько БД в одну. Отсутствие механизмов передачи информации между различными БД. Вот ключевые вопросы, которые приоритетнее! Они мешают заниматься менее приоритетным вылизыванием кода и доведения его до совершенства в плане удобства совершения отдельных операций.
Изменено: Neufazendnik - 25.06.2018 15:32:25
 
А есть возможность самому что то окрашивать каким-то цветом. Какой то определённый пункт. Он это запомнит?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Не совсем понятен вопрос. Форматирование отдельных полей записи не сохраняется. Нет такого механизма. Форматы предопределены только для полей полностью всей таблицы.
Вероятно Ваша задача у меня концептуально решается иначе. Напротив строк, которые Вы хотите пометить ставится в 9й графе любой символ - ячейка девятой(крайней слева из видимых граф) делается не пустой. И выполняется команда связать с разделом. (стрелка влево-вправо в стандартном интерфейсе по умолчанию)
После этого вылезает вопрос: Переместить данные в новое место или скопировать в новое место? По ситуации отвечаем.
Далее вылезает дополнительный контекст выбора раздела, в который мы хотели\бы перенести или скопировать данные. Тут мы в том числе можем создать новый подходящий раздел и указать, что хотим данные положить в него. Если этот раздел приемник оказался подразделом от источника, то при следующей (повторной отрисовке) того раздела, в котором мы хотели некоторые записи выделить, все строки дочерних разделов (например то, что нами было перенесено в другой - дочерний раздел) отобразятся ниже подсвеченными фиолетовым цветом.
Например есть раздел номер 100 - список ингредиентов для борьща:
Мясо, лук, свекла, капуста, картошка, зелень, специи, соль, вода, томатная паста, морковь.
В этом списке нам захотелось что-то выделить. К примеру - корнеплоды.
Тычем какой-нибудь символ в 9й графе напротив каждого корнеплода (лук, свекла, картошка, морковь) .
Жмем стрелку влево-враво. Отвечаем, что хотим перенести в дочерний раздел. В раскрывающемся окне выбора раздела создаем новый. Допустим система присваивает ему 101 номер. Называем его Корнеплоды и тут же командой стрелка вверх-вниз выбираем в качестве раздела для переноса в него выбранных данных. Данные, отмеченные в 9й графе переносятся в 101й раздел.
В итоге мы имеем следующее: Если мы захотим снова отрисовать содержимое 100 раздела, то оно будет уже из двух частей. Верхняя часть - стандартным шрифтом
Мясо, капуста, зелень, специи, соль, вода, томатная паста.
А ниже пошли строки вложенных разделов, свреди которых только что созданный нами 101 : лук, свекла, картошка, морковь .
Вот вам и выделение цветом.
Есть вариант еще и отрисовать 101 раздел - только выделенное. Вызываете его отрисовку и видите: лук, свекла, картошка, морковь, отрисованные обычным шрифтом.
Внутри него по той же схеме можно выделить что-то свое. Например овощи, которые вы любите :))) и повторить описанную схему еще на один уровень вглубь!
 
Есть вариант к любой таблице просто добавить новую графу на уровне описания типа и использовать ее для пометок какого-то свойства некоторых записей. Это будет альтернатива цветному выделению. Ну на худой конец задать в этой колонке условное форматирование и подсвечивать что-то цветом только в тех записях, где она не пуста.
 
В этом видео показан механизм структурирования данных в Логпрог.https://youtu.be/B0BZ73qvOA4
 
Опубликовано видео, описывающее структуру рабочих листов и файлов Логпрог.
Изменено: Neufazendnik - 06.12.2018 13:33:04
Страницы: 1
Наверх