本文整理汇总了C++中DBObjTableField::Flags方法的典型用法代码示例。如果您正苦于以下问题:C++ DBObjTableField::Flags方法的具体用法?C++ DBObjTableField::Flags怎么用?C++ DBObjTableField::Flags使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBObjTableField
的用法示例。
在下文中一共展示了DBObjTableField::Flags方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sizeof
DBObjTableField::DBObjTableField(DBObjTableField &field) : DBObject(field) {
TypeVAR = field.TypeVAR;
UnitTypeVAR = field.UnitTypeVAR;
UnitVAR = field.UnitVAR;
RequiredVAR = field.RequiredVAR;
StartByteVAR = field.StartByteVAR;
LengthVAR = field.LengthVAR;
strcpy(FormatSTR, field.FormatSTR);
Flags(field.Flags());
switch (TypeVAR) {
case DBTableFieldInt:
switch (LengthVAR) {
case sizeof(DBByte):
BytePROP = field.BytePROP;
break;
case sizeof(DBShort):
ShortPROP = field.ShortPROP;
break;
default:
IntPROP = field.IntPROP;
break;
}
break;
case DBTableFieldFloat:
switch (LengthVAR) {
case sizeof(DBFloat4):
Float4PROP = field.Float4PROP;
break;
default:
FloatPROP = field.FloatPROP;
break;
}
break;
case DBTableFieldDate:
DatePROP = field.DatePROP;
break;
case DBTableFieldTableRec:
case DBTableFieldDataRec:
RecordPROP = field.RecordPROP;
break;
}
}
示例2: _DBObjTableListSort
static int _DBObjTableListSort(const DBObjRecord **obj0, const DBObjRecord **obj1) {
DBInt ret = 0;
DBObjTableField *field;
DBDate date0, date1;
for (field = _DBObjTableSortFields->First();
field != (DBObjTableField *) NULL;
field = _DBObjTableSortFields->Next()) {
switch (field->Type()) {
case DBTableFieldString:
ret = strcmp(field->String(*obj0), field->String(*obj1));
break;
case DBTableFieldInt:
ret = field->Int(*obj0) - field->Int(*obj1);
break;
case DBTableFieldFloat:
if (field->Float(*obj0) - field->Float(*obj1) > 0.0) ret = 1;
else if (field->Float(*obj0) - field->Float(*obj1) < 0.0) ret = -1;
else ret = 0;
break;
case DBTableFieldDate:
date0 = field->Date(*obj0);
date1 = field->Date(*obj1);
if (date0 > date1) ret = 1;
else if (date0 < date1) ret = -1;
else ret = 0;
break;
case DBTableFieldTableRec:
ret = strcmp((*obj0)->Name(), (*obj1)->Name());
break;
case DBTableFieldDataRec:
ret = (*obj0)->RowID() - (*obj1)->RowID();
break;
}
if ((field->Flags() & DBObjectFlagSortReversed) == DBObjectFlagSortReversed) ret *= -1;
if (ret != 0) return (ret);
}
if (ret == 0) ret = (*obj0)->ListPos() - (*obj1)->ListPos();
return (ret);
}
示例3: RGlibPointSubbasinHist
DBInt RGlibPointSubbasinHist(DBObjData *pntData, DBObjData *netData, DBObjData *grdData, DBObjData *tblData) {
DBInt layerID, layerNum = 0, progress = 0, maxProgress;
DBObjTable *itemTable = grdData->Table(DBrNItems);
DBObjTable *table = tblData->Table(DBrNItems);
DBObjTableField *pointIDFLD;
DBObjTableField *layerIDFLD;
DBObjTableField *layerNameFLD;
DBObjTableField *categoryIDFLD;
DBObjTableField *categoryFLD;
DBObjTableField *percentFLD;
DBObjTableField *areaFLD;
DBObjTableField *cellNumFLD;
DBVPointIF *pntIF;
DBNetworkIF *netIF;
DBObjRecord *pntRec, *itemRec, *tblRec;
DBObjectLIST<DBObjTableField> *fields;
_RGlibPointGrdIF = new DBGridIF(grdData);
for (layerID = 0; layerID < _RGlibPointGrdIF->LayerNum(); ++layerID) {
_RGlibPointGrdLayerRec = _RGlibPointGrdIF->Layer(layerID);
if ((_RGlibPointGrdLayerRec->Flags() & DBObjectFlagIdle) != DBObjectFlagIdle) ++layerNum;
}
if (layerNum < 1) {
CMmsgPrint(CMmsgUsrError, "No Layer to Process!");
delete _RGlibPointGrdIF;
return (DBFault);
}
pntIF = new DBVPointIF(pntData);
netIF = new DBNetworkIF(netData);
table->AddField(pointIDFLD = new DBObjTableField("GHAASPointID", DBTableFieldInt, "%8d", sizeof(DBInt)));
table->AddField(layerIDFLD = new DBObjTableField("LayerID", DBTableFieldInt, "%4d", sizeof(DBShort)));
table->AddField(layerNameFLD = new DBObjTableField("LayerName", DBTableFieldString, "%s", DBStringLength));
table->AddField(categoryIDFLD = new DBObjTableField(DBrNCategoryID, DBTableFieldInt, "%2d", sizeof(DBShort)));
table->AddField(categoryFLD = new DBObjTableField(DBrNCategory, DBTableFieldString, _RGlibPointGrdIF->ValueFormat(),
DBStringLength));
table->AddField(cellNumFLD = new DBObjTableField("CellNum", DBTableFieldInt, "%8d", sizeof(DBInt)));
table->AddField(areaFLD = new DBObjTableField(DBrNArea, DBTableFieldFloat, "%10.1f", sizeof(DBFloat4)));
table->AddField(percentFLD = new DBObjTableField(DBrNPercent, DBTableFieldFloat, "%6.2f", sizeof(DBFloat4)));
_RGlibHistogram = (Histogram *) malloc(itemTable->ItemNum() * sizeof(Histogram));
if (_RGlibHistogram == (Histogram *) NULL) {
CMmsgPrint(CMmsgAppError, "Memory Allocation Error in: %s %d", __FILE__, __LINE__);
return (DBFault);
}
maxProgress = pntIF->ItemNum() * _RGlibPointGrdIF->LayerNum();
for (layerID = 0; layerID < _RGlibPointGrdIF->LayerNum(); ++layerID) {
_RGlibPointGrdLayerRec = _RGlibPointGrdIF->Layer(layerID);
if ((_RGlibPointGrdLayerRec->Flags() & DBObjectFlagIdle) == DBObjectFlagIdle) continue;
for (pntRec = pntIF->FirstItem(); pntRec != (DBObjRecord *) NULL; pntRec = pntIF->NextItem()) {
if (DBPause(progress * 100 / maxProgress)) goto Stop;
progress++;
if ((pntRec->Flags() & DBObjectFlagIdle) == DBObjectFlagIdle) continue;
for (itemRec = itemTable->First(); itemRec != (DBObjRecord *) NULL; itemRec = itemTable->Next())
_RGlibHistogram[itemRec->RowID()].Initialize();
netIF->UpStreamSearch(netIF->Cell(pntIF->Coordinate(pntRec)), (DBNetworkACTION) _RGlibSubbasinCategories);
for (itemRec = itemTable->First(); itemRec != (DBObjRecord *) NULL; itemRec = itemTable->Next())
if (_RGlibHistogram[itemRec->RowID()].cellNum > 0) {
tblRec = table->Add(pntRec->Name());
pointIDFLD->Int(tblRec, pntRec->RowID() + 1);
layerIDFLD->Int(tblRec, _RGlibPointGrdLayerRec->RowID());
layerNameFLD->String(tblRec, _RGlibPointGrdLayerRec->Name());
categoryIDFLD->Int(tblRec, itemRec->RowID() + 1);
categoryFLD->String(tblRec, itemRec->Name());
areaFLD->Float(tblRec, _RGlibHistogram[itemRec->RowID()].area);
percentFLD->Float(tblRec, _RGlibHistogram[itemRec->RowID()].area /
netIF->CellBasinArea(netIF->Cell(pntIF->Coordinate(pntRec))) * 100.0);
cellNumFLD->Int(tblRec, _RGlibHistogram[itemRec->RowID()].cellNum);
}
}
}
Stop:
delete _RGlibPointGrdIF;
delete netIF;
delete pntIF;
free(_RGlibHistogram);
if (progress == maxProgress) {
fields = new DBObjectLIST<DBObjTableField>("Field List");
fields->Add(new DBObjTableField(*pointIDFLD));
fields->Add(new DBObjTableField(*layerIDFLD));
fields->Add(areaFLD = new DBObjTableField(*areaFLD));
areaFLD->Flags(DBObjectFlagSortReversed, DBSet);
table->ListSort(fields);
delete fields;
return (DBSuccess);
}
return (DBFault);
}