使用InfoPath和SharePoint2010创建周报的库和模版将会非常简单。
- 使用InfoPath 2010 Designer,然后选择SharePoint List。

-
输入SharePoint地址以及相关认证后,将会在SharePoint中创建一个列表。我在这里取名叫"周报"。完成后我们就可以对周报的模版进行设计了。

-
大致设计以后,我们看到了周报模版的原型。

-
接下来就需要添加具体表单元素了。我想让姓名、我的主管、审阅人这三项都可以从另外一个员工列表中选取。这要求首先在SharePoint中有一个联系人的库。打开SharePoint选择创建Contacts List,这里我取名叫"员工列表"

-
在列表中添加一些测试数据

-
回到InfoPath表单设计中。在姓名一栏,我选择使用Drop-Down List Box

-
点击后,InfoPath会提示你配置数据来源。在这里我直接选择从SharePoint 列表中选取数据。这里会列出所有SharePoint List的内容。先选取列表名,然后选取列名。我的主管、审阅人字段均可采用这种方式。

-
设计完成后的界面

-
点击InfoPath左上角的快速发布,InfoPath表单将会存储到SharePoint列表中。
-
打开"周报列表",当点击"添加项"后。将会看到刚刚设计的表单。而且姓名、我的主管、审阅人列表均可获取到员工列表的数据。

以上是很简单的InfoPath结合SharePoint2010的使用。SharePoint2010确实很强大。
posted @ 2012-03-29 12:35 yangjingbo 阅读(35) 评论(0) 编辑
.NET 4.0 中对于位置传感器提供了GeoCoordinateWatcher类。通过这个类能方便的访问传感器信息。刚才小写了一段代码,来演示将得到的地理位置显示在google map上面。首先来看看应用程序的界面:
代码如下:
public partial class Form1 : Form
{
private GeoCoordinateWatcher _GeoCoordinateWatcher;
public Form1()
{
InitializeComponent();
_GeoCoordinateWatcher = new GeoCoordinateWatcher();
}
private void Form1_Load(object sender, EventArgs e)
{
_GeoCoordinateWatcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(_GeoCoordinateWatcher_PositionChanged);
_GeoCoordinateWatcher.Start();
}
void _GeoCoordinateWatcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
if (!e.Position.Location.IsUnknown)
{
this.webBrowser1.Navigate(string.Format(CultureInfo.InvariantCulture, "{0}{1},{2}", new object[] { "http://maps.google.com/?ie=UTF8&z=15&q=", e.Position.Location.Latitude, e.Position.Location.Longitude }));
}
}
}
注意事项:
1. 该应用程序使用VS2010编写,并且使用.NET Framework 4.0,而且要在工程中引用 System.Device
2. 确保你的操作系统是Windows 7.
3. 确保你已经成功的安装上了相关的传感器软件。推荐使用:geosenseforwindows
4. 一定要选中在控制面板中的传感器复选框。
OK。就写到这里,有兴趣的自己试试吧。
posted @ 2010-07-08 12:09 yangjingbo 阅读(126) 评论(0) 编辑
.NET 4.0 中关于访问传感器状态进行了封装。在.NET4.0 beta2中我们可以用GeoLocationProvider。但是现在我们可以方便的使用GeoCoordinateWatcher类进行获知。较以往的GeoLocationProvider现在的GeoCoordinateWatcher结构如下:
具体代码如下:
using System;
using System.Device.Location;
namespace LocationStatusChange
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Outputting location updates, press any key to exit...");
LocationWatcher watcher = new LocationWatcher();
Console.ReadKey();
}
}
class LocationWatcher
{
private GeoCoordinateWatcher provider;
public LocationWatcher()
{
this.provider = new GeoCoordinateWatcher();
this.provider.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(provider_StatusChanged);
this.provider.Start();
}
void provider_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
Console.WriteLine("LocationStatus: " + e.Status.ToString());
}
}
}
这个是运行的效果:
当我修改传感器让其不可用时:
这时应用程序能正确的捕捉到状态:
呵呵.NET4.0 真的很强大。
posted @ 2010-07-08 11:56 yangjingbo 阅读(119) 评论(0) 编辑