天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 60|回复: 0

arx插入表格

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]  static void TableInsertTable(void)
  {
      AcDbTable *pTable = NULL;
      pTable = new AcDbTable();
      // 2 rows - title and headers
      pTable->insertRows(0,10.0);
      // 3 columns
      pTable->insertColumns(0,10.0,2);
      pTable->setTextString(0,0,"TITLE");
      // merge the first row for the title
      pTable->mergeCells(0,0,0,pTable->numColumns() - 1);
      // headers titles
      pTable->setTextString(1,0,"Preview");
      pTable->setTextString(1,1,"Name");
      pTable->setTextString(1,2,"Number");       
      int row = 2;
      AcDbBlockTablePointer pBlockTable(acdbCurDwg(), AcDb::kForRead);
      if (pBlockTable.openStatus() != Acad::eOk) return;
      AcDbBlockTableIterator *pBTIterator = NULL;
      Acad::ErrorStatus es = pBlockTable->newIterator(pBTIterator, true, true);
      if (es != Acad::eOk || !pBTIterator) {
        acutPrintf("\npBlockTable->newIterator(pBTIterator, true, true)=%s",acadErrorStatusText(es));
        return;
      }
      for (; !pBTIterator->done(); pBTIterator->step()) {
        AcDbObjectId BTRId;
        es = pBTIterator->getRecordId(BTRId);
        if (es != Acad::eOk) {
          acutPrintf("\npBTIterator->getRecordId(BTRId)=%s",acadErrorStatusText(es));
          delete pBTIterator;
          return;
        }        
        AcDbBlockTableRecordPointer pBlockTableRecord(BTRId, AcDb::kForRead);
        if (pBlockTableRecord.openStatus() != Acad::eOk) return;
        if (pBlockTableRecord->isAnonymous() || // no anonymous blocks
            pBlockTableRecord->isFromExternalReference() || // no xref's
            pBlockTableRecord->isFromOverlayReference() || // no overlaid xref's
            pBlockTableRecord->isLayout()) { // no block layouts *MODEL_SPACE, *PAPER_SPACE...
            continue;
          }
          const char *bName;
          es = pBlockTableRecord->getName(bName);
          if (es != Acad::eOk) {
            acutPrintf("\npBlockTableRecord->getName(bName)=%s",acadErrorStatusText(es));
            delete pBTIterator;
            return;
          }
          char text [256]="";;
          AcDbObjectIdArray ids;
          if (pBlockTableRecord->getBlockReferenceIds(ids) == Acad::eOk) {
            int cnt;
            cnt = ids.length();
            sprintf(text,"%d",cnt);
          }
          if ((pTable->insertRows(pTable->numRows(),pTable->rowHeight(1)) == Acad::eOk) &&
              (pTable->generateLayout() == Acad::eOk)) {
              pTable->setBlockTableRecordId(row,0,pBlockTableRecord->objectId(),true);
              pTable->setAlignment(row,0,AcDb::kMiddleCenter);
              pTable->setTextString(row,1,bName);
              pTable->setAlignment(row,1,AcDb::kMiddleCenter);
              pTable->setTextHeight(row,1,1.65);
              pTable->setTextString(row,2,text);
              pTable->setAlignment(row,2,AcDb::kMiddleCenter);
              pTable->setTextHeight(row,2,1.65);
            } else {
              acutPrintf("\nIt is not a TABLE or it can not be opened: %s",
                acadErrorStatusText(es));
            }
            row = (row + 1);
      }
      delete pBTIterator;                               
      //-----------------------------------------------------------
      // You *MUST* close BlockTable before open
      // any BlockTableRecord for Write
      //-----------------------------------------------------------
      pBlockTable->close();
      AcDbObjectId curSpaceId = acdbCurDwg()->currentSpaceId();
      AcDbBlockTableRecord *pBlkRec = NULL;
      if (acdbOpenObject(pBlkRec, curSpaceId, AcDb::kForWrite) == Acad::eOk) {       
        pBlkRec->appendAcDbEntity(pTable);
        pBlkRec->close();
        pTable->close();
      }
    }[/code]

 

 

 

 

arx插入表格
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 13:22 , Processed in 0.140431 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表