BrianRudloff.com

.Net Development


My Resume
WebDOCPDF
RTFODTTXT
powered by emurse

Recent comments





Sharepoint Services 2003 - Workaround for filtering on today's date

SharePoint Services 2003 does not initially come with a column for Today's Date.  However, there is a workaround.  Chris Johnson @ msdn wrote a great article on exactly how this works.  But basically, you can trick SharePoint into using Today in a function and create whatever calculated field you need.

I recently had to use this technique to filter a SharePoint Calendar.  I wanted it to display only upcoming events and out of the box, the calendar displays everything.  Here's what I found:

How to Filter a SharePoint Services 2003 Web Part Calendar to Only Show Upcoming Events

1.  Create a new column with the Column Name: Today (It doesn't matter what the type is, so leave it default)

2. Next, create a column with the Column Name: Begins.  In the formula section, enter: =[Start Time].  The data type should be: Date and Time.  The Date and Time format should be: Date Only.

3. Create a new column with the Column Name: Date_Range.  (or something).  In the formula section, enter: =Today-Begins.  The data type should be: Number(1, 1.0, 100).  Set the Number of decimal places to: 0.

4. Here's the weird part.  Go back and delete the original Today column created in Step 1.  I know what you're thinking...but trust me...  If you had read the article I mentioned earlier, you'd understand where this is going.

5. Now Create the Calendar Web Part by Clicking on Edit Page > Add a Web Part > Check Calendar > Click Add.

6. Create the customer view by Clicking on the Calendar Hyperlink > Settings > Create View.  Under "Start From an Existing View", Click Calendar.  Give the Calendar View a Name and then scroll to the bottom of the page and Select "Show items only when the following is true:"  In the first Dropdown box, Select: Date_Range.  In the second Dropdown box, Select "is less than".  Finally, enter a zero (0) into the textbox.

That's it!  When you view your page, you should now have a Calendar Web Part that displays only upcoming events.  If by any chance it’s still showing all events, you may have to play with the view setting for the calendar.

Currently rated 2.3 by 6 people

  • Currently 2.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: Sharepoint
Posted by Brian Rudloff on Thursday, August 30, 2007 8:49 AM
Permalink | Comments (121) | Post RSSRSS comment feed

Exporting SQL Data to Excel Programatically (Without DTS)

The following code can be used for creating a spreadsheet on the fly and presenting it to a user for download.  It's important to note that it doesn't really create a spreadsheet on the fly... rather it copies a template sheet and then populates the copy.  Either way, to the user its transparent.  Just create a template sheet with all of your column names and store it in one of your project folders.

The code is as follows:

protected void btn_exportdata_Click(object sender, EventArgs e)

     {               
         //Creates a guid named filequid (unique identifier)
        Guid fileguid = Guid.NewGuid();
        //String the new filename  * Replace “Server_Name” & “Folder_Name”     
        string filename = @"\\Server_Name\Folder_Name\" + fileguid.ToString() + ".csv";
        
        //Create the new file and copy the template column names into it * Replace “Server_Name” & “Folder_Name”
       File.Copy(@"\\Server_Name\Folder_Name\Template.xls", filename);              
      
       //Make your database connection
        string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlConnection dbConnection = new SqlConnection(cs);
        dbConnection.Open();
       
       //Create sql command
        SqlCommand export_data = dbConnection.CreateCommand();
       
       //Populate sql command * Replace “Select * from customers” with your select command
       export_data.CommandText = @"insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=" +     filename + ";', 'SELECT * FROM [Sheet1$]') select * from customers";
                    
        //Execute sql command
         export_data.ExecuteNonQuery();
       
        //Close the connection
         dbConnection.Close();
       
      //Present the spreadsheet to the user for download * Replace “sitename.com/Folder_Name” with your specifics
        Response.Redirect("http://sitename.com/Folder_Name/" + fileguid.ToString() + ".csv");
    }

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,
Categories: .net | c# | sql | excel
Posted by Brian Rudloff on Thursday, August 30, 2007 8:45 AM
Permalink | Comments (101) | Post RSSRSS comment feed