Friday, April 24, 2009
What is the MVP Program?
Have you ever wondered what the Microsoft MVP program is about or how MVPs are selected? Toby Richards, who runs the MVP program at Microsoft, talks about. http://cli.gs/9MU5Hr
Three Strikes and I'm Out
Speaking a conferences is a very time consuming prospect. You need to put great effort into the material to ensure it matches the expectations of the audience. Code needs to be tested. And then there are the practice sessions, preferable in front of a live audience.
But conference preparation starts long before any of that. You need to first come up with several topics because conference organizers generally ask potential speakers for more than one topic. A catchy title helps. Several years ago, I had one called "OOP, I Did it Again", that was an introduction to Object Oriented Programming. You then have to come up with a description, bullet points that hit the highlights of the presentation, figure out if it's a 100, 200, 300, or 400 level talk, and what pre-requisites are needed. Then, you need to put your proposal into the format needed by the conference organizers. So, by the time you've done this for three or four topics, you have easily spent several hours.
For the past three years, I've done this for Southwest Fox, but have not been accepted as a speaker there. So, I've decided to no longer submit proposals for the conference. I have no doubt there will be great presentations and it will be a fantastic conference, but it's no longer an effective use of my time.
I probably won't be there as an attendee either. My company has no training budget this year and it really is cost prohibitive for me to foot the bill myself.
I wish the Rick, Doug, and Tamar all the best for this year?s Southwest Fox and for many years to come.
Tuesday, April 21, 2009
Functions and Procedures in VFP 101
When working in Visual FoxPro, functions are procedures are almost the same thing. Look at the following code:
FUNCTION DoSomething
LPARAMETERS Param1, Param2
? "Param 1= " + Param1
? "Param 2= " + Param2
PROCEDURE DoSomethingElse
LPARAMETERS Param1, Param2
? "Param 1= " + Param1
? "Param 2= " + Param2
The function and procedure are actually identical. The difference to determine whether you have a function or procedure is not how they are defined, but how they are called. You can even call them the same way.
DO DoSomething WITH "Hello", "Procedure"
DoSomething("Hello", "Procedure")
You'll notice that DoSomething was defined as a procedure, but we can call it as either a procedure or a function. We can do the same thing with DoSomethingElse.
The difference is how the parameters are passed. When called as a procedure, the parameters are passed by reference. When called as a function, the parameters are passed by value. You can change how they?re passed in a function with SET UDFPARMS TO REFERENCE but you can?t change how parameters are passed when calling the routine as a procedure.
So, which should you use? I think you should always call the routine as a function because the routine cannot accidently change the value of the parameter. This is the kind of nasty side effect that can be difficult to track down.
Labels: VFP
Tuesday, April 07, 2009
Two Microsoft Events Coming to Salt Lake City
The first is XAMLFest, coming up on May 1
Are you excited about the WPF but concerned about the learning curve? Have you seen Silverlight but don’t know where to get started? Or are you curious about how tools like Visual Studio and Expression Blend help designers and developers work together to deliver great user experiences? If so, join us at XamlFest! XamlFest is an interactive event where you’ll learn about the platforms, tools, and processes used to deliver differentiated user experiences. It’s a chance for you to mingle with UX-minded Microsoft folks. To register, please send an e-mail with the names and e-mail addresses of your attendees to xamlfest-slc@live.com. Come as you are - leave xamlized!
The second is MDSN Unleashed Presents: The Best of MIX is scheduled for May 6. It will be three different topics offered in two sessions. You only need to sign up for one session and get all three topics for the price of one!
What’s New in Silverlight 3?
Are you interested in building business-focused Rich Internet Applications (RIAs)? Would you like to take advantage of 3D in the browser, but assume it is too hard? Have you wanted to take a Silverlight application offline? Then this session is for you. We will explore and illustrate the new features of Silverlight 3, including the following:
- Support for perspective 3D
- Offline Support
- .NET RIA Services which simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms
Building Web Applications with Windows Azure
This session will begin with a brief overview of Azure and discuss some of the announcements made at MIX. We will then illustrate through demo how to build a Windows Azure application from the ground up. We will illustrate how to consume Azure Table Storage, how to host services, web pages and Silverlight components, as well as how to deploy your solution to the cloud.
MVC 1.0 vs ASP.Net Webforms
Have you heard about the new ASP.NET MVC framework from Microsoft and wondered what it was all about? Are you curious whether this replaces ASP.Net WebForms? Well in this session you will learn how to use the model-view-controller (MVC) pattern to take advantage of your favorite .NET Framework language for writing business logic in a way that is de-coupled from the views of the data. In addition, we will talk about the pros and cons of both MVC and Web Forms, how to determine the best choice for a specific project, various techniques and patterns used to build MVC applications vs. Web Forms applications, and the implications for using each approach.
The morning session is from 8:00 am to 12:00 pm. Register here.
The afternoon session runs from 1:00 pm to 5:00 pm. Register here.
All events are free and will be held at the Microsoft office in the International Center, 123 Wright Brothers Drive, Suite 100.
Labels: Microsoft, Salt Lake City
Monday, March 30, 2009
Speaking at DevLink
Domain Driven Design for the Average Application: Domain Driven Design is a way to design and develop enterprise applications so that they are easier to maintain, enhance, and extend. DDD is overkill for many of the applications we develop today, but still has principles that can be applied to most of the apps we write. In this session, you will learn to apply these concepts.
Continuous Integration in .NET Continuous Integration is a development practice where code changes are continuously checked in to source control and then automatically checked out, built, and tested. Whether you are a one person shop or have many developers, by using Continuous Integration you will improve the quality of your software and increase your productivity. This session will show you how to use Continuous Integration in your daily development by integrating several free tools.
The DDD session is all new. I have been presenting the CI session for about a year and a half, but it will be updated for DevLink. Registration opens April 1. The conference is a bargain at $75. See you there!
Wednesday, March 04, 2009
VFP DDEX Provider Sample Updated
Download the update
Thursday, February 05, 2009
MSDN Event in Salt Lake City
- Demystifying Azure - An Overview of the Azure Services Platform for Developers
- Deepen your Debugging - Tips and Tricks for the Visual Studio 2008 Debugger
- Developing for Windows Mobile Devices
Register here.
Wednesday, January 21, 2009
Two speaking gigs scheduled
The second is Saturday, March 28 at the Boise Code Camp and Techfest. I have two topics scheduled, Windows Azure and Microsoft Entity Framework.
Monday, January 19, 2009
Nothing Express About SQL Server 2008 Express
- clearly indicated; distinctly stated; definite; explicit; plain: He defied my express command.
- special; definite: We have an express purpose in being here.
- direct or fast, esp. making few or no intermediate stops: an express train; an express elevator.
- used for direct or high-speed travel: an express highway.
- duly or exactly formed or represented: an express image.
That's the definition of express from dictionary.com. But there is nothing express about SQL Server Express. I have been attempting to install it on a VPC image of Vista Ulitimate, SP1. Here's what I went through:
- Download the install package. I'll accept this one. I can't install without having it.
- Launch installation package.
- Install FAIL. I need to download and install a Windows Installer 4.5 Why does every Microsoft product need a different version of the installer? And why can't it be included in the product's installation package?
- Download Windows Installer 4.5
- Forced reboot. An installer is an APPLICATION, not part of the OS and should not require an OS reboot.
- Launch installation package.
- Install FAIL. I walked through several screens only to be told that installation couldn't continue because PowerShell was not installed. Why is PowerShell even required? And if it is, I should at least be told at the beginning of the install process that it's not installed. Don't tell me half way through several dialogs.
- Download and install PowerShell.
- Launch SQL Server Express installer.
- But wait, there's more. I walked through 16!!! different screens and had over 30 clicks!!! in addition to selecting the account to run SQL Server, entering an administrator password (twice). I didn't even select all features or look at all the options. Many of the dialogs (Setup support rules, Setup support files) weren't needed. Others (license terms, product key) could be combined into a single dialog.
Express is supposed to lite weight and easy to setup and use. Nothing about this was easy to setup. Install process FAIL. In the end, the install was successful.
Labels: SQL Server
Saturday, January 10, 2009
Installing Windows 7 and First Impressions
- Backup Vista hard drive.
- Launch Windows 7 install.
- Select to get updates. 862K was downloaded.
- Chose Custom install. This created a Windows.old folder on the drive that contained the old Vista Windows folder, Perflogs, Users, Program Files, etc. Other folders that I had created were untouched.
- Setup then copied files and began to expand them.
- Setup rebooted the PC.
- After startup, setup continued to expand the files.
- Another reboot.
- Setup continued, updating the registry and started services. New Windows files were installed.
- I was prompted for international settings, country, time zone, etc, for computer name, username, and password. The password hint was required. Why was this required? IMO, it shouldn't be.
- I then entered the product key. This step is far too late in the process. Windows should ask me for this before I select any of the previous options.
- I then had the option to set the time, which was already correct.
- Setup detected the wireless networks available and I selected mine. I was then asked if I wanted to create a Home Group. I chose not to do so.
- Setup completed soon after. Total time after I did backup was less than an hour.
Overall, the setup process was very clean and easy. Here are my first impressions:
- Taskbar: I'm realy used to the old taskbar and like how it works. I set it up so that running programs appear on top and shortcuts are below. I organize my shortcuts in the order I want so they are easy to find. At first, I didn't like the combined short cuts/running programs on the task bar. I had it set to display the names of the running programs, which moved the icons to the right. After changing the settings to show only the icon, things are much better. It's easy to tell which programs are running. However, when you click a running Internet Explorer, you are prompted to select the tab to activate rather than just activating IE.
- Paint, WordPad, NotePad. Paint and WordPad now use the Ribbon in the UI. NotePad does not and it really looks dated because of that.
- My: The return of My is not welcome by me. When Vista was released, I blogged that I was happy My had been removed, but it's back again in My Documents, My Music, My Photos, and My Videos.
- Media Player: A new UI that looks dated.
- IE 8: Overall, I like IE. In fact, I use it as my primary browser. It does everything I need, so I don't see a reason to change to something else. I found a couple of web sites that had minor problems in IE 8. The biggest issue is that when I tried to log into my bank, I was told the browser wasn't supported and I could not log in. Good thing I still have an XP machine.
- Reboot: I installed updated (beta) drivers for my video card. Windows asked to reboot after. I was very impressed with the speed of the process.
- Aero Glass: I don't see the Aero Glass effects on windows. The window borders are not transparent. I'm not sure if it's the video drivers or a change in Windows.
Overall, Windows 7 seems to be faster and snappier than Vista and I'm happy with it so far. I'm still installing software, so that may change. If you've been debating/waiting to go to Vista, I say wait for Windows 7.
Labels: Windows 7
Monday, January 05, 2009
Microsoft Event in Salt Lake City
Morning: 8:00 - 12:30 Register at http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032399782&culture=en-US
Afternoon: 1:00 - 5:30 Register at http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032399784&culture=en-US
Both sessions will be at the Microsoft offices in the International Center.
Wednesday, October 29, 2008
Maintaining state in VFP COM+ components
We are looking to a way to distrubute the application server load (FoxPro MTDLL) by using a COM+ clustering configuration. Question: How FoxPro COM+ state will replicated through all cluster members? The COM+ are mainly to access MS SQL DB.
The answer is:
You can never count on state being replicated across servers. COM+ itself is designed to be stateless. You'll need to keep state information in a central location, for example SQL Server, or send all the state information every time you CREATEOBJECT() on a COM+ object.
Tuesday, October 28, 2008
Windows 7 Debuts
- New task bar similar to OSX Dock
- Jump lists
- New Start menu
- Windows Explorer Libraries
- Home Group Networking provides separate profiles for home and work. You'll be able to plug your work laptop into your home network and not compromise your work files
- Vista Sidebar is dead. Gadgets just go on the desktop
- New light weight media player
- System tray is locked down by default. You can decide what goes there.
- New Action Center. It's a superset of Vista Security Center. It will also queue up "toast" notifications.
- Touch UI is built in and usable with no code changes. One reporter said, "It's like a big friking IPhone".
- WordPad now supports ODF and has a new Ribbon interface, similar to Office 2007.
- Paint is finally updated and also Ribbon interface.
- UAC is more controllable and less intrusive. There is a UAC settings in Control Panel. You can set the level of UAC protection via a slider.
- Reduced memory footprint and disk IO
- Better power management. Microsoft spent time on end-to-end testing with playing a DVD on battery power.
- Faster boot
- Native Virtual Hard Drive monitoring. You can directly mount and boot from VHDs.
- Bit Locker works on USB devices
- Remote Desktop supports dual monitor
- Windows key + P goes into new Presenter Mode
- Shutdown button is customizable
Microsoft promised a beta early next year. It will be feature complete but will not be ready for performance testing. The beta will be public and available on microsoft.com. It will be followed by on Release Candidate, then RTM. While Microsoft did not give a date for release, the press is reporting it will be available late 2009.
More Win7 details are expected at the WinHEC conference in about 10 days.
Here are some links to screen shots and more info on Win7 and Office 14.
http://blogs.zdnet.com/microsoft/?p=1675
http://www.techflash.com/microsoft/Microsoft_taking_Office_to_the_browser.html
http://content.zdnet.com/2346-12354_22-244222.html
http://blogs.zdnet.com/Bott/?p=575
http://www.flickr.com/photos/longzheng
http://www.neowin.net/news/live/08/10/28/introducing-the-windows-7-ui
http://www.winsupersite.com/win7/
http://blogs.zdnet.com/microsoft/?p=1676
http://news.cnet.com/8301-10805_3-10074795-75.html?tag=newsLeadStoriesArea.0
http://news.cnet.com/8301-13860_3-10076864-56.html?tag=newsLeadStoriesArea.0
http://news.cnet.com/8301-10805_3-10076883-75.html?tag=newsLeadStoriesArea.0
http://www.winsupersite.com/office/office14_web_preview.asp
Labels: Windows 7
Friday, October 17, 2008
Winforms, ActiveX, WPF, and VFP
Labels: .Net, ActiveX, VFP, Winforms, WPF
Tuesday, October 14, 2008
Windows 7 to be called....
Friday, October 03, 2008
Utah Most Digital State
To reduce energy costs and carbon emissions, Utah Gov. Jon Huntsman Jr. announced in June that most state offices would be closed on Fridays. With more than 800 state government services online -- many boasting high user adoption rates -- Utah could close physical offices statewide without inconveniencing citizens." http://www.govtech.com/gt/418945?topic=117673
Thursday, October 02, 2008
Finally! An MSDN Event in Utah
The first 50 people to register will get a free copy of the book "Applications = Code + Markup" by Charles Petzold.
The event overview states:
Today’s applications need to do more than simply work. They need to drawRegister here.
in the user, and provide a differentiated experience. This means moving beyond
battleship gray forms boxy UIs and simple HTML forms, and providing a positive
user experience. Windows Presentation Foundation (WPF) and Silverlight 2
provide powerful capabilities to develop compelling user interfaces, on the
client and in the browser, respectively.
At the heart of
these rich applications is data. There are a growing number of choices of
technologies available to access data, create database abstraction layers and
expose data as services. Visual Studio 2008 (and .NET Framework 3.5) SP1
include the production release of the ADO.NET Entity Framework, ADO.NET Data
Services, as well as some enhancements to the Web Programming model
(REST-Friendly) in WCF.
In this session, Rob Bagby will
examine the core concepts of WPF and Silverlight such as layout panels, data
binding, styles and control templates, and will use them to develop an
application UI from the ground up. Rob will further examine and demystify
the options available to you to expose data to your rich applications.
Wednesday, October 01, 2008
Microsoft MVP Award
Wednesday, September 03, 2008
Is Google the new evil empire?
And for the record, I don't agree with the journalists and prognosticators (weathermen are more accurate) that say Chrome will be the end of Windows and IE. We've heard it all before. It didn't happen then and it won't happen now.
Ken Levy Joining EPS
Labels: FoxPro
Thursday, August 28, 2008
Don't FILTER Data in a Grid


Labels: VFP
Why Vista is more stable than XP
For years, Microsoft has used the "Dr. Watson" tool to get back information about system crashes. You are probably familiar with the dialog that is displayed. You know, the one that says, "This application has performed an illegal operation. Would you like to send information to Microsoft?" Turns out, that information had lots of good stuff in it. Microsoft learned that 80% of crashes were caused by third party software and a very high percentage of that was caused by misbehaving device drivers. The result was often a system crash, the dreaded blue screen of death.
Many times, the reason this happened is because the Windows kernel and the device driver were running in the same ring on the CPU. The rings are numbered 0-4 on Intel chips. Ring 0 is closest to the hardware, meaning anything running in ring 0 has the most direct access to the hardware. Anything in ring 3 has the least direct access. Under Windows XP and earlier, the kernel and the device driver both ran in ring 0. User applications ran on ring 2. Rings 1 and 3 were unused.

You may think this is crazy. Why not run device drivers in a different ring? Well, it all comes down to the early days of Windows. There were more than Intel and AMD chips around. Windows also ran on the Alpha computer from Digital Equipment Corp. (DEC). Turns out, the CPU in the Alpha only had two rings, not four, so to simplify coding, Microsoft decided that they would only use two rings on the Intel chips. However, in 1998, DEC was acquired by Compaq (which later was acquired by HP) and eventually the Alpha was killed.
Now, when Microsoft was designing Vista, one of the goals was to make the OS more stable. They looked at all the data on blue screens. Even though the large majority of them was caused by third party drivers, most user blamed Microsoft for them. With the Alpha out of the picture, the decision was made to move device drivers to ring 1.

The benefit is that if a driver crashes, it is now less likely to cause the entire system to crash. The downside is that vendors had to rewrite many device drivers so they would run correctly in ring 1...and that led to many people saying that Vista device driver support was horrible. They still blamed Microsoft for it, but did so without understand why Microsoft changed how device drivers were to be implemented.
Today, most of the device driver issues have been resolved, unless you have really old hardware. There are still other areas that people hate about Vista, particularly UAC, but again, it's there for a reason. So, before you just throw in the towel and bash Vista, think about what the design goals may have been for the "feature" and try to look at it from a different perspective.
Update: Andrew MacNeill posts "Craig - this is what they should be doing instead of Mojave...yes, it's techy - but it explains it right." I meant to put this in my original post.
Wednesday, August 20, 2008
Speaking tonight in Utah county
Thursday, July 31, 2008
Comparing Files
Wednesday, July 16, 2008
Utah User Groups
Wednesday, July 09, 2008
Error messages

Tuesday, July 08, 2008
Sandcastle is back
Thursday, July 03, 2008
Beware of Microsoft Equipt
Wednesday, July 02, 2008
C# to Excel Interop Color Bug
curRange.Interior.Color = Color.LightYellow.ToArgb();it comes out as light cyan. I tried Color.Yellow and it comes through as Cyan. The solution is to use Cyan:
curRange.Interior.Color = Color.LightCyan.ToArgb();to get light yellow. I added a comment to the code about why the colors are reveresed.
Wednesday, June 25, 2008
Documenting a SQL Server Database
* Document SQL tables into Excel
LOCAL oXl AS Excel.Application
LOCAL oSheet AS EXCEL.Sheets
LOCAL oActiveSheet AS EXCEL.Worksheet
oXl = CREATEOBJECT("Excel.Application")
oXl.Visible = .T.
oWkb = oXl.Workbooks.Add()
oActiveSheet = NULL
lnHandle = SQLSTRINGCONNECT("Driver=SQL Native Client;Server=.;database=Northwind;Trusted_Connection=yes")
SQLEXEC(lnHandle, "Exec sp_tables", "cTables")
SELECT cTables
INDEX ON Table_Type TAG TableType DESCENDING
SCAN FOR Table_Type = "TABLE"
oSheet = oXl.Sheets.Add()
loActiveSheet = oXl.ActiveSheet
SQLEXEC(lnHandle, "Exec sp_columns '" + ALLTRIM(cTables.Table_Name)
+ "'", "cColumns")
* Add the top two rows with table information after adding the column stuff
* so that the columns will autosize properly
XLAddColumn(loActiveSheet, "cColumns")
loActiveSheet = XLAddTable(loActiveSheet, cTables.Table_Name)
ENDSCAN
SQLDISCONNECT(lnHandle)
oSheet = NULL
oWkb = NULL
oXl = NULL
*********************************
FUNCTION XLAddTable(toActiveSheet, tcTableName)
LOCAL lcTable
LOCAL toActiveSheet AS EXCEL.Worksheet
lcTable = ALLTRIM(tcTableName)
* Handle the sheet title (table name)
toActiveSheet.Name = lcTable
toActiveSheet.Range("A1") = ALLTRIM(tcTableName) + " Table"
toActiveSheet.Range("A1").Font.Name = "Arial"
toActiveSheet.Range("A1").Font.Size = 14
toActiveSheet.Range("A1", "F1").Interior.Color = 12632256
toActiveSheet.Rows(1).RowHeight = 24.75
toActiveSheet.Range("A1:F1").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("A1:F1").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("A1:F1").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("A1:F1").Borders(10).Color = RGB(0, 0, 0)
* Column Titles
toActiveSheet.Range("A2") = "Column Name"
toActiveSheet.Range("A2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("A2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("A2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("A2").Borders(10).Color = RGB(0, 0, 0)
* Data type
toActiveSheet.Range("B2") = "Data Type"
toActiveSheet.Range("B2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("B2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("B2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("B2").Borders(10).Color = RGB(0, 0, 0)
* Precision
toActiveSheet.Range("C2") = "Precision"
toActiveSheet.Range("C2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("C2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("C2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("C2").Borders(10).Color = RGB(0, 0, 0)
* Length
toActiveSheet.Range("D2") = "Length"
toActiveSheet.Range("D2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("D2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("D2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("D2").Borders(10).Color = RGB(0, 0, 0)
* Scale
toActiveSheet.Range("E2") = "Scale"
toActiveSheet.Range("E2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("E2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("E2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("E2").Borders(10).Color = RGB(0, 0, 0)
* Comments
toActiveSheet.Range("F2") = "Comments"
toActiveSheet.Range("F2").Borders(7).Color = RGB(0, 0, 0)
toActiveSheet.Range("F2").Borders(8).Color = RGB(0, 0, 0)
toActiveSheet.Range("F2").Borders(9).Color = RGB(0, 0, 0)
toActiveSheet.Range("F2").Borders(10).Color = RGB(0, 0, 0)
* Format the cells
toActiveSheet.Range("A2", "F2").Font.Bold = .T.
toActiveSheet.Range("A2:F2").VerticalAlignment = 2
toActiveSheet.Range("A2", "F2").Interior.Color = 8454143
toActiveSheet.Rows(2).RowHeight = 26.25
toActiveSheet.Columns("B").Autofit()
toActiveSheet.Columns("C").Autofit()
toActiveSheet.Columns("D").Autofit()
toActiveSheet.Columns("E").Autofit()
toActiveSheet.Columns("F").Autofit()
RETURN loActiveSheet
ENDFUNC
*********************************
FUNCTION XLAddColumn(toSheet, tcColCursor)
LOCAL lnWorkArea
LOCAL toSheet AS EXCEL.Worksheet
lnWorkArea = SELECT()
tcCell = ""
SELECT (tcColCursor)
SCAN
* Column name
tcCell = "A" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell) = ALLTRIM(Column_Name)
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
* Data Type
tcCell = "B" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell) = ALLTRIM(Type_Name)
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
* Precision
tcCell = "C" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell) = Precision
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
* Length
tcCell = "D" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell) = Length
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
* Scale
tcCell = "E" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell) = Scale
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
* Comments
tcCell = "F" + ALLTRIM(STR(RECNO() + 2))
toSheet.Range(tcCell).Borders(7).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(8).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(9).Color = RGB(0, 0, 0)
toSheet.Range(tcCell).Borders(10).Color = RGB(0, 0, 0)
ENDSCAN
toSheet.Columns("A").Autofit()
SELECT (lnWorkArea)
ENDFUNC
Friday, June 13, 2008
VS2008 & .Net 3.5 SP1 Beta
Thursday, June 12, 2008
Speaking tonight Utah .Net User Group
NOTE THE LOCATION CHANGE FOR TONIGHT
The meeting starts at 6:00 at the Microsoft offices, 123 Wright Brothers Drive, Salt Lake City. This is in the International Center, just west of the airport.
Monday, June 02, 2008
Desert Code Camp Followup
Subscribe to Posts [Atom]
