爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8379|回复: 10

最新版本dll在现实labelset时提示“列‘’不属于表”

[复制链接]

新浪微博达人勋

发表于 2011-8-22 20:59:10 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
QQ截图未命名.png
错误如上图,代码是从demo里拷过来的,在3.18版本里运行没问题,可以正常显示地图的县市名称
新版的报错,楼主帮忙看下
ps,代码如下:
        private void tsbLabelset_Click(object sender, EventArgs e)
        {
            VectorLayer aLayer  = (VectorLayer)G_LayerLegend.MapView.GetLayerFromHandle(mapView1.GetLayerHandleFromName("省.shp"));
            List<string> fieldNameList = aLayer.GetFieldNameList();
            aLayer.LabelSet.FieldName = fieldNameList[0];
            aLayer.LabelSet.AvoidCollision = true;
            aLayer.LabelSet.LabelAlignType = MeteoInfoC.Legend.AlignType.Center;
            aLayer.LabelSet.LabelColor = Color.Blue;
        
            aLayer.RemoveLabels();
            aLayer.AddLabels();
          }

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-22 21:16:47 | 显示全部楼层
请作者出来解答啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-22 21:18:43 | 显示全部楼层
MeteoInfo愈发的深奥了,三天不学习,赶不上*河蟹*呀。。。帮顶
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-22 22:55:02 | 显示全部楼层
你调试一下fieldNameList都包含了什么字段
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-8-23 09:02:57 | 显示全部楼层
未命名.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-23 09:20:54 | 显示全部楼层
看起来fieldNameList[0]应该是"AREA"了,不过你的错误提示LabelSet.FieldName为"",你一步步调试一下问题在哪里。

最新版的dll文件的标注功能我这里没问题,我也没有你的程序,问题在哪里只能你自己找了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-8-23 11:05:29 | 显示全部楼层
是在 AddLabels()方法中抛出的异常,stacktrace如下
在 System.Data.DataRow.GetDataColumn(String columnName)
   在 System.Data.DataRow.get_Item(String columnName)
   在 MeteoInfoC.Layer.VectorLayer.GetCellValue(String FieldName, Int32 ShapeIndex)
   在 MeteoInfoC.Layer.VectorLayer.()
   在 MeteoInfoC.Layer.VectorLayer.AddLabels()
   在 Radar.FrmMeteoinfo.tsbLabelset_Click(Object sender, EventArgs e) 位置 I:\demo\FrmMeteoinfo.cs:行号 435
   在 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   在 System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
   在 System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   在 System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   在 System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   在 System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   在 System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.ToolStrip.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

ps:版主能提供个新版添加标注的例子吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-23 11:12:17 | 显示全部楼层
新版本并没有修改标注功能,代码还是一样的。你调试一下aLayer.LabelSet.FieldName到底是什么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-8-23 11:37:53 | 显示全部楼层
aLayer.LabelSet.FieldName是有值的,用AREA和NAME试了都抛异常
感觉新版的编码不太对,配置文件default.mip中不支持汉字了,用下面的地图PaintLayers()抛出参数异常,版主用下边的地图测试下看看

Map.rar

1.39 MB, 下载次数: 5, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-8-23 12:34:32 | 显示全部楼层
版主,找到原因了,旧版的mip文件中 <LegendScheme FieldName="Name"   fieldname不用配置没有问题,新版的需要配置,配置后就可以了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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