0

csv-Dateien erzeugen

Hallo, ich brauche wieder einmal Eure Hilfe. Nachdem ich jetzt fast 3 Tage alles mögliche versucht habe.

Zunächst beschreibe ich einmal mein Projekt.

Ich habe mir eine Lego Technicdatenbank erstellt, die an meine Individuellen Bedürfnisse und Workflow angepasst ist.

Die DB besteht I.w.aus 4 Tabellen

Tabelle1) SETS

Tabelle 2) KONVOLUT

Tabelle 3) EINZELTEILE

Tabelle 4) TEILEERFASSUNG

 

Datenmodell: TEILEERFASSUNG zeigt auf jeweils die 3 anderen Tabellen.

 

Die Tabellen SETS UND KONVOLUT enthalten i. W. den SetNamen, SetNo oder  KonvolutNamen, KinvolutNo und einige ergänzende Felder.

 

In der Tabelle EINZELTEILE sind die Einzelteile u.a. mit der Teilenummer (PartNo), einem ColorCode(Auswahlfeld), Elementnummer Category usw. aufgeführt.

Die Besonderheit hierbei ist, dass die PartNo öfters vorkommt, jeweils mit einer anderen Farbe und damit einer anderen Elementnummer.

 

Die Tabelle4) TEILEERFASSUNG ist meine Erfassungsmaske.

Diese besteht aus dem Feld Anzahl und darunter die verknüpfte Tabelle

EINZELTEILE und darunter die verknüpften Tabellen SETS UND KONVOLUT.

 

WORKFLOW: Wen ich jetzt z.B ein neues Set habe mit z.B. 200 Einzelteilen, dann werden diese zunächst nach Typ und Farbe sortiert und dann nacheinander eingegeben.

Anzahl 10 dann in die verknüpfte Tabelle EINZELTEILE Typ(PartNo) in der entsprechenden Farbe aussuchen und dann noch dem entsprechenden Set aus der Tabelle SETS zuordnen. In die TABELLE TEILEERFASSUNG habe ich bei „Trigger bei neuem Datensatz“ ein Script, dass dafür sorgt, dass die letzte Zuordnung beim nächsten Datensatz erhalten bleibt, sodass ich nur Anzahl eingeben muss und die Zuordnung zu EINZELTEILE. Analog verfahre ich wenn ich einzelne Teile kaufe die ich bei Konvolut speichere.

 

Im Ergebnis habe ich jetzt jeweils eine Tabelle SETS und KONVOLUT die eine Untertabelle mit den Einzelteilen und den entsprechenden Feldern enthält. nebst PartNo, ColerCode und Anzahl.

In der Tabelle EINZELTEILE ist bei jedem Einzelteil eine Untertabelle TEILEERFASSUNG die die Anzahl dieses Teils mit der entsprechenden Zuordnung zu den jeweiligen Sets oder Konvoluten enthält. Somit habe ich in der Tabelle EINZELTEILE DIE Gesamtsumme aller Einzelteile aus allen Sets und Konvoluten.

 

Soweit so gut funktioniert es für mich.

Das war jetzt sehr umfangreich, hilft aber dann vielleicht bei der Lösung meines Problems.

 

Jetzt möchte ich diverse .csv Dateien erstellen. Hierzu habe ich aus einem Beitrag von vor 4 Jahren eine Lösung von Leonid Semik auf meine Bedürfnisse angepasst.

 

Dieses Script in einem Button gibt mir die PartNo und den ColorCode aus:

***********

let myHeader := "Part,Color";

let myBody := for i in (select TEILEERFASSUNG).EINZELTEILE do

concat(i.[text(PartNo), text(ColorCode)])

end;

let myCSV := myHeader +

"

" +

join(myBody, "

");

createTextFile(this, myCSV, "Dateiname.csv");

alert("Die Adressen wurden exportiert. Du findest die Datei in den Anhängen.")

 

************

 

und dieser die Anzahl der jeweiligen Teile.

 

**************

 

let myHeader := "Quantity";

let myBody := for i in select TEILEERFASSUNG do

concat(i.[Anzahl])

end;

let myCSV := myHeader +

"

" +

join(myBody, "

");

createTextFile(this, myCSV, "Rebrickable#.csv");

alert("Die Adressen wurden exportiert. Du findest die Datei in den Anhängen.")

 

***********************

Mit einem Workaround kopiere ich mir beide Dateien zusammen und habe das gewünschte Ergebnis um diese Datei im Web hochzuladen für eine Onlineübersicht.

###################################################################

 

JETZT ZU MEINEN FRAGEN:

 

  1. Wie kann ich die beiden Scripte zu einem zusammenfassen, damit ich mir den Workaround sparen kann?

 

  1. Wie muss das Script lauten um die Teileanzahl eines bestimmten Sets(oder Kinvoluts) als .csv-Datei zu erhalten. Das muss ja über eine Abfrage erfolgen where SetName = oder SetNo = entspricht. Ideal wäre, wenn man es über ein PopUpFenster realisieren könnte mit dem Text, bitte SetName oder SetNo eingeben und dem entsprechenden Feld für die Eingabe um dann die csv zu erzeugen.

 

Ich habe alles mögliche probiert, komme aber einfach nicht weiter.

Ich bedanke mich schon im Voraus , für Eure Hilfe.

 

BG aus der Hauptstadt

Wolfgang

Antwort

null

Content aside

  • vor 6 TagenZuletzt aktiv
  • 30Ansichten
  • 1 Folge bereits