Альтернатива без IF
В дополнение к правильному решению Скотта, я демонстрирую подход с помощью функции REPT
. Применяемый к ячейке , содержащей строку , он «повторяет» свое содержимое & amp; однажды запятая (обозначается COUNTA()
, равным 1), тогда как пустая ячейка приводит к нулевому повторению, что позволяет пропускать не только содержимое ячейки, но и запятую:
="(" & SUBSTITUTE(REPT(A1&",",COUNTA(A1))&REPT(B1&",",COUNTA(B1))&REPT(C1&",",COUNTA(C1))&REPT(D1&",",COUNTA(D1))&REPT(E1&",",COUNTA(E1))&REPT(F1&",",COUNTA(F1))&"$",",$",")")
[119 ] Простое SUBSTITUTE
удаляет последнюю запятую, где бы она ни находилась перед закрывающей скобкой ")".
Haiving просто запустил проект, который.NET 3.5 и рабочий процесс я скажу, что текущий выпуск WF достаточно хорош, чтобы использовать и работать с. Это помогло нам вывести продукт быстро (у нас есть обычное излишнее усложнение и требования, изменяющиеся еженедельно). Однако у меня есть список жалоб с ним:
Мне нравятся идеи и потенциал основанной на рабочем процессе разработки, однако я не спешу повторять этот опыт и вероятно придерживался бы без него к длительным процессам. Одно место я использовал бы его снова, будет в коротком, сложном процессе (как механизм правил для вычисления цен).
Мое понимание - то, что Microsoft обеспечит назад совместимость и/или стратегию миграции к новому WF, таким образом, я предположил бы, что Вы в безопасности использовать его. Однако я получил известие от других разработчиков в своей организации, которую текущая версия WF является чрезвычайно болезненной для использования. Если у Вас есть бюджет (и в зависимости от сложности Ваших рабочих процессов), можно хотеть рассмотреть K2: http://www.k2.com/en/index.aspx
Я не знаю, почему у людей есть такие отрицательные впечатления о WF. Уверенный это имеет его недостатки, но я думал, что это было довольно полезно. Одной главной проблемой, которую я имею об этом, является отсутствие поддержки обновления существующего рабочего процесса (bullent № 2 в списке gbanfill).
Другая точка для использования текущей версии - то, что "Дублин" (Microsoft новый Сервер приложений) будет основан на WCF & WF на.NET 4.0, но с удовольствием разместит 3.5 WF's. Таким образом, Вы сможете мигрировать на это без переписывания.
Я, как разработчик рабочего процесса, думаю, что текущая версия является болезненной для использования. Это не удивительно, поскольку это - v1.0 программное обеспечение из microsoft :)
Я думаю, что необходимо сначала рассмотреть ожидания из программного обеспечения рабочего процесса. У Вас есть четко определенный список ожиданий от WF? Acutally я задаюсь вопросом содержание такого списка. Возможно, мы можем помочь более подробный на каждой теме.
Просто быстрое примечание, чтобы упомянуть, что Visual Studio 2010 CTP содержит новое, обновило разработчика WF как часть цели Осло.
Может быть, для вас уже немного поздно, но теперь, когда WF 4.0 выпущена в бета-версии, другие люди, задумывающиеся над тем же вопросом, могут подумать о поддержке лошади 4.0 вместо лошади 3.5.
Это каким-то образом исправляет следующие проблемы:
• Разработчик рабочего процесса сведет вас с ума, потому что он настолько медленный (в определенных обстоятельствах), и перестраивает ваши конечные автоматы так, как считает нужным. [Designer Perf Improved]
• Их непросто провести модульное тестирование. Есть идеи, но ни одна из них не казалась особенно простой, когда мы начали это Модульное тестирование WorkFlow [Я думаю, что теперь это немного проще, некоторые примеры рабочего процесса включают множество модульных тестов]