ColumnData.cpp
00001
00002
00004
00005 #include "stdafx.h"
00006 #include "nexpcsv.h"
00007 #include "ColumnData.h"
00008
00009 #ifdef _DEBUG
00010 #undef THIS_FILE
00011 static char THIS_FILE[]=__FILE__;
00012 #define new DEBUG_NEW
00013 #endif
00014
00016
00018
00019 CColumnData::CColumnData()
00020 {
00021 m_bOutout = m_bDefaultOutout = FALSE;
00022 m_nColumnType = COLUMNTYPE_NULL;
00023 m_nColumnNumber = -1;
00024 m_bHide = TRUE;
00025 m_bIcon = FALSE;
00026 }
00027
00028 CColumnData::~CColumnData()
00029 {
00030
00031 }
00032
00033 CColumnData::CColumnData(const CColumnData& org){
00034 Copy(org);
00035 }
00036
00037 CColumnData &CColumnData::operator=(const CColumnData &org) {
00038 if (this == &org) return *this;
00039 Copy(org);
00040 return *this;
00041 }
00042
00043 void CColumnData::Copy(const CColumnData &org) {
00044 m_nColumnType = org.m_nColumnType;
00045 m_nColumnNumber = org.m_nColumnNumber;
00046 m_bHide = org.m_bHide;
00047 m_bIcon = org.m_bIcon;
00048 m_strTitle = org.m_strTitle;
00049 m_formula = org.m_formula;
00050 m_datetimefmt = org.m_datetimefmt;
00051 m_numberfmt = org.m_numberfmt;
00052 m_separator = org.m_separator;
00053 m_bOutout = org.m_bOutout;
00054 m_bDefaultOutout = org.m_bDefaultOutout;
00055 }
00056
00057
00058
00059
00060 void CColumnData::SetColumn(LNVFColumn &column)
00061 {
00062
00063 m_strTitle = column.GetTitle();
00064 if ( m_strTitle.IsNull() ) m_strTitle = column.GetInternalName();
00065
00066
00067 m_nColumnType = COLUMNTYPE_VIEW;
00068 m_bHide = column.GetHideColumn();
00069 m_bIcon = column.GetDisplayValuesAsIcons();
00070 m_bOutout = m_bDefaultOutout = (!m_bHide && !m_bIcon);
00071 m_nColumnNumber = column.GetColumnNumber();
00072 column.GetFormula(&m_formula);
00073
00074
00075 m_datetimefmt = column.GetDatetimeFormat();
00076 m_numberfmt = column.GetNumberFormat();
00077 m_separator = column.GetSeparator();
00078
00079 }
00080
00081
00082
00083
00084 void CColumnData::SetColumn(LPCTSTR szFormula, LNVFSEPARATOR separator )
00085 {
00086
00087 m_nColumnType = COLUMNTYPE_FORMULA;
00088 m_bDefaultOutout = FALSE;
00089 m_bOutout = TRUE;
00090
00091
00092 m_formula = szFormula;
00093 m_separator = separator;
00094 }
00095
00096 LNString CColumnData::ToString(const LNVFEntry &entry, const LNNotesSession *session, LPCTSTR separator)
00097 {
00098
00099
00100
00101 return ToString(entry[m_nColumnNumber], session, separator);
00102 }
00103
00104 LNString CColumnData::ToString(const LNNote ¬e, const LNNotesSession *session, LPCTSTR separator)
00105 {
00106 LNItem result;
00107 LNFORMULAFLAGS flags;
00108 m_formula.Evaluate( &result, note, &flags );
00109 return ToString(result, session, separator);
00110 }
00111
00112 LNString CColumnData::ToString(const LNItem & item, const LNNotesSession *session, LPCTSTR separator)
00113 {
00114
00115 LNString strOutput("");
00116 if (item.IsNull()) return strOutput;
00117
00118 if (separator == NULL) separator = GetSeparator();
00119
00120
00121 try {
00122 switch (item.GetType()) {
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143 case LNITEMTYPE_DATETIMES:
00144 {
00145 LNDatetimes dteConv = item;
00146 for (LNINT n=0; n<dteConv.GetCount(); n++) {
00147 if (n > 0) strOutput += separator;
00148 LNDatetime dteString;
00149 LNString strTemp;
00150 dteString = dteConv[n];
00151 if (session!=NULL) dteString.GetText(m_datetimefmt, session->GetInternational(), &strTemp);
00152 else dteString.GetText(&strTemp);
00153 strOutput += strTemp;
00154 }
00155 break;
00156 }
00157
00158 case LNITEMTYPE_NUMBERS:
00159 {
00160 LNNumbers numConv = item;
00161 for (LNINT n=0; n<numConv.GetCount(); n++) {
00162 if (n > 0) strOutput += separator;
00163 LNNumber numString;
00164 LNString strTemp;
00165 numString = numConv[n];
00166 if (session) numString.GetText(m_numberfmt, session->GetInternational(), &strTemp);
00167 else numString.GetText(&strTemp);
00168 strOutput += strTemp;
00169 }
00170 break;
00171 }
00172
00173 case LNITEMTYPE_TEXT:
00174 {
00175 LNText txtConv = item;
00176 for (LNINT n=0; n<txtConv.GetCount(); n++) {
00177 if (n > 0) strOutput += separator;
00178 strOutput += txtConv[n];
00179 }
00180 break;
00181 }
00182
00183
00184
00185
00186
00187
00188
00189 case LNITEMTYPE_ERROR:
00190 case LNITEMTYPE_FONTTABLE:
00191 case LNITEMTYPE_FORMULA:
00192 case LNITEMTYPE_ICON:
00193 case LNITEMTYPE_NOTELINKS:
00194 case LNITEMTYPE_NOTEREFS:
00195 case LNITEMTYPE_OBJECT:
00196 case LNITEMTYPE_SIGNATURE:
00197 case LNITEMTYPE_UNAVAILABLE:
00198 case LNITEMTYPE_UNSUPPORTED:
00199 case LNITEMTYPE_USERDATA:
00200 default:
00201 break;
00202 }
00203 } catch (LNSTATUS lnerror) {
00204 throw lnerror;
00205 }
00206
00207 return strOutput;
00208
00209 }
00210
00211 char * CColumnData::GetSeparator()
00212 {
00213 char *szSeparator = _T("");
00214 switch (m_separator) {
00215 case LNVFSEPARATOR_NONE: break;
00216 case LNVFSEPARATOR_SPACE: szSeparator = _T(" "); break;
00217 case LNVFSEPARATOR_COMMA: szSeparator = _T(","); break;
00218 case LNVFSEPARATOR_SEMICOLON: szSeparator = _T(";"); break;
00219 case LNVFSEPARATOR_NEWLINE: szSeparator = _T("\n"); break;
00220 }
00221 return szSeparator;
00222 }
LotusNotes CSV Export Plug-inに対してWed Jun 30 15:53:52 2004に生成されました。
1.3.7