COleCurrency Sınıfı

OLE otomasyonunun CURRENCY veri türünü kapsüller.

Sözdizimi

class COleCurrency

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
COleCurrency::COleCurrency Bir COleCurrency nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
COleCurrency::Format Bir nesnenin biçimlendirilmiş dize gösterimini COleCurrency oluşturur.
COleCurrency::GetStatus Bu COleCurrency nesnenin durumunu (geçerliliğini) alır.
COleCurrency::P arseCurrency Bir dizeden PARA BIRIMI değerini okur ve değerini COleCurrencyayarlar.
COleCurrency::SetCurrency Bu COleCurrency nesnenin değerini ayarlar.
COleCurrency::SetStatus Bu COleCurrency nesnenin durumunu (geçerliliğini) ayarlar.

Ortak İşleçler

Veri Akışı Adı Açıklama
operator = Bir COleCurrency değeri kopyalar.
işleç +, - Değerlerin işaretini COleCurrency ekler, çıkarır ve değiştirir.
işleç +=, -= Bu COleCurrency nesneden bir COleCurrency değer ekler ve çıkarır.
operatör*/ Bir COleCurrency değeri tamsayı değerine göre ölçeklendirir.
işleç *=, /= Bu COleCurrency değeri bir tamsayı değerine göre ölçeklendirir.
operatör << veya CDumpContextdeğerine bir COleCurrency değer CArchive verir.
operatör >> öğesinden CArchivebir COleCurrency nesne ekler.
işleç PARA BIRIMI Bir COleCurrency değeri PARA BIRIMIne dönüştürür.
işleci ==, <, <=, vb. İki COleCurrency değeri karşılaştırır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
COleCurrency::m_cur Bu COleCurrency nesne için temel para birimini içerir.
COleCurrency::m_status Bu COleCurrency nesnenin durumunu içerir.

Açıklamalar

COleCurrency temel sınıfına sahip değildir.

PARA BIRIMI, 10.000 ile ölçeklendirilmiş 8 baytlık, ikinin tamamlayıcı tamsayı değeri olarak uygulanır. Bu, ondalık ayırıcının solunda 15 basamak ve sağda 4 basamak içeren sabit noktalı bir sayı verir. PARA BIRIMI veri türü, para içeren hesaplamalar veya doğruluğun önemli olduğu sabit noktalı hesaplamalar için son derece kullanışlıdır. OLE otomasyonunun veri türü için VARIANT olası türlerden biridir.

COleCurrency ayrıca bu sabit nokta türü için bazı temel aritmetik işlemler uygular. Sabit noktalı hesaplamalar sırasında oluşan yuvarlama hatalarını denetlemek için desteklenen işlemler seçilmiştir.

Devralma Hiyerarşisi

COleCurrency

Gereksinimler

Üst bilgi: afxdisp.h

COleCurrency::COleCurrency

Bir COleCurrency nesne oluşturur.

COleCurrency();
COleCurrency(CURRENCY cySrc);
COleCurrency(const COleCurrency& curSrc);
COleCurrency(const VARIANT& varSrc);

COleCurrency(
    long nUnits,
    long nFractionalUnits);

Parametreler

cySrc
Yeni COleCurrency nesneye kopyalanacak PARA BIRIMI değeri.

curSrc
Yeni COleCurrency nesneye kopyalanacak mevcut COleCurrency bir nesne.

varSrc
Bir para birimi değerine (VT_CY) dönüştürülecek ve yeni COleCurrency nesneye kopyalanacak mevcut VARIANT bir veri yapısı (büyük olasılıkla bir COleVariant nesne).

nUnits, nFractionalUnits Yeni COleCurrency nesneye kopyalanacak değerin birimlerini ve kesirli bölümünü (1/10.000'lerde) gösterir.

Açıklamalar

Bu oluşturucuların tümü, belirtilen değere başlatılan yeni COleCurrency nesneler oluşturur. Bu oluşturucuların her birinin kısa bir açıklaması aşağıdadır. Aksi belirtilmediği sürece, yeni COleCurrency öğenin durumu geçerli olarak ayarlanır.

  • COleCurrency() 0 (sıfır) olarak başlatılan bir COleCurrency nesne oluşturur.

  • COleCurrency(cySrc) BIR PARA BIRIMI değerinden nesne oluştururCOleCurrency.

  • COleCurrency(curSrc) Var olan COleCurrency bir COleCurrency nesneden nesne oluşturur. Yeni nesnenin durumu kaynak nesneyle aynı.

  • COleCurrency(varSrc) Bir COleCurrency nesne oluşturur. VARIANT yapısını veya COleVariant nesnesini para birimi (VT_CY) değerine dönüştürmeye çalışır. Bu dönüştürme başarılı olursa, dönüştürülen değer yeni COleCurrency nesneye kopyalanır. Değilse, nesnenin COleCurrency değeri sıfır (0) olarak ve durumu geçersiz olarak ayarlanır.

  • COleCurrency(nUnits, nFractionalUnits) Belirtilen sayısal bileşenlerden bir COleCurrency nesne oluşturur. Kesirli bölümün mutlak değeri 10.000'den büyükse, birimlere uygun ayarlama yapılır. Birimlerin ve kesirli bölümün imzalı uzun değerler tarafından belirtildiğini unutmayın.

Daha fazla bilgi için Bkz. Windows SDK'sında PARA BIRIMI ve DEĞIŞKEN girdileri.

Örnek

Aşağıdaki örneklerde sıfır parametresi ve iki parametreli oluşturucuların etkileri gösterilmektedir:

COleCurrency curZero;         // value: 0.0000
COleCurrency curA(4, 500);    // value: 4.0500
COleCurrency curB(2, 11000);  // value: 3.1000
COleCurrency curC(2, -50);    // value: 1.9950

COleCurrency::Format

Para birimi değerinin biçimlendirilmiş bir gösterimini oluşturmak için bu üye işlevini çağırın.

CString Format(DWORD  dwFlags = 0, LCID  lcid = LANG_USER_DEFAULT) const;

Parametreler

dwFlags
Yerel ayar ayarları için bayrakları gösterir. Yalnızca aşağıdaki bayrak para birimiyle ilgilidir:

  • LOCALE_NOUSEROVERRIDE Özel kullanıcı ayarları yerine sistem varsayılan yerel ayarı ayarlarını kullanın.

lcid
Dönüştürme için kullanılacak yerel ayar kimliğini gösterir.

Dönüş Değeri

CString Biçimlendirilmiş para birimi değerini içeren bir.

Açıklamalar

Yerel dil belirtimlerini (yerel ayar kimlikleri) kullanarak değeri biçimlendirmektedir. Döndürülen değere para birimi simgesi dahil değildir. Bu COleCurrency nesnenin durumu null ise, dönüş değeri boş bir dizedir. Durum geçersizse, dönüş dizesi dize kaynağı IDS_INVALID_CURRENCY tarafından belirtilir.

Örnek

COleCurrency curA;           // value: 0.0000
curA.SetCurrency(4, 500);    // value: 4.0500

// value returned: 4.05
curA.Format(0, MAKELCID(MAKELANGID(LANG_CHINESE,
   SUBLANG_CHINESE_SINGAPORE), SORT_DEFAULT));
// value returned: 4,05
curA.Format(0, MAKELCID(MAKELANGID(LANG_GERMAN,
   SUBLANG_GERMAN_AUSTRIAN), SORT_DEFAULT));

COleCurrency::GetStatus

Belirli COleCurrency bir nesnenin durumunu (geçerlilik) almak için bu üye işlevini çağırın.

CurrencyStatus GetStatus() const;

Dönüş Değeri

Bu COleCurrency değerin durumunu döndürür.

Açıklamalar

Dönüş değeri, sınıfı içinde CurrencyStatus COleCurrency tanımlanan numaralandırılmış tür tarafından tanımlanır.

enum CurrencyStatus {
    valid = 0,
    invalid = 1,
    null = 2
    };

Bu durum değerlerinin kısa bir açıklaması için aşağıdaki listeye bakın:

  • COleCurrency::valid Bu COleCurrency nesnenin geçerli olduğunu gösterir.

  • COleCurrency::invalid Bu COleCurrency nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.

  • COleCurrency::null Bu COleCurrency nesnenin null olduğunu, yani bu nesne için hiçbir değer sağlanmamış olduğunu gösterir. (Bu, C++ NULL yerine veritabanı açısından "değer içermeyen" bir "null"tır.)

Aşağıdaki durumlarda nesnenin COleCurrency durumu geçersizdir:

  • Değeri DEĞIŞKENden veya COleVariant para birimi değerine dönüştürülemeyen bir değerden ayarlandıysa.

  • Bu nesne, örneğin += *=veya aritmetik atama işlemi sırasında taşma veya taşmayla karşılaşmışsa.

  • Bu nesneye geçersiz bir değer atandıysa.

  • Bu nesnenin durumu SetStatus kullanılarak açıkça geçersiz olarak ayarlandıysa.

Durumu geçersiz olarak ayarlayabilen işlemler hakkında daha fazla bilgi için aşağıdaki üye işlevlerine bakın:

Örnek

// even an empty COleCurrency is valid
COleCurrency cy;
ASSERT(cy.GetStatus() == COleCurrency::valid);

// always valid after being set
cy.SetCurrency(4, 500);
ASSERT(cy.GetStatus() == COleCurrency::valid);

// some conversions aren't possible and will
// cause an invalid state, like this:
CByteArray array;
COleVariant varBogus(array);
cy = varBogus;
ASSERT(cy.GetStatus() == COleCurrency::invalid);

COleCurrency::m_cur

Bu COleCurrency nesne için temel para birimi yapısı.

Açıklamalar

Dikkat

Bu işlev tarafından döndürülen işaretçi tarafından erişilen yapıdaki CURRENCY değerin değiştirilmesi, bu COleCurrency nesnenin değerini değiştirir. Bu COleCurrency nesnenin durumunu değiştirmez.

Daha fazla bilgi için Windows SDK'sında PARA BIRIMI girdisine bakın.

COleCurrency::m_status

Bu veri üyesinin türü, sınıfı içinde COleCurrency tanımlanan numaralandırılmış türüdürCurrencyStatus.

enum CurrencyStatus{
    valid = 0,
    invalid = 1,
    null = 2,
};

Açıklamalar

Bu durum değerlerinin kısa bir açıklaması için aşağıdaki listeye bakın:

  • COleCurrency::valid Bu COleCurrency nesnenin geçerli olduğunu gösterir.

  • COleCurrency::invalid Bu COleCurrency nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.

  • COleCurrency::null Bu COleCurrency nesnenin null olduğunu, yani bu nesne için hiçbir değer sağlanmamış olduğunu gösterir. (Bu, C++ NULL yerine veritabanı açısından "değer içermeyen" bir "null"tır.)

Aşağıdaki durumlarda nesnenin COleCurrency durumu geçersizdir:

  • Değeri DEĞIŞKENden veya COleVariant para birimi değerine dönüştürülemeyen bir değerden ayarlandıysa.

  • Bu nesne, örneğin += *=veya aritmetik atama işlemi sırasında taşma veya taşmayla karşılaşmışsa.

  • Bu nesneye geçersiz bir değer atandıysa.

  • Bu nesnenin durumu SetStatus kullanılarak açıkça geçersiz olarak ayarlandıysa.

Durumu geçersiz olarak ayarlayabilen işlemler hakkında daha fazla bilgi için aşağıdaki üye işlevlerine bakın:

Dikkat

Bu veri üyesi gelişmiş programlama durumlarını ifade eder. Satır içi üye işlevlerini GetStatus ve SetStatus kullanmanız gerekir. Bu veri üyesini açıkça ayarlama konusunda daha fazla uyarı için bkz SetStatus .

COleCurrency::operator =

Bu aşırı yüklenmiş atama işleçleri kaynak para birimi değerini bu COleCurrency nesneye kopyalar.

const COleCurrency& operator=(CURRENCY cySrc);
const COleCurrency& operator=(const COleCurrency& curSrc);
const COleCurrency& operator=(const VARIANT& varSrc);

Açıklamalar

Her işlecin kısa bir açıklaması şu şekildedir:

  • operator =( cySrc ) Değer CURRENCY nesneye COleCurrency kopyalanır ve durumu geçerli olarak ayarlanır.

  • operator =( curSrc ) İşlenenin değeri ve durumu; var olan COleCurrency bir nesne bu COleCurrency nesneye kopyalanır.

  • operator =( varSrc ) Değerin (veya COleVariant nesnesininVARIANT) para birimine ( VT_CY) dönüştürülmesi başarılı olursa, dönüştürülen değer bu COleCurrency nesneye kopyalanır ve durumu geçerli olarak ayarlanır. Dönüştürme başarılı olmazsa, nesnenin COleCurrency değeri 0 ve durumu geçersiz olarak ayarlanır.

Daha fazla bilgi için Bkz. Windows SDK'sında PARA BIRIMI ve DEĞIŞKEN girdileri.

Örnek

// set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2;

// operator= copies COleCurrency types
cur2 = cur1;
ASSERT(cur1 == cur2);

// can be used to assign a CURRENCY type, as well
CURRENCY cy;
cy.Hi = 0;
cy.Lo = 350050;
cy.int64 = 350050;

// perform assignment
COleCurrency cur3;
cur3 = cy;
ASSERT(cur3 == cur1);

COleCurrency::operator +, -

Bu işleçler, bir değere iki COleCurrency değer ekleyip çıkarmanıza ve bir COleCurrency değerin işaretini değiştirmenize olanak sağlar.

COleCurrency operator+(const COleCurrency& cur) const;
COleCurrency operator-(const COleCurrency& cur) const;
COleCurrency operator-() const;

Açıklamalar

İşlenenlerden biri null ise, sonuçta COleCurrency elde edilen değerin durumu null olur.

Aritmetik işlem taşıyorsa, sonuçta elde edilen COleCurrency değer geçersiz olur.

İşlenen geçersizse ve diğeri null değilse, sonuçta elde edilen COleCurrency değerin durumu geçersizdir.

Geçerli, geçersiz ve null durum değerleri hakkında daha fazla bilgi için m_status üye değişkenine bakın.

Örnek

// 35.0050
COleCurrency cur1(35, 50);
// 2.0075
COleCurrency cur2(2, 75);
COleCurrency cur3;

// sum is 37.0125
cur3 = cur1 + cur2;
ASSERT(cur3 == COleCurrency(37, 125));

// difference is 32.9975
cur3 = cur1 - cur2;
ASSERT(cur3 == COleCurrency(32, 9975));

COleCurrency::operator +=, -=

Bu COleCurrency nesneye bir değer ekleyip çıkarmanıza COleCurrency izin verir.

const COleCurrency& operator+=(const COleCurrency& cur);
const COleCurrency& operator-=(const COleCurrency& cur);

Açıklamalar

İşlenenlerden biri null ise, bu COleCurrency nesnenin durumu null olarak ayarlanır.

Aritmetik işlem taşıyorsa, bu COleCurrency nesnenin durumu geçersiz olarak ayarlanır.

İşlenenlerden biri geçersizse ve diğeri null değilse, bu COleCurrency nesnenin durumu geçersiz olarak ayarlanır.

Geçerli, geçersiz ve null durum değerleri hakkında daha fazla bilgi için m_status üye değişkenine bakın.

Örnek

// both set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2(35, 50);

// adding 2.0075 results in 37.0125
cur1 += COleCurrency(2, 75);
ASSERT(cur1 == COleCurrency(37, 125));

// subtracting 2.0075 results in 32.9975
cur2 -= COleCurrency(2, 75);
ASSERT(cur2 == COleCurrency(32, 9975));

COleCurrency::operator * ve /

Bir COleCurrency değeri tam sayı değerine göre ölçeklendirmenize olanak sağlar.

COleCurrency operator*(long nOperand) const;
COleCurrency operator/(long nOperand) const;

Açıklamalar

İşlenen COleCurrency null ise, sonuçta COleCurrency elde edilen değerin durumu null olur.

Aritmetik işlem taşıyorsa veya taşıyorsa, sonuçta elde COleCurrency edilen değerin durumu geçersizdir.

İşlenen COleCurrency geçersizse, sonuçta elde edilen COleCurrency değerin durumu geçersizdir.

Geçerli, geçersiz ve null durum değerleri hakkında daha fazla bilgi için m_status üye değişkenine bakın.

Örnek

// 35 units and 50/10000, or 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2;

// divided by two is 17.5025
cur2 = cur1 / 2;
ASSERT(cur2 == COleCurrency(17, 5025));

// multiplied by two is 70.0100
cur2 = cur1 * 2;
ASSERT(cur2 == COleCurrency(70, 100));

COleCurrency::operator *=, /=

Bu COleCurrency değeri tam sayı değerine göre ölçeklendirmenize olanak sağlar.

const COleCurrency& operator*=(long nOperand);
const COleCurrency& operator/=(long nOperand);

Açıklamalar

İşlenen COleCurrency null ise, bu COleCurrency nesnenin durumu null olarak ayarlanır.

Aritmetik işlem taşıyorsa, bu COleCurrency nesnenin durumu geçersiz olarak ayarlanır.

İşlenen COleCurrency geçersizse, bu COleCurrency nesnenin durumu geçersiz olarak ayarlanır.

Geçerli, geçersiz ve null durum değerleri hakkında daha fazla bilgi için m_status üye değişkenine bakın.

Örnek

// both set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2(35, 50);

// divide in half
cur1 /= 2;
ASSERT(cur1 == COleCurrency(17, 5025));

// multiply by two
cur2 *= 2;
ASSERT(cur2 == COleCurrency(70, 100));

operator <<, operator >>

Tanılama dökümünü ve arşive depolamayı destekler.

friend CDumpContext& operator<<(
    CDumpContext& dc,
    COleCurrency curSrc);

friend CArchive& operator<<(
    CArchive& ar,
    COleCurrency curSrc);

friend CArchive& operator>>(
    CArchive& ar,
    COleCurrency& curSrc);

Açıklamalar

Ayıklama ( >>) işleci bir arşivden yüklemeyi destekler.

COleCurrency::operator CURRENCY

Değeri bu COleCurrency nesneden kopyalanan bir CURRENCY yapı döndürür.

operator CURRENCY() const;

Açıklamalar

COleCurrency::P arseCurrency

Para birimi değerini okumak üzere bir dizeyi ayrıştırmak için bu üye işlevini çağır.

BOOL ParseCurrency(
    LPCTSTR lpszCurrency,
    DWORD dwFlags = 0,
    LCID lcid = LANG_USER_DEFAULT);

throw(CMemoryException*);
throw(COleException*);

Parametreler

lpszCurrency
Ayrıştırılacak null ile sonlandırılan dizeye yönelik bir işaretçi.

dwFlags
Yerel ayar ayarları için bayrakları ( muhtemelen aşağıdaki bayrağı) gösterir:

  • LOCALE_NOUSEROVERRIDE Özel kullanıcı ayarları yerine sistem varsayılan yerel ayarı ayarlarını kullanın.

lcid
Dönüştürme için kullanılacak yerel ayar kimliğini gösterir.

Dönüş Değeri

Dize başarıyla bir para birimi değerine dönüştürüldüyse sıfır olmayan, aksi takdirde 0.

Açıklamalar

Kaynak dizedeki sayısal olmayan karakterlerin anlamı için yerel dil belirtimlerini (yerel ayar kimlikleri) kullanır.

Yerel ayar kimliği değerlerinin tartışması için bkz . Birden Çok Dili Destekleme.

Dize başarıyla bir para birimi değerine dönüştürüldüyse, bu COleCurrency nesnenin değeri bu değere ve durumu geçerli olarak ayarlanır.

Dize bir para birimi değerine dönüştürülemezse veya sayısal bir taşma varsa, bu COleCurrency nesnenin durumu geçersizdir.

Dize dönüştürme bellek ayırma hataları nedeniyle başarısız olduysa, bu işlev bir CMemoryException oluşturur. Başka bir hata durumunda, bu işlev bir COleException oluşturur.

Örnek

// works if default locale has dot decimal point
COleCurrency cur;
cur.ParseCurrency(_T("$135.95"), 0);
ASSERT(cur == COleCurrency(135, 9500));

COleCurrency İlişkisel İşleçleri

İki para birimi değerini karşılaştırın ve koşul doğruysa sıfır olmayan değer döndür; aksi takdirde 0.

BOOL operator==(const COleCurrency& cur) const;
BOOL operator!=(const COleCurrency& cur) const;
BOOL operator<(const COleCurrency& cur) const;
BOOL operator>(const COleCurrency& cur) const;
BOOL operator<=(const COleCurrency& cur) const;
BOOL operator>=(const COleCurrency& cur) const;

Açıklamalar

Not

İşlenenlerden birinin durumu null veya geçersizse sıralama işlemlerinin ( <, <=, >, >=) dönüş değeri tanımlanmamıştır. Eşitlik işleçleri ( ==, !=) işlenenlerin durumunu dikkate alır.

Örnek

COleCurrency curOne(3, 5000);             // 3.5
COleCurrency curTwo(curOne);              // 3.5
BOOL b = (curOne == curTwo);              // TRUE

b = curOne < curTwo;                      // FALSE, same value
b = curOne > curTwo;                      // FALSE, same value
b = curOne <= curTwo;                     // TRUE, same value
b = curOne >= curTwo;                     // TRUE, same value
curTwo.SetStatus(COleCurrency::invalid);
b = curOne == curTwo;                     // FALSE, different status
b = curOne != curTwo;                     // TRUE, different status

COleCurrency::SetCurrency

Bu nesnenin birimlerini ve kesirli bölümünü ayarlamak için bu COleCurrency üye işlevini çağırın.

void SetCurrency(
    long nUnits,
    long nFractionalUnits);

Parametreler

nUnits, nFractionalUnits Bu COleCurrency nesneye kopyalanacak değerin birimlerini ve kesirli bölümünü (1/10.000'lerde) gösterir.

Açıklamalar

Kesirli bölümün mutlak değeri 10.000'den büyükse, aşağıdaki örneklerin üçüncüsünde gösterildiği gibi birimlerde uygun ayarlama yapılır.

Birimlerin ve kesirli bölümün imzalı uzun değerler tarafından belirtildiğini unutmayın. Aşağıdaki örneklerin dördüncüsü, parametreler farklı işaretlere sahip olduğunda ne olduğunu gösterir.

Örnek

COleCurrency curA;           // value: 0.0000
curA.SetCurrency(4, 500);    // value: 4.0500
curA.SetCurrency(2, 11000);  // value: 3.1000
curA.SetCurrency(2, -50);    // value: 1.9950

COleCurrency::SetStatus

Bu nesnenin durumunu (geçerliliğini) ayarlamak için bu COleCurrency üye işlevini çağırın.

void SetStatus(CurrencyStatus  status  );

Parametreler

durum
Bu COleCurrency nesnenin yeni durumu.

Açıklamalar

durum parametresi değeri, sınıfı içinde CurrencyStatus COleCurrency tanımlanan numaralandırılmış tür tarafından tanımlanır.

enum CurrencyStatus {
    valid = 0,
    invalid = 1,
    null = 2
    };

Bu durum değerlerinin kısa bir açıklaması için aşağıdaki listeye bakın:

  • COleCurrency::valid Bu COleCurrency nesnenin geçerli olduğunu gösterir.

  • COleCurrency::invalid Bu COleCurrency nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.

  • COleCurrency::null Bu COleCurrency nesnenin null olduğunu, yani bu nesne için hiçbir değer sağlanmamış olduğunu gösterir. (Bu, C++ NULL yerine veritabanı açısından "değer içermeyen" bir "null"tır.)

Dikkat

Bu işlev gelişmiş programlama durumlarını kapsar. Bu işlev bu nesnedeki verileri değiştirmez. Çoğu zaman durumu null veya geçersiz olarak ayarlamak için kullanılır. Atama işlecinin ( işleç =) ve SetCurrency'in nesnenin durumunu kaynak değerlere göre ayarladığını unutmayın.

Ayrıca bkz.

Hiyerarşi Grafiği
COleVariant Sınıfı