CC- Ausdrucken eines Artikelbildes

27. Juni 2011 14:28

Hallo,

ich möchte einen bebilderten Ersatzteilkatalog ausdrucken.
Bilder sind den Artikeln bereits hinterlegt (Import).
Ich habe im Forum schon gesucht, aber für mich nicht die Antwort gefunden.
Ich möchte eigentlich einfach nur zur Artikelnummer das Bild drucken (Report).
Ich habe das noch nie gemacht. Kann jemand mir Hilfestellung geben?

Danke!!

mfg

Maria

Re: CC- Ausdrucken eines Artikelbildes

27. Juni 2011 14:33

Hi,

lies dir doch einmal diesen Beitrag durch.
Vielleicht hilft dir das schon weit genug.
Sonst einfach noch einmal fragen ;)

viewtopic.php?f=36&t=10746

Re: CC- Ausdrucken eines Artikelbildes

27. Juni 2011 14:58

So kann man z.B. Bilder direkt beim Druckvorgang (z.B. 70000.bmp für Seitenwand im Cronus) aus einem Ordner ausdrucken, ohne sie vorher in die Datenbank zu importieren.
Code:
Dataitem = Item
OnAfterGetRecord()
IF EXISTS ('C:\Bilder\'+"No."+'.BMP')
THEN
Picture.IMPORT('C:\Bilder\'+"No."+'.BMP',FALSE);
CALCFIELDS(Picture);

Fest importieren geht natürlich auch, wie das stapelweise geht ist hier erklärt ( da kommt dann ein MODIFY dazu).

Wichtig ist in beiden Fällen das CALCFIELDS, damit der Wert aus dem BLOB Feld angezeigt wird. Als Control wird eine Picture Box benutzt. Skalieren muss man das Bilder aber manuell, d.h es muss genau in die Abmessungen der Box passen sonst wird nur ein Ausschnitt angezeigt.

Re: CC- Ausdrucken eines Artikelbildes

27. Juni 2011 15:37

nicht vergessen entsprechende Sections einzurichten, sonst siehts bei Artikeln ohne Bild unschön aus. (viel Platz für ein nicht vorhandenes Bild verschenkt)

Re: CC- Ausdrucken eines Artikelbildes

27. Juni 2011 15:47

Wenn ich das richtig interpretiere, geht es hier um den Import der Artikelbilder.
Das ist schon mal gut zu wissen.

Wir haben uns jetzt darauf geeinigt, die Bilder extern auf ein Serververzeichnis abzuspeichern.
Das haben wir getan.
Jetzt habe ich halt das Problem, wie bringe ich das auf Papier (mit einem Report).

mfg

Maria

Re: CC- Ausdrucken eines Artikelbildes

27. Juni 2011 16:00

HungerMaria hat geschrieben:Wir haben uns jetzt darauf geeinigt, die Bilder extern auf ein Serververzeichnis abzuspeichern.
Das haben wir getan.
Jetzt habe ich halt das Problem, wie bringe ich das auf Papier (mit einem Report).

Lies dir einmal kowa's Antwort duch ;)

Re: CC- Ausdrucken eines Artikelbildes

28. Juni 2011 08:07

Guten Morgen,

folgende Zeilen habe ich in den "On AfterGetTrigger" geschrieben.


IF EXISTS('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+"No."+'.BMP') THEN
Picture.IMPORT('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+"No."+'.BMP',FALSE);
CALCFIELDS(Picture);

der Ausdruck funktioniert erst mal. Nur nach dem Abspeichern wird mir eine Warnung angezeigt:

Funktion 'IMPORT' ist für Microsoft Dynamics NAV Server veraltet. Zeilennr. 2

Eine weitere Frage habe ich.

Besteht die Möglichkeit, die Bilder zu verkleinern, ohne dabei nur einen Ausschnitt zu bekommen.

Vielen dank!

Maria

Re: CC- Ausdrucken eines Artikelbildes

28. Juni 2011 08:37

HungerMaria hat geschrieben:Funktion 'IMPORT' ist für Microsoft Dynamics NAV Server veraltet. Zeilennr. 2


Hi, hier gibt es bei Mibuso eine Beschreibung der neuen Codeunit (419) für das hochladen von Dateien:
http://mibuso.com/forum/viewtopic.php?f=32&t=39241

Verkleinern geht meiner Erfahrung nur mit einer eigenen Automation.
Da ist allerdings erst innerhalb der letzten zwei Wochen eine hier bereit gestellt worden.
Da kannst du ja mal schauen ob die für dich funktioniert.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 09:19

Guten Morgen,

das mit dem Bild-Ausdruck im Report funktioniert erst einmal.
Aber wie es immer so ist, es entsteht das nächste Problemchen.

Die Verbindung zwischen Artikel und Artikelbild wird bei uns durch den Workflow hergestellt.
Damit verbunden ist zwingend die Verwendung eines Nummernsystems. (Workflow-Einrichtung).
Gibt es irgendeinen "Trick", das er bei der Vergabe der Nummern, die nur "richtige" Artikelnummer übernimmt.

Wenn nicht, wie formuliere ich die unten markierte Stelle im Programm, das ich auf diesen Teil verzichten kann.
DOK33339 ist die vom Workflow vergebene Nummer.

IF EXISTS('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+ Item."No."+[b]' '+'DOK33339'[/b]+'.BMP') THEN BEGIN

Danke!

mfg

Maria

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 09:39

Hi,

du könntest dir mit Hilfe der File-Tabelle aushelfen.
Code:
CLEAR(FileTbl);
FileTbl.RESET;
//  Zurück setzten + FIND, sonst gibt es aktualisierungsprobleme
FileTbl.SETRANGE(Path,'C:\');
IF FileTbl.FIND('-') THEN;

FileTbl.RESET;
FileTbl.SETRANGE(Path,''\\192.168.80.11\Navision$\Artikel\Artikelbilder\');
FileTbl.SETRANGE("Is a file",TRUE);
FileTbl.SETFILTER(Name,'%1*.BMP',Item."No.");
IF FileTbl.FIND('-') THEN BEGIN
...
END;


Damit durchsuchst du den Ordner nach einer Datei die mit der Artikelnummer beginnt und auf BMP endet.
Diese kannst du dann übergeben.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 09:51

Könntest du mir bitte noch sagen, wie die "FileTbl" definiert wird, welchen Datentyp diese in den Globls hat.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 09:59

FileTbl ist eine Record-Variable auf die Tabelle File.
Diese musst du so eintippen, da es eine Systemtabelle ist.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 11:36

Folgendes versuche ich abzuspeichern, geht aber nicht. Folgende Fehlerausschrift kommt: "TableData 0 existiert nicht".


//IF gItem.GET("No.") THEN BEGIN
// IF EXISTS('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+ Item."No." + ' ' + 'DOK33339' + '.BMP') THEN BEGIN
// Item.Picture.IMPORT('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+Item."No."+' '+'DOK33339'+'.BMP',FALSE);
// Item.CALCFIELDS(Picture);

CLEAR(FileTbl);
FileTbl.RESET;
// Zurück setzten + FIND, sonst gibt es aktualisierungsprobleme
FileTbl.SETRANGE(Path,'C:\');
IF FileTbl.FIND('-') THEN;
FileTbl.RESET;
FileTbl.SETRANGE(Path,''\\192.168.80.11\Navision$\Artikel\Artikelbilder\');
FileTbl.SETRANGE("Is a file",TRUE);
FileTbl.SETFILTER(Name,'%1*.BMP',Item."No.");
IF FileTbl.FIND('-') THEN BEGIN
//Item.Picture.IMPORT('\\192.168.80.11\Navision$\Artikel\Artikelbilder\'+Item."No."+' '+'DOK33339'+'.BMP',FALSE);
//Item.CALCFIELDS(Picture);

END;
END;
//END;

Kannst du mir bitte noch mal weiterhelfen.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 11:44

HungerMaria hat geschrieben:Folgendes versuche ich abzuspeichern, geht aber nicht. Folgende Fehlerausschrift kommt: "TableData 0 existiert nicht".

Hi,

das klingt nach einer Global oder Lokalen Variable vom DataTyp Record ohne angabe der Tabellennummer.
Könnte das hinkommen?

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 12:57

Ich habe als Dateiname file eingetragen, steht auch drinnen. Kann es sein, dass das mit der Lizenz zusammenhängt?
Super-User bin ich.

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 14:44

Ich habe den oben beschriebenen Report gelöscht und noch mal neu angelegt, jetzt geht er.
Nur das das Bild nicht gefunden wird.
Wenn ich eine Message ausgeben lasse, kommt bei FileTbl.Name = $Recycle.Bin.
Sagt dir das was?

Ich bin so was von hmmmm... ich denke immer jetzt hast du´s. Ich bin bestimmt kurz davor und möchte es auch gerne heute noch schaffen.

Ich wäre dir dankbar, wenn ....

mfg


Maria

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 15:54

Ich habe es mal mit einem lokalen Laufwerk probiert.
Obwohl eine Menge Bilder auf dem Laufwerk gespeichert sind, sagt er immer "... er kann das laufwerk nicht finden".
Stimmt da an der Syntax etwas nicht????????

Beispiel: FileTbl.SETRANGE(Path,'C:\Benutzer\mhu\Eigene Bilder');


Schönes WE!

Maria

Re: CC- Ausdrucken eines Artikelbildes

1. Juli 2011 16:50

Hi Maria,

nur um Dein ganzes Konzept über den Haufen zu werfen: Warum erstellst Du denn keinen neuen RDLC-Report? Da hast Du dann auch gleich die Möglichkeit den als PDF zu speichern und ggf. gleich an Kunden zu versenden.

Volker

Re: CC- Ausdrucken eines Artikelbildes

4. Juli 2011 07:28

Guten Morgen,

das genau wäre für mich die richtige Lösung.
Nur habe ich noch nie einen RDLC-Report erstellt. Gibt es dazu eine Beschreibung (in Deutsch wäre toll).

Schönen Wochenstart!

mfg

Maria

Re: CC- Ausdrucken eines Artikelbildes

4. Juli 2011 07:37

https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80146.htm

Re: CC- Ausdrucken eines Artikelbildes

4. Juli 2011 07:51

Hallo Volker,

da komme ich nicht drauf.
Es wäre zwar schön, aber ich denke das ist auch nicht mal schnell so gemacht.

Gibt es nicht auch eine Lösung bei dem was ich bisher gemacht habe.

Maria

Re: CC- Ausdrucken eines Artikelbildes

4. Juli 2011 07:54

Hi Maria,

lass doch mal folgende Zeile weg:
Code:
FileTbl.SETFILTER(Name,'%1*.BMP',Item."No.");

Und schau dir an was bei FINDFIRST als Name raus kommt.
Dort müsstest du ja erkennen können ob er auf dem richtigen Ordner ist.

Re: CC- Ausdrucken eines Artikelbildes

5. Juli 2011 14:52

Hallo Mitstreiter,

ich bin in dem Thema gut vorangekommen (muss zwischendurch noch anderes tun).
Es ergeben sich für mich noch 2 Fragen (momentan :-).

1. Ich benutze für den "bebilderten" Ersatzteilkatalog den Ausdruck der Strukturstückliste.
Jetzt kann es sein, dass hier und da ein Bild noch fehlt.
Aber anstatt mir eine leere Stelle zu zeigen, zeigt er mir das vorhergehende Bild.
Wie bekomme ich Item.CALCFIELDS(Picture); als leeres Feld.

Mein CAL-Code:

//>>RR04
CLEAR(FileTbl);
FileTbl.RESET;
// Zurück setzten + FIND, sonst gibt es aktualisierungsprobleme
FileTbl.SETRANGE(Path,'C:\');
IF FileTbl.FIND('-') THEN BEGIN

FileTbl.RESET;
FileTbl.SETRANGE(Path,'\\192.168.80.30\Ablage_ET-Artikel$');
FileTbl.SETRANGE("Is a file",TRUE);
IF FileTbl.FIND('-') THEN BEGIN
IF EXISTS('\\192.168.80.30\Ablage_ET-Artikel$\'+BomComponent[Level]."No." + '.BMP') THEN BEGIN
Item.Picture.IMPORT('\\192.168.80.30\Ablage_ET-Artikel$\'+BomComponent[Level]."No." + '.BMP',FALSE);
Item.CALCFIELDS(Picture);
END;
END;
END;
//<<RR04


2. in den Sections habe ich für die Anzeige eine Picture-Box angelegt mit SourceExpr = Item.Picture.
Besteht die Möglichkeit der Picture-Box z.B. '\\192.168.80.30\Ablage_ET-Artikel$\'+BomComponent[Level]."No." zu hinterlegen, sodass er gleich das Bild
holt, es nicht erst ins Navision läd.
Ich habe es probiert, geht nicht. Gibt es vielleicht doch eine Möglichkeit?


Vielen Dank.

Maria

Re: CC- Ausdrucken eines Artikelbildes

5. Juli 2011 15:14

Hi,

du kannst in deiner EXISITS-Bedingung noch eine Variable Befüllen das es ein Bild gibt.
Wenn es kein Bild gibt, drückst du die Section nicht an.
( Steuerbar über CurrSection.SHOWOUTPUT() )

Re: CC- Ausdrucken eines Artikelbildes

5. Juli 2011 16:09

Das meine ich nicht. Es soll ein leeres Feld auf dem Papier erscheinen, damit man sieht, hier
fehlt noch ein Foto.
In dieser Abfrage benötige ich irgend etwas, dass sozusagen die "gemerkte" Verbindung zum Laufwerk gelöst wird.

IF EXISTS('\\192.168.80.30\Ablage_ET-Artikel$\'+BomComponent[Level]."No." + '.BMP') THEN BEGIN
Item.Picture.IMPORT('\\192.168.80.30\Ablage_ET-Artikel$\'+BomComponent[Level]."No." + '.BMP',FALSE);
Item.CALCFIELDS(Picture);
END ELSE BEGIN

CLEAR(Picture); .............keine Ahnung
END;

Sorry, es tut mir sehr leid dass ich so nerve. Aber ich finde zu diesem M... keine Literatur.

mfg

Maria