Страницы: 1
RSS
Требуется концептуальный подход к сложному проекту...
 
Здравствуйте, господа!  
Что-то застрял с общей концепцией проекта... Помогите сориентироваться...  
Задача: Есть множество таблиц с исходными данными, часть данных вводится извне. Для комплексного расчета ввод исходных данных должен повториться n-ое количество раз с разными значениями, каждый раз по-разному.   После сбора данных над ними осуществляются расчеты с использованием дополнительных данных из других таблиц и расчитанные данные помещаются в отчет.  
Что приходит в голову, - это создание формы в которой часть данных будет выбираться из выбрасывающихся списков, часть вводиться вручную, после чего будет создаваться динамическая таблица, в которой будут присутствовать исходные данные и производиться расчеты над ними. По мере заполнения таблицы, формируется отчетный лист.  
С точки зрения пользователя все неплохо, но с точки зрения реализации, мне кажется все сильно усложнено. Куча сложных формул в коде, да и сам код достаточно сложный, сложность с контролем. Возникает ощущение, что это реализуется как-то проще. Может какая-то таблица с формулами или более простой способ создания динамических таблиц? Если можно, ткните носом в примеры сложных проектов красиво реализованных или поделитесь именно концептуальными подходами к таким задачам. Файл не прикладываю, поскольку чтобы его начать создавать надо определиться что же именно делать...  
Понимаю что вопрос несколько абстрактен, но выглядит достаточно понятно... Если что, - отвечу на вопросы...
 
ткнуть не сложно  
было бы куда
 
{quote}{login=тухачевский}{date=24.01.2010 12:08}{thema=}{post}ткнуть не сложно  
было бы куда{/post}{/quote}  
Это намек на отсутствие красивых решений или на невнятность моего вопроса?
 
какой намек?  
куда тыкать?
 
> Понимаю что вопрос несколько абстрактен  
 
Это ещё мягко сказано.  
Вряд ли я смог бы описать что-то более абстрактно :)  
 
При таком описании "концептуальных" советов (да и советов вообще) Вы не дождётесь.  
 
Хотите получить совет по решению задачи?  
Тогда выкладывайте файлы (неважно, в каком у вас там виде хранятся данные на сегодняшний день), и на примерах разъясняйте, какие данные будут вводиться, где и как храниться, и т.д.
 
{quote}{login=тухачевский}{date=24.01.2010 12:16}{thema=}{post}какой намек?  
куда тыкать?{/post}{/quote}  
В красивый сложный проект в котором таблица с расчетом формируется динамически...
 
{quote}{login=Floater}{date=24.01.2010 12:26}{thema=Re: }{post}{quote}{login=тухачевский}{date=24.01.2010 12:16}{thema=}{post}какой намек?  
куда тыкать?{/post}{/quote}  
В красивый сложный проект в котором таблица с расчетом формируется динамически...{/post}{/quote}  
замечательно  
апофеоз коммунистических тенденций звучит тоже хорошо, но  
не понятно  
с таким подходом я предполагаю возмездность дачи советов
 
{quote}{login=EducatedFool}{date=24.01.2010 12:24}{thema=}{post}> Понимаю что вопрос несколько абстрактен  
Тогда выкладывайте файлы (неважно, в каком у вас там виде хранятся данные на сегодняшний день), и на примерах разъясняйте, какие данные будут вводиться, где и как храниться, и т.д.{/post}{/quote}  
Речь идет о расчетах систем вентиляции. Если Вы немного представляете, то объем данных внушителен. Это куча таблиц со всякими аэродинамическими, теплотехническими и прочими константами, коэффициентами и т.д. Собственно пока есть только эти таблицы и выкладывать их сюда особого смысла не вижу, а о том как с лучше обращаться и хочется понять.    
Могу подробнее изложить принцип работы. Есть здание, - набор помещений. Я должен для каждого помещения собрать данные из таблиц (например параметры материалов стен, ориентацию в пространстве т.д.)(Таблицы находятся на соседних листах), Добавить фактические данные (например температура внутри, снаружи, размеры помещений и т.д.). Помещений - всегда по-разному... Вот по всем помещениям и загнать данные, провести над ними идентичные расчеты и выдать результаты по каждому помещению и зданию в целом. Вопрос как наиболее оптимально организовать такую задачу?    
Щас не так абстрактно?
 
Может Вам предпочтительнее в Акцесс БД создать и через необходимые запросы из разных таблиц подтягивать нужные данные по критериям?  
Потому как в экселе это видится очень громоздким, с кучей ВПРов и валидаций...
 
Мне видится так:  
- создаётся куча именованных диапазонов-справочников, куда заносятся данные, константы, размеры и т.п.  
- создаётся UserForm, на которой с помощью ComboBox'Ов выбирается нужный набор параметров.  
- по кнопке весь этот набор попадает в таблицу на листе, уже с арифметикой в коде.  
- Затем следующий набор параметров (для следующего помещения) и т.д.  
- Затем "Главная кнопка", по которой обработаются все строки для здания и формируется итоговый отчёт.
 
http://yandex.ru/yandsearch?text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+­%D1%80%D0%B0%D1%87%D0%B5%D1%82+%D0%B2%D0%B5%D0%BD%D1%82%D0%B­8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8&clid=40316&lr=213&stpar2=%2Fh1%2Ftm16%2Fs2&stpar4=%2Fs2&stpar1=%2Fu0  
и есть варианты
 
{quote}{login=Serge 007}{date=24.01.2010 12:57}{thema=}{post}Может Вам предпочтительнее в Акцесс БД создать и через необходимые запросы из разных таблиц подтягивать нужные данные по критериям?  
Потому как в экселе это видится очень громоздким, с кучей ВПРов и валидаций...{/post}{/quote}  
Таблицы не настолько огромные, ну и в количестве их там пару десятков будет... Не суть, мне кажется где их хранить, а вот расчетов - море и формул тоже. Формулы не выделяются особой сложностью, зато частенько многоэтажные, да и расчеты повторяемы. Вобщем, мне кажется Excel - это хорошо... Вопрос в том как это рационально сделать, чтобы не писать километровый код, а потом понять, что можно было просто загнать формулу в ячейку...
 
> Щас не так абстрактно?  
 
Уже лучше)))  
 
 
> Это куча таблиц со всякими аэродинамическими, теплотехническими и прочими константами, коэффициентами и т.д  
 
Многое зависит от того, в каком виде сейчас имеются эти таблицы.  
 
Если таблицы  - в виде файлов excel, то можно попробовать решить задачу средствами того же Excel.  
 
Если таблицы - в бумажном виде, и заносить данные в комп придётся вручную - имеет смысл изначально делать проект в виде базы данных (например, при помощи Access)
 
{quote}{login=Floater}{date=24.01.2010 01:04}{thema=Re: }{post}{quote}{login=Serge 007}{date=24.01.2010 12:57}{thema=}{post}Может Вам предпочтительнее в Акцесс БД создать и через необходимые запросы из разных таблиц подтягивать нужные данные по критериям?  
Потому как в экселе это видится очень громоздким, с кучей ВПРов и валидаций...{/post}{/quote}  
Таблицы не настолько огромные, ну и в количестве их там пару десятков будет... Не суть, мне кажется где их хранить, а вот расчетов - море и формул тоже. Формулы не выделяются особой сложностью, зато частенько многоэтажные, да и расчеты повторяемы. Вобщем, мне кажется Excel - это хорошо... Вопрос в том как это рационально сделать, чтобы не писать километровый код, а потом понять, что можно было просто загнать формулу в ячейку...{/post}{/quote}  
 
Тогда прислушайтесь к совету Юрия.  
24.01.2010, 00:59
 
{quote}{login=Юрий М}{date=24.01.2010 12:59}{thema=}{post}Мне видится так:  
- по кнопке весь этот набор попадает в таблицу на листе, уже с арифметикой в коде.{/post}{/quote}  
 
Именно этот пункт и смущает, арифметика в коде, а мысль была сразу именно такая, но проверка расчетов в коде видится мне достаточно сложным занятием. Вот я и подумал может можно сделать какую-нить базу данных с формулами, ссылки на которые использовать, а потом подумал, может бывает еще как-то?
 
{quote}{login=EducatedFool}{date=24.01.2010 01:06}{thema=}{post}> Щас не так абстрактно?  
 
Уже лучше))){/post}{/quote}  
 
Таблицы уже почти все в Excel... Постарался:))
 
Да и использование формы, уже предусматривает достаточно много ручных привязок в коде. Возможно ли решение такой задачи с использованием псевдоформы и набора макросов или это будет сложнее? Есть какие-то подводные камни?
 
Может Вам одних формул хватит? И таблиц, связанных между собой ими?  
Пока не увидишь "что есть" - "что надо" воду лить можно бесконечно...  
Успехов Вам.
 
{quote}{login=Serge 007}{date=24.01.2010 01:36}{thema=}{post}Может Вам одних формул хватит? И таблиц, связанных между собой ими?  
Пока не увидишь "что есть" - "что надо" воду лить можно бесконечно...  
Успехов Вам.{/post}{/quote}  
Что-ж, всем спасибо, по-крайней мере подтверждение правильности хода своих мыслей я получил.    
Единственное, чего все-таки хотелось бы, это увидеть что-нибудь похожее по принципу и красиво выполненное(пусть не настолько сложное), чтобы было на что ориентироваться... Так что, если, все-таки, "ткнете", - огромное спасибо!
 
Немного не в тему, но  
.....красиво выполненное... - это что?  
 
Например, у меня стойкое ощущение что процентов 75 вопросов на форуме только из-за того, что все очень КРАСИВО... Но Ехс это совсем ни к чему, и простейшие расчеты переходят из-за этого уже на уровень шаманства. Или куча красивых картинок в файле после которых машина отказывается вообще производить расчеты.  
Ну на счет сложности - Вы не знаете того, что знают и могут другие участники форума. Иногда "сложный" по описанию вопрос решается на раз, а простая задачка - превращается....  
Так, что без примеров того что есть, и чего хотите достигнуть - помощи ждать трудно.
 
{quote}{login=Floater}{date=24.01.2010 01:12}{thema=Re: }{post}{quote}{login=Юрий М}{date=24.01.2010 12:59}{thema=}{post}Мне видится так:  
- по кнопке весь этот набор попадает в таблицу на листе, уже с арифметикой в коде.{/post}{/quote}Именно этот пункт и смущает, арифметика в коде{/post}{/quote}  
Тогда данные из формы просто без всякой обработки попадают на лист в Ваши таблицы, где уже есть формулы, которые "ждут" данные.
 
Уважаемый Floater, из всего Выше сказанного понял лишь одно перед Вами гора книг и собранных данных и Вы не знаете, что с ними делать. Советовать сложно, задачи решать можно с различной степенью точности (думаю Вы очень сильно все усложняете), если вы занимаетесь подбором оборудования, то забросьте все в урну и считайте по стандартным проектным методикам. Если Вы занимаетесь наукой, то я в недоумении, потому как для научных расчетов Excel слабый помощнрик, нужны более мощные продукты типа MathLab и спец курсы по этому продукту.    
 
И потом главное, если Вашу задумку замутить только формулами и связями, боюсь проект будет неподъемным, обработку громозскиж таблиц лучше писать в VBA...  
Если не секрет кем Вы работаете?
 
Пока нет конкретного примера, советы будут только абстрактные.  
Но даже показав пример, рискуете быть непонятым. Как образец "непонятия" - недавняя тема, посмотрите:  
http://www.planetaexcel.ru/forum.php?thread_id=12777  
Это к тому, что даже если покажете файл, но не объясните народу "человеческим"  языком, понятным даже не технарю и не математику, то можете остаться без помощи.  
 
Так как объем Ваших исходных таблиц может быть немаленьким, перед рисованием примера советую почитать правила:  
http://www.planetaexcel.ru/forum.php?thread_id=8735
 
Автору топика.    
Все что вам нужно это разобраться в работе ДВССЫЛ и взять ее за основу проекта.  
 
1) Создаете таблицы со справочными данными и коэффициентами.  
2) Создаете шаблон с исходными данными по помещениям и зданию.  
3) Создаете отчет с расчетами на базе шаблона.  
4) Таблицу с данными на основе шаблона цепляете через ДВССЫЛ (это и есть динамические таблицы).  
5) Отчет считается на основе исходных данных, если нужны новые данные то подцепляете другой файл и т.д.    
6) Если у вас несколько справочных таблиц с данными, то их тоже можно подцеплять аналогично исходным данным.    
7) Если алгоритм сложен, то пишите условия: если тип расчета1 то таблица коэффициентов 1, если тип расчета2 то таблица коэффициентов 2.    
 
В результате получаете строгий проект с минимумом таблиц и с динамической подстановкой исходных коэффициентов и справочников.
 
У меня противоположное мнение - стараться поменьше использовать ДВССЫЛ, СМЕЩ и им подобные. Это летучие функции, т.е. те, которые имеют вредную привычку пересчитываться каждый раз при пересчете листа. А это происходит после введения значения в ячейку, после нажатия Enter и т.д. И если десяток таких функций не окажут большого влияния на скорость пересчета, то их большое количество будет серьезно притормаживать.
 
И я добавлю минус в копилку ДВССЫЛ().  
Она хорошо работает в пределах одного файла. Если формируется ссылка на другой файл, последний должен быть открыт, а это не удобно.  
 
Интересно, за почти двое суток обсуждения было ли достигнуто хотя бы подобие концептуальности?
Bite my shiny metal ass!      
 
Ну если сообщество против ДВССЫЛ();  
 
То никто не мешает использовать SQL.REQUEST к таблицам данных, тогда открытая таблица не нужна, а данные можно выбирать из любого источника. Сам SQL запрос можно сцеплять из таблицы, делать на основе данных сводную, а потом уже получать нужные данные через ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(), тогда одним запросом выбираются данные и подставляются в шаблон отчета.  
 
Про концептуальность,  тоже интересуюсь )))
Страницы: 1
Читают тему
Наверх