NL/Documentation/How Tos/Calc: functie DDE

From Apache OpenOffice Wiki
Jump to: navigation, search


DDE

Geeft gegevens terug uit een koppeling die is gebaseerd op DDE.

Syntaxis:

DDE(server; bestand; item; modus)

server is de (tekst)naam van een server; bijvoorbeeld "soffice" voor OpenOffice.
bestand is de (tekst) complete naam of IRL (Internet Resource Locator) van het document dat de gegevens bevat; bijvoorbeeld "c:\office\document\test1.ods" of "file:///documenten/test2.ods".
item is de (tekst)naam van het item dat moet worden teruggegeven. Bijvoorbeeld "Blad1.B3" is cel B3 op Blad1 van een Calc-werkblad; "MijnBereik" is de naam van een bereik in een Calc-werkblad; "MijnItem" is de naam van een sectie of tabel in een Writer-document.
modus is een optionele parameter die specificeert hoe getallen worden teruggegeven. Niet-numerieke tekst wordt ongewijzigd teruggegeven.
0 of weggelaten: Gegevens worden geconverteerd naar getallen indien mogelijk, in het standaard opmaakprofiel
1: Gegevens worden geconverteerd naar getallen indien mogelijk, in de indeling US English (en_US) (bijvoorbeeld met “.” als het decimale scheidingsteken)
2: Gegevens worden altijd opgehaald als tekst (niet geconverteerd naar getallen).
DDE maakt een koppeling naar(en geeft de inhoud terug van) item, dus elke wijziging in item wordt weerspiegeld door het resultaat van DDE.
Een alternatieve methode om een DDE-koppeling te maken is door de cel of het bereik te kopiëren vanuit het bronbestand naar het klembord, en dan de menuopdracht Bewerken → Plakken speciaal te gebruiken, en de optie 'Koppeling' te selecteren. De koppeling wordt ingevoegd als een DDE-functie, als een matrixformule.
De menuopdracht Bewerken → Koppelingen… somt DDE-koppelingen op, en staat toe dat ze worden aangepast, handmatig worden bijgewerkt of verbroken.


DDE staat voor "Dynamic Data Exchange," wat de voorganger is van OLE, "Object Linking and Embedding". DDE-objecten worden gekoppeld door middel van een verwijzing naar de bron; zij worden niet ingebed in het doeldocument.

Voorbeelden:

=DDE("soffice";"C:\OpenOffice\test1.ods";"Blad1.C7")

maakt een koppeling naar en geeft de inhoud terug van cel C7 op Blad1 van het Calc-bestand test1.ods.

=DDE("soffice";"C:\OpenOffice\test2.odt";"Tabel1")

indien ingevoerd als een matrixformule, maakt een koppeling naar en geeft de inhoud terug van de tabel genaamd Tabel1 in het Writer-bestand test2.odt, in één enkele kolom. Elke alinea in een tabelcel verschijnt in zijn eigen cel. De inhoud van de tabelcel linksboven verschijnt eerst, in volgorde gevolgd door de andere cellen op de bovenste rij, en op dezelfde wijze, op volgorde, gevolgd door andere rijen. De functie INDEX kan worden gebruikt om slechts gedeelten van de tabel terug te geven.

=DDE("soffice";"C:\OpenOffice\test2.odt";"Sectie1")

indien ingevoerd als een matrixformule, maakt een koppeling naar en geeft de inhoud terug van de sectie genaamd Sectie1 in het Writer-bestand test2.odt, in één enkele kolom, één alinea per cel. Indien normaal ingevoerd (niet als een matrixformule) geeft dit de eerste alinea van Sectie1 terug.

=INDEX(DDE("soffice";"C:\OpenOffice\test2.odt";"Sectie1");2)

indien ingevoerd als een matrixformule, maakt een koppeling naar en geeft de inhoud terug van de tweede alinea van Sectie1 in het Writer-bestand test2.odt.

Problemen:

  • Excel heeft deze functie niet.
  • Bij het gebruiken van een matrixformule om gegevens terug te geven, wordt de grootte van de matrix gefixeerd bij de eerste berekening. Indien bijvoorbeeld het aantal regels in een Writertabel of sectie wijzigt, wijzigt de grootte van de matrix in Calc niet.
  • Op het grootste deel van de platformen worden geaccentueerde tekens verkeerd behandeld.
  • Er zijn alternatieve manieren om externe gegevens te koppelen.

Zie ook

Personal tools