⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 griddemocontainer.cpp

📁 手机编程
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		{
			iFile.Close();
			iFileIsOpen = EFalse;
		}

		if(!BaflUtils::FileExists(iMyAppUi->FsSession(), aFilename))
		{
			iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
			return EFalse;
		}

		TInt aStart = 0;
		TInt aEnd = 0;

		if(	!FindMonthDataFromIndex(aStart, aEnd) )
		{
			iMyAppUi->ShowInformationNoteL(R_FIND_ERROR);
			return EFalse;
		}
		User::LeaveIfError(iFile.Open(iMyAppUi->FsSession(), aFilename, EFileRead));

		iRecordRowOffset = aStart;
		iStartNumber = 0;
		iRecordRowCount = aEnd - aStart;
		iFileIsOpen = ETrue;		
		
		iSheetShowType = EShowSheetSmokeMonthAccount;
	}


	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKEMONTH_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		HBufC8* data = HBufC8::NewL(TSmokeMonth::Size());
		TPtr8 ptr = data->Des();
		TInt seek = (iStartNumber+iRecordRowOffset)*TSmokeMonth::Size();
		iFile.Seek(ESeekStart, seek);
		for(TInt i=0; i<c; i++)
		{
			iFile.Read(ptr, TSmokeMonth::Size());
			if(MonthData2String(buf, ptr))
				dc->AppendL(buf);
			ptr.Zero();
		}
		delete data;
		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}
//显示订单表
TBool CGridDemoContainer::ShowSmokeFlowSheet()
{
	iSheetShowType = EShowSheetSmokeFlow;

	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKEFLOW_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		for(TInt i=0; i<c; i++)
		{
			TInt idx = iStartNumber+i;
			if(idx >=0 && idx < iIndexArray.Count())
			{
				TSmokeFlow* aFlow = new (ELeave) TSmokeFlow;
				ReadFlowData(iIndexArray[idx], aFlow);
				FlowData2String(buf, aFlow);
				delete aFlow;
				dc->AppendL(buf);
			}
		}

		CleanupStack::PopAndDestroy(uh);
	}

	TPoint ps = iSheetContainer->GetCurrentPos();
	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	iSheetContainer->SetFocusPos(ps);
	return ETrue;
}

TBool CGridDemoContainer::ShowSmokeFlowSumSheet(const TDesC& aFilename)
{
	if(iSheetShowType != EShowSheetSmokeFlowSum)
	{
		iSmokeFlowSum.ResetAndDestroy();

		if(iFileIsOpen)
		{
			iFile.Close();
			iFileIsOpen = EFalse;
		}

		if(!BaflUtils::FileExists(iMyAppUi->FsSession(), aFilename))
		{
			iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
			return EFalse;
		}

		LoadFlowSum(aFilename);

		iStartNumber = 0;
		iRecordRowCount = iSmokeFlowSum.Count();
		
		iSheetShowType = EShowSheetSmokeFlowSum;
	}


	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKEFLOWSUM_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		for(TInt i=0; i<c; i++)
		{
			TInt idx = iStartNumber + i;
			if(idx >=0 && idx < iSmokeFlowSum.Count())
			{
				TSmokeFlowSum* sum = iSmokeFlowSum[idx];
				TSmokeType* type = iMyAppUi->FindSmokeType(sum->iCode);
				if(type)
				{
					buf.Copy(type->iName);
					buf.Append('\t');
					buf.Append(type->iType);
					buf.Append('\t');
				}
				else
				{
					buf.Copy(_L(" "));
					buf.Append('\t');
					buf.Append('\t');
				}
				buf.Append(sum->iCode);
				buf.Append('\t');
				buf.AppendNum(sum->iCount1);
				buf.Append('\t');
				buf.AppendNum(sum->iCount3);
				buf.Append('\t');
				buf.AppendNum(sum->iCount2);
				buf.Append('\t');
				buf.AppendNum(sum->iCount4);
				buf.Append('\t');
				buf.AppendNum(sum->iCount5);
				buf.Append('\t');
				buf.AppendNum(sum->iCount6);
				buf.Append('\t');
				buf.AppendNum(sum->iCount7);
				buf.Append('\t');
				buf.AppendNum(sum->iCount8);
				buf.Append('\t');
				buf.AppendNum(sum->iCount9);
				buf.Append('\t');
				buf.AppendNum(sum->iCount10);
				buf.Append('\t');
				buf.AppendNum(sum->iCount11);
				buf.Append('\t');

				dc->AppendL(buf);
			}
		}
		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}

TBool CGridDemoContainer::ShowSmokeYearSheet(TInt aHalfYear)
{
	if(iSheetShowType != EShowSheetSmokeYearAccount)
	{
		if(!LoadYearIndex())
		{
			iMyAppUi->ShowInformationNoteL(R_INDEX_ERROR);
			return EFalse;
		}

		if(iFileIsOpen)
		{
			iFile.Close();
			iFileIsOpen = EFalse;
		}

		TBuf<256>  filename;
		filename = KSmokeYearFile;
		iMyAppUi->CompleteWithDataPath(filename);
		if(!BaflUtils::FileExists(iMyAppUi->FsSession(), filename))
		{
			iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
			return EFalse;
		}

		TInt aStart = 0;
		TInt aEnd = 0;
		if(	!FindYearDataFromIndex(aHalfYear, aStart, aEnd) )
		{
			iMyAppUi->ShowInformationNoteL(R_FIND_ERROR);
			return EFalse;
		}
		User::LeaveIfError(iFile.Open(iMyAppUi->FsSession(), filename, EFileRead));

		iRecordRowOffset = aStart;
		iStartNumber = 0;
		iRecordRowCount = aEnd - aStart;
		iFileIsOpen = ETrue;		
		iSheetShowType = EShowSheetSmokeYearAccount;
	}

	TInt res = R_SMOKEYEAR01_HEADER;
	if(aHalfYear > 0) res = R_SMOKEYEAR02_HEADER ;
	HBufC*  uh = iEikonEnv->AllocReadResourceLC(res);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		HBufC8* data = HBufC8::NewL(TSmokeYear::Size());
		TPtr8 ptr = data->Des();
		TInt seek = (iStartNumber+iRecordRowOffset)*TSmokeYear::Size();
		iFile.Seek(ESeekStart, seek);
		for(TInt i=0; i<c; i++)
		{
			iFile.Read(ptr, TSmokeYear::Size());
			if(YearData2String(buf, ptr))
				dc->AppendL(buf);
			ptr.Zero();
		}
		delete data;
		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}



TBool CGridDemoContainer::FindYearDataFromIndex(TInt aHalfYear, TInt& aStart, TInt& aEnd)
{
	aStart = 0;
	aEnd = 0;
	TChar hy = '1';
	if(aHalfYear > 0) hy = '2';

	for(TInt i=0; i<iSmokeYearIndex.Count(); i++)
	{
		TSmokeYearIndex* yi = iSmokeYearIndex[i];
		if(yi->iNo.Compare(iOperaterCode) == 0  && yi->iYear[yi->iYear.Length()-1] == hy)
		{
			aStart = yi->iStartLine;
			if(i < (iSmokeYearIndex.Count()-1))
				aEnd = iSmokeYearIndex[i+1]->iStartLine;

			return ETrue;
		}
	}

	return EFalse;
}

TBool CGridDemoContainer::FindRealInfoDataFromIndex(TInt& aStart, TInt& aEnd)
{
	aStart = 0;
	aEnd = 0;

	for(TInt i=0; i<iSmokeRealInfoIndex.Count(); i++)
	{
		TSmokeRealInfoIndex* yi = iSmokeRealInfoIndex[i];
		if(yi->iNo.Compare(iOperaterCode) == 0)
		{
			aStart = yi->iStartLine;
			if(i < (iSmokeRealInfoIndex.Count()-1))
				aEnd = iSmokeRealInfoIndex[i+1]->iStartLine;

			return ETrue;
		}
	}

	return EFalse;
}

TBool CGridDemoContainer::FindMonthDataFromIndex(TInt& aStart, TInt& aEnd)
{
	aStart = 0;
	aEnd = 0;

	for(TInt i=0; i<iSmokeMonthIndex.Count(); i++)
	{
		TSmokeMonthIndex* yi = iSmokeMonthIndex[i];
		if(yi->iNo.Compare(iOperaterCode) == 0)
		{
			aStart = yi->iStartLine;
			if(i < (iSmokeMonthIndex.Count()-1))
				aEnd = iSmokeMonthIndex[i+1]->iStartLine;

			return ETrue;
		}
	}

	return EFalse;
}

TBool CGridDemoContainer::FindFlowDataFromIndex(TInt& aStart, TInt& aEnd)
{
//	aStart = 0;
//	aEnd = 0;
//
//	for(TInt i=0; i<iSmokeFlowIndex.Count(); i++)
//	{
//		TSmokeFlowIndex* yi = iSmokeFlowIndex[i];
//		if(yi->iNo.Compare(iOperaterCode) == 0)
//		{
//			aStart = yi->iStartLine;
//			if(i < (iSmokeFlowIndex.Count()-1))
//				aEnd = iSmokeFlowIndex[i+1]->iStartLine;
//
//			return ETrue;
//		}
//	}

	return EFalse;
}

TBool CGridDemoContainer::ShowUserSheet()
{
	iSheetShowType = EShowSheetSmokeUser;

	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKEUSER_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		for(TInt i=0; i<c; i++)
		{
			TInt idx = iStartNumber+i;
			if(idx >=0 && idx < iMyAppUi->iSmokeUsers.Count())
			{
				UserData2String(buf, iMyAppUi->iSmokeUsers[idx]);
				dc->AppendL(buf);
			}
		}

		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}

void CGridDemoContainer::UserData2String(TDes& aString, TSmokeUser* aUser)
{
	aString.Zero();
	aString.Append(aUser->iNo);
	aString.Append('\t');
	aString.Append(aUser->iName);
	aString.Append('\t');
	aString.Append(aUser->iPhone);
	aString.Append('\t');
	aString.Append(aUser->iUserName);
	aString.Append('\t');
	aString.Append(aUser->iUserPhone);
	aString.Append('\t');
	aString.Append(aUser->iAddress);
	aString.Append('\t');
	aString.Append(aUser->iArea);
	aString.Append('\t');
	aString.Append(aUser->iUserOper);
	aString.Append('\t');
	aString.Append(aUser->iUserType);
	aString.Append('\t');
	aString.Append(aUser->iPersons);
	aString.Append('\t');
	aString.Append(aUser->iIdentifyNo);
	aString.Append('\t');
	aString.Append(aUser->iServArea);
	aString.Append('\t');
	aString.Append(aUser->iPath);
	aString.Append('\t');
	aString.Append(aUser->iMgrName);
	aString.Append('\t');
	aString.Append(aUser->iMgrPhone);
	aString.Append('\t');
	aString.Append(aUser->iHuguanName);
	aString.Append('\t');
	aString.Append(aUser->iHuguanPhone);
	aString.Append('\t');
	aString.Append(aUser->iSendName);
	aString.Append('\t');
	aString.Append(aUser->iSendPhone);
	aString.Append('\t');
	aString.Append(aUser->iData);
}

TBool CGridDemoContainer::ShowSmokeInfoSheet()
{
	iSheetShowType = EShowSheetSmokeInfo;

	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKEINFO_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber + 1);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		for(TInt i=0; i<c; i++)
		{
			TInt idx = iStartNumber+i;
			if(idx >=0 && idx < iIndexArray.Count())
			{
				InfoData2String(buf, iMyAppUi->iSmokeInfos[iIndexArray[idx]]);
				dc->AppendL(buf);
			}
		}

		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}

void CGridDemoContainer::InfoData2String(TDes& aString, TSmokeInfo* aInfo)
{
	aString.Zero();
	aString.Append(aInfo->iCode);
	aString.Append('\t');

	TSmokeType* type = iMyAppUi->FindSmokeType(aInfo->iCode);
	if(type)
		aString.Append(type->iName);
	aString.Append('\t');
	aString.Append(aInfo->iNumb);
}

TBool CGridDemoContainer::ShowTypeSheet()
{
	iSheetShowType = EShowSheetSmokeType;

	HBufC*  uh = iEikonEnv->AllocReadResourceLC(R_SMOKETYPE_HEADER);
	if(uh)
	{
		TInt c = iSheetContainer->GetShowRowCount();
		iSheetContainer->SetStartLineNumber(iStartNumber);
		iSheetContainer->SetHeader(*uh);
		CDesCArray* dc = iSheetContainer->DataArray();
		dc->Reset();

		TBuf<1024> buf;
		for(TInt i=0; i<c; i++)
		{
			TInt idx = iStartNumber+i;
			if(idx >=0 && idx < iIndexArray.Count())
			{
				TypeData2String(buf, iMyAppUi->iSmokeTypes[iIndexArray[idx]]);
				dc->AppendL(buf);
			}
		}

		CleanupStack::PopAndDestroy(uh);
	}

	iSheetContainer->UpdateDisplayData();
	iListBox->MakeVisible(EFalse);
	iSheetContainer->MakeVisible(ETrue);
	ShowStatus(iIsShowStatus);
	return ETrue;
}

void CGridDemoContainer::TypeData2String(TDes& aString, TSmokeType* aType)
{
	aString.Zero();
	aString.Append(aType->iCode);
	aString.Append('\t');
	aString.Append(aType->iType);
	aString.Append('\t');
	aString.Append(aType->iName);
	aString.Append('\t');
	aString.Append(aType->iPrice1);
	aString.Append('\t');
	aString.Append(aType->iPrice2);
	aString.Append('\t');
	aString.Append(aType->iData);
}

void CGridDemoContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aListBoxEvent)
{
	if (aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -