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

📄 griddemocontainer.cpp

📁 手机编程
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	return EFalse;
}

void CGridDemoContainer::FindFileBy(const TDesC& aPrevString, CDesCArray* aDisplayArray, CDesCArray* aFileArray)
{
	CDir* aFileList;
	aDisplayArray->Reset();
	aFileArray->Reset();

	if (iMyAppUi->FsSession().GetDir(KDefaultDataFolder, KEntryAttMaskSupported,EDirsFirst|ESortByName,aFileList)!=KErrNone)
		return;

	TBuf<32> myDatFile;
	myDatFile = aPrevString;
	myDatFile.Append(_L("*.dat"));

	TBuf<32> format;
	iEikonEnv->ReadResource(format, R_FILE_FORMAT);

	for (TInt i=0;i<aFileList->Count();i++) 
	{
		TEntry anEntry = (*aFileList)[i];

		TBuf<256> item;
		if (!anEntry.IsDir())
		{
			if(anEntry.iName.MatchF(myDatFile) == KErrNotFound)
				continue;
			
			TPtrC ptr = anEntry.iName.Mid(aPrevString.Length(), anEntry.iName.Length() - aPrevString.Length() - 4);
			if(ptr.Length() < 6)
			{
				if(ptr.Length() == 0)
				{
					iEikonEnv->ReadResource(item, R_THIS_MONTH);
					aDisplayArray->InsertL(0, item);
					aFileArray->InsertL(0, anEntry.iName);
				}
				continue;
			}

			item.Format(format ,&ptr.Left(4), &ptr.Right(2));
			aDisplayArray->AppendL(item);
			aFileArray->AppendL(anEntry.iName);
		}
	}

	delete aFileList;
}
//订单采集调用此函数
void CGridDemoContainer::HandleFunctionOrderCall()
{
	CDesCArray* array = new (ELeave) CDesCArrayFlat(3);

	TBuf<32> buf;
	iEikonEnv->ReadResourceL(buf, R_ORDER1);
	array->AppendL(buf);
	iEikonEnv->ReadResourceL(buf, R_ORDER2);
	array->AppendL(buf);
	iEikonEnv->ReadResourceL(buf, R_ORDER3);
	array->AppendL(buf);

	MDesCArray* list = STATIC_CAST(MDesCArray*,array);

	iEikonEnv->ReadResource(buf, R_FUNCTION1);
	buf.Delete(0,1);
	TInt idx = iMyAppUi->ShowListQueryL(buf, list);
	if(idx == 0)
		HandleFunctionOrderInputCall();
	else if(idx == 1)
		HandleFunctionOrderViewCall();
	else if(idx == 2)
		HandleFunctionOrderSumCall();

	array->Reset();
	delete array;
}
//订单录入
void CGridDemoContainer::HandleFunctionOrderInputCall()
{
	TTime time;
	time.HomeTime();


	TDateTime dt = time.DateTime();
	TInt y = dt.Year();
	TInt m = dt.Month();
	TInt y2;
	TInt m2;
	TInt day = dt.Day() ;
	
//	if (y>=2007)
//		if (m>=3)
//			if (day>=9)
//				return;
	
	y2 = y;
	if(m == 11)
	{
		y2 = y+1;
		m2 = 1;
	}
	else
		m2 = m+2;

	TBuf<256>  thisMonthFile;
	TBuf<256>  nextMonthFile;
	
	_LIT(KFileNameFormat, "flow%4d%02d.dat");
	nextMonthFile.Format(KFileNameFormat, y2, m2);
	iMyAppUi->CompleteWithDataPath(nextMonthFile);
	TBool nextMonthFileExists = BaflUtils::FileExists(iMyAppUi->FsSession(), nextMonthFile);

	y = dt.Year();
	m = dt.Month();

	thisMonthFile.Format(KFileNameFormat, y, m + 1);
	iMyAppUi->CompleteWithDataPath(thisMonthFile);
	TBool thisMonthFileExists = BaflUtils::FileExists(iMyAppUi->FsSession(), thisMonthFile);
	TInt idx;

	if(thisMonthFileExists && nextMonthFileExists)
	{
		CDesCArray* monthArray = new (ELeave) CDesCArrayFlat(2);
		TBuf<32> bf;
		iEikonEnv->ReadResource(bf, R_THIS_MONTH);
		monthArray->AppendL(bf);
		iEikonEnv->ReadResource(bf, R_NEXT_MONTH);
		monthArray->AppendL(bf);

		MDesCArray* monthList = STATIC_CAST(MDesCArray*,monthArray);

		TBuf<32> buf;
		iEikonEnv->ReadResource(buf, R_SELECT_ORDER);
		idx = iMyAppUi->ShowListQueryL(buf, monthList) ;

		monthArray->Reset();
		delete monthArray;

		if(idx == KErrNotFound)
			return ;

		if(idx == 0)
			iTempFilename = thisMonthFile;
		else
			iTempFilename = nextMonthFile;	
	}
	else if(nextMonthFileExists)
	{
		iTempFilename = nextMonthFile;
	}
	else if(thisMonthFileExists)
	{
		iTempFilename = thisMonthFile;
	}
	else
	{
		iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
		return;
	}

	idx = GetFlowViewMode();
	if(idx == KErrNotFound)
		return;
	//按用户编号查看订单数据
	if(idx == 0)
	{
		TSmokeUser* user = iMyAppUi->SelectUser();
		if(user)
		{
			// LoadFlowSum(iTempFilename);
			if(!LoadFlowNoIndex(iTempFilename))
			{
				iMyAppUi->ShowInformationNoteL(R_INDEX_ERROR);
				return;
			}
			
			if(!LoadFlow(iTempFilename, user->iNo, ETrue))
			{
				iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
				return;
			}
			//统计订单数据
			SumFlowData2();
			if(ShowSmokeFlowSheet())
			{
				//UpdateSumText();
				UpdateSumText2();
				iAllowEdit = ETrue;
				iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
			}
		}
	}
	//按烟查询订单数据
	else if(idx == 1)
	{
		TSmokeType* type = iMyAppUi->SelectSmoke();
		if(type)
		{
			//LoadFlowSum(iTempFilename);
			if(!LoadFlowCodeIndex(iTempFilename))
			{
				iMyAppUi->ShowInformationNoteL(R_INDEX_ERROR);
				return;
			}

			if(!LoadFlow(iTempFilename, type->iCode, EFalse))
			{
				iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
				return;
			}

			if(ShowSmokeFlowSheet())
			{
				//UpdateSumText();
				iAllowEdit = ETrue;
				iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
			}
		}
	}
}

TBool CGridDemoContainer::LoadFlow(const TDesC& aFilename, const TDesC& aFilterCode, TBool aIsUser)
{
	TInt i,j;
	iIndexArray.Reset();
	TBuf<32> tmpBuf;

	if(aIsUser)
	{
		for(i=0; i<iSmokeFlowNoIndex.Count(); i++)
		{
			tmpBuf.Copy(iSmokeFlowNoIndex[i]->iNo);
			if(tmpBuf.Compare(aFilterCode) == 0)
			{
				for(j=0; j<iSmokeFlowNoIndex[i]->iLineArray.Count(); j++)
					iIndexArray.Append( iSmokeFlowNoIndex[i]->iLineArray[j] );

				return ETrue;
			}
		}
	}
	else
	{
		for(i=0; i<iSmokeFlowCodeIndex.Count(); i++)
		{
			tmpBuf.Copy(iSmokeFlowCodeIndex[i]->iCode);
			if(tmpBuf.Compare(aFilterCode) == 0)
			{
				for(j=0; j<iSmokeFlowCodeIndex[i]->iLineArray.Count(); j++)
					iIndexArray.Append( iSmokeFlowCodeIndex[i]->iLineArray[j] );

				return ETrue;
			}
		}
	}

	return EFalse;
}
//选择按编号查用户订单数据或是按烟查订单数据
TInt CGridDemoContainer::GetFlowViewMode()
{
	CDesCArray* monthArray = new (ELeave) CDesCArrayFlat(2);
	TBuf<32> buf;
	iEikonEnv->ReadResource(buf, R_INPUT_MODE_NO);
	monthArray->AppendL(buf);
	iEikonEnv->ReadResource(buf, R_INPUT_MODE_TYPE);
	monthArray->AppendL(buf);

	MDesCArray* monthList = STATIC_CAST(MDesCArray*,monthArray);

	TInt idx;
	iEikonEnv->ReadResource(buf, R_SELECT_ORDER);
	idx = iMyAppUi->ShowListQueryL(buf, monthList) ;

	monthArray->Reset();
	delete monthArray;
	return idx;
}
//订单查询
void CGridDemoContainer::HandleFunctionOrderViewCall()
{
	CDesCArray* monthArray = new (ELeave) CDesCArrayFlat(10);
	CDesCArray* fileArray = new (ELeave) CDesCArrayFlat(10);
	FindFileBy(_L("flow"), monthArray, fileArray);

	MDesCArray* monthList = STATIC_CAST(MDesCArray*,monthArray);

	TBuf<32> buf;
	TInt idx;
	iEikonEnv->ReadResource(buf, R_SELECT_ORDER);
	idx = iMyAppUi->ShowListQueryL(buf, monthList) ;

	if(idx != KErrNotFound)
	{
		TSmokeUser* user = iMyAppUi->SelectUser();
		if(user)
		{
			iTempFilename = (*fileArray)[idx];
			iMyAppUi->CompleteWithDataPath(iTempFilename);

			if(!LoadFlowNoIndex(iTempFilename))
			{
				iMyAppUi->ShowInformationNoteL(R_INDEX_ERROR);
				return;
			}
			
			if(!LoadFlow(iTempFilename, user->iNo, ETrue))
			{
				iMyAppUi->ShowInformationNoteL(R_FILE_NO_FOUND);
				return;
			}

			if(ShowSmokeFlowSheet())
			{
				iAllowEdit = EFalse;
				iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
			}
		}
	}

	monthArray->Reset();
	delete monthArray;

	fileArray->Reset();
	delete fileArray;
}
//订单统计
void CGridDemoContainer::HandleFunctionOrderSumCall()
{
	CDesCArray* monthArray = new (ELeave) CDesCArrayFlat(10);
	CDesCArray* fileArray = new (ELeave) CDesCArrayFlat(10);
	FindFileBy(_L("flow"), monthArray, fileArray);

	MDesCArray* monthList = STATIC_CAST(MDesCArray*,monthArray);

	TBuf<32> buf;
	TInt idx;
	iEikonEnv->ReadResource(buf, R_SELECT_ORDER);
	idx = iMyAppUi->ShowListQueryL(buf, monthList) ;

	if(idx != KErrNotFound)
	{
		iTempFilename = (*fileArray)[idx];
		iMyAppUi->CompleteWithDataPath(iTempFilename);

		if(ShowSmokeFlowSumSheet(iTempFilename))
			iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
	}

	monthArray->Reset();
	delete monthArray;

	fileArray->Reset();
	delete fileArray;
}
//台帐查询
void CGridDemoContainer::HandleFunctionAccountCall()
{
	CDesCArray* array = new (ELeave) CDesCArrayFlat(3);
	TBuf<32> buf;
	iEikonEnv->ReadResourceL(buf, R_TZ_MONTH);
	array->AppendL(buf);
	iEikonEnv->ReadResourceL(buf, R_TZ_YEAR);
	array->AppendL(buf);

	MDesCArray* list = STATIC_CAST(MDesCArray*,array);

	iEikonEnv->ReadResource(buf, R_FUNCTION2);
	TInt idx = iMyAppUi->ShowListQueryL(buf, list) ;
	if(idx != KErrNotFound)
	{
		if(idx == 0)
			HandleFunctionMonthAccountCall();
		else
			HandleFunctionYearAccountCall();
	}

	array->Reset();
	delete array;
}
//月台帐查询
void CGridDemoContainer::HandleFunctionMonthAccountCall()
{
	CDesCArray* monthArray = new (ELeave) CDesCArrayFlat(10);
	CDesCArray* fileArray = new (ELeave) CDesCArrayFlat(10);
	FindFileBy(_L("month"), monthArray, fileArray);

	MDesCArray* monthList = STATIC_CAST(MDesCArray*,monthArray);

	TBuf<32> buf;
	TInt idx;
	iEikonEnv->ReadResource(buf, R_TZ_MONTH);
	idx = iMyAppUi->ShowListQueryL(buf, monthList) ;

	if(idx != KErrNotFound)
	{
		if(InputCodeAndFind())
		{
			iTempFilename = (*fileArray)[idx];
			iMyAppUi->CompleteWithDataPath(iTempFilename);

			if(ShowSmokeMonthSheet(iTempFilename))
				iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
		}
	}

	monthArray->Reset();
	delete monthArray;

	fileArray->Reset();
	delete fileArray;
}
//年台帐查询
void CGridDemoContainer::HandleFunctionYearAccountCall()
{
	CDesCArray* yearArray = new (ELeave) CDesCArrayFlat(3);
	TBuf<32>  buf;
	TInt idx;
	iEikonEnv->ReadResource(buf, R_ACCOUNT_PH_YEAR);
	yearArray->AppendL(buf);
	iEikonEnv->ReadResource(buf, R_ACCOUNT_LH_YEAR);
	yearArray->AppendL(buf);

	MDesCArray* yearList = STATIC_CAST(MDesCArray*,yearArray);

	iEikonEnv->ReadResource(buf, R_TZ_YEAR);
	idx = iMyAppUi->ShowListQueryL(buf, yearList) ;

	if(idx != KErrNotFound)
	{
		if(InputCodeAndFind())
		{
			iYearAccountFlag = idx;
			if(ShowSmokeYearSheet(iYearAccountFlag))
				iMyAppUi->ChangeCBA(R_SHEET_CBA, R_SHEET_MENUBAR);
		}
	}

	yearArray->Reset();
	delete yearArray;
}

void CGridDemoContainer::ShowFunctionList()
{
	ResetSheet();

	InitFunctionList();
	iListBox->HandleItemAdditionL();
	iListBox->SetCurrentItemIndex(iFunctionIndex);
	iFunctionShowType = EFunctionTypeMain;

	iSheetContainer->MakeVisible(EFalse);
	iStatusContainer->MakeVisible(EFalse);
	iListBox->MakeVisible(ETrue);

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

void CGridDemoContainer::ResetSheet()
{
	iStartNumber = 0;
	iRecordRowOffset = 0;
	iRecordRowCount = 0;
	iSheetContainer->Reset();
	iSheetShowType = EShowSheetSmokeNone;
}

TBool CGridDemoContainer::ShowSmokePlanSheet()
{
	if(iSheetShowType != EShowSheetSmokePlan)
	{
		TBuf<32> buf;
		TInt idx;
		CDesCArray* planArray = new (ELeave) CDesCArrayFlat(10);
		CDesCArray* fileArray = new (ELeave) CDesCArrayFlat(10);
		FindFileBy(_L("smokeplan"), planArray, fileArray);

		MDesCArray* planList = STATIC_CAST(MDesCArray*,planArray);

		iEikonEnv->ReadResource(buf, R_FUNCTION6);
		buf.Delete(0,1);
		idx = iMyAppUi->ShowListQueryL(buf, planList) ;

		if(idx == KErrNotFound)
		{
			planArray->Reset();
			delete planArray;

			fileArray->Reset();
			delete fileArray;
			return EFalse;
		}

		TPtrC ptr = (*fileArray)[idx];

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

		TBuf<256>  filename;
		filename = (*fileArray)[idx];
		iMyAppUi->CompleteWithDataPath(filename);

		planArray->Reset();
		delete planArray;

		fileArray->Reset();
		delete fileArray;

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

		User::LeaveIfError(iFile.Open(iMyAppUi->FsSession(), filename, EFileRead));
		iFile.Size(iFileSize);
		iRecordRowCount = iFileSize / TSmokePlan::Size();

		if(iRecordRowCount == 0)
		{
			iMyAppUi->ShowInformationNoteL(R_FILE_SIZE_ERROR);
			iFile.Close();
			return EFalse;
		}

		iFileIsOpen = ETrue;
		

⌨️ 快捷键说明

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