2009-06-22 5 views
0

Я хотел бы спросить: Re: преобразование измерения на лету, вот деталь:преобразования измерения на лету

Требование: Для отображения единицы измерения с рассмотреть возможность. Обеспокоенность: - Только базовое (нейтральное) измерение единицы будет храниться в базе данных, и оно будет принято один раз.

  • Управление сеткой имеет непосредственное связывание с нашим бизнес-объектом, поэтому оно имеет сложность для преобразования значения преобразования.

Проблема:

Как отображать другое измерение блока (следуйте настройки), считают, что элементы управления связываются с бизнес-объектом?

Ваша любезная помощь будет оценена по достоинству. Спасибо

ikadewi

+0

Ваш вопрос довольно запутанный. Можете ли вы привести пример, какие данные вы получаете, как вы его храните и что вам нужно делать с ним? (не объясняйте, дайте реальные жесткие числа) –

ответ

0

Если я правильно понял ваш вопрос (вы немного расплывчатым ...) вы хотите хранить данные измерений в одну сторону, но дают пользователям возможность отображать его в различных способами (с использованием разных единиц). Вы не указываете, какую технологию/языковую среду вы используете, но есть (по крайней мере) один довольно простой способ сделать это: создать класс конвертера.

Ниже приведен код скелета псевдо-C#, если ваши данные измерений являются длинами, хранящимися в миллиметрах. Вы, наверное, можно понять, как использовать тот же подход, то что вы измерение, и тем не менее вы хотите отобразить его:

class LenghtConverter { 

    double ToCentimeters(double millimeters) { 
     // 1 centimeter = 10 millimeters 
     return millimeters/10; 
    } 

    double ToInches(double millimeters) { 
     // 1 inch = 25.4 millimeters 
     return millimeters/25.4 
    } 

    // You get the drift. Add whatever conversions you need. If you wish, 
    // you can return strings instead of numbers, and append the unit 
    // signature as well. 
} 

Теперь в сетке отображать данные с каким синтаксисом презентации. Я делаю что-то, чтобы дать вам представление, и поскольку я в ASP.NET, синтаксис очень похож на этот. Надеюсь, вы простите меня за то, что =)

Вместо того чтобы просто

<%= MyMeasurement.Data %> 

для отображения данных измерений в пути он был сохранен, выход с

<%= LenghtConverter.ToInches(MyMeasurement.Data) %> 

, который будет отображаться на дисплее результат в дюймах.

Если вы на самом деле используете C# (или VB.NET, я полагаю), в .NET 3.5 есть хорошая функция, называемая Удлинительные методы, которые вы можете использовать вместо этого. Это позволило бы вам работать с несколько более крутым и более оптимизированным синтаксисом

<%= MyMeasurement.Data.ToInches() %> 
Смежные вопросы