LogiXML: Condition Vs Show Mode

August 10, 2010

I was developing a series of reports that allowed you to click through to: Year > Month > Week > Day > Hour > Minute. Came an idea. You know some of these drill through would do ok as standalone. I start adding the standalone parts to do the needed selections. I did Month and Week and noticed it looks pretty ugly having those input elements up there when I don’t want them when I come from another report. Plus since I’m loading those combo boxes with data from the SQL Server it does take a little bit more time for the report to show up. First thought, Show Modes.

LogiXML (Logi) has a property on most elements that is called simply “Show Modes”. For the elements that do not have it you stick them in a Div and set it on the Div. A show mode basically tells Logi what to show on the page. They are just a comma separated string of values telling what Modes an element can be shown in. If there are no modes indicated it will be shown in all modes. If “None” is indicate the element will never just show up on its own. The string of values is CasE SeNSitive and does not seem to ignore white space. How do you use a Show Mode?

When you call a report in LogiXML one of the parameters that can be passed is its show mode. In fact you can pass this with a series of display oriented actions such as exporting to PDF or Excel. Why would you want to do that? The pretty graph you made is probably not what a user is Exporting to Excel for. They want that DataTable you put on there that gives in number what your pretty graph says, conversely you could have the Excel export button call a different report that just is the DataTable to export if you are not showing it at all <Wave hand, Wave Hand>. Another example would be not showing the input elements on the PDF, Excel, or the Report at all as in my case. If you decide to use Show modes being consistent between reports will save you a bunch of headaches. In common I’ll use Web, PDF, Excel, and Print. Now back to the story at hand.

Show Mode great solution… and then the testing. Click, Click. Cool there not showing up on the Month. Click. Wait… Wait… This seems slower than it should be without the Input elements. Oh well, maybe it doesn’t work like I think it does. I’ll just remark them out at the moment. A few days later.

Checking the Logi Forums. Seeing if I got some answers or can help. Hey what’s this? Wait did this just say that Show Modes just hide things. It seems that Show Modes are done on the client side. Logi will do all the processing like everything will be displayed because everything very well could be and sends everything over. You’re really not gaining any performance from Show Modes. It’s purely visual in the end. Well that stinks but alas the post brought hope. Divs have a property called Condition.

What is a Condition? Think about an if statement without the If and brackets and that’s a Condition. A condition simply tells Logi when an element that has one will be displayed. If blank it will always be displayed, assuming the Show Modes or something else doesn’t hide it. A Condition can be VB Script or Javascript. Which you need to remember with working with Tokens because Tokens are just text substituted in to the expression aka VB Script or Javascript doesn’t know that Tom is not an int. You need to remember to double quote your strings for comparisons. “Wait a sec. Show Modes tells Logi when an element should be Hidden.” Correct but, Show Modes does that on the Client Side. Condition on the other hand happens on the Server Side. Why is that important? Let’s go back to my original problem.

I had a cool Drill Through Report that ran pretty fast until I put my SQL loaded input elements. I got rid of the generalization from the report to bring the speed back up in its main purpose. Being a developer I like to reuse things and in general I’m lazy, like Mathematicians and Physicists. Using Conditions I can bring the lazy back. Since it does it on the Server side Logi knows there isn’t any reason to do the work to obtain the objects in my Input Elements div if the condition doesn’t allow them to be shown. I guess Logi’s lazy as well :D. How did I take advantage of this modern marvel of Lazyness?

It was a simple. In the Condition Attribute of my Div I put in the code ”@Request.ShowInput~ == 1″. In my Default Parameter, if you don’t just add this to your reports I recommend it, I have ShowInput set to 1. This means that if I just run this report straight up the input elements will show. Now when I do my Drill Through I simply pass as a parameter ShowInput set to any number but 1, I use 0. You could even make this more granular if you like. Have different input elements in different divs and do a bit more complex logic.

In the end Show Modes hide items that are already to the client. They are done client side and are good for getting rid of or showing elements needed in the different modes of exports. Condition is server side and is good for data driven hiding and hiding taxing parts of your report that are not needed in the current flavor of the report.


Logi Documentation on Condition which I found after writing this pretty much an expanded version of this blog post.

The Documentation on Show Modes.

Division Documentation.

Documentation on Information Passing.

Export to Excel

Export to PDF

General Chart Documentation

Logi Forums


That should cover everything I mentioned.









What’s the Worst that Could Happen in 2 Days at devLINK?

August 10, 2010

I was heading to work this morning with the thoughts of “What could have happened in 2 days at work?” Apparently a lot.

I get in and go about my day. I normally get my timesheet in on Friday but I was at devLINK so I needed to get it in today. Time in check. Talked about SQL Saturday with my DBA and then sent my time to my hiring boss.

Auto Response.

That’s strange I saw him go in. What does it say. “I will be leaving {My current company} for a new opportunity on August 13th.” Hey DBA have you seen this? Nope I wonder if the rest of the team has seen this. To the team.

Welp, everyone in the team has found out one way or another. Ok, I have a few days for some transition and like. Wrong. There seems to be a policy in place that when you give your resignation the VP has the option of having you vacate the presences that day. You still get paid your 2 weeks and like. Oh man… My boss was the only one with a good solid grand plan for the place. Alright there getting us all together.

I was hired to do C# and .NET 3.5. What I have been doing is SQL and LogiXML reports. What I learn from this meeting is I’m the report guy. Which means I’m forever doomed to not work with new technologies in a meaningful way. At least that’s how I see it normally working. I believed in my boss as well. Time went on and on of my coworkers who graduated the same time is trying to fill the role of my former boss already. I come to find out that now the rest of management is taking a much greater interest in reporting and they want a “menu.” That’s great and everything but I have no real reports to serve because there has been no time from crisis to crisis to talk about how we want to lay things out, how do we want the menuing to work , Security, etc.

This be fine if my coworker would leave me at it. I can design things well. Though to tell you the truth without my hiring boss there I don’t know if I’ll take the position after my contract is up.

Lessons from devLINK

August 9, 2010


Went to devLINK this past week where I learned about many different things and how far behind in general most of the companies I work for are to current technology.  It is hard to convince in this given day to refactor what is not broken.  Even if the newer technology is easier to work with and prettier in general.  That did not deter my attendance.

Once there I attend various demonstration.  I have an interest in Window’s Phone 7 programmer due to liking the previous mobile architecture programming.  Unfortunately my job influenced stagnation of the last few years have put me severally behind the curve.  I mean to rectify this situation.

One of the big things I took away from devLINK was to blog.  I have this blog but as you can tell.  I have barely used it.  There are lots of good things that I have learned in my recents journeys that others may benefit from.  Namely dealing with LogiXML because that seems to be the majority of my work at the moment.  Eventually it should be web developement but we’ll see.  Those types of posts will be a little dumpish because it will happen when I’m thinking about it at work. So what did I really learn at devLINK?

  • Bindings are cool.  (Two Way more so.)
  •  MVVM seems to be the architecture of choice at the moment. 
  • MVC sessions are always when much cooler sessions are. 
  • .Net Ninja’s do not survive 2 year olds well. 
  • Yes, You can make a c64 emulator in Silverlight 4. 
  • Windows Phone 7 likes to kill things which means Tombstoning. 
  • I need to learn XNA and Silverlight if I want to develope for Phone 7. (There is a conceptual simple game I like to have on the Marketplace at launch.) 
  • Figured out how Ajax actually works piping wise. 
  • jQuery is cool and I should find a way to use it.
  • DevLINK Planners are not very good with Logical flow of people, neither is the Cafeteria Designer at Lipscomb.
  • That Pete Brown would put all his eggs in 1 basket if the publisher would let him. (Points if you get the reference.)
  • Technical book publishers must have a going contest for obscure themes or the most use of Red and Black.
  • Give me Shirts or Give me Freedom (More Swag Please.)
  • People don’t avoid me like the Undead Cursed. (Ran into a few past coworkers.  One of the best things of the conferenct. )
  • “If there one thing I like you to take from this presentation it’s …” forgotten.
  • The general population of the world conveys information slowly faster than I can write.
  • If you are a Speaker you get to play with the New Toys.
  • I’m actually out going comparatively…(at least I’ll interact with a speaker)
  • I seem to be a Builder.  Just not overly self motivated.
  • WPF is cool.  Sad thing no one is really using it.
  • HTML 5 is going to be a pain in the … for a while.  Though in the long run I think this moving of the baseline will be better for everyone.
  • Phone 7 is shipping with essentially Silverlight 3.
  • Iconoclasts will not be Automated away.
  • Things riding Turtles with the right Music are cute.
  • Hotel Wireless may bring back Dialup usage.
  • devLINK iPhone app be cool.  Needs tweaking for next year but I like to be on Phone 7.  Maybe they’ll let me write one…
  • Lambda seems to be shortcut functions which I need to learn.

Overall it was a good conference.  Probably go back next year.  Hopefully there will be more I know so it will be a little less new learning.  I know that sounds bad but, it be a good place to be.

Now to the Linking.  I’ve got plenty of links from devLINK to check out so I figure why not put them here and be done with it? I can find them easily and others can following along. (Fair warning… I like outlines.)

  1. Opening Keynote
    1. http://www.interknowlogy.com/
    2. http://www.sqlsaturday.com/51/schedule.aspx (SQL Saturday)
  2. Locking and Blocking SQL
    1. http://webbtechsolutions.com/blog/
  3. The Brian H. Prince One (Originally “How to be a Better Developer”)
    1. http://www.brianhprince.com/
  4. Windows Presentation Foundation for Developers
    1. http://www.skimedic.com/blog/
    2. http://wpf.codeplex.com/
  5. HTML 5
    1. http://weblogs.asp.net/toddanglin/
    2. http://telerikwatch.com/
    3. http://ishtml5ready.com/
    4. http://ishtml5readyyet.com/
    5. http://html5test.com/
    6. http://www.html5rocks.com/
    7. http://www.chromeexperiments.com/
    8. http://www.caniuse.com/
    9. http://www.browserscope.org/
    10. http://html5demos.com/
  6. Does your Job Match
    1. http://thekelsogroup.com/
    2. http://blog.thekelsogroup.com/index.php/builders-vs-maintainers
  7. C# Dynamic Type and Dynamic Object
    1. http://www.imaginativeuniversal.com/blog/Default.aspx
  8. Architecturing Silverlight Applications
    1. http://www.galasoft.ch/
    2. http://silverlightmvvm.codeplex.com/
    3. http://www.nikhilk.net/
    4. http://mef.codeplex.com/
    5. http://caliburn.codeplex.com/
    6. http://wildermuth.com/
  9. Advance Window Phone 7
    1. http://phone.codeplex.com/
    2. http://farseerphysics.codeplex.com/
    3. http://www.microsoft.com/downloads/details.aspx?familyid=1EA49236-0DE7-41B1-81C8-A126FF39975B&displaylang=en
    4. http://www.microsoft.com/downloads/details.aspx?familyid=9442B0F2-7465-417A-88F3-5E7B5409E9DD&displaylang=en
    5. http://www.imaginativeuniversal.com/blog/Default.aspx
  10. Windows Phone 7
    1. http://creators.xna.com/en-US/
    2. http://www.silverlight.net/getstarted/devices/windows-phone/
    3. http://10rem.net/
  11. MVVM (Move’em) WPF
    1. http://www.skimedic.com/blog/
    2. http://www.codesmithtools.com/
    3. http://www.microsoft.com/downloads/details.aspx?FamilyID=F1AE9A30-4928-411D-970B-E682AB179E17&displaylang=en
    4. http://search.barnesandnoble.com/The-Pragmatic-Programmer/Andrew-Hunt/e/9780201616224/?itm=1&USRI=Pragmatic+Programmer
  12. jQuery
    1. http://jquery.com/
    2. http://docs.jquery.com/Main_Page
    3. http://www.kevgriffin.com/blog/
    4. http://plugins.jquery.com/
    5. http://jqueryui.com/themeroller/
    6. http://jqueryui.com/
    7. http://getfirebug.com/
  13. C64 in Silverlight
    1. http://10rem.net/
    2. http://silverlightc64.codeplex.com/
  14. Ajax w/ jQuery
    1. http://www.fiddler2.com/fiddler2/
    2. http://www.kevgriffin.com/blog/
    3. http://getfirebug.com/
    4. http://nerdvittles.com/
  15. Graphical SQL
    1. http://www.bradmcgehee.com/
  16. 10 Things Every WPF and Silverlight Devlopers need to know
    1. http://10rem.net/
  17. Closing Keynote
    1. http://www.tedneward.com/

I’m thinking to get this all started a bit better and to help my understanding of what I learned at devLINK I’m going to blog about each session over time. To get what I got out of it and to help solidify things.

The Difference Between Reading

April 23, 2010

It’s been said by a lot of very smart professional people that there is a clear and definable difference between hearing and listening.  I agree.  Hearing is just the ability to notice and quantify sound.  Listening is the ability to remember and do something meaningful with those sounds.  Using that principle shouldn’t the same hold true for Reading?

I always feel like I have to keep re-explaining things to people.  I make a labor to be thorough the first time around to give everyone a good point of reference for later and so I don’t have to go through it again.  An example of something recent. 

I need a certain FTP client because it was integral to the piece of software I was supporting and making changes to.  If I had a longer deadline I would have probably talked with my boss along the vein of “I don’t really like using third-party fo thing like this.  Can we take the time to maybe find something that doesn’t cost and achieves the same results?”, in this case it would be the ability to SFTP.  As it stands this project has already slipped by 2 weeks from where I Originally thought it would be.  I wrote an email out to procure the needed license because mine’s gone wonky.  This is an edited version of what was written.

Hello, I had a licensed copy of <FTP Software> on my box to work the {Current Project} and the {Past Project I used it for}.  I’ve been using it for the last year or so and haven’t had much need to in the last month and now it’s claiming that I installed an evaluation copy on 3/21/2010 which makes no sense because I installed it a long time ago.  Just started today.  I can’t test this service fully without this piece. 

Also when the service is done it will need to be moved from where it currently resides,{Old Server}, and put onto {New Server} with the rest of the newer Services.  It will need a license as well.


So I send that over.  I get a call asking whether this need to be on the server or my local box.  I thought it was pretty obvious from the sentence “I had a licensed copy of on my box to work the {Current Project} and the {Past Project I used it for}.”   I had the copy on my local box and it’s not working is the problem so, yeah my local box.  I get another call and ask what I’m using it for.  From above I’m using as pieces for the two projects.  This is a mild example to say the least but I get this one the other day.

A colleague of mine had a bit of work in something she didn’t know sprung on her.  Finding out that I knew a few things about it I was asked to help.  After a bit we established that we didn’t have the information to do the task.  This email was sent to the ones who should have that knowledge.


 I just sat with Ceric for a while and apparently the parts in double brackets need to be translated or set as static before we can proceed with a test mailing. We need to know the actual links that are represented. Perhaps Ceric can state this better for me if I’m confusing anyone. Basically, my understanding is we either need to set the double bracket items as static or else give them the proper nomenclature.

 {Tag for the Page here}

I need to try to place a test order today. Can you guys please look into this asap and help me out? I have attached the zip file for the template, however I do not currently have a test list.


 {Other Employee}

There we go to the point for the most part.  The response.

Your variable insert fields in HTML ex: {Vendor Nomenclature} need to map to fields in your data file, etc as we discussed before. {eMail Vendor} doesn’t understand {Nomenclature we were given in the file}.

{Fellow Employee}

For starters we got this straight from the client who is supposed to be sending us templates ready to go and it was {Fellow Employee} ‘s team that was working with them.  On to the point of this.  In the originating e-Mail the first sentence is, “I just sat with Ceric for a while and apparently the parts in double brackets need to be translated or set as static before we can proceed with a test mailing.”  If you were doing the reading equivalent of listening right there would have told you that, “Hey I’ve got a lot of Variables that are in a different form then I was expecting.” Next sentence is, “We need to know the actual links that are represented.”  so you could read that as “Is this something you guys discussed with them that we were doing different then what I expected?  If so can you translate them or send me the translation?”  Maybe I’m in the Minority but I thought it was fairly obvious that we knew that was wrong and we needed to know what was being discussed with the client.  Neither my coworker or I had been part of the design or actual implementation of this project.

In the end I think that people should really read items for comprehension.  It might be just the line of work I’m in but, every phrase matters and is a wealth of information.

Why Start a Blog?

April 22, 2010

Why start a blog?
For social interaction. I’m finding that I need to get things out with the possibility of response.

What about Twitter?
I like Twitter but I wanted to start expanding things out and branch out bit in the different types of media.

I’m thinking about recording some of my Boss fights and posting them. Then their’s the trip and the like.

Also like to have a place that screams me.

Hello world!

April 22, 2010


This is the default post for WordPress.  Hello World! definitely a developer thing.  I’m sure there some for loops in the background that use i and j.

There is suppose to be theming and like which I’m excited about.  I like to get my CSS on I don’t get to play with it nearly enough in my current work.