Report mit Verkaufszeilen drucken

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

Report mit Verkaufszeilen drucken

Beitragvon mada » 21. März 2006 10:25

Hallo zusammen

Ich habe ein Problem. Ich will beim drucken eines Verkaufsbeleges (Auftragsbestätigung, Lieferschein, ...) nur genau die markierte Zeile ausdrucken. Das heisst, hat ein Verkaufsauftrag mehrere Verkaufszeilen muss ich die nicht markierten ignorieren.
Die einzige Möglichkeit die ich bis jetzt gefunden habe ist den DataItemTableView auf der Verkaufszeile leer lassen. Dann könnte man die Zeilennummer manuell eingeben. Diese Lösung finde ich aber nicht so praktisch.
Kann mir jemand helfen?

Gruss
mada
mada
 

Beitragvon mikka » 21. März 2006 10:49

Hallo Manda,
leider kenne ich mich in der NAVI 4 DB nicht so aus, aber was meinst Du mit Markiert?

Den Befehl MARK und MARKEDONLY?

GruĂź Mikka
GruĂź, Mikka

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Beitragvon martinst » 21. März 2006 10:55

Hallo Mada

Due musst im Report nur eine neue Funktion (z.B.) Def(SalesLine) erzeugen.
Dann ĂĽbergibst Du den Record mit den markierten Zeilen als Parameter.
In der Def Funktion musst Du diesen Record einer globalen Variable mit Copy zuweisen.
SalesLine2.Copy(Salesline) //Copy ĂĽbernimmt Filter und Markierungen
Danach musst Du im OnPreDataItem der SalesLine diesen globalen Record dem DataItem wieder mit Copy zuweisen.

Klar? (Ich hoffe)

Gruss
Martin
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 11:13

@mikka

Mit markierte Zeile meinte ich. Die Zeile im Verkaufsauftrag die auf der rechten Seite das "dreieck" hat.


@martinst
Ich habe alles gemacht. Jetzt habe ich nur noch ein Problem. Vielleicht eine blöde Frage aber wie rufe ich den Report jetzt auf.
mada
 

Beitragvon martinst » 21. März 2006 11:30

Mada
Fast wie normal :-)
Du musst den Report als Variable definieren.
Code: Alles auswählen
....
Report.SetTableView(SalesHeader)
Report.Def(SalesLine) !!!
Report.Runodal
....


Good luck
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 11:49

martinst

ich habe immer noch einen knopf. Ich habe alles gemacht. Aber nach dem Aufruf des Reports mit:
Report.PrintRow(SalesHeader)
passiert nicht. Muss ich in der Funktion noch was anpassen?
und wie finde ich heraus welche Zeile markiert ist?

danke
mada
mada
 

Beitragvon martinst » 21. März 2006 12:22

Mada

Ich habe Dir Quick&Dirty ein FOB mit einem Lösungsansatz erstellt.
Form 42, Menubutton Drucken, neues Item "AB markierte Zeilen"
Form 46, Funktion PrintMarkSalesLine implementiert
Report 205, Funktion Def eingebaut, Ă„nderungen in Sales Line-OnPreDataItem

Lies mal das FOB in eine neutrale CH-DB ein.
Du musst die Zeilen nicht mit CTRL+F1 markieren, sondern mit der Maus "anmalen".

Gruss
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 15:25

@martinst

Danke vielmals. Jetzt habe ich nur noch das Problem das es mir gar keine Positionen druckt. Ich bin schon ne weile am testen aber ich finde den Fehler nicht.
Bei deinem Beispiel druckt es die Positionen auch nicht. Hätest du vielleicht nochmals ein Tip

Danke
mada
mada
 

Beitragvon martinst » 21. März 2006 15:35

Hallo Mada

Doch in meinem Beispiel druckt es die Zeilen.
Sieh Dir einmal den Code der Funktion PrintMarkSalesLine() in Form 46 an.
Dort findest Du folgende Zeile
CurrForm.SETSELECTIONFILTER(Rec2);
Das heisst, es werden alle mit der Maus markierten Datensätze gedruckt. Die markierten heisst hier aber nicht die Satzmarkierten .Mark(TRUE), sondern die angemalten.
Wenn Du willst, dass wirklich die Satzmarkierten (Ctrl+F1) gedruckt werden, musst Du nur die Zeile auskommentieren.
//CurrForm.SETSELECTIONFILTER(Rec2);

Das wars

Gruss
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 17:08

@martinst

Danke nochmals fĂĽr die Hilfe. Hat mir enorm geholfen.
Klappt alles wunderbar.
Den Code:
CurrForm.SETSELECTIONFILTER(Rec2);
habe ich nicht gefunden aber man kann ja mal was selber machen :-D
Aber noch ne letzte Frage:
Es ist schon so das ich am Schluss nach dem Befehl
OrderConfirmation.RUNMODAL;

noch ein
Rec.RESET;
mache. Um den Filter zurĂĽckzusetzten

Gruss
mada
mada
 

Beitragvon martinst » 21. März 2006 17:13

Hallo Mada

Wieso Reset?
Wenn Du meinen Code anschaust, verwende ich in Form 46 ja als Variable Rec2, eben aus genau diesem Grund, dass die Filter nicht auf den OriginalRecord angewendet werden.

P.S.
Aus welcher Ecke der Schweiz kommst Du eigentlich?
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 17:28

Jetzt bin ich ein bisschen durcheinander:


Das ist der Code im Form 46 den ich von Dir habe. Das "Fette" habe ich hinzugefĂĽgt.

Code: Alles auswählen
PrintMarkSalesLine()
//**
CLEAR(OrderConfirmation);
[b]CurrForm.SETSELECTIONFILTER(rec);[/b]
SalesHeader2.GET("Document Type", "Document No.");
SalesHeader2.SETRECFILTER;
SalesHeader2.FIND('-');
OrderConfirmation.Def(Rec);
OrderConfirmation.SETTABLEVIEW(SalesHeader2);
OrderConfirmation.RUNMODAL;
[b]rec.reset;[/b]
//**


Ich komme aus der nähe SG und du?

Gruss
mada
mada
 

Beitragvon martinst » 21. März 2006 17:37

Hallo Mada

Aha, jetzt ist es klar
Definiere eine neue lokale Var Rec2 SalesLine
Dann schreibst du statt
CurrForm.SETSELECTIONFILTER(rec);
CurrForm.SETSELECTIONFILTER(Rec2);


Dann kannst Du Dir das Reset sparen.

Ich komme aus Langenthal. Du aus SG, dann Alpha?
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 21. März 2006 17:55

Danke.
Nein ich arbeite nicht bei der ALPHA.

Gruss
mada
mada
 

Beitragvon martinst » 21. März 2006 17:57

Sondern???
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon mada » 22. März 2006 09:13

Du bist aber neugierig. schau in dein postfach
mada
 


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast