2011-06-21 15 views
6

Mam pozycję menu w dużym programie, który otwiera nowe okno. Nic nie zostaje przekazane, ładuje kalendarz, 3 puste pola tekstowe, 3 etykiety, 2 przyciski i pusty Crystal Report Viewer.Zainicjuj komponent zgłasza wyjątek odwołania o wartości zerowej.

Po uruchomieniu użytkownik klika kalendarz, a to automatycznie wstawia pierwszą i ostatnią datę wybranego miesiąca do 2 pól tekstowych. Jeden przycisk ładuje raport CR z danymi z DB, drugi przycisk drukuje raport.

Działa to dobrze na moim systemie, ale komponent Initialize generuje wyjątek odwołania zerowego po wdrożeniu w systemie współpracowników. Nie mogę odtworzyć wyjątku w moim systemie.

Czy ktoś ma pomysły na to, gdzie powinienem zacząć?

Updated

ERROR

System.NullReferenceException: Object reference not set to an instance of an object. 
    at System.Windows.Baml2006.Baml2006Reader.Process_PropertyWithConverter() 
    at System.Windows.Baml2006.Baml2006Reader.Process_OneBamlRecord() 
    at System.Windows.Baml2006.Baml2006Reader.Process_BamlRecords() 
    at System.Windows.Baml2006.Baml2006Reader.Read() 
    at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector) 
    at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) 
    at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) 
    at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) 
    at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) 
    at KeyInScreen.RebatesReports.InitializeComponent() 
    at KeyInScreen.RebatesReports..ctor() 
    at KeyInScreen.Menu.FertiliserRebate_Click(Object sender, RoutedEventArgs e) 

Kod XAML

<Window x:Class="KeyInScreen.RebatesReports" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Fertiliser Rebates" WindowState="Maximized" 
    xmlns:my="clr-namespace:SAPBusinessObjects.WPF.Viewer;assembly=SAPBusinessObjects.WPF.Viewer" 
    mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="700" 
    Width="1350"> 
<Window.Resources> 
    <Style TargetType="{x:Type Label}"> 
     <Setter Property="FontSize" Value="14" /> 
    </Style> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="FontSize" Value="14"/> 
    </Style> 
    <Style TargetType="{x:Type Calendar}"> 
     <Setter Property="FontSize" Value="14"/> 
    </Style> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="FontSize" Value="14"/> 
    </Style> 
</Window.Resources> 

<Grid Background="#FFEFEDDF"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height=".5*"/> 
     <RowDefinition Height=".5*"/> 
     <RowDefinition Height="4*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="5*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width=".2*"/> 
     <ColumnDefinition Width=".7*"/> 
     <ColumnDefinition Width=".7*"/> 
     <ColumnDefinition Width=".7*"/> 
     <ColumnDefinition Width=".5*"/> 
     <ColumnDefinition Width="4*"/> 
     <ColumnDefinition Width=".1*"/> 
    </Grid.ColumnDefinitions> 
    <Calendar x:Name="cDatePicker" Grid.Column="1" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" SelectedDatesChanged="cDatePicker_SelectedDatesChanged" /> 
    <Label Content="Start Date:" Grid.Column="1" Grid.Row="4" Margin="5"/> 
    <TextBox x:Name="txtStartDate" Grid.Column="2" Grid.Row="4" Margin="5" VerticalContentAlignment="Center" /> 
    <Label Content="End Date:" Grid.Column="1" Grid.Row="5" Margin="5"/> 
    <TextBox x:Name="txtEndDate" Grid.Column="2" Grid.Row="5" Margin="5" VerticalContentAlignment="Center"/> 
    <Label Content="Supplier Number:" Grid.Column="1" Grid.Row="6" Margin="5"/> 
    <TextBox x:Name="txtCustomerNumber" Grid.Column="2" Grid.Row="6" Margin="5" VerticalContentAlignment="Center" TabIndex="1" /> 
    <Button x:Name="btnShowRport" Content="View Report" Grid.Column="1" Grid.Row="8" Margin="0,0,10,0" Click="btnShowRport_Click" IsDefault="True" /> 
    <Button x:Name="btnPrintReport" Content=" Print Report" Grid.Column="2" Grid.Row="8" Margin="10,0,0,0" Click="btnPrintReport_Click" /> 
    <my:CrystalReportsViewer x:Name="crReportViewer" Grid.Column="3" Grid.RowSpan="10" HorizontalAlignment="Center" VerticalAlignment="Center" 
           Height="656" Width="845" Margin="94,-7,62,12" ToggleSidePanel="None" Panel.ZIndex="0" Grid.ColumnSpan="3" 
           ShowPrintButton="False" ShowRefreshButton="False" ShowSearchTextButton="False" ShowToggleSidePanelButton="True" 
           ShowToolbar="True" ShowNextPageButton="True" ShowGoToPageButton="True" ShowExportButton="False" 
           ShowCopyButton="False" SnapsToDevicePixels="True" ShowLogo="False" ShowPrevPageButton="True" 
           ShowStatusbar="True" /> 
</Grid> 

Dzięki

+2

Zacznij od wyświetlenia śledzenia stosu wyjątku. Psychiczne debugowanie mówi, że prawdopodobnie okno podglądu raportu (lub inny element wagi ciężkiej) próbuje wykonać operację, która nie spełnia oczekiwań (np. Połączenie ze źródłem danych) na budowie, i ta operacja nie powiedzie się na komputerze współpracownika (nie ma dostępu do serwer, nie może zalogować się za pomocą swoich poświadczeń itp.). – Jon

+0

Sprawdź, czy wszystkie składniki Crystal są dostępne. Crystal Report Viewer wydaje się być winowajcą. – V4Vendetta

+0

To nie jest CR Viewer. Naprawdę nie rozumiem wyjątku stosu, ale myślę, że problem jest z WPF/XAMl – Noelle

Odpowiedz

2

Trzeba spojrzeć na wewnętrznym wyjątku. Gdy zostanie wywołany początkowy komponent, może odpalić inny kod, który musi być przyczyną wyjątku. Wewnętrzny wyjątek powinien dostarczyć wszystkich potrzebnych informacji. Zauważ, że możliwe jest, że wewnętrzny wyjątek będzie miał wewnętrzny wyjątek. Zmodyfikuj aplikację, aby zapisać wszystkie te dane w pliku lub w schowku.

4

Nieco późno, ale gdy otrzymasz zerowy wyjątek referencyjny taki jak ten, może to wprowadzać w błąd. Wewnętrzna Wyjątkiem może być null (było w moim przypadku).

Sposób odkryłem problem było umożliwienie pierwszy wyjątki szansę w VS 2010.

Goto Debug -> Exceptions następnie sprawdzić wszystkie pola.

0

Problem zniknął podczas zmiany nazwy/usunięcia starych złożeń w lokalizacji GAC (C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL => GAC dla architektury .NET framework 4.0 lub nowszej).

+0

Lokalizacja GAC ​​dla platformy .NET Framework 3.5 to C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL – Suriya

Powiązane problemy