[gelöst] Tabellenverknüpfung über Query

Bild Microsoft Dynamics NAV 2017

[gelöst] Tabellenverknüpfung über Query

Beitragvon Ralph71 » 8. Juli 2020 14:50

Hallo,

wenn ich in C/AL mit sich aus mehreren Tabellen ergebende Datensätzen arbeiten will, dann geht das wohl über eine Query.
Frage1: richtig?

Jetzt habe ich zwei Tabellen, die ich nicht direkt über Schlüsselfelder (1:n) miteinander verknüpfen kann (ist leider so). Dh für eine Verknüpfung muss ich vorher den Feldinhalt einer Spalte bearbeiten.
Beispiel:
Schlüsselfeld s1 in Tab1: 123w
Feld s2 in Tab2: 123

Damit ich jetzt beide verbinden kann, muss ich im ersten Schritt aus 123w --> 123 erstellen und im zweiten Schritt dann die Query ausführen.
Frage2: Kann ich in einer Query direkt die Ausgabe eines Felds verändern (ähnlich wie in einem SQL-Select)? Wenn ja, dann würde ich eine Query vorschalten (Query baut aus 123w -->123) und die Verknüpfung in der darauf aufsetzenden Query herstellen. Wenn nein, wie kann obiges realisiert werden?

Vielen Dank!
Zuletzt geändert von Ralph71 am 15. Juli 2020 14:39, insgesamt 1-mal geändert.
Ralph71
 
Beiträge: 69
Registriert: 20. Mai 2020 11:27
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Tabellenverknüpfung über Query

Beitragvon fiddi » 8. Juli 2020 15:08

Hallo,

Frage1: kommt drauf an. :wink:

Frage2: NEIN.

Beschreibe dein Problem mal etwas genauer.

Gruß Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Tabellenverknüpfung über Query

Beitragvon sweikelt » 8. Juli 2020 15:14

mit einer Query geht das aus meiner Sicht nicht...aber per Code logischerweise schon.

was hast du denn vor?

sind die Zeichen in S1 immer nach dem Schema <zahl><zahl><zahl><buchstabe> aufgebaut?


https://docs.microsoft.com/en-us/dynamics-nav/string-functions

CopyStr und Strlen sollten dir behilflich sein

und dann natürlich weiter mit SetRange/SetFilter auf t2
Benutzeravatar
sweikelt
Microsoft Partner
Microsoft Partner
 
Beiträge: 1781
Registriert: 18. November 2010 10:15
Wohnort: Oschatz
Realer Name: Stephan Weikelt
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3-2018 | D365BC

Re: Tabellenverknüpfung über Query

Beitragvon Ralph71 » 8. Juli 2020 15:22

@sweikelt: geht das nicht so?
Eine Query baut mir den Datenstamm aus verschiedenen Tabellen auf, ich greife über ein Record darauf zu und kann damit arbeiten? Also alles doch trivial....

EDIT: sind die Zeichen in S1 immer nach dem Schema <zahl><zahl><zahl><buchstabe> aufgebaut? --> ich benötige immer die ersten 3 Zeichen
Zuletzt geändert von Ralph71 am 8. Juli 2020 15:27, insgesamt 1-mal geändert.
Ralph71
 
Beiträge: 69
Registriert: 20. Mai 2020 11:27
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Tabellenverknüpfung über Query

Beitragvon Ralph71 » 8. Juli 2020 15:25

@Fiddi
Ich möchte aus zwei Tabellen in C/AL einen Datensatz (eher 5000) bilden und diesen dann exportieren. in C/AL kann ich ja jedes Feld der Query anfassen, evtl noch kontrollieren usw. Deshalb der Gedanke eine Query zu bauen. Und der Name Query sollte ja auch das tun....
Ralph71
 
Beiträge: 69
Registriert: 20. Mai 2020 11:27
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Tabellenverknüpfung über Query

Beitragvon fiddi » 8. Juli 2020 15:32

Hallo,

wenn du eine Tabellen evtl. etwas anders verknüpfen würdest, geht das evtl. ohne Query und Tabellen. Aber das kommt auf den Einsatzzweck an.

Wenn du z.B. in deiner Tabelle mit 123w auch ein Feld mit 123 ablegen würdest, dann könntest du darüber die Daten verknüpfen und mit Flowfields arbeiten. Aber das funktioniert nur, wenn die Daten hier statisch sind.
Auch könntest du die Filterung über einen Flowfilter benutzen, der im OnValidate- Trigger von Feld 123w von Tabelle s1 erstellt = 123 bzw. gefiltert wird.

Gruß Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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.
fiddi
Moderator
Moderator
 
Beiträge: 7095
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Tabellenverknüpfung über Query

Beitragvon sweikelt » 8. Juli 2020 15:47

Ralph71 hat geschrieben:Eine Query baut mir den Datenstamm aus verschiedenen Tabellen auf, ich greife über ein Record darauf zu und kann damit arbeiten? Also alles doch trivial....

natürlich ist das trivial - allerdings funktioniert deine Anforderung mit den uns vorgelegten Daten nicht, da du in der Query nicht einfach ein Feld beschneiden kannst.

du möchtest n Spalten aus t1 und m Spalten aus t2 als einen Datensatz exportieren, wobei t1 und t2 nicht direkt miteinander verknüpft sind, sondern die ersten 3 Zeichen vom feld s1 aus t1 zur Filterung in feld s2 in t2 verwendet werden soll

ganz grob
Code: Alles auswählen
t1.findset()
repeat
   t2.SetRange(s2,COPYSTR(t.s1,1,3))
   if t2.FindSet() then begin
     repeat
        ExportiereDingeAusTables(t1,t2);
     until t2.next=0;
   end;
until t1.next=0


---> kein Anspruch auf Korrektheit ;)
Benutzeravatar
sweikelt
Microsoft Partner
Microsoft Partner
 
Beiträge: 1781
Registriert: 18. November 2010 10:15
Wohnort: Oschatz
Realer Name: Stephan Weikelt
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3-2018 | D365BC


Zurück zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast