<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Miky Schreiber's Blog</title>
    <link>http://www.miky-schreiber.com/Blog/</link>
    <description>Business Intelligence, Analysis Services, MDX, DataWarehousing and more...</description>
    <language>en-us</language>
    <copyright>Miky Schreiber</copyright>
    <lastBuildDate>Thu, 09 Jul 2009 11:19:26 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>miky@zahav.net.il</managingEditor>
    <webMaster>miky@zahav.net.il</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MikySchreiberBlog" type="application/rss+xml" /><item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=0e4490ed-7f54-4883-b542-2595a0d95323</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0e4490ed-7f54-4883-b542-2595a0d95323</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The error function in Informatica can be very useful when you want to know why you
have failed rows without failing the whole process. The use of the function is ERROR(string).
Calling this function will make the error appear in the session log and the row will
be ignored. For example: IIF(my_date_field &gt; sysdate, ERROR('Futuristic Date'),
my_date_field). This will ignore futuristic dates and show them only in the session
log. By the way, you can declare default value for the port and the process will replace
the ERROR with the default output.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=0e4490ed-7f54-4883-b542-2595a0d95323" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/K0OOHEXhqko" height="1" width="1" /></body>
      <title>Using the Error function in Informatica</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/K0OOHEXhqko/PermaLink,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</link>
      <pubDate>Thu, 09 Jul 2009 11:19:26 GMT</pubDate>
      <description>&lt;p&gt;
The error function in Informatica can be very useful when you want to know why you
have failed rows without failing the whole process. The use of the function is ERROR(string).
Calling this function will make the error appear in the session log and the row will
be ignored. For example: IIF(my_date_field &amp;gt; sysdate, ERROR('Futuristic Date'),
my_date_field). This will ignore futuristic dates and show them only in the session
log. By the way, you can declare default value for the port and the process will replace
the ERROR with the default output.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=0e4490ed-7f54-4883-b542-2595a0d95323" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</comments>
      <category>BI;BI/Informatica</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,0e4490ed-7f54-4883-b542-2595a0d95323.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A wonderful idea I heard of is to turn to full screen mode in Internet Explorer when
entering the Dashboard site. It can make a better user experience. Try it yourself
and you'll see the huge difference.<br />
How will we do that? We will add a JavaScript code to the first page of the dashboards
site and after that we'll ask our system administrator to enable this script for us.
Let's get to work: 
</p>
        <p>
          <u>Step 1 - The JavaScript</u>
        </p>
        <p>
        </p>
Create a new HTML component in the dashboard page. Edit it and click on the "View
Source" button (the one with the &lt;&gt;). Enter the following code:<br />
&lt;SCRIPT&gt;<br />
var wscript = new ActiveXObject("Wscript.shell");<br />
wscript.SendKeys("{F11}");<br />
&lt;/SCRIPT&gt; 
<p>
It will simulate the user hitting the F11 key which will turn the IE to
fullscreen mode. The only problem is that when viewing the page, you'll see this message:
</p><p align="center"><img src="http://www.miky-schreiber.com/Blog/content/binary/ActiveXPromt.JPG" border="0" /></p><p>
This takes us to step 2.
</p><p><u>Step 2 - Enabling ActiveX</u></p><p>
First, I'll show you how to do this on your local maching and then you'll ask your
system administrator to enable it on all the machines in the organization using distribution.
Enter the Tools menu in IE and hit Internet Options. Click on the Security tab and
make sure the "Trusted Sites" zone is selected. Note that the Panorama Dashboards
site is already defined as trusted site (if the initial installation of Panorama Dashboards
made according to the installation manual. If it's not, you have a problem). Click
on "Custom Level" and Enable the "Initialize and script ActiveX ..." option:
</p><p align="center"><img src="http://www.miky-schreiber.com/Blog/content/binary/EnableActiveXIE.JPG" border="0" /></p><p align="left">
Now, you'll see that there's no promting for ActiveX controls. Show this to your sys
admin and ask him to make this happen on every user's machine (using distribution,
of course). As I said, the dashboards site is a trusted site so I can't see any problem
to enable this. The result is very beautiful and can make a lot of users happy. Note
that you can also add a button in your page that will call the same script in order
to return to normal mode.
</p><p align="left">
Enjoy.
</p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/yapf9gQ7Y9c" height="1" width="1" /></body>
      <title>Entering the Dashboards Site in Full Screen Mode</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/yapf9gQ7Y9c/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</link>
      <pubDate>Wed, 17 Jun 2009 08:08:44 GMT</pubDate>
      <description>&lt;p&gt;
A wonderful idea I heard of is to turn to full screen mode in Internet Explorer when
entering the Dashboard site. It can make a better user experience. Try it yourself
and you'll see the&amp;nbsp;huge difference.&lt;br&gt;
How will we&amp;nbsp;do that? We will add a JavaScript code to the first page of the dashboards
site and after that we'll ask our system administrator to enable this script for us.
Let's get to work: 
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Step 1 - The JavaScript&lt;/u&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
Create a new HTML component in the dashboard page. Edit it and click on the "View
Source" button (the one with the &amp;lt;&amp;gt;). Enter the following code:&lt;br&gt;
&amp;lt;SCRIPT&amp;gt;&lt;br&gt;
var wscript = new ActiveXObject("Wscript.shell");&lt;br&gt;
wscript.SendKeys("{F11}");&lt;br&gt;
&amp;lt;/SCRIPT&amp;gt; 
&lt;p&gt;
It will simulate the user&amp;nbsp;hitting the&amp;nbsp;F11 key which will turn the IE to
fullscreen mode. The only problem is that when viewing the page, you'll see this message:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.miky-schreiber.com/Blog/content/binary/ActiveXPromt.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This takes us to step 2.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Step 2 - Enabling ActiveX&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
First, I'll show you how to do this on your local maching and then you'll ask your
system administrator to enable it on all the machines in the organization using distribution.
Enter the Tools menu in IE and hit Internet Options. Click on the Security tab and
make sure the "Trusted Sites" zone is selected. Note that the Panorama Dashboards
site is already defined as trusted site (if the initial installation of Panorama Dashboards
made according to the installation manual. If it's not, you have a problem). Click
on "Custom Level" and Enable the "Initialize and script ActiveX ..." option:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.miky-schreiber.com/Blog/content/binary/EnableActiveXIE.JPG" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
Now, you'll see that there's no promting for ActiveX controls. Show this to your sys
admin and ask him to make this happen on every user's machine (using distribution,
of course). As I said, the dashboards site is a trusted site so I can't see any problem
to enable this. The result is very beautiful and can make a lot of users happy. Note
that you can also add a button in your page that will call the same script in order
to return to normal mode.
&lt;/p&gt;
&lt;p align=left&gt;
Enjoy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/Web</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=9ab606eb-512e-43b8-9a34-f32dd5324406</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9ab606eb-512e-43b8-9a34-f32dd5324406</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When adding parameters to your view, you'll see that they appear in the upper-left
corner of the grid/crosstab. In the NovaView Desktop program it can be tolerated,
but in the Web Access or in the Dashboards web site it cannot be. It's very annoying
and we can't let the users see our inside use of the parameters. What can we do?
</p>
        <p>
The solution is very simple: We need to change the skin of the view/dashboards page/dashboards
site (depends on how you work) and make the grid corner font's color identical to
the color of the grid's background. That way, the users will not see the text in the grid's
corner. The way of doing it is also not hard:
</p>
        <p>
          <em>Remember: Always backup your files before modifying them</em>. In the panorama
folder, enter E-BI/Config/Skins and enter your skin's folder. In the classic way of
work, you're using the default skin which can be changed in the Dashboards settings
section. I recommend you to make a new skin out from the default one (see <a href="http://kb.panorama.com/index.php?option=com_content&amp;task=view&amp;id=185&amp;Itemid=2">here</a>),
update the skin's name in the Dashboards settings section and not touching the default
skin itself. In your new skin, change the GridCornerFont setting so that its
color will be the color of the grid's corner's background. You can see the color of
the grid's corner in the GridTopLeftBackground setting. For example, if GridTopLeftBackground=(194,210,226),
then if you set GridCornerFont=((Arial,1,R),(194,210,226)) then no-one will see
the text over there.
</p>
        <p>
Enjoy.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9ab606eb-512e-43b8-9a34-f32dd5324406" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/mic_H9WBBoA" height="1" width="1" /></body>
      <title>Panorama's Grid Corner Problem</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/mic_H9WBBoA/PermaLink,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</link>
      <pubDate>Tue, 09 Jun 2009 12:55:27 GMT</pubDate>
      <description>&lt;p&gt;
When adding parameters to your view, you'll see that they appear in the upper-left
corner of the grid/crosstab. In the NovaView Desktop program it can be tolerated,
but in the Web Access or in the Dashboards web site it cannot be. It's very annoying
and we can't let the users see our inside use of the parameters. What can we do?
&lt;/p&gt;
&lt;p&gt;
The solution is very simple: We need to change the skin of the view/dashboards page/dashboards
site (depends on how you work) and make the grid corner font's color identical to
the color of the grid's background. That way, the users will not see the text in the&amp;nbsp;grid's
corner.&amp;nbsp;The way of doing it is also not hard:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Remember: Always backup your files before modifying them&lt;/em&gt;. In the panorama
folder, enter E-BI/Config/Skins and enter your skin's folder. In the classic way of
work, you're using the default skin which can be changed in the Dashboards settings
section. I recommend you to make a new skin out from the default one (see &lt;a href="http://kb.panorama.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=185&amp;amp;Itemid=2"&gt;here&lt;/a&gt;),
update the skin's name in the Dashboards settings section and not touching the default
skin itself. In your new skin, change the GridCornerFont setting&amp;nbsp;so that its
color will be the color of the grid's corner's background. You can see the color of
the grid's corner&amp;nbsp;in the GridTopLeftBackground setting. For example, if GridTopLeftBackground=(194,210,226),
then if you set&amp;nbsp;GridCornerFont=((Arial,1,R),(194,210,226)) then no-one will see
the text over there.
&lt;/p&gt;
&lt;p&gt;
Enjoy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9ab606eb-512e-43b8-9a34-f32dd5324406" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</comments>
      <category>BI;BI/Panorama</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,9ab606eb-512e-43b8-9a34-f32dd5324406.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
</p>
        <p>
This was caused because the client side and the server side were using different
encodings. The correct way of doing this is wrapping the strings using the JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/XRK2lH7NJxc" height="1" width="1" /></body>
      <title>Passing Strings in the Query String</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/XRK2lH7NJxc/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</link>
      <pubDate>Tue, 09 Jun 2009 12:24:55 GMT</pubDate>
      <description>&lt;p&gt;
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
&lt;/p&gt;
&lt;p&gt;
This was caused because&amp;nbsp;the client side and the server side were using different
encodings. The correct way of doing this is&amp;nbsp;wrapping the strings using the&amp;nbsp;JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</comments>
      <category>Programming;Programming/.Net;Programming/Web</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=e52c58d8-4e4f-4077-9656-5242bcf49f7c</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e52c58d8-4e4f-4077-9656-5242bcf49f7c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Trying to build ASP.NET page with Panorama
applets, I could not understand why the applets appeared blank when I put them in
tables. After a while, I've found that this got something to do with the DOCTYPE declaration
that each aspx has in its head (<span class="doctype">!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>).
When I removed this line, it all seems to work fine. Digging into this <a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">DTD
specification</a>, I can't see anything that will prevent from applet tag to appear
inside td tag. Strange.<br /><p /><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e52c58d8-4e4f-4077-9656-5242bcf49f7c" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/rd7IKsDxGE8" height="1" width="1" /></body>
      <title>Using Applet Tag in ASP.NET Pages</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/rd7IKsDxGE8/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</link>
      <pubDate>Mon, 01 Jun 2009 11:32:34 GMT</pubDate>
      <description>Trying to build ASP.NET page with Panorama applets, I could not understand why the applets appeared blank when I put them in tables. After a while, I've found that this got something to do with the DOCTYPE declaration that each aspx has in its head (&lt;span class="doctype"&gt;!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;).
When I removed this line, it all seems to work fine. Digging into this &lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;DTD
specification&lt;/a&gt;, I can't see anything that will prevent from applet tag to appear
inside td tag. Strange.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e52c58d8-4e4f-4077-9656-5242bcf49f7c" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/Web</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=db6b1c12-2e99-44de-be5f-627166d2dd65</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=db6b1c12-2e99-44de-be5f-627166d2dd65</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A new desire came from one of our customers. The request was to have the ability to
search in Panorama Crosstab. The first solution I thought of was searching the grid
in iterative way and it worked fine using the Panorama SDK. After that, my friend
Boris came with another simple and elegant solution: We can use Parameter in the Panorama
view and highlight the number which was defined in the parameter. In this post I'll
explain how to implement this.
</p>
        <p>
1. Create a new view using Panorama NovaView Desktop and make sure you see the
grid in the view.
</p>
        <p>
2. Define a new parameter: Click on View -&gt; Paramaters, and click on the "Manage
Parameters" button. Click on Add. The default type is Number and this is exactly what
wee need (for now). In the name, type Highlight and in the Default Value type a number
that you see in the grid (this is the number that will be highlighted later). Let's
take 0 for example. Click on OK twice and close the little Parameters window.
</p>
        <p>
3. Create a new Exception: Click on Data -&gt; Exceptions -&gt; Exceptions... -&gt; Add.
Click on Next and then choose "Custom Exception". Click on "Edit Exception" and there
write the following formula: [Measures].CurrentMember = [[Highlight]]<br />
This will simply select all the cells with the number that we defined earlier in the
Highlight parameter. Click on OK and click Next. In this step, define the style of
the highlighted cells. I picked red color and Bold font style. You can click on Finish
now and then click OK. Open the small Parameters window (right click in the crosstab's
corner and choose Parameters) and click on "Apply Changes". Now, you will see that
all the cells with 0 are highlighted. If you don't see it, check that you did all
the steps correctly.
</p>
        <p>
4. When we will show the view to the user, we don't want to show him anything highlighed
when the view is loaded. This is where a little trick takes place: open the small
Parameters window (right click in the crosstab's corner and choose Parameters), double
click on the Highlight parameter. Choose String as the parameter type (on the right
part) and in the Default value, enter abc. Click twice on OK and then on the
apply button and you'll see that now the highlighed cells are regular ones.
</p>
        <p>
5. In the dashboards page, or in the web page you created using the Panorama SDK,
create a button that will call the function searchGrid. Just add the button the property
onclick="searchGrid('master')", where master is the applet's name. this is the code
of the searchGrid function:
</p>
        <p>
function searchGrid (applet) {<br />
var reply = prompt('Please enter the number to search','');<br />
eval(applet + '.CallUpdateParametersEx("P|~|Highlight|~|' + reply + '|~~|")');<br />
}
</p>
Another tweaks I implemented and I didn't write in this post in order to make it simple
(for advanced developers only): 
<ul><li>
You can search all the views in the current web/dashboard page. Just call the function
for every applet, but make it in Batch mode.</li><li>
You can search all the grid even if the user doesn't see all the rows. You can tell
him if the number he searched for is in there or not.</li></ul><p>
That's all. Test your new page and enjoy. For every question about this and anything
else, you can leave a comment or write my mail.
</p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=db6b1c12-2e99-44de-be5f-627166d2dd65" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/_y_BeQTaHiM" height="1" width="1" /></body>
      <title>Searching in Panorama Crosstab</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/_y_BeQTaHiM/PermaLink,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</link>
      <pubDate>Sun, 31 May 2009 08:11:47 GMT</pubDate>
      <description>&lt;p&gt;
A new desire came from one of our customers. The request was to have the ability to
search in Panorama Crosstab. The first solution I thought of was searching the grid
in iterative way and it worked fine&amp;nbsp;using the Panorama SDK. After that, my friend
Boris came with another simple and elegant solution: We can use Parameter in the Panorama
view and highlight the number which was defined in the parameter. In this post I'll
explain how to implement this.
&lt;/p&gt;
&lt;p&gt;
1. Create a new view using Panorama NovaView Desktop and make sure you see&amp;nbsp;the
grid in the view.
&lt;/p&gt;
&lt;p&gt;
2. Define a new parameter: Click on View -&amp;gt; Paramaters, and click on the "Manage
Parameters" button. Click on Add. The default type is Number and this is exactly what
wee need (for now). In the name, type Highlight and in the Default Value type a number
that you see in the grid (this is the number that will be highlighted later). Let's
take 0 for example. Click on OK twice and close the little Parameters window.
&lt;/p&gt;
&lt;p&gt;
3. Create a new Exception: Click on Data -&amp;gt; Exceptions -&amp;gt; Exceptions... -&amp;gt;&amp;nbsp;Add.
Click on Next and then choose "Custom Exception". Click on "Edit Exception" and there
write the following formula: [Measures].CurrentMember = [[Highlight]]&lt;br&gt;
This will simply select all the cells with the number that we defined earlier in the
Highlight parameter. Click on OK and click Next. In this step, define the style of
the highlighted cells. I picked red color and Bold font style. You can click on Finish
now and then click OK. Open the small Parameters window (right click in the crosstab's
corner and choose Parameters) and click on "Apply Changes". Now, you will see that
all the cells with 0 are highlighted. If you don't see it, check that you did all
the steps correctly.
&lt;/p&gt;
&lt;p&gt;
4. When we will show the view to the user, we don't want to show him anything highlighed
when the view is loaded. This is where a little trick takes place: open the small
Parameters window (right click in the crosstab's corner and choose Parameters), double
click on the Highlight parameter. Choose String as the parameter type (on the right
part)&amp;nbsp;and in the Default value, enter abc. Click twice on OK and then on the
apply button and you'll see that now the highlighed cells are regular ones.
&lt;/p&gt;
&lt;p&gt;
5. In the dashboards page, or in the web page you created using the Panorama SDK,
create a button that will call the function searchGrid. Just add the button the property
onclick="searchGrid('master')", where master is the applet's name. this is the code
of the searchGrid function:
&lt;/p&gt;
&lt;p&gt;
function searchGrid (applet) {&lt;br&gt;
var reply = prompt('Please enter the number to search','');&lt;br&gt;
eval(applet + '.CallUpdateParametersEx("P|~|Highlight|~|' + reply + '|~~|")');&lt;br&gt;
}
&lt;/p&gt;
Another tweaks I implemented and I didn't write in this post in order to make it simple
(for advanced developers only): 
&lt;ul&gt;
&lt;li&gt;
You can search all the views in the current web/dashboard page. Just call the function
for every applet, but make it in Batch mode.&lt;/li&gt;
&lt;li&gt;
You can search all the grid even if the user doesn't see all the rows. You can tell
him if the number he searched for is in there or not.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
That's all. Test your new page and enjoy. For every question about this and anything
else, you can leave a comment or write my mail.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=db6b1c12-2e99-44de-be5f-627166d2dd65" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</comments>
      <category>BI;BI/Panorama</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,db6b1c12-2e99-44de-be5f-627166d2dd65.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=937c1a14-5152-445d-ad7c-910a03dd5f64</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=937c1a14-5152-445d-ad7c-910a03dd5f64</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After a long break from blogging, it's time to get back on the course. In the last
weeks I worked hard on two BI projects so I didn't had any time to write, but
the good news is that I learned a lot and now I have more to share. Now, let's talk
about the Panorama Dashboards web site.
</p>
        <p>
When you build many pages with the NovaView Dashboards, you often find yourself repeating
the same code and actions in different pages, which stands in conflict with the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx">DRY
principle</a>. The solution to this problem is to maintain a global javascript file
and reference it from your custom code. That way, you'll edit only one js file all
the time. Take my advice and put the file in <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,007d23dd-cf72-4096-8130-6bc2a0cc1783.aspx">VSS</a> or
any other source control. Every page's custom code will be only the code which
is unique to the page. The bigger problem is that during development, you still need
to create many pages, reference them to the global js file and make very page's own
manipulations. I don't have a <a href="http://en.wikipedia.org/wiki/Silver_bullet">silver
bullet</a> solution, but the next tip can save you much development time.
</p>
        <p>
          <u>
            <em>Warning: Before doing anything with your DB, back it up.</em>
          </u>
        </p>
        <p>
Behind the Dashboards web site, there's a little database called PanoramaDashboard
which contains all the web site's data. In this post, I'll discuss the Tabs table.
The Tabs table is maybe the most important table in this DB. Every row in that table
is a page in the Dashboards web site. When I create a new page that is very similar
to another one, I click on "Create a copy" in the web site (on design mode, of
course) and then I run the following SQL command in the DB:
</p>
use [PanoramaDashboard]<br />
Update Tabs<br />
set<br />
CustomCode = (select CustomCode from Tabs where Id=YourPreviousPage'sId),<br />
UseCustomCode = 1,<br />
Name = TheNewPage'sName<br />
where Id = (the new page Id. You can see in the page's address in the address bar) 
<p>
After that, edit the custom code from the DB (very similar SQL command). You'll have
to enter manually the new Applets names/Ids. Don't try to duplicate the page using
the DB because it won't work.
</p><p>
If you did some mess with the order of the pages in the section or you just
want to re-organize the pages, you can re-order it using the same Table. Just change
the FatherId of the page. Note that a father must be a folder, so you need to set
Folder=1 and that a page with no father will have FatherId=-1. Again - don't try to
enter manually a whole row because it will break the web site (you'll have to remove
the identity from the Id column and that can cause you much trouble).
</p><p>
Enjoy. and be careful.
</p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=937c1a14-5152-445d-ad7c-910a03dd5f64" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/SylVdFIG19g" height="1" width="1" /></body>
      <title>Panorama Dashboards Manipulations from inside the DB</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/SylVdFIG19g/PermaLink,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</link>
      <pubDate>Mon, 25 May 2009 12:18:46 GMT</pubDate>
      <description>&lt;p&gt;
After a long break from blogging, it's time to get back on the course. In the last
weeks I worked hard on&amp;nbsp;two BI projects so I didn't had any time to write, but
the good news is that I learned a lot and now I have more to share. Now, let's talk
about the Panorama Dashboards web site.
&lt;/p&gt;
&lt;p&gt;
When you build many pages with the NovaView Dashboards, you often find yourself repeating
the same code and actions in different pages, which stands in conflict with the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx"&gt;DRY
principle&lt;/a&gt;. The solution to this problem is to maintain a global javascript file
and reference it from your custom code. That way, you'll edit only one js file all
the time. Take my advice and put the file in &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,007d23dd-cf72-4096-8130-6bc2a0cc1783.aspx"&gt;VSS&lt;/a&gt; or
any other source control.&amp;nbsp;Every page's custom code will be only the code which
is unique to the page. The bigger problem is that during development, you still need
to create many pages, reference them to the global js file and make very page's own
manipulations. I don't have a &lt;a href="http://en.wikipedia.org/wiki/Silver_bullet"&gt;silver
bullet&lt;/a&gt; solution, but the next tip can save you much development time.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;&lt;em&gt;Warning: Before doing anything with your DB, back it up.&lt;/em&gt;&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
Behind the Dashboards web site, there's a little database called PanoramaDashboard
which contains all the web site's data. In this post, I'll discuss the Tabs table.
The Tabs table is maybe the most important table in this DB. Every row in that table
is a page in the Dashboards web site. When I create a new page that is very similar
to another one, I&amp;nbsp;click on "Create a copy" in the web site (on design mode, of
course) and then I run the following SQL command in the DB:
&lt;/p&gt;
use [PanoramaDashboard]&lt;br&gt;
Update Tabs&lt;br&gt;
set&lt;br&gt;
CustomCode = (select CustomCode from Tabs where Id=YourPreviousPage'sId),&lt;br&gt;
UseCustomCode = 1,&lt;br&gt;
Name = TheNewPage'sName&lt;br&gt;
where Id = (the new page Id. You can see in the page's address in the address bar) 
&lt;p&gt;
After that, edit the custom code from the DB (very similar SQL command). You'll have
to enter manually the new Applets names/Ids. Don't try to duplicate the page using
the DB because it won't work.
&lt;/p&gt;
&lt;p&gt;
If you did some mess with the order of the pages&amp;nbsp;in&amp;nbsp;the section or you just
want to re-organize the pages, you can re-order it using the same Table. Just change
the FatherId of the page. Note that a father must be a folder, so you need to set
Folder=1 and that a page with no father will have FatherId=-1. Again - don't try to
enter manually a whole row because it will break the web site (you'll have to remove
the identity from the Id column and that can cause you much trouble).
&lt;/p&gt;
&lt;p&gt;
Enjoy. and be careful.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=937c1a14-5152-445d-ad7c-910a03dd5f64" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</comments>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,937c1a14-5152-445d-ad7c-910a03dd5f64.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=09abb275-1b87-4d76-ac28-e65e4a73d469</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=09abb275-1b87-4d76-ac28-e65e4a73d469</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When you develope a big Panorama Dashboards site, you'll have a lot of javascript
code in the background. We use JS to call the Panorama SDK functions and methods,
make the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx">server
side</a> and the client side work together and to make the website dynamic and
user-friendly. After few days, you'll see that you have a lot of code out there, so
you must organize it (if you didn't do it in the first place). My friend Doron wrote
a great <a href="http://blogs.microsoft.co.il/blogs/dorony/archive/2009/04/03/writing-maintainable-javascript-guidelines.aspx">post</a> about
JS development guidelines which can help Panorama Dashboards developers and any big
website developers.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=09abb275-1b87-4d76-ac28-e65e4a73d469" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/YWiBkRpUVrw" height="1" width="1" /></body>
      <title>JavaScript Development Guidelines</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/YWiBkRpUVrw/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</link>
      <pubDate>Tue, 07 Apr 2009 20:12:17 GMT</pubDate>
      <description>&lt;p&gt;
When you develope a big Panorama Dashboards site, you'll have a lot of javascript
code in the background. We use JS to call the Panorama SDK functions and methods,
make the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx"&gt;server
side&lt;/a&gt; and the client side work&amp;nbsp;together and to make the website dynamic and
user-friendly. After few days, you'll see that you have a lot of code out there, so
you must organize it (if you didn't do it in the first place). My friend Doron wrote
a great &lt;a href="http://blogs.microsoft.co.il/blogs/dorony/archive/2009/04/03/writing-maintainable-javascript-guidelines.aspx"&gt;post&lt;/a&gt; about
JS development guidelines which can help Panorama Dashboards developers and any big
website developers.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=09abb275-1b87-4d76-ac28-e65e4a73d469" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</comments>
      <category>BI;BI/Panorama;Programming;Tips &amp; Tricks</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=e8983b76-ab68-4cf3-824b-77b340acc19c</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e8983b76-ab68-4cf3-824b-77b340acc19c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Very easy. In Sql Server:<br />
Select top n * from my_table<br />
In Oracle:<br />
Select * from my_table where rownum &lt;= n<br /><p>
It can be very useful in many many cases. For example, you're designing DWH over a
system and you're looking at a certain field in one of its tables. You want to know
which values this field contains, but fetching "select distinct my_field from my_table"
takes too much time. Instead, if you <strike>believe</strike> know that the data is
well distributed, you can use "select distinct my_field from my_table where rownum
&lt;= n". Use 1000 for n in the first trial and add one zero in the end of the number
n every time until you got a query that takes too much time than you want to wait. after
you got the n you can live with, can use the values you have in your query result.
</p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e8983b76-ab68-4cf3-824b-77b340acc19c" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/lbgvnxnVu9U" height="1" width="1" /></body>
      <title>Fetching N Rows In Sql Server and Oracle</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/lbgvnxnVu9U/PermaLink,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</link>
      <pubDate>Tue, 07 Apr 2009 19:54:28 GMT</pubDate>
      <description>Very easy. In Sql Server:&lt;br&gt;
Select top n * from my_table&lt;br&gt;
In Oracle:&lt;br&gt;
Select * from my_table where rownum &amp;lt;= n&lt;br&gt;
&lt;p&gt;
It can be very useful in many many cases. For example, you're designing DWH over a
system and you're looking at a certain field in one of its tables. You want to know
which values this field contains, but fetching "select distinct my_field from my_table"
takes too much time. Instead, if you &lt;strike&gt;believe&lt;/strike&gt; know that the data is
well distributed, you can use "select distinct my_field from my_table where rownum
&amp;lt;= n". Use 1000 for n in the first trial and add one zero in the end of the number
n every time until you got a query that takes too much time than you want to wait.&amp;nbsp;after
you&amp;nbsp;got the n you can live with, can use the values you have in your query result.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e8983b76-ab68-4cf3-824b-77b340acc19c" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</comments>
      <category>BI;BI/DataWarehousing;BI/SQL Server 2005;BI/SQL Server 2008;BI/Oracle</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,e8983b76-ab68-4cf3-824b-77b340acc19c.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=89b9ed83-352d-4623-9f2c-45dedeb3543b</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=89b9ed83-352d-4623-9f2c-45dedeb3543b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We're now beginning a quick session of Panorama Dashboard development using the 5.5
version. The Dashboard site is written in ASP, so it seems very native to write our
custom code also in ASP. On the other hand, writing in C# is much more fun, so we
decided to try and see if we can make the server side code be in C#. We found that
it is indeed possible. You can place an iframe with ASP.NET page and reference the
dashboard page from it using JavaScript (start from page.parent and go on from
there).
</p>
        <p>
This way you can enjoy the two worlds. In the next posts I'll show some examples of
what you can do using this method.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=89b9ed83-352d-4623-9f2c-45dedeb3543b" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/1i4Umb-xvCk" height="1" width="1" /></body>
      <title>Developing Panorama Dashboards with .Net</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/1i4Umb-xvCk/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</link>
      <pubDate>Sun, 22 Mar 2009 21:55:14 GMT</pubDate>
      <description>&lt;p&gt;
We're now beginning a quick session of Panorama Dashboard development using the 5.5
version. The Dashboard site is written in ASP, so it seems very native to write&amp;nbsp;our
custom code also in ASP. On the other hand, writing in C# is much more fun, so we
decided to try and see if we can make the server side code be in C#. We found that
it is indeed possible. You can place an iframe with ASP.NET page and reference the
dashboard page from it&amp;nbsp;using JavaScript (start from page.parent and go on from
there).
&lt;/p&gt;
&lt;p&gt;
This way you can enjoy the two worlds. In the next posts I'll show some examples of
what you can do using this method.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=89b9ed83-352d-4623-9f2c-45dedeb3543b" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</comments>
      <category>BI;BI/Panorama</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=cbc9ec2a-6745-411d-ba63-19561dc9f411</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cbc9ec2a-6745-411d-ba63-19561dc9f411</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There are some things you can only learn in the hard way. It didn't happenned
to me personally but to my team friends, so I consider it as it is my bad.
</p>
        <p>
We upgraded our ETL tool - Informatica, from version 8.5 to 8.6. We had to run
some tests to see that the results are the same. So, what we did is to save the result
table from 8.5 in Excel, save the result table from 8.6 in Excel and then compare
them using Excel-built-in functions. The only problem is we didn't pay attention to
the places where zero and null interchanged. This happened because the two versions
act differently where null values take places in aggregation functions. For example,
when there is a sum function and it aggregates only on null values. In one version
the output is zero and in the other the output is null... 
</p>
        <p>
This can also happen in other tools and technology. For example, in OLAP cubes the
difference between zero and null is the difference between seeing the member of the
dimension on the screen and not knowing of its existence.
</p>
        <p>
For conclusion, always be aware to this point and don't forget to check it.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=cbc9ec2a-6745-411d-ba63-19561dc9f411" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/KPIUVH1SbWE" height="1" width="1" /></body>
      <title>The Difference between null and zero</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/KPIUVH1SbWE/PermaLink,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</link>
      <pubDate>Sun, 22 Mar 2009 21:09:59 GMT</pubDate>
      <description>&lt;p&gt;
There are some things you can only learn&amp;nbsp;in&amp;nbsp;the hard way. It didn't happenned
to me personally but to my team friends, so I consider it as it is my bad.
&lt;/p&gt;
&lt;p&gt;
We upgraded our ETL tool&amp;nbsp;- Informatica, from version 8.5 to 8.6. We had to&amp;nbsp;run
some tests to see that the results are the same. So, what we did is to save the result
table from 8.5 in Excel, save the result table from 8.6 in Excel and then compare
them using Excel-built-in functions. The only problem is we didn't pay attention to
the places where zero and null interchanged. This happened because the two versions
act differently where null values take places in aggregation functions. For example,
when there is a sum function and it aggregates only on null values. In one version
the output is zero and in the other the output is null... 
&lt;/p&gt;
&lt;p&gt;
This can also happen in other tools and technology. For example, in OLAP cubes the
difference between zero and null is the difference between seeing the member of the
dimension on the screen and not knowing of its existence.
&lt;/p&gt;
&lt;p&gt;
For conclusion, always be aware to this point and don't forget to check it.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=cbc9ec2a-6745-411d-ba63-19561dc9f411" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</comments>
      <category>BI;BI/DataWarehousing;BI/Informatica;BI/SQL Server 2005;BI/SQL Server 2005/Analysis Services;BI/SQL Server 2008;BI/SQL Server 2008/Analysis Services</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,cbc9ec2a-6745-411d-ba63-19561dc9f411.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=6e4ca812-5a91-49b9-9b9e-64ef1e978257</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6e4ca812-5a91-49b9-9b9e-64ef1e978257</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here are some tips we collected <strike>over the years</strike> about dashboard design:
</p>
        <p>
          <u>Page Layout</u>
        </p>
        <ul>
          <li>
Less is more - don't put too many views in the page.</li>
          <li>
Rule of thumb - no more than five reports in one page.</li>
          <li>
Don't use scrolling - the average user won't scroll down the screen.</li>
          <li>
Position in screen - some researches made about this subject and here are the recommendations:</li>
          <ul>
            <li>
Top-Left - it's the part of the screen that the user looks at first. Put there the
most important data.</li>
            <li>
Center of the screen - the part the user looks after the top-left. Put there the second-most
important data.</li>
            <li>
Top-Right, Bottom-Left - Neutral parts.</li>
            <li>
Bottom-Right - The user won't pay attention to it, don't put there important data.</li>
          </ul>
          <li>
Fixed menus in every page.</li>
          <li>
Small amount of navigation targets in every page. Too much navigation paths will cause
confusion.</li>
          <li>
Concentrate on the main page - in 90% of the cases the user will stay there.</li>
          <li>
Add graphic components and highlight them if necessary.</li>
          <li>
Blue color only to links (and underline, of course).</li>
        </ul>
        <p>
          <u>Views Layout</u>
        </p>
        <ul>
          <li>
Two digits after the decimal point - in non-integer number, put only two digits after
the decimal point. The human mind can't understand more than that.</li>
          <li>
Focus on the clarity of the data and not only on its beauty. For example, 3D pie charts
are very beautiful, but flatting them will make them more clear to the user.</li>
          <li>
Measures have meaning only when compared to other data. Don't put stand-alone measure.</li>
          <li>
Pay attention to graphical change between the data and not only colors. Remember that
there are color-blind users.</li>
          <li>
Text is more clear than icons.</li>
          <li>
Use the San Serif and Arial fonts. They are the most readable to the user.</li>
          <li>
Align the text only to one side and not to the middle. It seems better to programmers,
but users want their text aligned to the left or to the right.</li>
          <li>
Colors - don't use too much color. The dashboard page is not a jungle. Use colors
of the same family.</li>
          <li>
Put dark text on bright background the vise versa.</li>
        </ul>
        <p>
And to conclude - use CSS whenever you can. It will save you much time and effort.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=6e4ca812-5a91-49b9-9b9e-64ef1e978257" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/LemahvnOWSw" height="1" width="1" /></body>
      <title>Dashboards Design Tips</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/LemahvnOWSw/PermaLink,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</link>
      <pubDate>Sun, 22 Feb 2009 12:14:26 GMT</pubDate>
      <description>&lt;p&gt;
Here are some tips we collected &lt;strike&gt;over the years&lt;/strike&gt; about dashboard design:
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Page Layout&lt;/u&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Less is more - don't put too many views in the page.&lt;/li&gt;
&lt;li&gt;
Rule of thumb - no more than five reports in one page.&lt;/li&gt;
&lt;li&gt;
Don't use scrolling - the average user won't scroll down the screen.&lt;/li&gt;
&lt;li&gt;
Position in screen - some researches made about this subject and here are the recommendations:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Top-Left - it's the part of the screen that the user looks at first. Put there the
most important data.&lt;/li&gt;
&lt;li&gt;
Center of the screen - the part the user looks after the top-left. Put there the second-most
important data.&lt;/li&gt;
&lt;li&gt;
Top-Right, Bottom-Left - Neutral parts.&lt;/li&gt;
&lt;li&gt;
Bottom-Right - The user won't pay attention to it, don't put there important data.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Fixed menus in every page.&lt;/li&gt;
&lt;li&gt;
Small amount of navigation targets in every page. Too much navigation paths will cause
confusion.&lt;/li&gt;
&lt;li&gt;
Concentrate on the main page - in 90% of the cases the user will stay there.&lt;/li&gt;
&lt;li&gt;
Add graphic components and highlight them if necessary.&lt;/li&gt;
&lt;li&gt;
Blue color only to links (and underline, of course).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;u&gt;Views Layout&lt;/u&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Two digits after the decimal point - in non-integer number, put only two digits after
the decimal point. The human mind can't understand more than that.&lt;/li&gt;
&lt;li&gt;
Focus on the clarity of the data and not only on its beauty. For example, 3D pie charts
are very beautiful, but flatting them will make them more clear to the user.&lt;/li&gt;
&lt;li&gt;
Measures have meaning only when compared to other data. Don't put stand-alone measure.&lt;/li&gt;
&lt;li&gt;
Pay attention to graphical change between the data and not only colors. Remember that
there are color-blind users.&lt;/li&gt;
&lt;li&gt;
Text is more clear than icons.&lt;/li&gt;
&lt;li&gt;
Use the San Serif and Arial fonts. They are the most readable to the user.&lt;/li&gt;
&lt;li&gt;
Align the text only to one side and not to the middle. It seems better to programmers,
but users want their text aligned to the left or to the right.&lt;/li&gt;
&lt;li&gt;
Colors - don't use too much color. The dashboard page is not a jungle. Use colors
of the same family.&lt;/li&gt;
&lt;li&gt;
Put dark text on bright background the vise versa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
And to conclude - use CSS whenever you can. It will save you much time and effort.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=6e4ca812-5a91-49b9-9b9e-64ef1e978257" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</comments>
      <category>BI;BI/Panorama;Tips &amp; Tricks</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,6e4ca812-5a91-49b9-9b9e-64ef1e978257.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=fbb5bc6d-aa89-4a58-ba97-46735bd86700</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fbb5bc6d-aa89-4a58-ba97-46735bd86700</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In many cases, extraction of Panorama view's MDX code is necessary. For example, in
order to check whether the performance bottleneck is in Panorama or in the OLAP server,
you can take the MDX code, run it in SQL Server Management Studio and compare run
times. You can take it further more but I'll leave it for future posts.
</p>
        <p>
In Panorama Desktop program, click on Tools -&gt; Direct MDX... and then CTRL + ALT
+ V. Then, you can copy it and use it in any way you want.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=fbb5bc6d-aa89-4a58-ba97-46735bd86700" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/MikySchreiberBlog/~4/rPgBZknsDpU" height="1" width="1" /></body>
      <title>Extracting the MDX from Panorama's view</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</guid>
      <link>http://feedproxy.google.com/~r/MikySchreiberBlog/~3/rPgBZknsDpU/PermaLink,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</link>
      <pubDate>Tue, 10 Feb 2009 08:00:54 GMT</pubDate>
      <description>&lt;p&gt;
In many cases, extraction of Panorama view's MDX code is necessary. For example, in
order to check whether the performance bottleneck is in Panorama or in the OLAP server,
you can take the MDX code, run it in SQL Server Management Studio and compare run
times. You can take it further more but I'll leave it for future posts.
&lt;/p&gt;
&lt;p&gt;
In Panorama Desktop program, click on Tools -&amp;gt; Direct MDX... and then CTRL + ALT
+ V. Then, you can copy it and use it in any way you want.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=fbb5bc6d-aa89-4a58-ba97-46735bd86700" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</comments>
      <category>BI;BI/Panorama</category>
    <feedburner:origLink>http://www.miky-schreiber.com/Blog/PermaLink,guid,fbb5bc6d-aa89-4a58-ba97-46735bd86700.aspx</feedburner:origLink></item>
  </channel>
</rss>
