MSCBSC 移動通信論壇
搜索
登錄注冊
網(wǎng)絡(luò)優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實(shí)習(xí)生/應(yīng)屆生招聘職位

  • 閱讀:5216
  • 回復(fù):11
菜鳥學(xué)mapbasic連載--第五集(窗口設(shè)計)
hillyspring
銀牌會員
鎵嬫満鍙風(fēng)爜宸查獙璇? style=


 發(fā)短消息    關(guān)注Ta 

積分 3152
帖子 435
威望 5490 個
禮品券 406 個
專家指數(shù) 563
注冊 2006-5-9
專業(yè)方向  2G4G優(yōu)化
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2012-01-10 22:23:06  只看樓主 
各位童靴門大家好,由于前期項(xiàng)目尾聲階段天天忙著寫總結(jié)報告,故本教程中斷了一些時日,F(xiàn)在終于有時間繼續(xù)學(xué)習(xí)MAPBASIC了。

那么我們就利用春節(jié)前的這一段假期繼續(xù)深入學(xué)習(xí)MAPBASIC,希望大家在學(xué)習(xí)之后都能作出屬于自己的mapinfo插件。

今天我們繼續(xù)以前課程來學(xué)習(xí) mapinfo的窗口設(shè)計。

MapBasic應(yīng)用程序能打開并操縱任何一個MapInfo標(biāo)準(zhǔn)窗口(如地圖窗口、瀏覽窗口等)。要打開一個文檔窗口可以使用這些語句當(dāng)中的一個:Map,Browse,Graph,Layout或者Create Redistricter。每個文檔窗口顯示一個表中的數(shù)據(jù),所以在打開這些窗口之前必須保證相應(yīng)的表已經(jīng)打開。為了打開別的MapInfo窗口可以使用0pen Windows語句。

許多窗口設(shè)置可以通過Set Windows語句來控制?梢酝ㄟ^它設(shè)置一個窗口的尺寸及位置。但也存在別的一些語句來設(shè)置一些特殊類型的窗口的屬性,例如用SetMap設(shè)置地圖窗口中圖層的順序,用SetBrowse語句控制瀏覽窗口中網(wǎng)格的顯示。


每個窗口(地圖窗口、瀏覽窗口、布局窗口、統(tǒng)計窗口或重新分區(qū)窗口)都要有一個ID號,許多語句和函數(shù)都需要窗口的ID號作為參數(shù)。例如多個地圖窗口打開時,要Set Map

語句對地圖窗口進(jìn)行編輯修改時,就必須指定窗口的ID號以便MapInfo知道哪一個窗口需要修改。為了獲得活動窗口的ID號可以使用FrontWindow()函數(shù)。


1.指定窗口的尺寸及位置

這里有兩種方法指定窗口的尺寸位置:


·在打開窗口語句中包括可選的Position子句和Width, Height子句,例如下面的Map
語句不僅打開了一個地圖窗口而且指定了窗口的初始尺寸及位置:


Map From World


Position (2,1) Units
in

Height 3 Units
in

Width 4 Units
in

.在打開窗口后,用Set Windows語句來控制窗口的尺寸及位置。


2.地圖窗口

地圖窗口顯示一個或多個表中可地圖化的對象。當(dāng)打開一個地圖窗口時,你必須指定要顯示的表,并且每個表必須已經(jīng)打開。下面的語句將打開一個地圖窗口:


Map From
World,WorldCap,grid30


這里World,WorldCap,grid30是三個已打開的表。要在地圖窗口中增加一個圖層,可使用命令A(yù)dd Map layer語句。而從一個地圖窗口刪除一個圖層要用Remove Map layer語句。如果你只是想暫時隱藏一個地圖圖層,那么就不必把它從地圖窗口中刪除,你可以用Set Map語句將該圖層的顯示屬性設(shè)置為Off。


Set Map語句是一個功能十分強(qiáng)大的語句,它可以控制地圖窗口的各個方面,但由于它的使用比較復(fù)雜,這里不作具體討論,有興趣的讀者可以參考《MapBasic參考手冊》或使用MapBasic聯(lián)機(jī)幫助。



3.瀏覽窗口

瀏覽窗口是以二維表的形式顯示一個表的數(shù)據(jù)。下面的語句打開一個簡單的瀏覽窗口,它顯示了World表的所有列:


Browse * From World


星號(*)指出表中的所有列都在瀏覽窗口中顯示。如果只想顯示某些列,可以用列表達(dá)式代替上例中的星號(*),如下面的例子只在瀏覽窗口顯示兩個列:


Browse Country,Capital From World


Browse語句可以簡單到顯示一個列,也可以復(fù)雜到顯示一個列表達(dá)式的值。例如:


Browse country,F(xiàn)ormat$(Population,
,#) From World

若在瀏覽窗口中顯示的只是表的簡單列,那么列的值是可以修改的(除非該表是只讀
的)。但是,如果瀏覽窗口顯示的是一個復(fù)雜的列表達(dá)式的值,則這些值不允許被用戶修改。


一般情況下,在Browse語句中指定的表達(dá)式作為列標(biāo)出現(xiàn)在瀏覽窗口中每一列的頂部,下面的語句說明如何用別的列標(biāo)來代替默認(rèn)的表達(dá)式列標(biāo):


Browse country, Format$(Population,
,#) Pop From World


因?yàn)樽址磉_(dá)式“Pop”出現(xiàn)在列表達(dá)式后面,所以,“Pop”將作第二列的列標(biāo),你還可以設(shè)置默認(rèn)瀏覽窗口位置,例如下面的例子中World表的第五行第二列顯示在瀏覽窗口的左上角:


Browse * From World Rows 5 Column 2


本次的全套源代碼見4樓附件

[ 本帖最后由 hillyspring 于 2012-1-10 23:05 編輯 ]
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5G NTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1
  • 共獲得 1 次點(diǎn)評 我要點(diǎn)評

    • 道家書生 專家指數(shù) +2 , 威望 +20 個
      · 加分,很好的資料 詳細(xì).. 發(fā)表與:2012-1-13 12:02:57
     
    [充值威望,立即自動到帳] [VIP貴賓權(quán)限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無憂
    hillyspring
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 3152
    帖子 435
    威望 5490 個
    禮品券 406 個
    專家指數(shù) 563
    注冊 2006-5-9
    專業(yè)方向  2G4G優(yōu)化
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-10 22:24:03  只看樓主 

    4
    .統(tǒng)計窗口

    統(tǒng)計窗口包含一個帶有標(biāo)號和從表中計算得到的值的統(tǒng)計圖,下面的例子

    是在統(tǒng)計窗口顯示一個以BCCH列的內(nèi)容作為標(biāo)號,而以CNT列值作為數(shù)據(jù)的統(tǒng)計圖。

    [attach]214630[/attach]

    Graph bcch, cnt From cell

    關(guān)鍵詞Graph后面的第一個項(xiàng)是為數(shù)據(jù)提供的一個標(biāo)號,接下來的其他項(xiàng)是提供統(tǒng)計
    數(shù)據(jù)的表達(dá)式。任何合法的數(shù)據(jù)表達(dá)式都可作為這些項(xiàng)。


    本次的全套源代碼見4樓附件

    [ 本帖最后由 hillyspring 于 2012-1-10 23:05 編輯 ]

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]
    hillyspring
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 3152
    帖子 435
    威望 5490 個
    禮品券 406 個
    專家指數(shù) 563
    注冊 2006-5-9
    專業(yè)方向  2G4G優(yōu)化
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-10 22:25:25  只看樓主 
    5.定制信息窗口
    信息窗口顯示一個表的某一行,用戶可以通過鍵盤輸入編輯表中的這一行?梢杂肧et Window語句來控制和定制信息窗口。

    [attach]214629[/attach]


    下面是定制上面這個信息窗口的程序:


    Include
    mapbasic.def

    Open Table
    World
    Interactive

    Select

    Country, Captial, Inflat_Rate+0 Inflation

    From World


    Into World_Query


    Set Window Info


    Title
    Contry Data

    Table World_Query Rec 1


    Font MakeFont(
    Arial, 1,10, BLACK, WHITE)

    Width 3 units
    in Height 1.2 units in

    Position (2.5, 1.5) units "in"

    Front


    關(guān)于這個例子有以下幾點(diǎn)要注意:


    ·Title子句是定義信息窗口的標(biāo)題,例如上例中的標(biāo)題是“Country Data”。


    ·Set Window的Table … Rec子句指定表中哪一行的數(shù)據(jù)顯示在信息窗口。上例中是顯示表World_Query的第1條記錄(World_Query是由Select語句產(chǎn)生的—個臨時
    表)。


    ·信息窗口為記錄的每個域開辟一個框;在窗口的右邊還顯示一個滾動條以顯示出
    記錄的其他域。


    上面的例子中,由于World_Query表是Select語句產(chǎn)生的一個暫時表,它只有三個域,所以信息窗口中也只顯示三個域的內(nèi)容。


    為了使信息窗口的某些域而不是全部域只讀,可以用下面的方法:


    1)用Select語句產(chǎn)生一個臨時的查詢表。


    2)在建立Select語句時不是使用簡單的列值,而是使用一個表達(dá)式。例如上例中第三列的值指定為Inflat_Rate+0 (
    Inflation是為該表達(dá)式取的一個別名)。

    Select


    Country,Capital,Inflat_Rate+0
    Inflation

    3)在Set Window Info語句中指定哪一條記錄被顯示。查詢表中用表達(dá)式來定義的那個列在信息窗口中相應(yīng)的框是只讀的。


    為了使信息窗口中的所有域都是只讀,可使用下面的語句:

    Set Window Info ReadOnly

    本次的全套源代碼見4樓附件

    [ 本帖最后由 hillyspring 于 2012-1-10 23:04 編輯 ]

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    hillyspring
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 3152
    帖子 435
    威望 5490 個
    禮品券 406 個
    專家指數(shù) 563
    注冊 2006-5-9
    專業(yè)方向  2G4G優(yōu)化
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-10 22:37:13  只看樓主 
    上面已經(jīng)講解的窗口設(shè)計的基本過程與步驟,那么下面我們根據(jù)我們的需要自行設(shè)計一下窗口。

    我的目的主要是進(jìn)行,瀏覽窗口,統(tǒng)計窗口與信息窗口的練習(xí)(其他那幾項(xiàng)很簡單一看就會這里就不進(jìn)行練習(xí)了)
    1.我這里有一個CELL的表,我想建立三個菜單項(xiàng),分別為瀏覽窗口,統(tǒng)計窗口與信息窗口,然后各自實(shí)現(xiàn)自己的功能。
    sub main
    alter menu bar add
    "窗口設(shè)計練習(xí)"
    create menu "窗口設(shè)計練習(xí)" as
    "瀏覽窗口" Calling browse_table,
    "統(tǒng)計窗口" Calling graph_table,
    "定制信息窗口" Calling info_table
    end sub
    如圖:
    [attach]214635[/attach]

    2.瀏覽窗口,我想要瀏覽CELL表的 全部內(nèi)容
    Sub browse_table
    Browse * From cell
    end sub
    最終效果如圖:
    [attach]214636[/attach]

    3.統(tǒng)計窗口,我想對BCCH的分布進(jìn)行統(tǒng)計輸出,也就是我們平時所說BCCH頻點(diǎn)的利用情況,可以看出那些頻點(diǎn)的使用次數(shù)多,也就是復(fù)用程度高。
    Sub graph_table
    Select
    BCCH, Count(*) "cnt"
    From cell
    Into bcch_count
    GROUP BY BCCH
    Order By BCCH
    GraphBCCH,cntFrom bcch_count
    end sub
    最終效果如圖:
    [attach]214637[/attach]
    Y軸為頻點(diǎn),X軸為出現(xiàn)次數(shù)。

    4.信息窗口,我想顯示 cell表 第一行的 bsc,ci,bcch 情況。
    Sub info_table
    Select
    bsc,ci,BCCH
    From cell
    Into cell_Query
    SetWindow Info
    Title"Contry Data"
    Font MakeFont("Arial", 1,10, BLACK, WHITE)
    Width 3 units "in" Height 1.2 units "in"
    Position (2.5, 1.5) units"in"
    Front
    Table cell_Query Rec 1
    end sub
    最終效果如圖:
    [attach]214638[/attach]

    本次的全套源代碼見附件:
    窗口.zip (583 Bytes)

    [ 本帖最后由 hillyspring 于 2012-1-10 23:04 編輯 ]

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    熱點(diǎn): 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    ayadb
    中級會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 642
    帖子 124
    威望 2308 個
    禮品券 5 個
    專家指數(shù) 22
    注冊 2011-10-8
    專業(yè)方向  網(wǎng)優(yōu)工程師
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-10 23:51:08 
    好東西要慢慢的去學(xué)

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    xinhaoqi
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    紀(jì)念勛章·七周年   C友·登錄達(dá)人  
    積分 2894
    帖子 543
    威望 4536 個
    禮品券 85 個
    專家指數(shù) 179
    注冊 2010-1-14
    專業(yè)方向  TD系統(tǒng)優(yōu)化 LTE網(wǎng)絡(luò)優(yōu)化
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-14 22:20:56 
    頂起,嚴(yán)重支持!

    對本帖內(nèi)容的看法? 我要點(diǎn)評





    Keep on going,Never give up!
     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    adsn
    銀牌會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    財富勛章·萬元戶   財富勛章·財運(yùn)連連   紀(jì)念勛章·九周年  
    積分 2586
    帖子 521
    威望 301951 個
    禮品券 35 個
    專家指數(shù) -59
    注冊 2010-5-19
    專業(yè)方向  TDS/TDL
    來自 JiangxLep
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-16 09:19:34  QQ
    多謝樓主分享。學(xué)習(xí)

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    熱點(diǎn): 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    savagelgw
    鉆石會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    公益·慈善勛章  
    積分 10790
    帖子 335
    威望 55008 個
    禮品券 5 個
    專家指數(shù) 20
    注冊 2007-4-23
    專業(yè)方向  網(wǎng)優(yōu)
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-18 23:16:33 
    真是太好了,樓主很強(qiáng)大,正向?qū)W學(xué)mapbasic

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    熱點(diǎn): 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料
    bevan
    金牌會員



     發(fā)短消息    關(guān)注Ta 

    積分 7227
    帖子 376
    威望 4385 個
    禮品券 25 個
    專家指數(shù) -8
    注冊 2008-11-17
    專業(yè)方向  NPO
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-19 21:15:09 
    非常感謝!給我這種想入門的開了個好頭!

    對本帖內(nèi)容的看法? 我要點(diǎn)評





    I am Bevan
     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    pcx9988
    鉆石會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    C友·登錄達(dá)人   活動·攝影達(dá)人   紀(jì)念勛章·九周年  
    積分 14513
    帖子 1632
    威望 734805 個
    禮品券 122 個
    專家指數(shù) 45
    注冊 2007-6-6
    專業(yè)方向 
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-01-20 10:30:45 
    好東西一定要頂起,

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    sparkxiao
    高級會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 1327
    帖子 185
    威望 145938 個
    禮品券 5 個
    專家指數(shù) 49
    注冊 2008-3-17
    專業(yè)方向 
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2012-10-30 06:01:44 
    要是把這么多課程合到一個帖子就好了,特別是課程的全套源代碼放到一起就更爽了。

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    [2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料] [快速找到一份高薪的通信行業(yè)職位]
    411611
    中級會員
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


     發(fā)短消息    關(guān)注Ta 

    積分 1034
    帖子 232
    威望 18987 個
    禮品券 8 個
    專家指數(shù) -126
    注冊 2011-9-21
    專業(yè)方向  無線網(wǎng)優(yōu)
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2013-09-07 09:56:28 
    筒子們,哥又來學(xué)習(xí)了

    對本帖內(nèi)容的看法? 我要點(diǎn)評

     
    熱點(diǎn): 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料

    快速回復(fù)主題    
    標(biāo)題
    內(nèi)容
     上傳資料請點(diǎn)左側(cè)【添加附件】

    當(dāng)前時區(qū) GMT+8, 現(xiàn)在時間是 2025-02-19 07:53:14
    渝ICP備11001752號  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務(wù)郵箱:mscbsc@163.com

    Processed in 1.101288 second(s), 45 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動通信網(wǎng) - 移動通信論壇 - 通信招聘網(wǎng) - Archiver