Tomasz Kozakiewicz

Programista NET,T-SQL, Administrator MSSQL,Progamista C#, Crystall Report

Wypowiedzi

  • Tomasz Kozakiewicz
    Wpis na grupie CRYSTAL REPORTS w temacie dynamiczny raport z kodu c# - MissingMethodException
    1.08.2016, 10:18

    Witam
    Dzięki za zainteresowanie i chęć pomocy. Dzisiaj odinstalowałem stare runtime-y i zainstalowałem cały pakiet OnceClick ze strony SAP-a . Pomogło. Prawdopodobie 1 z assembly nie było zarejestrowane w gac.
    Pozdrawiam
    TK

  • Tomasz Kozakiewicz
    Wpis na grupie CRYSTAL REPORTS w temacie dynamiczny raport z kodu c# - MissingMethodException
    1.08.2016, 09:02

    Witam
    Próbuje wywołać formę z podglądem raportu. U mnie nie ma problemu, a u klietna wyskakuje exception ,które opisałem w 1 poście.

    InitializeComponent();
    var reportName = Path.GetDirectoryName(Application.ExecutablePath) + "\\test.rpt";
    ReportDocument raport = new ReportDocument();
    raport.Load(reportName);
    ParameterFieldDefinitions crParameterFieldDefinitions;
    ParameterFieldDefinition crParameterFieldDefinition;
    ParameterValues crParameterValues = new ParameterValues();
    ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
    crParameterDiscreteValue.Value = paramtest;
    crParameterFieldDefinitions = raport.DataDefinition.ParameterFields;
    crParameterFieldDefinition = crParameterFieldDefinitions["paramtest"];
    crParameterValues = crParameterFieldDefinition.CurrentValues;

    crParameterValues.Clear();
    crParameterValues.Add(crParameterDiscreteValue);
    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

    TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
    TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
    _crConnectionInfo = new ConnectionInfo();
    Tables CrTables;
    _crConnectionInfo.ServerName = CrConnectionInfo.ServerName;
    _crConnectionInfo.DatabaseName = CrConnectionInfo.DatabaseName;
    _crConnectionInfo.UserID = CrConnectionInfo.UserName;
    _crConnectionInfo.Password = CrConnectionInfo.Password;
    CrTables = raport.Database.Tables;
    foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
    {
    crtableLogoninfo = CrTable.LogOnInfo;
    crtableLogoninfo.ConnectionInfo = _crConnectionInfo;
    CrTable.ApplyLogOnInfo(crtableLogoninfo);
    }
    crystalReportViewer1.ReportSource = raport;
    crystalReportViewer1.Refresh();

  • Tomasz Kozakiewicz
    Wpis na grupie CRYSTAL REPORTS w temacie dynamiczny raport z kodu c# - MissingMethodException
    29.07.2016, 15:04

    Witam
    Może ktoś spotkał się z problemem wywołania na stacji klienta raportu z kodu c#. Dostaję błąd :
    System.MissingMethodException: Nie odnaleziono metody: 'Void CrystalDecisions.CrystalReports.Engine.PrintOptions.set_NoPrinter(Boolean)'.
    Biblioteki przegrane są z bin/release , zainstalowany runtime najnowszy do cr i efekt jest taki ,że w moim środowisku raport się ładnie odpala , a u klienta nawet się nie ładuje.
    Jeśli ktoś spotkał się z podobnym problemem to proszę o kontakt

  • Tomasz Kozakiewicz
    Wpis na grupie Bazy Danych w temacie Miesiące z przedziału dat
    27.08.2010, 14:31

    Poprawka

    SELECT Datename(mm,[date]) FROM CTE_DatesTable group by Datename(mm,[date])

    i w przypadku kiedy mamy zakres dat od 2010.01.01 do 2010.12.31 rekurencja wykona się 364 razy, natomiast w moim przykładzie maksymalnie 12. Więc myślę że nie jest to efektywne.

  • Tomasz Kozakiewicz
    Wpis na grupie Bazy Danych w temacie Miesiące z przedziału dat
    27.08.2010, 13:39

    Nie rozumiem po co jest drążenie funckji Datename skoro temat jest zupełnie inny i tej funcji nie można użyć w danym problemie. Poza tym CTE działa od MSSQL2005 i jeśli Pan chce to proszę podać rozwiązanie dla problemu z tematu postu przy użyciu tego mechanizmu.

  • Tomasz Kozakiewicz
    Wpis na grupie Bazy Danych w temacie Miesiące z przedziału dat
    27.08.2010, 10:12

    Panie Przemysławie, to jest kwestia nawyków jakie stosujemy w programowaniu. Ja wolę nie sprawdzać w każdym zapytaniu jakie mamy ustawienia lokalne itp., gdyż może to powodować potencjalny błąd jak o tym zapomnę.
    Nie mniej jednak to o czym dyskutujemy nie odnosi się do tematu początkowego.

  • Tomasz Kozakiewicz
    Wpis na grupie Bazy Danych w temacie Miesiące z przedziału dat
    26.08.2010, 23:15

    To jest wprawdzie najprostsze rozwiązanie,ale posiada duży mankament że musimy pamiętać ,bądź ustawiać również format dat. Dla przykładu:

    SET LANGUAGE English
    DECLARE @Today DATETIME
    SET @Today = '2007/12/1'

    select DATENAME (mm,@today)

    wynik = december

    SET LANGUAGE Polish
    DECLARE @Today DATETIME
    SET @Today = '2007/12/1'

    select DATENAME (mm,@today)

    wynik = styczeń

    A tak żeby było w temacie to proponuje takie rozwiązanie , uproszczone bo zakładam że daty są z jednego roku, inaczej trzeba zwracać rok i miesiąc:

    CREATE TABLE [dbo].[Mce](
    [Nr] [int] NOT NULL,
    [NazwaMc] [varchar](50) COLLATE Polish_CI_AS NOT NULL
    ) ON [PRIMARY]
    --dodajemy numery i nazwy miesięcy

    create procedure mce_z_dat (@dataod datetime,@datado datetime)
    as
    begin
    declare @miesiacod int
    declare @miesiacdo int
    SET @miesiacod=MONTH(@dataod)
    SET @miesiacdo=MONTH(@datado)
    create table #miesiace(mc int)
    if YEAR(@dataod)=YEAR(@datado)
    begin
    while @miesiacod<= @miesiacdo
    begin
    insert into #miesiace(mc) values(@miesiacod)
    SET @miesiacod=@miesiacod+1
    end
    end
    SELECT NazwaMc FROM #miesiace JOIN Mce ON Nr=mc
    endTomasz Kozakiewicz edytował(a) ten post dnia 26.08.10 o godzinie 23:50

  • Tomasz Kozakiewicz
    Wpis na grupie Bazy Danych w temacie Miesiące z przedziału dat
    24.08.2010, 18:37

    W MSSQL :

    SELECT DATENAME(mm,_data) from ....

    żeby było po polsku, zrób tabelę:

    CREATE TABLE [dbo].[Mce](
    [Nr] [int] NOT NULL,
    [NazwaMc] [varchar](50) COLLATE Polish_CI_AS NOT NULL
    ) ON [PRIMARY]

    wpisz numery i nazwy miesięcy

    i dopisz funkcję:

    CREATE FUNCTION dbo.MonthName (@Data datetime)
    RETURNS varchar(50)
    AS
    BEGIN
    declare @nmc varchar(50)
    declare @NrMc int
    SELECT @NrMc=Month(@Data)
    if @NrMc between 1 and 12
    begin
    SELECT @nmc=NazwaMc FROM dbo.Mce WHERE Nr=@NrMc
    end
    else
    begin
    -- obsługa błędu albo nie zwracamy nic
    SET @nmc=''
    end
    RETURN @nmc
    ENDTomasz Kozakiewicz edytował(a) ten post dnia 24.08.10 o godzinie 19:28

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do