📄 griddemocontainer.cpp
字号:
{
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 + -