Entwickler-Ecke

Sonstiges (Delphi) - Drucken (Rave-Reports, XE2)


Hänsel - Do 11.09.14 15:45
Titel: Drucken (Rave-Reports, XE2)
Hallo, kann jemand weiter helfen ?

seit kurzem habe ich Probleme mit dem Drucken (Rave10). Ich arbeite mit Delphi X2 und bekomme in regelmäßigen Abständen folgende Fehlermeldung:

.... Unable to gain control of RAVE Data Communication System ..... Wird der Rechner herunter gefahren, nach dem Neustart geht dies für ein bis zwei Drucke, dann

habe ich den gleichen Mist.

was kann ich da tun, bzw was habe ich da falsch gemacht?

Hänsel

Moderiert von user profile iconNarses: Titel erweitert.


Hochhaus - Do 11.09.14 18:40

Könntest Du den fraglichen Code, den Du zum Drucken verwendest, hier publizieren ? Es ist schwierig, im Blindflug zu helfen.

Bis bald,


Hochhaus


Hänsel - Fr 12.09.14 07:12

Habe das natürlich vergessen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
if mietg <>0 then
   Begin
   RvProject1_Miete.Open;
   RvProject1_Miete.Execute;
   end;

IF MessageDlg('Druck war erfolgreich?',mtWarning,[mbYes,mbNo],
          0)=mrYes then
           Begin
      while not   DataModule3.ADOQuery9.Eof do
       begin
        DataModule3.ADOQuery9.Edit;
        DataModule3.ADOQuery9['gedruckt']:=Date();
        Datamodule3.ADOQuery9['Status']:='';
        DataModule3.ADOQuery9.Next;
       end;
       Datamodule3.ADOQuery9.Edit;
       Datamodule3.ADOQuery9.Post;
       Datamodule3.ADOQuery9.Edit;
       nr:=inttoStr(Datamodule3.ADOQuery2['ID']);
       Datamodule3.ADOQuery9.close;
       Datamodule3.ADOQuery9.SQL.Text:='Select * From Miete2 where ID='+quotedstr(nr);
       Datamodule3.ADOQuery9.open;
       DBGrid2.Update;
       End
       else
       Begin
       while not   DataModule3.ADOQuery9.Eof do
       begin
        DataModule3.ADOQuery9.Edit;
        Datamodule3.ADOQuery9['Status']:='';
        DataModule3.ADOQuery9['gedruckt']:=NULL;
        DataModule3.ADOQuery9.Next;
       end;
       Datamodule3.ADOQuery9.Edit;
       Datamodule3.ADOQuery9.Post;
       Datamodule3.ADOQuery9.Edit;
       nr:=inttoStr(Datamodule3.ADOQuery2['ID']);
       Datamodule3.ADOQuery9.close;
       Datamodule3.ADOQuery9.SQL.Text:='Select * From Miete2 where ID='+quotedstr(nr);
       Datamodule3.ADOQuery9.open;
       DBGrid2.Update;
     End;

Hiermit hat das bis vor kurzem auch gut geklappt.

Hänsel

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Andreas Schilling - Fr 12.09.14 07:26

Eventuell liegt es daran, das paralell die Rave-Ide offen ist. Um das Problem zu beheben, habe ich in jedem Programm von uns in der *.dpr im uses

Delphi-Quelltext
1:
RPDefine                    

und vor dem initialize das stehen

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
begin
  RPDefine.DataID := IntToStr(Application.Handle); 
  Application.Initialize;
  ....
  Application.Run;
end.

Das sollte das Problem beheben. Auch wenn z.B. paralell ein anderes Programm einen Ravereport geöffent hat tritt dieser Fehler auf.

Gruß Andreas


Hänsel - Mo 15.09.14 09:10

danke für deinen hinweis. habe es getestet, klappte super.hoffe das es so bleibt.

hänsel