使用InfoPath和SharePoint2010创建周报的库和模版将会非常简单。

  1. 使用InfoPath 2010 Designer,然后选择SharePoint List。

 

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

     

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

     

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

     

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

     

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

     

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

  7. 设计完成后的界面

  8. 点击InfoPath左上角的快速发布,InfoPath表单将会存储到SharePoint列表中。

     

  9. 打开"周报列表",当点击"添加项"后。将会看到刚刚设计的表单。而且姓名、我的主管、审阅人列表均可获取到员工列表的数据。

     

以上是很简单的InfoPath结合SharePoint2010的使用。SharePoint2010确实很强大。

posted @ 2012-03-29 12:35 yangjingbo 阅读(35) 评论(0) 编辑

.NET 4.0 中对于位置传感器提供了GeoCoordinateWatcher类。通过这个类能方便的访问传感器信息。刚才小写了一段代码,来演示将得到的地理位置显示在google map上面。首先来看看应用程序的界面:

image

代码如下:

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结构如下:

image

具体代码如下:

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());
        }
    }
} 

这个是运行的效果:

image

当我修改传感器让其不可用时:

image

这时应用程序能正确的捕捉到状态:

image

 

呵呵.NET4.0 真的很强大。

posted @ 2010-07-08 11:56 yangjingbo 阅读(119) 评论(0) 编辑