[Megoldva] HTA ból Calc, LibreOfficeból cmd command stb.

Táblázatkezelő
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

[Megoldva] HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Először is elnézést kérek, ha bármilyen írott, vagy egyéb szabályt megszegek.
Esetleg rossz érzéseket keltek bárkiben.
Először életemben kommunikálok így.

Sajnos az APPI leírásban nem találtam megoldást, nem vagyok jó angolban.
Lehet, hogy nagyon evidens gondot vetek fel, de hát nekem ez még gond.


Op: XP sp3
Libreoffice: Verzió: 4.2.4.2

HTA(vbs)-ból kéne Scalcot (vagy bármi mást) hívni, illetve calc(basic) ból dost vagy bármi mást pl:.AcroRd32.

Ami ms.excelben ment az Libreoffice basicból nem:
Pl.:

Kód: Egész kijelölése

Sub pdf_nyit()
   'Dim pdf_Fszam As Long
   Dim parancs$
   On Error GoTo PDFhiba
   ChDir "C:\Program Files\Adobe\Reader 9.0\Reader"
   parancs$ = "AcroRd32.exe C:\munka\pelda.pdf"
   pdf_Fszam = Shell(parancs$, vbNormalFocus)
   GoTo PDFvege
PDFhiba:
   MsgBox "Hiba száma: " + Str$(Err) + Chr(13) + Space(8) + "szövege: " + Err.Description
   Err.Clear
PDFvege:
End Sub
Az Actvex megy vbs ből, de nem megy hta-ból

Kód: Egész kijelölése

Set objServiceManager= WScript.CreateObject("com.sun.star.ServiceManager")
Set objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection")
Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")
Dim args()	
Set objDocument= objDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
 Szerkesztett: Globális moderátor: a kódrészleteket a jobb átláthatóság kedvéért a "Code" TAG-gel emeltem ki. 
A hozzászólást 2 alkalommal szerkesztették, utoljára Aimre 2014. július 9., szerda 18:04-kor.
LibreOffice Verzi??: 4.2.4.2
XP
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Sziasztok,

Picit alakulok.
LibreOfficeból már tudok külsőt hivni. Pl.:

Kód: Egész kijelölése

Sub pdf_nyit()
   Dim WshShell  as Object
   Dim menu_bat  as String
   Dim pdf_Fszam As Long
   Set WshShell = CreateObject("WScript.Shell")
   On Error GoTo PDFhiba
   ChDir "C:\Program Files\Adobe\Reader 9.0\Reader"
   menu_bat = "AcroRd32.exe C:\hid\701.pdf"
   WshShell.Run(menu_bat)
   Set WshShell = Nothing            
   GoTo PDFvege
PDFhiba:
   EMsgBox "Hiba száma: " + Str$(Err) + Chr(13) + Space(8) + "szövege: " + Err.Description
   Err.Clear
PDFvege:
End Sub
HTA ból is todok Scalcot ot hívni, de még nem tudok kommunikálni(cellába írni/olvasni). Pl.:

Kód: Egész kijelölése

  Set WshShell = CreateObject("WScript.Shell")
          menu_bat="c:\hid\napzaras.ods" 
          menu_bat="C:\hid\WriterDemo.vbs" 
          WshShell.Run(menu_bat)
          Set WshShell = Nothing               
          Set WshShell = Nothing                                
          window.close          
VBS ben hogy ír a cellába az ember ha már nyitva van a sheet?
LibreOffice Verzi??: 4.2.4.2
XP
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

Sajnos az APPI leírásban nem találtam megoldást, nem vagyok jó angolban.
Lehet, hogy nagyon evidens gondot vetek fel, de hát nekem ez még gond.
A programozási felület neve API, és nem APPI.
Egy minimális angoltudás nélkül nehéz lesz. Remek leírások, fórumtémák, kódrészletek találhatók szerte a neten - de többségében angolul.


VBS ben hogy ír a cellába az ember ha már nyitva van a sheet?
Nem látom a példakódodban azt, hogy hol is nyitod meg az .ods Dokumentumot, és fogod meg a Munkalapot?!
Itt van némi példakód:
"How to send data from a VB program to OpenOffice.org Calc directly"
http://www.ultimaserial.com/exo.html

Itt cellatartalom olvasásáról van szó, de az írás nagyon hasonlóan megy:
https://forum.openoffice.org/en/forum/v ... 20&t=37372
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Köszönöm, most jó.
LibreOffice Verzi??: 4.2.4.2
XP
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

Akkor nekem is...
:-)

Mi jó? Megoldódott a probléma?
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Az egyik linkről amit küldtél, kivettem a kódot és addig variáltam, hogy most hta-ból is jőn a Calc. Olvasni is tudok cellát. Írni még nem de ez csak idő kérdése.

Kód: Egész kijelölése

    Sub window_onload
          window.resizeTo 640,344                  '*****    640,344
          document.title="Test"
          Set FSO = CreateObject("Scripting.FileSystemObject")
	  Set oSM = CreateObject("com.sun.star.ServiceManager")
	  Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
	  cURL = "file:///C:/hid/napzaras.ods"
          set oDoc = oDesk.loadComponentFromURL( cURL, "_blank", 0, Array() )
          set oSheet = oDoc.getSheets().getByName( "munka" )
          set oCell = oSheet.getCellByPosition( 1, 2 )
          nValue = oCell.getValue()
          msgbox nValue 
     end sub
LibreOffice Verzi??: 4.2.4.2
XP
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

Kód: Egész kijelölése

nValue = oCell.getValue()
Elvileg a fordítottjának írni kellene a cella értékét. (már ha valóban ÉRTÉKET akarsz a cellába írni, és nem szöveget, képletet, lokális képletet...)

Valami ilyesmi módon:

Kód: Egész kijelölése

oCell.Value = nValue+1
Esetleg:

Kód: Egész kijelölése

oCell.SetValue = nValue+1
Vagy:

Kód: Egész kijelölése

oCell.SetValue(nValue+1)
a "+1" csak azért van, hogy lásd a változást...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

...de jó lenne, ha néhány szóval leírnád, hogy mivel írod, és hogyan futtatod a kódot, mert a HTA-ról fogalmam sincs, csak az AOO/LO API-hoz konyítok valamelyest.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

A HTA kiterjesztésű filet nem a böngésző, hanem az mshta.exe futtatja..
A VBScript nyelve érvényes rá.
Itt egy teljes forrás, ami csak a Calcot hívja és olvas, meg ír.
Én a Juhász Tibor Kiss Zsolt
Tanuljunk Programozni
Visual Basic Script
Objektumok
Web c. könyvéből vettem amit tudok.

Kód: Egész kijelölése

<!--  *********  HTA ablak megjelenési paraméterek  VER:1.0  *********  -->
<HTML>
  <HEAD>
      <meta HTTP-EQUIV="Content-Type" Content="text-html; charset=windows-1250">
      <HTA:Application id   = "telhta"
          applicationName = "telefon"
          border          = "thin"
          borderStyle     = "sunken"
          caption         = "yes"
          contextMenu     = "no"
          innerBorder     = "yes"
          maximizeButton  = "no"
          minimizeButton  = "yes"
          navigable       = "no"
          scroll          = "no"
          scrollFlat      = "yes"
          selection       = "no"
          showInTaskBar   = "yes"
          singleInstance  = "no"
          sysMenu         = "yes"
          windowState     = "normal">
      </HTA>
      </meta>
  </HEAD>
<!--  *********  VBS kezdete  *********  -->
    <SCRIPT language = "VBS">
       'Option Explicit
       public ev,ido,ho,nap,mainap,FSO,S,WScript
       Dim WshShell,menu_bat,hiba,i,munka,tabla,cURL,oDoc,oSheet,oCell
       public oSM,oDesk,oRange
       public objServiceManager 
       Const kiv    ="c:\"
       Const email  ="C:\"         
'********************  Betöltéskor teendők  ********************
      Sub window_onload
          window.resizeTo 640,344                  '*****    640,344
          document.title="Test"
          Set FSO = CreateObject("Scripting.FileSystemObject")          
	  Set oSM = CreateObject("com.sun.star.ServiceManager")
	  Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
	  cURL = "file:///C:/hid/napzaras.ods"
          set oDoc = oDesk.loadComponentFromURL( cURL, "_blank", 0, Array() )
          set oSheet = oDoc.getSheets().getByName( "munka" )
          set oCell = oSheet.getCellByPosition( 1, 2 )
          nValue = oCell.getValue()
          msgbox nValue
          oCell.Value = nValue+1          
          msgbox oCell.getValue()
          oCell.SetValue = nValue+1                    
     end sub     
    </SCRIPT>
    <BODY>
    </BODY>
</HTML>
A hozzászólást 1 alkalommal szerkesztették, utoljára Aimre 2014. július 8., kedd 17:37-kor.
LibreOffice Verzi??: 4.2.4.2
XP
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

Köszi az infót!

Ezek szerint a kódodban használt két megoldás ("Set"-es és "Set" nélküli szintaxis) mindegyike írja a cella tartalmát?
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Nem: a setes megoldásra ez van:
Hiba: Az objektum nem támogatja ezt a tulajdonságot vagy metódust.: 'oCell.SetValue'
LibreOffice Verzi??: 4.2.4.2
XP
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

...És akkor a "Set" nélküli??
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Zizi64 »

Starbasic-ből ("belülről") programozom a Calc-ot, ott a

Kód: Egész kijelölése

oCell.setValue(DateValue(Now))

parancs nekem beírja a cellába az aktuális dátumot...

Tehát "paraméterként" adom át az adatot...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Aimre
Önkéntesek
Hozzászólások: 49
Csatlakozott: 2014. július 6., vasárnap 6:54

Re: HTA ból Calc, LibreOfficeból cmd command stb.

Hozzászólás Szerző: Aimre »

Startbasicből én így csinálom.

Kód: Egész kijelölése

sub cellabair_kezi    
    ThisComponent.Sheets(0).getCellRangeByName("A9").String = "kézzel"
end sub
Nem tudom, a setes miért nem megy HTA ból, de egy megoldás nekem elég.
Most azon küzdök, hogy HTA-ból láthatatlan(--invisible) módban tudjam hívni a Calcot.
Itt valahogy:

Kód: Egész kijelölése

set oDoc = oDesk.loadComponentFromURL( cURL, "_blank", 0, Array() )'
Igazából az API ról leszedtem az Activex filejait, át kéne böngészni.
Így kiderülne egy két dolog.. C ben még nem programoztam és az többnyire c.
LibreOffice Verzi??: 4.2.4.2
XP
Válasz küldése