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 COleCurrency ayarlar. |
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 CDumpContext değerine bir COleCurrency değer CArchive verir. |
operatör >> | öğesinden CArchive bir 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 olanCOleCurrency
birCOleCurrency
nesneden nesne oluşturur. Yeni nesnenin durumu kaynak nesneyle aynı.COleCurrency(
varSrc
) BirCOleCurrency
nesne oluşturur. VARIANT yapısını veyaCOleVariant
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 yeniCOleCurrency
nesneye kopyalanır. Değilse, nesneninCOleCurrency
değeri sıfır (0) olarak ve durumu geçersiz olarak ayarlanır.COleCurrency(
nUnits
,nFractionalUnits
) Belirtilen sayısal bileşenlerden birCOleCurrency
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
BuCOleCurrency
nesnenin geçerli olduğunu gösterir.COleCurrency::invalid
BuCOleCurrency
nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.COleCurrency::null
BuCOleCurrency
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
BuCOleCurrency
nesnenin geçerli olduğunu gösterir.COleCurrency::invalid
BuCOleCurrency
nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.COleCurrency::null
BuCOleCurrency
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ğerCURRENCY
nesneyeCOleCurrency
kopyalanır ve durumu geçerli olarak ayarlanır.operator =(
curSrc
) İşlenenin değeri ve durumu; var olanCOleCurrency
bir nesne buCOleCurrency
nesneye kopyalanır.operator =( varSrc ) Değerin (veya COleVariant nesnesinin
VARIANT
) para birimine (VT_CY
) dönüştürülmesi başarılı olursa, dönüştürülen değer buCOleCurrency
nesneye kopyalanır ve durumu geçerli olarak ayarlanır. Dönüştürme başarılı olmazsa, nesneninCOleCurrency
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
BuCOleCurrency
nesnenin geçerli olduğunu gösterir.COleCurrency::invalid
BuCOleCurrency
nesnenin geçersiz olduğunu gösterir; yani değeri yanlış olabilir.COleCurrency::null
BuCOleCurrency
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.