Have you ever had to use the Report Server in Firefox? If you did it, you noticed that there is a problem with the display of the report viewer in that browser.

Basically, the problem is because initially the browser loads the default size of the report viewer control. Once the data is loaded, the browser doesn’t resize it.

To solve it, you can install a plug in, which can be downloaded from MS Report Server Fixes. The problem with this solution is that you have to install it in each computer that will accesses the report server.

But you can take the great idea of Jim Wilson and implement it in your report viewers control. In my case I improved the code to give a better layout:

  <script type="text/javascript">
      function Load() {
          if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
              if (document.getElementsByTagName('iframe').length) {
                  // Add a new style node to make sure all iframes are affected - even those not yet in the DOM.
                  var style = document.createElement('style'); 
                 style.appendChild(document.createTextNode('iframe{position:absolute;z-index:1}'));
                  document.getElementsByTagName('head')[0].appendChild(style);
              }
              if (document.getElementsByTagName('style').length) {
                  // Grab the inline style element and filter out bad values.
                  var styles = document.getElementsByTagName('style');
                  for (var i = 0; i < styles.length; i++) {
                      var style = styles[i];
                      style.innerHTML = style.innerHTML.replace(/overflow-x:hidden;?/, '');
                  }
              }  
          document.getElementById('ReportFramectl146').style.width= document.documentElement.clientWidth;  
         document.getElementById('ParameterTable_ctl146_ctl00').style.width= document.documentElement.clientWidth;  
         document.getElementById('oReportDiv').style.width= document.documentElement.clientWidth;
          }
      }
  </script>

 Then, call the function in the page load event. For instance:

<body style="margin: 0px; overflow: auto" onload="Load()">

I already fixed it in the Report Manager and the Report Server. You can download the following files and overwrite them in their respective folders of your server:

Report.aspx to be pasted in C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\Pages

ReportViewer.aspx to be pasted in C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportManager\Pages

So, now you’ll see the reports properly in Firefox.

References:

[1] Jim Wilson, http://userscripts.org, 2006

[2] Sergio Tarrillo, http://geeks.ms/, 2008

SharePoint development in Visual Studio requires more effort to perform task that in SharePoint Designer are made with a few clicks. To get values of a field in a list should do:

1. Add the following public property in the class of the workflow:

public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();

2. Optionally, to manipulate list values could be added global variables such as:

public string title;

3. In some SharePoint activity event like the onWorkflowActivated (the initial activity which must be added in any workflow) set the properties:

private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)

{

if (workflowProperties.Item["Title"] != null)

 title = workflowProperties.Item["Title"].ToString();

else

title = "Null";

}

In this way you can find the values in the list and handled within the workflow.

To get values from an InfoPath form must perform a series of additional steps. You can follow this example of Nick Swan if you need to SharePoint 2007 Workflow with Visual Studio 2005 + InfoPath 2007. Although an alternative could be convert the values that will be needed to SharePoint columns via the promoted properties and do as shown above.

Error: System.ArgumentNullException when referencing the WorkflowProperties

In the message list that is taking place the worklow, the displayed error is “Error Ocurred”, cancelling the workflow, unable to obtain the values of the required fields.

This usually occurs inside the OnWorkflowActivated event, because there is no property related in the WorkflowProperties

To solve this problem go to the OnWorkflowActivated properties and select the existing member in WorkflowProperties:

Click OK and ready. Values can be obtained normally.

References:

[1] WinSmarts, http://blah.winsmarts.com, 2009

[2] David Fekke, http://www.fekke.com, 2009

¿Cual es la situación?

Cuando se habilita la propiedad de PostBack automático (AutoPostBack="True") dentro del control Data View DropDownlist ocurre lo siguiente:
1. Selecciona un item.
2. El evento hace PostBack,
3. Si se intenta obtener el valor seleccionado este es null o vacío.

¿Que sucede?

La propiedad EnableViewState tiene valor por defecto True, esta propiedad indica si el control del servidor debe mantener su estado de vista.
En otras palabras, esta característica permite que los controles de servidor se vuelvan a llenar automáticamente con sus valores originales en cada postback si necesidad de escribir código adicional.
Dependiendo de la situación puede ser de mucha utilidad. Sin embargo, se se está haciendo un evento en cascada o alguna función que requiera del valor seleccionado del DropDown luego de hacer el postback puede presentar algunos dolores de cabeza. Especialmente si se toma en consideración que la manipulación de código en SharePoint algunas veces es limitada.

¿Como se resuelve?

Cambie la propiedad EnableViewState a False, de esta manera podrá obtener el valor fácilmente.

Referencias:

[1] DevFYI Developer Resource, http://dev.fyicenter.com, 2009
[2] Microsoft, http://msdn.microsoft.com, 2009

Cuantas veces te han solicitado la creación de una ayuda o tutorial para poder aprender el uso de Imagen tomada de http://helpmaker.softonic.com/una aplicación o proyecto en el cual estás participando o desarrollando. O por otro lado, con el fin de darle una valor agregado quieres insertar un espacio que se utilice como guía de uso.

Normalmente ese tipo ayudas se crean en Word y se convierten a PDF o página web. Algunas veces no queda mal, pero sinceramente no es el apropiado para este tipo de trabajos, porque es un editor de palabras, no de ayudas.


Para ese tipo de trabajos existen varias aplicaciones en el mercado. Sin embargo, mi aplicación favorita es HelpMaker, un programita muy sencillo de utilizar. Entre sus funciones pueden exportar el proyecto como WinHelp (esas ayudas comunes con el ícono amarillo) o en HTML (página web).

Sitio oficial de la aplicación: http://www.vizacc.com/
Enlace adicional: http://helpmaker.softonic.com/

Actualización 1: Algunas veces me ha ocurrido que el programa se vuelve tan popular que lo convierten en una aplicacíon comercial, si eres usuario de Hotmail puedes descargar la versión 7.4.4 de este sitio SkyDrive