j-pastierik napsal(a)Super, ja mám tento problém: potrebujem zatvoriť súbor, ktorý je otvorený a prepnúť sa do pôvodného. Ako vidím, tak to asi dokážem teraz vyriešiť - najprv sa prepnem do pôvodného a potom zatvorím ten druhý:
oSubor.store() ' uloží zmeny
oSubor.dispose() ' zatvorí súbor
xray je dobrý pomocník, ale niekedy je to na dlhé hľadanie :-)
Ja to tak nerobím, ale zatváram ho hneď (neprepínam sa do pvôvodného).
Mám to tak,že skopírujem dáta z pôvodného dokumentu v ktorom pracujem potom otvorím dokument ktorý mi slúži ako databáza tam vložím údaje uložím a zavriem a potom uložím a zavriem pvôvodný. Toto mi v pohode šlo aj predtým.
Tento problém (s prepínaním) mi vznikol až vtedy keď som potreboval skopírovať z pvôvodného dokumentu nejaké dáta dva krát(rozdielne) nešlo to a preto som musel hľadať riešenie ako ho znovu aktivujem.
PS:mám narobených dosť univerzálnych makier pre Calc na otváranie, zatváranie,uloženie, uloženie ako,prepínanie medzi listami, vkladanie do buniek,zoradenie dát a iné.
Niekde to môžem zakvačiť.Poprípade ak by mi tu povolili blog mohol by som to dať tam:)
Alebo čo tak pokračovanie Vášho seriálu tentoraz pre calc?
Nejaké makro na zatváranie a ukladanie zošitov kde sa netreba prepínať do iného dokumentu zavrie ho aj keď je aktívny:
takže makro sa volá s parametrom cesta (windowsáci si ju samozrejme zmenia na trebárs C:\ atd.)
sub makro
uloz_zosit("/media/................/databázy/cenníky.ods")
end sub
sub uloz_zosit(optional cesta as string)
dim oDoc, eDocs as object
set eDocs = StarDesktop.Components.CreateEnumeration' vytvor kolekciu otvorenych dokumentov
on error goto DALSI 'ak by bola chyba
do while eDocs.hasMoreElements ' prejdi kolekciu dokumentov
set oDoc = eDocs.NextElement
if oDoc.ImplementationName="ScModelObj" then ' pokiaľ je to zošit
if(ConvertFromURL(oDoc.URL))=cesta then ' a je to hladany zošit
oDoc.Store() ' tak ho uloz
oDoc.Close(true) ' a zavri
exit sub ' končíme
end if
end if
DALSI:
loop
end sub
LO 5.1.6 platforma Ubuntu-linux 16.04