Solved

How do I remove special characters / hyroglyphs from print output (MFC Dialog print)?

Posted on 2010-08-26
1
499 Views
Last Modified: 2013-11-20
I'm new to MFC programming and have been working on a Database application.  I'm more experienced in COBOL and VBA so alot of this is new to me.
I have attached an example of my print layout and the coding to produce it, any help / guidance would be greatly appreciated.
Thanks.
void CDB3tutorialView::OnDraw(CDC* pDC)

{

	// TODO: Add your specialized code here and/or call the base class

	CDB3tutorialDoc* pDoc = GetDocument();

	ASSERT_VALID(pDoc);

	CString strTmp;

	CDatabase database;

	CString SqlString;

	int ysize = 400;

	CString	sFirstName = _T("");

	CString	sLastName = _T("");

	CString	sAge = _T("");

	CString	sProject = _T("");

	CString	sCompleted = _T("");

	CString sDriver = _T("MICROSOFT ACCESS DRIVER (*.mdb)");

	CString sDsn;

	CString sFile = _T("c:\\Users\\A Telfer\\Desktop\\TestDB.mdb");



	CRect rect (100, 100, 10000, 10000);

	if(pDC->IsPrinting())

		pDC->TextOutW( 200, 200, _T("First"));

		pDC->TextOutW( 200, 300, _T("-------"));

		pDC->TextOutW( 800, 200, _T("Last"));

		pDC->TextOutW( 800, 300, _T("-------"));

		pDC->TextOutW( 1300, 200, _T("Age"));

		pDC->TextOutW( 1300, 300, _T("---"));

		pDC->TextOutW( 1700, 200, _T("Project"));

		pDC->TextOutW( 1700, 300, _T("-------"));

		pDC->TextOutW( 2200, 200, _T("Completed?"));

		pDC->TextOutW( 2200, 300, _T("----------"));

		

		sDsn.Format( _T("ODBC;DRIVER={%s};DSN='';DBQ=%s"),sDriver,sFile);	

		database.Open(NULL,false,false,sDsn);



		// Allocate the recordset

		CRecordset recset( &database );



		// Build the SQL statement

		SqlString =  _T("SELECT FirstName, LastName, Age, Project, Completed ")

				_T("FROM Project");



		// Execute the query

		recset.Open(CRecordset::forwardOnly,SqlString,CRecordset::readOnly);



		// Loop through each record

		while( !recset.IsEOF() )

		{

			// Copy each column into a variable

			recset.GetFieldValue(_T("FirstName"),sFirstName);

			recset.GetFieldValue(_T("LastName"),sLastName);

			recset.GetFieldValue(_T("Age"),sAge);

			recset.GetFieldValue(_T("Project"),sProject);

			recset.GetFieldValue(_T("Completed"),sCompleted);

			pDC->TextOutW( 200, ysize, sFirstName);

			pDC->TextOutW( 800, ysize, sLastName);

			pDC->TextOutW( 1300, ysize, sAge);

			pDC->TextOutW(1800, ysize, sProject);

			pDC->TextOutW(2350, ysize, sCompleted);



			// goto next record

			recset.MoveNext();

			sFirstName = _T("");

			sLastName = _T("");

			sAge = _T("");

			sProject = _T("");

			sCompleted = _T("");

			ysize = ysize+100;

		}

}

Open in new window

Database-print.JPG
0
Comment
Question by:atonline
1 Comment
 

Accepted Solution

by:
atonline earned 0 total points
ID: 33529790
I have actually found out a solution to my problem.
It appears changing the Project "Character Set" to 'Multi-Byte' instead of 'Unicode' and a bit of code tweeking has resolved my problem.  (Example attached)

Any comments on alternatives will be appreciated.
Database-print-ok.JPG
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Introduction: Ownerdraw of the grid button.  A singleton class implentation and usage. Continuing from the fifth article about sudoku.   Open the project in visual studio. Go to the class view – CGridButton should be visible as a class.  R…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now