AyaNova CE Archive added as recovered from storage during attempt to upgrade a customer from v1.7 to v8!
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
// SrchView.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "sp.h"
|
||||
#include "SrchView.h"
|
||||
#include "WOHeaderDlg.h"
|
||||
#include "SimpleWODlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSrchView dialog
|
||||
|
||||
|
||||
CSrchView::CSrchView(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CSrchView::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CSrchView)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_pApp = (CSpApp*)AfxGetApp();
|
||||
rsPrint=m_pApp->rsPool->GetRSPrint("CSrchView RSPRINT");
|
||||
}
|
||||
|
||||
CSrchView::~CSrchView()
|
||||
{
|
||||
m_pApp->rsPool->ReleaseRS(&rsPrint->m_nID);
|
||||
}
|
||||
|
||||
void CSrchView::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CSrchView)
|
||||
DDX_Control(pDX, IDC_RED, m_red);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSrchView, CDialog)
|
||||
//{{AFX_MSG_MAP(CSrchView)
|
||||
ON_BN_CLICKED(IDC_BTNDONE, OnBtndone)
|
||||
ON_BN_CLICKED(IDC_BTNCOPY, OnBtncopy)
|
||||
ON_BN_CLICKED(IDC_BTNEDIT, OnBtnedit)
|
||||
ON_BN_CLICKED(IDC_BTNCOPYALL, OnBtncopyall)
|
||||
ON_BN_CLICKED(IDC_BTNPRINT, OnBtnprint)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSrchView message handlers
|
||||
|
||||
BOOL CSrchView::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
ShowWindow(SW_MAXIMIZE);
|
||||
m_red.SetWindowText(*m_pstrText);
|
||||
m_pstrText->MakeLower();//for ease of highlighting
|
||||
HiLite();
|
||||
m_red.SetFocus();
|
||||
return FALSE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
|
||||
//highlight the search words
|
||||
void CSrchView::HiLite()
|
||||
{
|
||||
//FLAG HEADINGS:
|
||||
//lowercase because matching to passed string
|
||||
//which was converted to lowercase for ease of
|
||||
//searching
|
||||
FlagWord("workorder:",false,true,false);
|
||||
FlagWord("invoice#:",false,true,false);
|
||||
|
||||
FlagWord("client reference#:",false,true,false);
|
||||
FlagWord("client contact:",false,true,false);
|
||||
FlagWord("our reference#:",false,true,false);
|
||||
|
||||
FlagWord("client:",false,true,false);
|
||||
FlagWord("tech:",false,true,false);
|
||||
FlagWord("problem:",false,true,false);
|
||||
FlagWord("service details:",false,true,false);
|
||||
|
||||
for(int x=0;x<m_nKeywords;x++)
|
||||
{
|
||||
FlagWord(m_pslHiWords->GetAt(m_pslHiWords->FindIndex(x)),true,true,true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CSrchView::OnBtndone()
|
||||
{
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CSrchView::FlagWord(CString strWord, bool bUnderline, bool bBold,bool bColour)
|
||||
{
|
||||
|
||||
|
||||
CHARFORMAT cf;
|
||||
|
||||
strWord.TrimLeft(" ");
|
||||
strWord.TrimRight(" ");
|
||||
strWord.Remove('*');
|
||||
strWord.Remove('%');
|
||||
|
||||
|
||||
|
||||
int n = m_pstrText->Find(strWord,0);
|
||||
while (n != -1)
|
||||
{
|
||||
m_red.SetSel((long)n, (long)(n+strWord.GetLength()));
|
||||
cf.dwMask = CFM_COLOR | CFM_BOLD | CFM_UNDERLINE;
|
||||
if(bColour)
|
||||
cf.crTextColor=RGB(255,0,0);
|
||||
else
|
||||
cf.crTextColor=RGB(0,0,0);
|
||||
if(bBold)
|
||||
cf.dwEffects = CFE_BOLD;
|
||||
if(bUnderline)
|
||||
cf.dwEffects = cf.dwEffects | CFE_UNDERLINE;
|
||||
m_red.SetSelectionCharFormat(cf);
|
||||
|
||||
n = m_pstrText->Find(strWord,n+1);
|
||||
}
|
||||
m_red.SetSel(0,0);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CSrchView::OnBtncopy()
|
||||
{
|
||||
long start,end;
|
||||
m_red.GetSel(start,end);
|
||||
if(end==0)//nothing selected
|
||||
{
|
||||
//select all
|
||||
m_red.SetSel(0,-1);
|
||||
}
|
||||
|
||||
m_red.Copy();
|
||||
}
|
||||
|
||||
void CSrchView::OnBtnedit()
|
||||
{
|
||||
if(m_bQuickWO)
|
||||
{
|
||||
|
||||
CSimpleWODlg qwo;
|
||||
qwo.SetWorkorderID(&m_strWOID);
|
||||
qwo.DoModal();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
CWOHeaderDlg wo;
|
||||
wo.SetWorkorderID(m_strWOID);
|
||||
wo.DoModal();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CSrchView::OnBtncopyall()
|
||||
{
|
||||
|
||||
//select all
|
||||
m_red.SetSel(0,-1);
|
||||
m_red.Copy();
|
||||
}
|
||||
|
||||
void CSrchView::OnBtnprint()
|
||||
{
|
||||
CString q;
|
||||
CString strData;
|
||||
m_red.GetWindowText(strData);
|
||||
strData.Replace("\"","''");
|
||||
|
||||
//set the report text to the memo field in the user record
|
||||
//this is a workaround to ensure that reports see this as a memo field
|
||||
q.Format("UPDATE users SET users.rpttext1 = \"%s\" WHERE (((users.id)=%u));",strData,m_pApp->m_lusrID);
|
||||
rsPrint->Ex(q);
|
||||
|
||||
|
||||
//fetch the record
|
||||
q.Format("SELECT users.rpttext1 AS srchresults, \"%s\" AS srchuser FROM users "
|
||||
"WHERE (((users.id)= %u));", m_pApp->m_strCurrentUserName, m_pApp->m_lusrID);
|
||||
|
||||
rsPrint->Query(q);
|
||||
|
||||
|
||||
|
||||
if(!rsPrint->IsEmpty())
|
||||
{
|
||||
m_pApp->PrintCMReportRDC("Search results",rsPrint->RecordSetPointer());
|
||||
#ifdef _DEBUG
|
||||
m_pApp->CreateTTX("srch.ttx",rsPrint->RecordSetPointer());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
AfxMessageBox("There is no data to print");
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user