Hoe moet u Labeljoy in uw databeheer-software integreren
Software integratie
Als u labelprinten wilt toevoegen aan een bestaande software-infrastructuur (of het nu een simpel Excelbestand is of een kostbaar ERP-systeem) zijn hier een aantal richtlijnen hoe u Labeljoy binnen uw bureaubladtoepassingen kunt integreren.
1 – De basisprincipes: een print-snelkoppeling
Als u uw labels al hebt gemaakt en ze alleen nog maar hoeft af te drukken, hoeft u Labeljoy niet elke keer te starten. De eenvoudigste manier om een Labeljoy bestand af te drukken is door een afdruksnelkoppeling in te stellen.
Zodra u een bestand hebt geladen dat u vaak wilt afdrukken, gaat u naar Bestand/Opslaan en selecteert u Afdruksnelkoppeling opslaan op Bureaublad:
Dit maakt een snelkoppeling op uw bureaublad met een speciaal pictogram dat, wanneer u dubbelklikt, Labeljoy op de achtergrond start en het bestand naar de printer stuurt.
Labeljoy maakt deze snelkoppelingen altijd op het bureaublad, maar als ze eenmaal zijn gemaakt, kunnen ze naar elke locatie op uw harde schijf worden verplaatst. Ze werken zolang het gekoppelde bestand niet wordt verwijderd, verplaatst of hernoemd.
Je hebt nu een snelkoppeling waarmee je je meest gebruikte etiketten kunt afdrukken met een dubbelklik.
Het kan handig zijn om de link een andere naam te geven, zodat het doel gemakkelijk te herkennen is.
2 – Datagekoppelde labels printen
Labeljoy laat u gegevens op labels zetten vanuit externe databronnen zoals Excelbestanden, Accessbestanden of professionele database-systemen zoals SQL Server, Oracle of MySql.Raadpleeg de instructievideo om meer te weten te komen.
Als u uw labels wilt updaten alvorens ze te printen, moet u een speciale optie activeren die in het Groepsinstellingen-formulier staat; namelijk de optie Update gegevens als dit bestand geladen of afgedrukt wordt:
Wat deze optie doet is de gegevens opnieuw laden telkens als het bestand wordt geopend of voordat het wordt geprint. De gegevens worden geladen volgens de parameters die tijdens de eerste koppeling zijn ingevoerd, dus in bovenstaand geval moet het bestand C:\Logistic label.xlsx nog bestaan en de sheet Logistieke labels moet er ook nog zijn, anders werkt de gegevensupdate niet..
Deze optie stelt u in staat om altijd labels met de laatste gegevens te printen. Als de snelkoppeling die we eerder hebben gemaakt dus verwijst naar een datagekoppeld en automatisch updatend Labeljoy-bestand, hoeft u alleen maar op de snelkoppeling te klikken als er nieuwe gegevens beschikbaar zijn voor afdrukken.
BELANGRIJK: Labeljoy bewaart de naam van de printer die wordt gebruikt om elk bestand te printen. Dit betekent dat de printer die wordt gebruikt voor een dergelijke 1-klik printopdracht ook de printer is die het laatst is gebruikt toen het Labeljoy-bestand werd aangepast.
3 – Integratie naar Excel via VBA
Als de af te drukken gegevens in een Excelbestand staan, kunt u via de programmeertaal Visual Basic for Application (VBA) ook een snelkoppeling binnen datzelfde Excelbestand maken om de labels te printen.
Hier heeft u wel wat programmeervaardigheden voor nodig en enige kennis van de VBA-omgeving.
Hiervoor gebruiken we een variatie op de bestanden die we hebben gemaakt in de GS1-instructie.
We gaan ervan uit dat beide bestanden in de hoofdmap van de C-schijf staan, C:\.
Open eerst het Labeljoybestand en zorg ervoor dat de optie Update gegevens als dit bestand geladen of afgedrukt wordt is aangevinkt, zoals beschreven in het vorige hoofdstuk.
Als u het gekoppelde Excelbestand heeft opgeslagen op een andere locatie dan de C-schijf, update dan de locatie onder Groepsinstellingen/Databron.
Sla het Labeljoy-bestand op en sluit Labeljoy.
Vanaf nu hoeven we ons niet meer bezig te houden met Labeljoy, maar alleen met de af te drukken gegevens.
Het Excel-bestand bevat een enkele rij gegevens en een knop die is gekoppeld aan een VBA Macro:
Open het Excelbestand en daarna de VBA-editor door ALT+F11 in te drukken om te kijken wat er achter de schermen gebeurt:
In de modLabelPrinting module vindt u een enkele routine genaamd LabelPrint. Het is een simpele macro die eerst het Excel workbook opslaat en daarna het Labeljoybestand uitvoert voor afdrukken. Deze laatste stap wordt bereikt door het gebruik van de ShellExecute Windows API-functie (meer info hierover op de MSDN website).
Nogmaals, als u het Labeljoybestand Software integration.lpa op een andere locatie heeft opgeslagen dan de root van de C-schijf, zorg er dan voor dat u de volgende regel op juiste wijze aanpast:
sLabelJoyFileNameAndPath = [Voer hier de correcte bestandslocatie in tussen aanhalingstekens]
Zodat als de knop Sla op en print wordt aangeklikt, de Macro uitgevoerd wordt: het Excelbestand wordt opgeslagen en het Labeljoybestand wordt geupdate en dan geprint. Probeer de gegevens in het Excelbestand maar eens aan te passen en klik dan op de knop om het resultaat te zien.
4 – Integratie in een ERP systeem
Als uw bedrijf haar gegevens beheert in een ERP-systeem dat intern ontwikkeld en onderhouden wordt, kunt u de voorgaande aanpak toepassen door een corresponderende routine te schrijven in de programmeertaal van uw keuze. De enige voorwaarde is dat Labeljoy wordt geinstalleerd op de clientcomputer waar de labels normaalgesproken worden geprint.
Hieronder volgt een voorbeeldapplicatie geschreven in VB.NET (Visual Studio 2022, framework 3.5). Deze code was bedoeld voor een apparaat waarop Labeljoy 6 is geinstalleerd. Dit voorbeeld vereist een zekere basiskennis van de VB.NET programmeertaal, alsmede bekendheid met ADO.NET.
Als de applicatie voor het eerst draait, kopieert het twee bestanden die worden opgeslagen in de resource area:
- Logistic label.mdb. Access-database met 2 tabellen: De tabel Logistic Label die de gegevens bevat die worden afgedrukt. De tabel ISO3166 met de landcodes, nodig voor de velden Country Code en Country Prefix.
- Logistic label.lpa. Het Labeljoy-bestand dat moet worden afgedrukt. Dit bestand bevat de gegevens die zijn gekoppeld aan de tabel Logistic Label in het Access-bestand.
Beide bestanden worden gekopieerd naar de Labeljoy-map binnen Documents.
De applicatie bestaat uit een enkel formulier dat wordt gebruikt om de benodigde data te verzamelen die op het logistieke label moet worden geprint:
Zodra het formulier is gevuld met de gegevens die we willen afdrukken, klikt de gebruiker op de knop Printen.
De ingevoerde gegevens worden eerst gevalideerd in de CheckData functie. Als er incoherentie wordt gevonden, wordt een bericht weergegeven. Er wordt niet afgedrukt, totdat alle fouten zijn opgelost. Zie in-line opmerkingen voor meer details:
Zodra de gegevens zijn gevalideerd, worden deze opgeslagen in de LogisticLabel tabel van het mdb-bestand via de UpdateData functie. Zoals u kunt zien in de code wordt een Delete melding altijd gedaan voordat de nieuwe gegevens zijn opgeslagen omdat we voor dit voorbeeld slechts een enkele regel data in de brontabel nodig hebben:
Vervolgens wordt, met behulp van de ShellExecute Windows API-aanpak, de label vervolgens afgedrukt:
Het bestand Logistic label.lpa wordt in LabelJoy geladen en data-updates vinden plaats door het inlezen van de nieuw ingevoegde data uit het mdb-bestand. Vervolgens wordt er afgedrukt en LabelJoy wordt afgesloten.
Het gegevensupdateproces wordt mogelijk gemaakt door een verborgen Labeljoy-functie: als een Labeljoy-bestand is gekoppeld aan een gegevensbron die oorspronkelijk is opgeslagen in de Labeljoy-map Documenten/Labeljoy, zullen toekomstige gegevensupdates altijd verwijzen naar een locatie in de Labeljoy-map Documenten, zelfs als deze is gewijzigd.
Stel bijvoorbeeld dat u een Labeljoy-bestand koppelt aan een gegevensbron in C:\Users\John\Documents\Labeljoy. Vervolgens verplaatst u het Labeljoy-bestand en het gegevensbestand naar een andere pc. Deze keer, omdat het een andere gebruiker is, wordt de documentenmap van Labeljoy C:\Users\Mary\Documents\Labeljoy. Wanneer Mary het Labeljoy-bestand opent en gegevens worden bijgewerkt, herkent Labeljoy dat de oorspronkelijke gegevensbron werd gevonden onder Documenten/Labeljoy en past het pad aan volgens de documentenmap van de huidige gebruiker op de huidige machine.