FormulaDialog.cpp
00001
00002
00003
00004 #include "stdafx.h"
00005 #include "nexpcsv.h"
00006 #include "FormulaDialog.h"
00007
00008 #ifdef _DEBUG
00009 #define new DEBUG_NEW
00010 #undef THIS_FILE
00011 static char THIS_FILE[] = __FILE__;
00012 #endif
00013
00015
00016
00017
00018 CFormulaDialog::CFormulaDialog(CWnd* pParent )
00019 : CDialog(CFormulaDialog::IDD, pParent)
00020 {
00021 m_nFormSort = 0;
00022 m_nFieldSort = 0;
00023
00024
00025 }
00026
00027
00028 void CFormulaDialog::DoDataExchange(CDataExchange* pDX)
00029 {
00030 CDialog::DoDataExchange(pDX);
00031
00032 DDX_Control(pDX, IDC_INSERT_NAME, m_bcInsertName);
00033 DDX_Control(pDX, IDC_FORMULA_EDITER, m_ecFormula);
00034 DDX_Control(pDX, IDC_INSERT_FORMULA, m_bcInsertFormula);
00035 DDX_Control(pDX, IDC_FORM_LIST, m_lcForm);
00036 DDX_Control(pDX, IDC_FIELD_LIST, m_lcField);
00037
00038 }
00039
00040
00041 BEGIN_MESSAGE_MAP(CFormulaDialog, CDialog)
00042
00043 ON_NOTIFY(LVN_ITEMCHANGED, IDC_FORM_LIST, OnItemchangedFormList)
00044 ON_NOTIFY(LVN_ITEMCHANGED, IDC_FIELD_LIST, OnItemchangedFieldList)
00045 ON_BN_CLICKED(IDC_INSERT_FORMULA, OnInsertFormula)
00046 ON_NOTIFY(NM_DBLCLK, IDC_FIELD_LIST, OnDblclkFieldList)
00047 ON_NOTIFY(LVN_GETDISPINFO, IDC_FORM_LIST, OnGetdispinfoFormList)
00048 ON_NOTIFY(LVN_COLUMNCLICK, IDC_FORM_LIST, OnColumnclickFormList)
00049 ON_NOTIFY(LVN_GETDISPINFO, IDC_FIELD_LIST, OnGetdispinfoFieldList)
00050 ON_NOTIFY(LVN_COLUMNCLICK, IDC_FIELD_LIST, OnColumnclickFieldList)
00051 ON_BN_CLICKED(IDC_INSERT_NAME, OnInsertName)
00052
00053 ON_NOTIFY( LVN_GETINFOTIP, IDC_FORM_LIST, OnInfotipFormList )
00054 ON_NOTIFY( LVN_GETINFOTIP, IDC_FIELD_LIST, OnInfotipFieldList )
00055 END_MESSAGE_MAP()
00056
00058
00059
00060 BOOL CFormulaDialog::OnInitDialog()
00061 {
00062 CDialog::OnInitDialog();
00063
00064
00065
00066
00067
00068
00069 {
00070 static const struct
00071 {
00072 UINT nColHdrId;
00073 int nFormat;
00074 int nWidth;
00075 } colData[] = {
00076 {IDS_FORM_COLNAME1, LVCFMT_LEFT, 100},
00077
00078
00079 };
00080 const int nColCount = sizeof colData / sizeof colData[0];
00081
00082
00083 CRect rc;
00084 m_lcForm.GetClientRect(&rc);
00085 int nCx = GetSystemMetrics(SM_CXVSCROLL);
00086 int nMaxWidth = rc.Width() - nCx;
00087
00088 while( m_lcForm.DeleteColumn(0));
00089
00090
00091
00092 for (int nColumn = 0; nColumn < nColCount; nColumn++)
00093 {
00094 CString str;
00095 VERIFY(str.LoadString(colData[nColumn].nColHdrId));
00096 int nWidth = nMaxWidth * colData[nColumn].nWidth / 100;
00097 m_lcForm.InsertColumn(nColumn, str, colData[nColumn].nFormat, nWidth);
00098 }
00099
00100
00101 m_imlFormList.Create(IDB_FORM_TYPE, 16, 1, RGB(255,255,255) );
00102 m_lcForm.SetImageList( &m_imlFormList, LVSIL_SMALL );
00103
00104
00105 m_lcForm.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES);
00106 }
00107
00108 CnExpCsvApp* pApp = (CnExpCsvApp*)AfxGetApp();
00109 LNDatabase db = pApp->GetDatabase();
00110 {
00111 LNFormArray arrForms;
00112 db.GetForms(&arrForms);
00113 for (LNINT n=0; n<arrForms.GetCount(); n++) {
00114 LVITEM item;
00115 item.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
00116 item.pszText = LPSTR_TEXTCALLBACK;
00117 item.iImage = I_IMAGECALLBACK;
00118 item.lParam = arrForms.GetNoteID(n);
00119 item.iItem = m_lcForm.GetItemCount();
00120 item.iSubItem = 0;
00121 int nItem = m_lcForm.InsertItem(&item);
00122 }
00123 }
00124
00125 {
00126 LNSubformArray arrSubforms;
00127 db.GetSubforms(&arrSubforms);
00128 for (LNINT n=0; n<arrSubforms.GetCount(); n++) {
00129 LVITEM item;
00130 item.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
00131 item.pszText = LPSTR_TEXTCALLBACK;
00132 item.iImage = I_IMAGECALLBACK;
00133 item.lParam = arrSubforms.GetNoteID(n);
00134 item.iItem = m_lcForm.GetItemCount();
00135 item.iSubItem = 0;
00136 int nItem = m_lcForm.InsertItem(&item);
00137 }
00138 }
00139
00140
00141
00142
00143 {
00144 static const struct
00145 {
00146 UINT nColHdrId;
00147 int nFormat;
00148 int nWidth;
00149 } colData[] = {
00150 {IDS_FIELD_COLNAME1, LVCFMT_LEFT, 100},
00151
00152 };
00153 const int nColCount = sizeof colData / sizeof colData[0];
00154
00155
00156 CRect rc;
00157 m_lcField.GetClientRect(&rc);
00158 int nCx = GetSystemMetrics(SM_CXVSCROLL);
00159 int nMaxWidth = rc.Width() - nCx;
00160
00161 while( m_lcField.DeleteColumn(0));
00162
00163
00164
00165 for (int nColumn = 0; nColumn < nColCount; nColumn++)
00166 {
00167 CString str;
00168 VERIFY(str.LoadString(colData[nColumn].nColHdrId));
00169 int nWidth = nMaxWidth * colData[nColumn].nWidth / 100;
00170 m_lcField.InsertColumn(nColumn, str, colData[nColumn].nFormat, nWidth);
00171 }
00172
00173
00174 m_imlFieldList.Create(IDB_FIELD_TYPE, 16, 1, RGB(255,255,255) );
00175 m_lcField.SetImageList( &m_imlFieldList, LVSIL_SMALL );
00176
00177
00178 m_lcField.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES);
00179 }
00180
00181 m_ecFormula.SetWindowText( m_column.GetFormula() );
00182
00183 m_bcInsertName.EnableWindow(FALSE);
00184 m_bcInsertFormula.EnableWindow(FALSE);
00185
00186 return TRUE;
00187
00188 }
00189
00190 void CFormulaDialog::OnItemchangedFormList(NMHDR* pNMHDR, LRESULT* pResult)
00191 {
00192 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
00193
00194
00195 int nItem = m_lcForm.GetNextItem(-1, LVNI_ALL | LVIS_FOCUSED);
00196 if (nItem == -1) return;
00197
00198 NOTEID noteid = m_lcForm.GetItemData(nItem);
00199 InitFieldDataArray(noteid);
00200
00201
00202
00203 m_lcField.DeleteAllItems();
00204 for (int n=0; n<m_arrField.GetSize(); n++) {
00205 LVITEM item;
00206 item.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
00207 item.pszText = LPSTR_TEXTCALLBACK;
00208 item.iImage = I_IMAGECALLBACK;
00209 item.lParam = n;
00210 item.iItem = m_lcField.GetItemCount();
00211 item.iSubItem = 0;
00212 int nItem = m_lcField.InsertItem( &item );
00213 }
00214
00215 m_bcInsertFormula.EnableWindow(FALSE);
00216 m_bcInsertName.EnableWindow(FALSE);
00217
00218
00219
00220
00221 m_lcField.SortItems(CompareFieldList, (LPARAM)this);
00222
00223 *pResult = 0;
00224 }
00225
00226 void CFormulaDialog::OnItemchangedFieldList(NMHDR* pNMHDR, LRESULT* pResult)
00227 {
00228 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
00229
00230
00231 int nItem = m_lcField.GetNextItem(-1, LVNI_ALL | LVIS_FOCUSED);
00232 if (nItem == -1) {
00233 m_bcInsertFormula.EnableWindow(FALSE);
00234 m_bcInsertName.EnableWindow(FALSE);
00235 } else {
00236 m_bcInsertFormula.EnableWindow(TRUE);
00237 int n = m_lcField.GetItemData(nItem);
00238 m_bcInsertName.EnableWindow(GetFieldData(n).GetComputeOption() != LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY);
00239 }
00240 *pResult = 0;
00241 }
00242
00243 void CFormulaDialog::OnInsertFormula()
00244 {
00245
00246 int nItem = m_lcField.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
00247 if (nItem == -1) return;
00248
00249 int n = m_lcField.GetItemData(nItem);
00250 m_ecFormula.ReplaceSel(GetFieldData(n).GetFormula(), TRUE);
00251 }
00252
00253 void CFormulaDialog::OnDblclkFieldList(NMHDR* pNMHDR, LRESULT* pResult)
00254 {
00255
00256 int nItem = m_lcField.GetNextItem(-1, LVNI_ALL | LVIS_FOCUSED);
00257 if (nItem != -1) {
00258 int n = m_lcField.GetItemData(nItem);
00259 if (GetFieldData(n).GetComputeOption() != LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY) {
00260 OnInsertName();
00261 } else {
00262 OnInsertFormula();
00263 }
00264 }
00265 *pResult = 0;
00266 }
00267
00268 BOOL CFormulaDialog::PreTranslateMessage(MSG* pMsg)
00269 {
00270
00271
00272
00273
00274
00275
00276
00277 return CDialog::PreTranslateMessage(pMsg);
00278 }
00279
00280 void CFormulaDialog::SetColumnData(CColumnData &column)
00281 {
00282 m_column = column;
00283 }
00284
00285 CColumnData & CFormulaDialog::GetColumnData()
00286 {
00287 return m_column;
00288 }
00289
00290 void CFormulaDialog::OnOK()
00291 {
00292
00293 try {
00294 CString strFormula;
00295 m_ecFormula.GetWindowText(strFormula);
00296 m_column.SetColumn(strFormula);
00297 } catch(LNSTATUS e) {
00298 char szError[LNERROR_MESSAGE_LENGTH];
00299 LNGetErrorMessage(e, szError);
00300 CString strMsg;
00301 strMsg.Format(_T("式にエラーがあります。\n%s"), szError);
00302 AfxMessageBox(strMsg);
00303 return;
00304 }
00305 CDialog::OnOK();
00306 }
00307
00308 void CFormulaDialog::OnGetdispinfoFormList(NMHDR* pNMHDR, LRESULT* pResult)
00309 {
00310 LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
00311
00312 CFormData &form = GetFormData((NOTEID)pDispInfo->item.lParam);
00313 const unsigned int nSubItem = pDispInfo->item.iSubItem;
00314
00315
00316
00317
00318 if (pDispInfo->item.mask & LVIF_IMAGE)
00319 {
00320 pDispInfo->item.iImage = form.IsForm() ? 0:1;
00321 }
00322
00323
00324
00325 if (pDispInfo->item.mask & LVIF_TEXT)
00326 {
00327 switch (nSubItem)
00328 {
00329 case 0:
00330 pDispInfo->item.pszText = (LPSTR)form.GetName();
00331 break;
00332 default:
00333 pDispInfo->item.pszText = "-";
00334 break;
00335 }
00336 }
00337
00338 *pResult = 0;
00339 }
00340
00341 CFormData &CFormulaDialog::GetFormData(NOTEID note)
00342 {
00343 CFormData form;
00344 if (!m_mapForm.Lookup( note, form ) ) {
00345 form.Init(note);
00346 m_mapForm[note] = form;
00347 }
00348 return m_mapForm[note];
00349 }
00350
00351 void CFormulaDialog::InitFieldDataArray(NOTEID noteid, BOOL bRemove)
00352 {
00353 if (bRemove) m_arrField.RemoveAll();
00354
00355 CnExpCsvApp* pApp = (CnExpCsvApp*)AfxGetApp();
00356 LNDatabase db = pApp->GetDatabase();
00357 LNNote note;
00358 try {
00359 db.GetNote(noteid, ¬e);
00360 note.Open(LNNOTEOPENFLAGS_NO_OBJECTS);
00361 LNITEMTYPE itemtype = note.GetItemType(_T("$BODY"));
00362 if ( itemtype == LNITEMTYPE_RICHTEXT ) {
00363 LNRichText richtext;
00364 note.GetItem(_T("$BODY"), &richtext);
00365 LNRTCursor cursor;
00366 richtext.GetCursor(&cursor);
00367
00368 LNFormField field;
00369 cursor.GotoFirst(LNRTTYPE_FORM_FIELD, &field);
00370 while (!field.IsNull()) {
00371 CFieldData fieldData;
00372 fieldData.Init(field);
00373 m_arrField.Add(fieldData);
00374 cursor.GotoNext(LNRTTYPE_FORM_FIELD, &field);
00375 }
00376
00377 LNRTSubform rtsubform;
00378 cursor.GotoFirst(LNRTTYPE_SUBFORM, &rtsubform);
00379 while (!rtsubform.IsNull()) {
00380 LNSubform subform;
00381 rtsubform.GetSubform( &subform );
00382 InitFieldDataArray( subform.GetNoteID(), FALSE );
00383 cursor.GotoNext(LNRTTYPE_SUBFORM, &rtsubform);
00384 }
00385
00386 }
00387 } catch (LNSTATUS e) {
00388 char ErrorBuf[LNERROR_MESSAGE_LENGTH];
00389 LNGetErrorMessage(e, ErrorBuf);
00390 AfxMessageBox(ErrorBuf);
00391 }
00392 note.Close();
00393 }
00394
00395 CFieldData &CFormulaDialog::GetFieldData(int n)
00396 {
00397 return m_arrField[n];
00398 }
00399
00400
00401 void CFormulaDialog::OnColumnclickFormList(NMHDR* pNMHDR, LRESULT* pResult)
00402 {
00403 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
00404
00405
00406
00407
00408
00409 switch (m_nFormSort) {
00410 case 1: m_nFormSort = 2; break;
00411 case 2: m_nFormSort = -2; break;
00412 case -2: m_nFormSort = 1; break;
00413 default: m_nFormSort = 1; break;
00414 }
00415
00416 LPCTSTR szColumn = _T("フォーム");
00417 switch (m_nFormSort) {
00418 case 1: szColumn = _T("フォーム : タイプ別"); break;
00419 case 2: szColumn = _T("フォーム : 名前順▼"); break;
00420 case -2: szColumn = _T("フォーム : 名前順▲"); break;
00421 }
00422 LVCOLUMN column;
00423 column.mask = LVCF_TEXT;
00424 column.pszText = (LPTSTR)szColumn;
00425 m_lcForm.SetColumn(0, &column);
00426
00427
00428
00429 m_lcForm.SortItems(CompareFormLiat, (LPARAM)this);
00430
00431 *pResult = 0;
00432 }
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443 int CALLBACK CFormulaDialog::CompareFormLiat(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
00444 {
00445
00446 CFormulaDialog* _this = (CFormulaDialog*)lParamSort;
00447 return _this->CompareFormLiat(lParam1, lParam2);
00448 }
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458 int CFormulaDialog::CompareFormLiat(LPARAM lParam1, LPARAM lParam2)
00459 {
00460 bool bComplementResult;
00461 int result = 0;
00462
00463
00464
00465 CFormData &form1 = GetFormData((NOTEID)lParam1);
00466 CFormData &form2 = GetFormData((NOTEID)lParam2);
00467
00468
00469
00470
00471 int lParamSort = m_nFormSort;
00472 if (lParamSort < 0)
00473 {
00474 lParamSort = -lParamSort;
00475 bComplementResult = true;
00476 }
00477 else
00478 bComplementResult = false;
00479
00480
00481
00482
00483 LPCTSTR arrColumn[] = {
00484 {""},
00485 {"TN"},
00486 {"NT"},
00487 };
00488 LPCTSTR szColumn = arrColumn[lParamSort];
00489
00490 int n =0;
00491 while (szColumn[n] != 0x00)
00492 {
00493 const char *szText1 = _T("");
00494 const char *szText2 = _T("");
00495 switch (szColumn[n++])
00496 {
00497 case _TCHAR('T'):
00498 szText1 = form1.IsForm() ? _T("0") : _T("1");
00499 szText2 = form2.IsForm() ? _T("0") : _T("1");
00500 break;
00501 default:
00502 szText1 = form1.GetName();
00503 szText2 = form2.GetName();
00504 break;
00505 }
00506
00507
00508 result = stricmp(szText1, szText2);
00509 if (result != 0) break;
00510 }
00511
00512
00513
00514
00515 if (bComplementResult) result = -result;
00516 return result;
00517 }
00518
00519
00520 void CFormulaDialog::OnGetdispinfoFieldList(NMHDR* pNMHDR, LRESULT* pResult)
00521 {
00522 LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
00523
00524 CFieldData &field = GetFieldData(pDispInfo->item.lParam);
00525 const unsigned int nSubItem = pDispInfo->item.iSubItem;
00526
00527
00528
00529
00530 if (pDispInfo->item.mask & LVIF_IMAGE)
00531 {
00532 switch (field.GetComputeOption())
00533 {
00534 case LNCOMPUTEOPTION_EDITABLE:
00535 pDispInfo->item.iImage = 1;
00536 break;
00537 case LNCOMPUTEOPTION_COMPUTED:
00538 pDispInfo->item.iImage = 2;
00539 break;
00540 case LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY:
00541 pDispInfo->item.iImage = 3;
00542 break;
00543 case LNCOMPUTEOPTION_COMPUTED_WHEN_COMPOSED:
00544 pDispInfo->item.iImage = 4;
00545 break;
00546 default:
00547 pDispInfo->item.iImage = 0;
00548 break;
00549 }
00550 }
00551
00552
00553
00554 if (pDispInfo->item.mask & LVIF_TEXT)
00555 {
00556 switch (nSubItem)
00557 {
00558 case 0:
00559 pDispInfo->item.pszText = (LPSTR)field.GetName();
00560 break;
00561 default:
00562 pDispInfo->item.pszText = "-";
00563 break;
00564 }
00565 }
00566
00567 *pResult = 0;
00568 }
00569
00570 void CFormulaDialog::OnColumnclickFieldList(NMHDR* pNMHDR, LRESULT* pResult)
00571 {
00572 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
00573
00574
00575
00576
00577
00578 switch (m_nFieldSort) {
00579 case 1: m_nFieldSort = 2; break;
00580 case 2: m_nFieldSort = -2; break;
00581 case -2: m_nFieldSort = 1; break;
00582 default: m_nFieldSort = 1; break;
00583 }
00584
00585 LPCTSTR szColumn = _T("フィールド");
00586 switch (m_nFieldSort) {
00587 case 1: szColumn = _T("フィールド : タイプ別"); break;
00588 case 2: szColumn = _T("フィールド : 名前順▼"); break;
00589 case -2: szColumn = _T("フィールド : 名前順▲"); break;
00590 }
00591
00592 LVCOLUMN column;
00593 column.mask = LVCF_TEXT;
00594 column.pszText = (LPTSTR)szColumn;
00595 m_lcField.SetColumn(0, &column);
00596
00597
00598
00599 m_lcField.SortItems(CompareFieldList, (LPARAM)this);
00600
00601 *pResult = 0;
00602 }
00603
00604
00605
00606
00607
00608
00609
00610
00611
00612
00613 int CALLBACK CFormulaDialog::CompareFieldList(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
00614 {
00615
00616 CFormulaDialog* _this = (CFormulaDialog*)lParamSort;
00617 return _this->CompareFieldList(lParam1, lParam2);
00618 }
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628 int CFormulaDialog::CompareFieldList(LPARAM lParam1, LPARAM lParam2)
00629 {
00630 bool bComplementResult;
00631 int result = 0;
00632
00633
00634
00635 CFieldData &field1 = GetFieldData(lParam1);
00636 CFieldData &field2 = GetFieldData(lParam2);
00637
00638
00639
00640
00641 int lParamSort = m_nFieldSort;
00642 if (lParamSort < 0)
00643 {
00644 lParamSort = -lParamSort;
00645 bComplementResult = true;
00646 }
00647 else
00648 bComplementResult = false;
00649
00650
00651 LPCTSTR arrColumn[] = {
00652 {""},
00653 {"TN"},
00654 {"NT"},
00655 };
00656 LPCTSTR szColumn = arrColumn[lParamSort];
00657
00658 int n =0;
00659 while (szColumn[n] != 0x00)
00660 {
00661 const char *szText1 = _T("");
00662 const char *szText2 = _T("");
00663 switch (szColumn[n++]) {
00664 case _TCHAR('T'):
00665 switch (field1.GetComputeOption()) {
00666 case LNCOMPUTEOPTION_EDITABLE: szText1 = _T("1"); break;
00667 case LNCOMPUTEOPTION_COMPUTED: szText1 = _T("2"); break;
00668 case LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY: szText1 = _T("3"); break;
00669 case LNCOMPUTEOPTION_COMPUTED_WHEN_COMPOSED:szText1 = _T("4"); break;
00670 }
00671 switch (field2.GetComputeOption()) {
00672 case LNCOMPUTEOPTION_EDITABLE: szText2 = _T("1"); break;
00673 case LNCOMPUTEOPTION_COMPUTED: szText2 = _T("2"); break;
00674 case LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY: szText2 = _T("3"); break;
00675 case LNCOMPUTEOPTION_COMPUTED_WHEN_COMPOSED:szText2 = _T("4"); break;
00676 }
00677 break;
00678 default:
00679 szText1 = field1.GetName();
00680 szText2 = field2.GetName();
00681 break;
00682 }
00683
00684
00685 result = stricmp(szText1, szText2);
00686 if (result != 0) break;
00687 }
00688
00689
00690
00691
00692 if (bComplementResult) result = -result;
00693 return result;
00694 }
00695
00696 void CFormulaDialog::OnInsertName()
00697 {
00698
00699 int nItem = m_lcField.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
00700 if (nItem == -1) return;
00701
00702 int n = m_lcField.GetItemData(nItem);
00703 m_ecFormula.ReplaceSel(GetFieldData(n).GetName(), TRUE);
00704 }
00705
00706 void CFormulaDialog::OnInfotipFormList( NMHDR * pNMHDR, LRESULT * pResult )
00707 {
00708 NMLVGETINFOTIP*pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
00709 ASSERT(pInfoTip);
00710
00711 NOTEID noteid = (NOTEID)m_lcForm.GetItemData(pInfoTip->iItem);
00712 CFormData &form = GetFormData(noteid);
00713 CString strTip;
00714 strTip.Format(_T("名前 : %s\r\n別名 : %s\r\nコメント : %s"), form.GetName(), form.GetAlias(), form.GetComment());
00715 _tcsncpy(pInfoTip->pszText, strTip, pInfoTip->cchTextMax);
00716 }
00717
00718 void CFormulaDialog::OnInfotipFieldList( NMHDR * pNMHDR, LRESULT * pResult )
00719 {
00720 NMLVGETINFOTIP*pInfoTip = reinterpret_cast<NMLVGETINFOTIP*>(pNMHDR);
00721 ASSERT(pInfoTip);
00722
00723 int n = m_lcField.GetItemData(pInfoTip->iItem);
00724 CFieldData &field = GetFieldData(n);
00725 CString strTip;
00726 LPCTSTR szComputeOption = _T("");
00727 switch (field.GetComputeOption()) {
00728 case LNCOMPUTEOPTION_EDITABLE: szComputeOption = _T("編集可能"); break;
00729 case LNCOMPUTEOPTION_COMPUTED: szComputeOption = _T("計算結果"); break;
00730 case LNCOMPUTEOPTION_COMPUTED_FOR_DISPLAY: szComputeOption = _T("表示用の計算結果"); break;
00731 case LNCOMPUTEOPTION_COMPUTED_WHEN_COMPOSED:szComputeOption = _T("作成時の計算結果"); break;
00732 }
00733 strTip.Format(_T("名前 : %s\r\n種類 : %s\r\nヘルプの説明 : %s"), field.GetName(), szComputeOption, field.GetHelpDescription());
00734 _tcsncpy(pInfoTip->pszText, strTip, pInfoTip->cchTextMax);
00735 }
LotusNotes CSV Export Plug-inに対してWed Jun 30 15:53:52 2004に生成されました。
1.3.7