BasicMakro - Langzeitprojekt CORONA NEWS - Erfahrungsbericht - BUG-Report - QA:needsComment

Hallo,

kann mir jemand sagen, was

QA Administrators changed bug 139539 ( https://bugs.documentfoundation.org/show_bug.cgi?id=139539 )

What: Added
Removed:
Whiteboard: QA:needsComment

bedeutet und wer da gemeint ist ?

Danke und viele Grüße
Hans-Werner :-))

Hallo Hans-Werner,

Hallo,

kann mir jemand sagen, was

QA Administrators changed bug 139539 (
https://bugs.documentfoundation.org/show_bug.cgi?id=139539 )

What: Added
Removed:
Whiteboard: QA:needsComment

bedeutet und wer da gemeint ist ?

mit diesem Stichwort wird jeder 'unconfirmed' Bug automatisch
gekennzeichnet, der seit mehr als 2 Wochen inaktiv ist und (oder
'oder'?) dem bisher kein Kommentar durch einen Dritten hinzugefügt
wurde. Siehe:
https://wiki.documentfoundation.org/QA/GetInvolved/en

Ziel dieser Kennzeichnung ist es, dass unbestätigte Bugs schneller einer
'bug triage' durch die Qualitätssicherung unterzogen werden.

Zur Info: Mehr zum Feld Whiteboard und was dort eingestellt werden
kann/soll, findest Du hier:
https://wiki.documentfoundation.org/QA/Bugzilla/Fields/Whiteboard

Grüße
Harald K.

Hallo Harald,

ich danke Dir für die WEB-Links.

Es ist nur schade, das niemand im Forum bis jetzt bereit war mal 5 Minuten für einen kleinen Test zu investieren, um das im BUG-Report ( https://bugs.documentfoundation.org/show_bug.cgi?id=139539 ) beigefügte Makro 2 mal auf eine neue CALC-Datei mit erster fixierte Zeile auszuführen - hätte dem "QA Administrator" zusätzlichen Aufwand erspart:

Sub TestFixedRow
' Test A
' 1. Open CALC.
' 2. Fix first row of all 3 sheets, if not fixed.
' 3. Set: aCALCpropv(0).Value = FALSE
' 4. Save/Close CALC.
' 5. Start macro TestFixedRow.
' 6. Open CALC.
' 7. First row of all 3 sheets is still fixed.
' Test B
' 1. Open CALC.
' 2. Fix first row of all 3 sheets, if not fixed.
' 3. Set: aCALCpropv(0).Value = TRUE
' 4. Save/Close CALC.
' 5. Start macro TestFixedRow.
' 6. Open CALC.
' 7. First row of all 3 sheets is not fixed anymore.
Dim CALC As String : CALC = "E:\TMP\CALC.ods" ' May be to be modified !
Dim oCALC As Object
Dim uCALC As String
Dim aCALCpropv(0) As New com.sun.star.beans.PropertyValue
aCALCpropv(0).Name = "Hidden"
aCALCpropv(0).Value = FALSE
Dim aCALCdummy() As Variant
uCALC = ConvertToUrl(CALC)
oCALC = StarDesktop.loadComponentFromURL(uCALC,"_blank",0,aCALCpropv())
oCALC.StoreAsURL(uCALC,aCALCdummy())
oCALC.Close(False)
End Sub

Viele Grüße
Hans-Werner :-))

------ Originalnachricht ------

Hallo Hans-Werner,

Es ist nur schade, das niemand im Forum bis jetzt bereit war mal 5
Minuten für einen kleinen Test zu investieren, um das im BUG-Report (
https://bugs.documentfoundation.org/show_bug.cgi?id=139539 ) beigefügte
Makro 2 mal auf eine neue CALC-Datei mit erster fixierte Zeile
auszuführen - hätte dem "QA Administrator" zusätzlichen Aufwand erspart:

Nein, hätte es nicht. Da gehört ein bisschen mehr dazu als einfach nur
stumpf aus zu probieren. Wenn ich allein die Anweisung durchlese, dann
müsste ich schon wissen, warum da einmal TRUE und das andere Mal FALSE
steht. Da muss also jemand drauf schauen, der Ahnung von Makros in Calc
hat.

Ich habe schon häufig im Bereich Base im Bugreporter Bugmeldungen
gehabt, die eigentlich in ein Forum oder eine Mailingliste gehörten. Ich
habe das dann geklärt und es stellte sich eben heraus, dass einfach
bestimmte Teile in Base der meldenden Person unbekannt waren. Damit war
der Bug dann keiner mehr.

Gruß

Robert

Hallo Hans Werner,

schätze, da sind viel mehr Bugs drin als Du hier beschreibst.

Der Code selbst hat schon zwei Stellen, die ich so nicht schreiben würde:

StoreAsUrl() -> auf bekannte URL. Hier speicherst Du das Dokument in sich selbst? Technisch zwar möglich, aber nicht zu empfehlen. Dafür gibt es die Methode store() - die sollte an sich reichen - führt aber hier zu einem Fehler:) Das wäre dann ein Bug.

Die close()-Methode mit "false" ist immer ein Risiko und sollte nur benutzt werden, wenn Du selbst dafür sorge trägst, dass alle anderen Prozesse rechtzeitig beendet wurden (...kaum möglich) Also mit Close() immer "true" verwenden - dann sollte das einigermaßen passen.

die Aufrufe LoadComponent...., storeasURL() und close() sind viel zu eng getaktet. das wird so nicht funktionieren. Dazwischen müsste irgendetwas passieren. Ich habe es mit ner wait() Anweisung probiert, aber auch 500 mSek haben nicht gereicht.

Lasse ich xray mitlaufen, so gibt es noch andere "Ungereimtheiten"...  bei mir bleiben zwar die Fixierungen erhalten - das Dokument ist anschliessend aber nur schreibgeschützt zu öffnen. Und das Speichern auf sich selbst geht auch nicht - Exeption.

Also.. schätze, da sind diverse Bugs drin, keine Ahnung, was da alles geändert wurde :slight_smile:

Viele Grüße

Thomas

Hey Hans Werner,

noch ein paar Ergänzungen:

Hat das eigentlich jemals funktioniert?

Das Fixieren der Zeilen/Spalten ist eine Eigenschaft des CurrentControllers - also der Viewansicht.

Wo genau das abgespeichert ist, weiss ich nicht genau. Beim Öffnen "hidden" wird zwar das Objekt erzeugt, eine Viewansicht gibt es aber nicht wirklich. Ich denke, hier musst Du im Bug-Bericht ansetzen: Offensichtlich werden die Informationen zum View-Controller beim Speichern eines "hidden" geöffneten Dokumentes überschrieben durch Standardvorgaben??  Dadurch verschwinden dann natürlich auch die Infos zu fixierten Spalten/Zeilen....

mit xray kannst Du erkennen, dass der currentController im hidden-geöffneten Dokument die Fixierung beibehält - nach dem öffnen, nach diversen Veränderungen, auch nach dem Aufruf der Methode Store() ist die Fixierung noch da - erst beim Aufruf der close-Methode verschwindet sie offensichtlich (beim nächsten öffnen ist sie weg). Vielleicht hilft Dir das?


aCALCpropv(0).Name = "Hidden"
aCALCpropv(0).Value = true
s = ConvertToUrl(CALC)
odoc = StarDesktop.loadComponentFromURL(s,"_blank",aCALCpropv())
oDoc.sheets(0).getCellrangeByName("a10").value = 322
wait(500)
msgbox "offen"
xray odoc
odoc.Store() 'StoreAsURL(uCALC,aCALCdummy())
xray odoc
Wait(1000)
odoc.Close(true)
End Sub

Zum Testen in xray:  CurrentController -> SplitRow   - die Eigenschaft verwendet interessanterweise nicht die Indexzahl, sondern tatsächlich die Zeilenzahl!

Viele Grüße

Thomas

Hallo Thomas,

erst mal herzlichen Dank für Deine Tests und Hinweise.

Bei dem "Close(False)" hatte ich dieses Schnipsel http://www.dannenhoefer.de/faqstarbasic/WiekannmanDokumenteschlieen.html#Zweig137 vom Dannenhöfer "im Hinterkopf", da ich ja an der CALC-Datei keinerlei Änderungen machte, aber natürlich ist "Close(True)" die bessere Variante, weil sie immer funktioniert.

Mit "StoreAsURL(uCALC,aCALCdummy())" hatte ich bis jetzt noch nie Probleme, aber "Store()" ist bei einer geöffneten benannten Datei sicherlich die logischere/bessere Variante. Werde ich mir auch so angewöhnen ...

Ich habe das Makro mal entsprechend Deinen Hinweisen/Vorschlägen angepasst und so in den BUG-Report ( https://bugs.documentfoundation.org/show_bug.cgi?id=139539 ) geladen.

Dass "Das Fixieren der Zeilen/Spalten ist eine Eigenschaft des CurrentControllers - also der Viewansicht." weiß ich schon, hast Du mir mal ja vor langer Zeit hier im Forum beigebracht :-)) aber diesen aktuellen Fall hatte ich noch nie. Er ist durch Peters Vorschlag ( https://listarchives.libreoffice.org/de/users/2021/msg00048.html ) entstanden, weshalb ich dann erst die Zeilen fixierte.

Da ich mit "xray" keinerlei Erfahrungen habe, ist es mir leider nicht möglich auf dieser Ebene im BUG-Report zu argumentieren, das geht einfach über meine Kenntnisse und Möglichkeiten hinaus. Vielleicht könntest Du ja die von Dir gewonnen Erkenntnisse in dem BUG-Report einbringen, wenn Du magst ...

Wie auch immer,
danke für Deine Bemühungen,
viele Grüße

Hans-Werner :-))

------ Originalnachricht ------