Documentatie/Calc-functies/DDE

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Documentation/Calc Functions/DDE and the translation is 100% complete.
Other languages:
English • ‎Nederlands



Functienaam:

DDE

Categorie:

Werkblad

Samenvatting:

Dynamic Data Exchange (DDE) is een oud protocol dat kan worden gebruikt om gegevens tussen applicaties te delen.

De DDE-functie start een "gesprek" tussen Calc (de "client") en een andere toepassing die DDE (de "server") ondersteunt, waardoor de server gevraagde gegevens kan doorgeven aan de client als resultaat van de functieaanroep. Wanneer de server vervolgens een wijziging in de gegevens van belang detecteert, geeft hij de update automatisch door aan de client.

DDE-objecten zijn gekoppeld aan hun bron; ze zijn niet ingesloten in het doelwerkblad.

Syntaxis:

DDE(Server; Onderwerp/Bestand; Item/Bereik [; Modus])

Retourneert:

Retourneert de juiste gegevens van een DDE-verzoek.

Argumenten:

Server is een tekstreeks (tussen aanhalingstekens) of een verwijzing naar een cel die zo'n tekstreeks bevat, dat wil zeggen de naam van een servertoepassing. De servernaam voor LibreOffice is "soffice"; er kunnen andere DDE-servers op uw systeem aanwezig zijn (bijvoorbeeld "excel" voor Microsoft Excel en "winword" voor Microsoft Word). De beschikbaarheid van andere servers hangt echter af van uw computersysteem, de opzet en de inhoud ervan - verdere bespreking van dit aspect valt buiten het bestek van deze wikipagina.

Onderwerp/Bestand is een tekstreeks (tussen aanhalingstekens) of een verwijzing naar een cel die zo'n tekstreeks bevat, dat wil zeggen de volledige naam van het bestand met de gegevens van belang, inclusief padspecificatie. DDE ondersteunt momenteel het gebruik van relatieve paden in dit argument niet.

Item/Bereik is een tekstreeks (tussen aanhalingstekens) of een verwijzing naar een cel die zo'n tekstreeks bevat, die de specifieke gegevens identificeert die moeten worden geretourneerd. Dit kan bijvoorbeeld een benoemd bereik zijn of een verwijzing naar een celbereik voor een Calc-werkblad of de naam van een sectie of bladwijzer voor een Writer-document.

Modus is een geheel getal of een verwijzing naar een cel die dat getal bevat, dat wil zeggen een code om de methode te bepalen waarmee de DDE-server zijn gegevens in getallen omzet. Het kan worden ingesteld op 0, 1 of 2, met de betekenis die aan elke code wordt toegekend in de volgende tabel.

Interpretatie van het modusargument
Modus Effect
0 of weggelaten Gegevens worden indien mogelijk geconverteerd naar een getal, met behulp van het standaardcelopmaakprofiel.
1 Gegevens indien mogelijk geconverteerd naar een getal, in Amerikaans-Engelse indeling (bijvoorbeeld met "." als decimaalteken).
2 Gegevens worden opgehaald als tekst, zonder conversie naar getal.
  • Als Onderwerp/Bestand, Server en Item/Bereik niet geldig is, retourneert DDE als fout #N/B.
  • Als Modus niet-numeriek is, dan retourneert DDE als fout #WAARDE!.
  • Als Modus een negatieve waarde is, dan retourneert DDE als fout Ongeldig argument (Fout:502).
  • Als Modus een niet-gehele waarde is, wordt deze afgekapt tot een geheel getal.
  • Als Modus, na afkappen, groter is dan 2, dan wordt deze teruggezet naar de standaardwaarde 0.
  • Als u een Calc-werkblad opent met een DDE-functieaanroep en Calc kan geen DDE-conversatie tot stand brengen voor de opgegeven argumenten, dan wordt een waarschuwingsvenster weergegeven.

Aanvullende details:

Note pin.svg

Tip:
Calc biedt verschillende alternatieve manieren om naar externe gegevens te koppelen.

  • DDE staat voor "Dynamic Data Exchange", een voorloper van OLE, "Object Linking en Embedding".
  • Cross-platform koppelingen, bijvoorbeeld van een LibreOffice-installatie die op een Windows-machine draait naar een document dat zich op een Linux-machine bevindt, worden niet ondersteund.
  • De LibreOffice DDE-server wordt "soffice" genoemd en maakt het mogelijk gegevens te delen tussen Writer- en Calc-bestanden. Meer in het algemeen is de DDE-functie echter niet overdraagbaar omdat deze afhangt van de beschikbaarheid van externe DDE-servers en hun interpretatie van de argumenten Onderwerp/Bestand en Item/Bereik.
  • Als u Microsoft Excel gebruikt om een Calc-spreadsheet te openen dat aanroepen naar de DDE-functie bevat, worden de DDE-functieaanroepen vervangen door statische gegevens omdat Excel geen gelijkwaardige functie biedt.
  • Wanneer u een Calc-spreadsheet opent dat DDE-koppelingen bevat, wordt u mogelijk gewaarschuwd dat het automatisch bijwerken van externe koppelingen is uitgeschakeld. Klik op de knop Bijwerken toestaan om de koppelingen in te schakelen.
  • Het commando Bewerken ▸ Koppelingen naar externe bestanden op de menubalk geeft een lijst van DDE-koppelingen en maakt het mogelijk deze te wijzigen, handmatig bij te werken of te verbreken. Wanneer een DDE-link in eerste instantie wordt gemaakt, wordt de instelling Bijwerken in het dialoogvenster Koppelingen bewerken standaard ingesteld op Automatisch. Deze instelling houdt in dat als u beide bestanden open heeft staan en u een wijziging aanbrengt in de gekoppelde gegevens, die wijziging automatisch wordt doorgevoerd in het bestand dat de DDE-functieaanroep bevat, zonder verdere tussenkomst. Voor een individuele DDE-koppeling kunt u de instelling Bijwerken in het dialoogvenster Koppelingen bewerken wijzigen in Handmatig. Met deze instelling worden eventuele wijzigingen in de gekoppelde gegevens niet weergegeven in het bestand met de DDE-functieaanroep totdat u de koppeling handmatig bijwerkt.
  • De DDE-functie is bijzonder krachtig wanneer deze wordt ingevoerd als een matrixformule. Om een matrixformule te maken, typt u de formule in de invoerregel in het bovenste deel van het Calc-venster en drukt u na voltooiing op Shift+Control+Enter (Shift+Command+Enter op macOS) in plaats van het meer gebruikelijke Enter. U kunt ook de Functie-assistent gebruiken om de aanroep van de DDE-functie te maken en het selectievak Matrix aan te vinken voordat u op OK drukt. Als u op een cel klikt die een matrixformule bevat en de formule in de invoerregel bekijkt, wordt de inhoud van die cel tussen accolades geplaatst, bijvoorbeeld {=DDE("soffice"; "C:\Mijn bestanden\ranglijsten.ods"; "Divisie1")}. Het is niet mogelijk om een matrixformule te maken door simpelweg de accolades rond een niet-matrixformule te typen.
  • Een voorbeeld van het gebruik van DDE in een matrixformule kan optreden wanneer een DDE-koppeling moet worden gemaakt zodat een tekstgedeelte in een Writer-document (bestaande uit meerdere alinea's) naar een Calc-werkblad kan worden gekopieerd. U kunt een niet-matrix-formule invoeren, zoals =DDE("soffice"; "C:\rapport.odt"; "Introductie") om deze koppeling te maken en tekst te importeren uit de Writer-sectie met de naam " Introductie" in het bestand "C:\rapport.odt". Deze formule geeft echter alleen de eerste alinea van de sectie; om alle alinea's van de sectie op te nemen, voert u de DDE-koppeling in als een matrixformule. Opgemerkt moet worden dat zodra u de DDE-koppeling hebt gemaakt met behulp van een matrixformule, het maximale aantal alinea's beperkt is tot het aanvankelijk geretourneerde aantal. Extra alinea's die aan het einde van de sectie in het Writer-document zijn toegevoegd, verschijnen niet in het Calc-werkblad. Evenzo, als u een matrixformule gebruikt om een ​​DDE-koppeling naar een tabel in een Writer-bestand te maken, dan zijn de maximale afmetingen van de tabel in het Calc-werkblad beperkt tot de oorspronkelijke grootte.
  • Een alternatieve methode om een ​​DDE-koppeling te maken, is door de cel of het bereik van het bronbestand naar het klembord te kopiëren en vervolgens de optie Bewerken ▸ Plakken speciaal ▸ Plakken speciaal ▸ Als koppeling te gebruiken. De koppeling wordt ingevoegd als een DDE-functie, als een matrixformule.

Voorbeelden:

Gegevens kopiëren uit een ander werkblad

Formule Beschrijving Retourneert
=DDE("soffice"; "c:\werkbladen\dde_test.ods"; "Blad1.D10") waarbij cel Blad1.D10 in het opgegeven werkblad het nummer 345,678. Hier retourneert de functie de inhoud van cel D10 in Blad1 van het werkblad c:\werkbladen\dde_test.ods. Het geretourneerde getal wordt weergegeven in het standaardcelopmaakprofiel. 345,678
=DDE("soffice"; "c:\werkbladen\dde_test.ods"; "Blad1.D11"; 2) waarbij cel Blad1.D11 in het opgegeven werkblad het nummer 456,789. Hier retourneert de functie de inhoud van cel D11 in Blad1 van het werkblad c:\werkbladen\dde_test.ods. De geretourneerde waarde wordt weergegeven als tekst in plaats van als een getal. 456,789
=DDE(A1; A2; A3; A4) waarbij cellen A1 tot A3 respectievelijk de tekenreeksen "soffice", "c:\werkbladen\dde_test.ods" en "Blad1.D12" bevatten (getypt zonder aanhalingstekens), terwijl cel A4 bevat het cijfer 2; Blad1.D12 in het opgegeven werkblad bevat het nummer 567,89. Hier retourneert de functie de inhoud van cel D12 in Blad1 van het werkblad c:\werkbladen\dde_test.ods. De geretourneerde waarde wordt weergegeven als tekst in plaats van als een getal. 567,89

Gegevens kopiëren uit een tekstdocument

In het volgende voorbeeld bevat het Writer-bestand c:\werkbladen\analyse van snelheidsgegevens.odt een tabel met de naam ruwe metingen die de volgende gegevens bevat:

Inhoud van de tabel met ruwe metingen
tijd km/h
00:00 66
00:00 61
00:28 38
00:28 82
00:28 82
00:43 46
00:43 104
00:43 114
01:12 101
Formule Beschrijving Retourneert
{=DDE("soffice", "c:\werkbladen\analyse snelheidsgegevens.odt", "ruwe metingen", 2)} met de formule ingevoerd in cel A1. Hier is de formule als matrixformule ingevoerd via Shift+Control+Enter (Shift+Command+Enter op macOS). De formule retourneert de inhoud van de tabel met ruwe metingen uit het Writer-bestand c:\werkbladen\analyse snelheidsgegevens.odt en geeft die gegevens weer in een enkele kolom. Elke alinea in een cel van de brontabel verschijnt in een eigen cel. De inhoud van de tabelcel linksboven verschijnt eerst, in volgorde gevolgd door andere cellen in de bovenste rij en gevolgd door andere rijen in volgorde.

Met de voorbeeldgegevens hierboven:

  • De tekst "tijd" verschijnt in cel A1.
  • De tekst "km/h" verschijnt in cel A2.
  • De tekst "00:00" verschijnt in cel A3.
  • De tekst "66" verschijnt in cel A4.
  • De tekst "00:00" verschijnt in cel A5.
  • De tekst "61" verschijnt in cel A6.

enzovoort.

Zie beschrijving

Neem voor de volgende voorbeelden aan dat er een Writer-bestand met de naam manches.odt is in de map c:\Diversen. Dit document bevat een sectie met de naam Diverse manches die drie alinea's bevatten, bestaande uit de volgende tekstreeksen:

  • Denk voor je spreekt.
  • Morgen is er weer een dag.
  • Tijd die u graag verspilt, is geen verspilde tijd.

Merk op dat in Writer secties worden gemaakt en benoemd met behulp van Invoegen ▸ Sectie op de Menubalk en dat de namen van bestaande secties kunnen worden bekeken met behulp van de Navigator (Beeld ▸ Navigator).

Formule Beschrijving Retourneert
=DDE("soffice"; "c:\Diversen\maches.odt"; "Diverse manches") Hier retourneert de functie de inhoud van de eerste alinea in de sectie. Hier retourneert de functie de inhoud van de eerste alinea in de sectie.
{=DDE("soffice"; "c:\Diversen\maches.odt"; "Diverse motto's")} met de formule ingevoerd in cel A1. Hier is de formule als matrixformule ingevoerd via Shift+Control+Enter (Shift+Command+Enter op macOS). In dit geval worden alle drie de tekenreeksen geretourneerd en Calc rangschikt ze in een kolom. Cel A1 toont "Denk na voordat je spreekt.", cel A2 toont "Morgen is er weer een dag.", en cel A3 toont "Tijd die je graag verspilt, is geen verspilde tijd.". A1 - Denk na voordat je spreekt.

A2 - Morgen is er weer een dag.
A3 - Tijd die u graag verspilt, is geen verspilde tijd.

Gerelateerde LibreOffice-functies:

Geen.

ODF standaard:

Section 6.11.2, part 2

Gelijkwaardige Excel-functies:

Geen