夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks

          '******************************************************************************
          '* File:     pdm2excel.txt
          '* Title:    pdm export to excel
          '* Purpose:  To export the tables and columns to Excel
          '* Model:    Physical Data Model
          '* Objects:  Table, Column, View
          '* Author:   ziyan
          '* Created:  2012-05-03
          '*Modifier:  Hui Wanpeng 2014/07/04
          '* Version:  1.0
          '******************************************************************************
          Option Explicit
           Dim rowsNum
           rowsNum = 0

          '-----------------------------------------------------------------------------
          ' Main function
          '-----------------------------------------------------------------------------
          ' Get the current active model

          Dim Model
          Set Model = ActiveModel
          If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then
              MsgBox "The current model is not an PDM model."
          Else
               ' Get the tables collection
               '創建EXCEL APP
               Dim beginrow
               Dim EXCEL, SHEET
               set EXCEL = CREATEOBJECT("Excel.Application")
               EXCEL.workbooks.add(-4167)'添加工作表
               EXCEL.workbooks(1).sheets(1).name ="test"
               set sheet = EXCEL.workbooks(1).sheets("test")

              ShowProperties Model, SHEET
              EXCEL.visible = true

              '設置列寬和自動換行
               sheet.Columns(1).ColumnWidth = 20
               sheet.Columns(2).ColumnWidth = 20
               sheet.Columns(3).ColumnWidth = 10
               sheet.Columns(4).ColumnWidth = 10
               sheet.Columns(5).ColumnWidth = 40
               sheet.Columns(1).WrapText =true
               sheet.Columns(2).WrapText =true
               sheet.Columns(4).WrapText =true
           End If

          '-----------------------------------------------------------------------------
          ' Show properties of tables
          '-----------------------------------------------------------------------------
          Sub ShowProperties(mdl, sheet)
              ' Show tables of the current model/package
              rowsNum=0
              beginrow = rowsNum+1

              ' For each table
              output "begin"

              Dim tab
              For Each tab In mdl.tables
                  ShowTable tab,sheet
              Next

              if mdl.tables.count > 0 then
                  sheet.Range("A" & beginrow + 1 & ":A" & rowsNum).Rows.Group
              end if
              output "end"
          End Sub

          '-----------------------------------------------------------------------------
          ' Show table properties
          '-----------------------------------------------------------------------------
          Sub ShowTable(tab, sheet)
              If IsObject(tab) Then
              Dim rangFlag
              rowsNum = rowsNum + 1

               ' Show properties
              Output "================================"
              sheet.cells(rowsNum, 1) = "表名"
              sheet.cells(rowsNum, 2) = tab.code
              sheet.cells(rowsNum, 3) = tab.comment
              sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 5)).Merge
             
              rowsNum = rowsNum + 1
             
              sheet.cells(rowsNum, 1) = "字段名"
              sheet.cells(rowsNum, 2) = "字段類型"
              sheet.cells(rowsNum, 3) = "是否主鍵"
              sheet.cells(rowsNum, 4) = "不能為空"
              sheet.cells(rowsNum, 5) = "字段中文名"
             

              '設置邊框
              sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 5)).Borders.LineStyle = "1"
              sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 5)).Interior.ColorIndex = 20
             

              Dim col ' running column
              Dim colsNum
              colsNum = 0
              for each col in tab.columns
                  rowsNum = rowsNum + 1
                  colsNum = colsNum + 1
                  sheet.cells(rowsNum, 1) = col.code
                  sheet.cells(rowsNum, 2) = col.datatype
                  if col.primary=true  then
                      sheet.cells(rowsNum, 3) = "Y"
                  end if
                  if col.mandatory=true  then
                      sheet.cells(rowsNum, 4) = "Y"
                  end if
                  sheet.cells(rowsNum, 5) = col.comment
                 
              next
                sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,5)).Borders.LineStyle = "2" 
                'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,6)).Borders.LineStyle = "2"
                rowsNum = rowsNum + 1
                Output "FullDescription: "       + tab.Name
             End If
          End Sub

          posted on 2014-07-15 23:19 HUIKK 閱讀(367) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 望城县| 昭苏县| 聊城市| 前郭尔| 陆丰市| 霍邱县| 永昌县| 兰西县| 大冶市| 巍山| 凤城市| 承德市| 内黄县| 新化县| 甘谷县| 抚州市| 北票市| 商丘市| 靖江市| 双城市| 花莲县| 遵义县| 江阴市| 文化| 武冈市| 五常市| 兴宁市| 棋牌| 随州市| 萨迦县| 临武县| 佛坪县| 建阳市| 康马县| 定兴县| 淳安县| 汤阴县| 建水县| 时尚| 景宁| 吐鲁番市|