[Gambas-user] Very strange printing problem + SHELL
Eilert
eilert-sprachen at ...221...
Wed May 3 12:05:05 CEST 2006
Benoit Minisini schrieb:
> On Wednesday 03 May 2006 09:52, Eilert wrote:
>> Hi everybody,
>>
>> After having been searching for this bug for months, I've found it at last.
>>
>> In one of my apps, when the user makes an entry into a customer's
>> account for instance and has it saved, the program won't print anymore.
>> The printing dialog appears, and everything runs through as expected,
>> but there is no output to the printer. If I restart the program, it will
>> print as usual.
>>
>> Now, this appears to be the reason:
>>
>> In the saving SUB I found I had included a SHELL command changing the
>> file's mode to 660 after writing so every member of the group can write
>> into this file.
>>
>> When I comment this SHELL command out, the app runs as expected. As soon
>> as it is activated, however, the bug appears: Whenever the SHELL is
>> called, printing will fail afterwards.
>>
>> Here is one of the critical parts in code:
>>
>> OPEN datei$ & "konto" FOR WRITE CREATE AS #dtnr
>> FOR i = 0 TO ktNr.Count - 1
>> IF ktModus[i] = "N" THEN BREAK
>> PRINT #dtnr, " account" & Chr$(13)
>> PRINT #dtnr, " number=" & CStr(i + 1) & Chr$(13)
>> PRINT #dtnr, " date=" & SpeicherDatum(ktDatum[i]) & Chr$(13)
>> PRINT #dtnr, " text=" & Str2Tag(ktText[i]) & Chr$(13)
>> PRINT #dtnr, " debit=" & ktSoll[i] & Chr$(13)
>> PRINT #dtnr, " credit=" & ktHaben[i] & Chr$(13)
>> PRINT #dtnr, " mode=" & SpeicherModus(ktModus[i]) & Chr$(13)
>> PRINT #dtnr, " end account" & Chr$(13)
>> PRINT #dtnr, " " & Chr$(13)
>> NEXT
>> CLOSE #dtnr
>> SHELL "chmod 660 " & datei$ & "konto" WAIT
>>
>> Does anyone here have an idea why this SHELL line might keep the printer
>> from printing? Is there another way of having the chmod 660? Or did I
>> implement the SHELL command wrong?
>>
>> Thanks for all ideas!
>>
>> Rolf
>>
>
> I think there is a clash between interpreter process management and qt process
> management, used for running 'lpr'.
>
> Try to print to a postscript file, and send this file to the printer with
> SHELL or EXEC. It should work.
>
> Regards,
>
Yes. In my app, there is a printer dialog. If I choose "print to file",
it prints a standard ps file.
Hm. Is deviating the printing through a ps file + SHELL to lpr really
the only way of getting rid of this problem?
Rolf
More information about the User
mailing list