Greetings,
I have a problem, where Processing won’t save a pdf/jpg-file, after I especially asked it for this.
I at first used the both commands save() and begin/endRecord() in my main sketch with no problems, then moved them into a class and now they won’t be executed, but everything else in the class executes as whished.
This class opens a second window, where something should be drawn and after that saved.
(The printlns were used for diagnosing)
Problematic code part:
class ChildApplet extends PApplet {
//JFrame frame;
public ChildApplet() {
super();
PApplet.runSketch(new String[]{this.getClass().getName()}, this);
}
void settings() {
size(794, 1123);
smooth();
}
void setup() {
surface.setTitle("Rechnungssicherung (Dieses Fenster einfach minimieren)");
Logo = loadImage("images/Getraenkemarkt_Logo_klein.jpg");
frameRate(60);
}
void draw() {
background(255);
if(rechnung_erstellen == true){
println("Helo");
for(int s = 0; s < 2; s++){
println("h");
if(s == 0){
println("Speicherst du was ?");
beginRecord(PDF, "rechnungen/RNr_" + aktuelle_Rechnungsnummer + "__" + day() + "_" + month() + "_" + year() +".pdf");
}
image(Logo, 25, 40);
textAlign(CORNER); //Rechnungs-Bereich
fill(0);
rechnungssumme = 0;
for(int i = 0; Rechnung[3][i] != 0; i++){
text((i + 1) + ".", 110, i * 25 + 400);
text(Artikel_name[0][i], 135, i * 25 + 400);
text(round(Rechnung[0][i]), 315, i * 25 + 400);
text(round(Rechnung[1][i]), 360, i * 25 + 400);
text(Rechnung[2][i] + "€", 405, i * 25 + 400);
text(Rechnung[3][i] + "€", 490, i * 25 + 400);
rechnungssumme = rechnungssumme + Rechnung[3][i];
}
rechnungssumme = rechnungssumme * 100; //Konvertieren d. Rechnungssumme, um zu kleine Zahlen zu vermeiden
rechnungssumme = round(rechnungssumme);
int converter = int(rechnungssumme);
rechnungssumme = converter;
rechnungssumme = rechnungssumme / 100;
line(100, 705, 550, 705);
line(100, 377.5, 550, 377.5);
text(rechnungssumme + "€", 490, 720); //Beschriftung Rechnungsbereich
text("Gesamt:", 115, 720);
text("Nr.:", 105, 370);
text("Getränk:", 135, 370);
text("Flas.:", 315, 370);
text("Kast.:", 360, 370);
text("Pfand:", 405, 370);
text("Zwsumme:", 490, 370);
textSize(20);
text("Rechnung:", 50, 320);
strokeWeight(1.5);
line(50, 325, 150, 325);
strokeWeight(1);
textSize(12);
fill(220);
if(s == 0){
rect(610, 347.5, 210, 90);
}else{
rect(715, 390, 210, 90);
}
fill(0);
text("Rechnungsnummer: " + aktuelle_Rechnungsnummer, 620, 370);
text("Datum: " + day() + "." + month() + "." + year(), 620, 395);
text("Zeit: " + hour() + ":" + minute(), 620, 420);
if(s == 1){
save("temp/temp_Rechnung.jpg");
}else{
endRecord();
println("Helo2");
}
}
}
}
}
Rest of the code:
import controlP5.*;
import processing.pdf.*;
import java.io.*;
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.event.PrintJobEvent;
import javax.print.event.PrintJobListener;
import java.io.FileInputStream;
import java.io.IOException;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
ChildApplet child;
boolean klicked = false;
int mWheelGlobal = 0;
Table csv;
int position_csv = 0;
float auswahl_preis = 0;
float auswahl_pfand = 0;
String auswahl_name = "--";
boolean auswahl = false;
int anzahl_flaschen = 0;
int anzahl_kaesten = 0;
int anzahl_kaesten_leer = 0;
float verschiebung = 0;
float pfand_flaschen = 0;
float pfand_kaesten = 0;
float pfand_kaesten_leer = 0;
float zwischensumme = 0;
float [][] Rechnung = new float[4][20]; //Werte d. Rechnungspositionen
String [][] Artikel_name = new String[1][20]; //Namen d. Rechnungspositionen
int rechnungsposition = 0;
float gesamtpfand_zw = 0;
Table csv_Rechnungsnummer;
Table csv_Rechnungsnummer_neu;
Table csv_Rechnungsnummer_erst;
float rechnungssumme = 0;
long aktuelle_Rechnungsnummer;
boolean fertig = false;
boolean rechnung_erstellen = false;
PImage Logo;
ControlP5 ddm; //ddm = Dropdown-Menü
float druck_ausw = 0;
Table Beleg_Drucker;
void settings() {
size(1000, 800);
}
void setup(){
frameRate(60);
child = new ChildApplet();
surface.setTitle("Flapfa v0.6.8");
//surface.setResizable(true);
background(255);
rectMode(CENTER);
csvToTable();
Logo = loadImage("images/Getraenkemarkt_Logo_klein.jpg");
println(new File(dataPath("") + "/Beleg_Drucker.csv").isFile());
if(new File(dataPath("") + "/Beleg_Drucker.csv").isFile() == false) { //Erstellen der Drucker-Datei, falls nicht vorhanden
drucker_datei_sicherung(3);
}
if(new File(dataPath("") + "/aktuelle_Rechnungsnummer.csv").isFile() == false) { //Erstellen der Rechnungsnummer-Datei, falls nicht vorhanden
csv_Rechnungsnummer_erst = new Table(); //Rechnungsnummer wird um 1 erhöht
csv_Rechnungsnummer_erst.addColumn("aktuelle Rechnungsnummer");
TableRow newRow = csv_Rechnungsnummer_erst.addRow();
newRow.setLong("aktuelle Rechnungsnummer", 1);
saveTable(csv_Rechnungsnummer_erst, "data/aktuelle_Rechnungsnummer.csv");
}
Beleg_Drucker = loadTable("data/Beleg_Drucker.csv", "header, csv");
druck_ausw = Beleg_Drucker.getInt(2, 0); //Beleg-Drucker wird ins System geladen
dropdown_zeichnen(); //ddm-Methode wird aufgerufen
}
void draw(){
//println(width);
//println(height);
textAlign(CENTER);
fill(0);
stroke(0);
background(255);
//println(mouseX);
//println(mouseY);
//println(mousePressed);
mouseWheel();
for(int i = 0; i < 10; i++){
line(50, i * 30 + 450, 450, i * 30 + 450);
}
for(int i = 0; i < 10; i++){ //Getränke-Auswahl-Bereich
if(i + mWheelGlobal < csv.getRowCount()){
textAlign(CORNER);
fill(0);
text(csv.getString(i + mWheelGlobal, 0), 50, i*30 + 470);
text(csv.getString(i + mWheelGlobal, 1)+ "€", 250, i*30 + 470);
text(csv.getString(i + mWheelGlobal, 2) + "€", 300, i*30 + 470);
uebernahme_zeich_pruef(423, 467.5+30*i, 423, 462.5+30*i, 428, 465+30*i, 425, 465+30*i, 20, 20);
if(klicked == true){
position_csv = i + mWheelGlobal;
println("Position in der CSV-Datei: " + position_csv);
auswahl = true;
}
klicked = false;
}
}
text("Getränk:", 50, 440);
text("(pro Flasche)", 255, 422.5);
text("Preis:", 250, 440);
text("Pfand:", 300, 440);
textAlign(CENTER);
/*knopf_zeich_pruef(250, 200, 54, 54, "Hallo", true, 0, 12); //Test-Knopf
if(klicked == true){
klicked = false;
}*/
fill(0, 0, 200); //Logo
textSize(90);
text("Flapfa", 250, 200);
stroke(0);
strokeWeight(5);
noFill();
rect(250, 172.5, 300, 100, 0, 90, 90, 90);
textSize(12);
strokeWeight(1);
fill(220);
rect(725, 600, 450, 350); //Auswahl- und Informationsbereich
line(500, 585, 950, 585);
fill(0);
textAlign(CORNER);
text("Name des Getränks:", 515, 450);
text("Preis:", 515, 480);
text("Pfand pro Flasche:", 515, 510);
text("Pfand pro Kasten:", 515, 540);
text("Flaschen pro Kasten:", 515, 570);
if(auswahl == true){
text(csv.getString(position_csv, 0), 650, 450);
text(csv.getString(position_csv, 1) + "€", 650, 480);
text(csv.getString(position_csv, 2) + "€", 650, 510);
text(csv.getFloat(position_csv, 2) * csv.getFloat(position_csv, 3) + csv.getFloat(position_csv, 4) + "€" + " (Kastenpfand: " + csv.getFloat(position_csv, 4) + "€)", 650, 540);
text(csv.getInt(position_csv, 3) + " Stück", 650, 570);
text("Anzahl der Flaschen:", 515, 605); //Erhöhen/Verringern d. (losen) Flaschenanzahl
text(anzahl_flaschen, 650, 605);
knopf_zeich_pruef(685, 600, 20, 20, "+", true, 0, 12);
if(klicked == true){
anzahl_flaschen++;
println("Anzahl_Flaschen: " + anzahl_flaschen);
klicked = false;
}
knopf_zeich_pruef(715, 600, 20, 20, "-", true, 0, 12);
if(klicked == true){
anzahl_flaschen--;
println("Anzahl_Flaschen: " + anzahl_flaschen);
klicked = false;
}
if(anzahl_flaschen < 0){
anzahl_flaschen = 0;
}else if(anzahl_flaschen > 60){
anzahl_flaschen = 30;
}
textAlign(CORNER);
fill(0);
text("Anzahl der Kästen:", 515, 632.5); //Erhöhen/Verringern d. Kastenenanzahl d. vollen Kästen
if(csv.getFloat(position_csv, 4) > 0){
text("(voll)", 890, 632.5);
}
text(anzahl_kaesten, 650, 632.5);
knopf_zeich_pruef(685, 627.5, 20, 20, "+", true, 0, 12);
if(klicked == true){
anzahl_kaesten++;
println("Anzahl Kästen: " + anzahl_kaesten);
klicked = false;
}
knopf_zeich_pruef(715, 627.5, 20, 20, "-", true, 0, 12);
if(klicked == true){
anzahl_kaesten--;
println("Anzahl Kästen: " + anzahl_kaesten);
klicked = false;
}
if(anzahl_kaesten < 0){
anzahl_kaesten = 0;
}else if(anzahl_kaesten > 10){
anzahl_kaesten = 10;
}
if(csv.getFloat(position_csv, 4) > 0){
verschiebung = 27.5;
textAlign(CORNER);
fill(0);
text("Anzahl der Kästen:", 515, 632.5 + verschiebung); //Erhöhen/Verringern d. Kastenenanzahl d. leeren Kästen
text("(leer)", 890, 632.5 + verschiebung);
text(anzahl_kaesten_leer, 650, 632.5 + verschiebung);
knopf_zeich_pruef(685, 627.5 + verschiebung, 20, 20, "+", true, 0, 12);
if(klicked == true){
anzahl_kaesten_leer++;
println("Anzahl Kästen: " + anzahl_kaesten_leer);
klicked = false;
}
knopf_zeich_pruef(715, 627.5 + verschiebung, 20, 20, "-", true, 0, 12);
if(klicked == true){
anzahl_kaesten_leer--;
println("Anzahl Kästen: " + anzahl_kaesten_leer);
klicked = false;
}
if(anzahl_kaesten_leer < 0){
anzahl_kaesten_leer = 0;
}else if(anzahl_kaesten_leer > 10){
anzahl_kaesten_leer = 10;
}
}else{
verschiebung = 0;
}
textAlign(CORNER); //Berechnung der Zwischensummen
fill(0);
line(500, 645 + verschiebung, 950, 645 + verschiebung);
line(500, 648 + verschiebung, 950, 648 + verschiebung);
pfand_flaschen = csv.getFloat(position_csv, 2) * anzahl_flaschen;
pfand_flaschen = pfand_flaschen * 100; //Konvertieren d. Flaschenpfand-Zwischensumme, um zu kleine Zahlen zu vermeiden
pfand_flaschen = round(pfand_flaschen);
//println(pfand_flaschen);
int converter = int(pfand_flaschen);
pfand_flaschen = converter;
pfand_flaschen = pfand_flaschen / 100;
pfand_kaesten = ((csv.getFloat(position_csv, 2) * csv.getFloat(position_csv, 3)) * anzahl_kaesten + csv.getFloat(position_csv, 4) * anzahl_kaesten);
pfand_kaesten = pfand_kaesten * 100; //Konvertieren d. Kaestenpfand-Zwischensumme, um zu kleine Zahlen zu vermeiden
pfand_kaesten = round(pfand_kaesten);
//println(pfand_kaesten);
converter = int(pfand_kaesten);
pfand_kaesten = converter;
pfand_kaesten = pfand_kaesten / 100;
text("Pfand: " + pfand_flaschen + "€", 750, 605);
text("Pfand: " + pfand_kaesten + "€", 750, 632.5);
if(csv.getFloat(position_csv, 4) > 0){
pfand_kaesten_leer = csv.getFloat(position_csv, 4) * anzahl_kaesten_leer;
text("Pfand: " + pfand_kaesten_leer + "€", 750, 632.5 + verschiebung);
}
gesamtpfand_zw = (csv.getFloat(position_csv, 2) * anzahl_flaschen) + ((csv.getFloat(position_csv, 2) * csv.getFloat(position_csv, 3)) * anzahl_kaesten + csv.getFloat(position_csv, 4) * anzahl_kaesten + csv.getFloat(position_csv, 4) * anzahl_kaesten_leer);
gesamtpfand_zw = gesamtpfand_zw * 100; //Konvertieren d. Gesamtpfand-Zwischensumme, um zu kleine Zahlen zu vermeiden
gesamtpfand_zw = round(gesamtpfand_zw);
//println(gesamtpfand_zw);
converter = int(gesamtpfand_zw);
gesamtpfand_zw = converter;
gesamtpfand_zw = gesamtpfand_zw / 100;
text("Zwischensumme:", 515, 670 + verschiebung);
zwischensumme = (csv.getFloat(position_csv, 1) * anzahl_flaschen + csv.getFloat(position_csv, 2) * anzahl_flaschen) + (csv.getFloat(position_csv, 1) * csv.getFloat(position_csv, 3) + csv.getFloat(position_csv, 2) * csv.getFloat(position_csv, 3)) * anzahl_kaesten + csv.getFloat(position_csv, 4) * anzahl_kaesten + (csv.getFloat(position_csv, 4) * anzahl_kaesten_leer);
zwischensumme = zwischensumme * 100; //Konvertieren d. Zwischensumme, um zu kleine Zahlen zu vermeiden
zwischensumme = round(zwischensumme);
converter = int(zwischensumme);
zwischensumme = converter;
zwischensumme = zwischensumme / 100;
text(zwischensumme + "€", 890, 670 + verschiebung);
if(anzahl_flaschen > 0 || (anzahl_flaschen > 0 && anzahl_kaesten_leer > 0) || anzahl_kaesten > 0 && (anzahl_kaesten > 0 && anzahl_kaesten_leer == 0)){ //"Regeln" fürs hinzufügen von Rechnungspositionen
knopf_zeich_pruef(725, 700 + verschiebung, 450, 30, "Zu Rechnung hinzufügen", true, 0, 12);
if(klicked == true){
Artikel_name[0][rechnungsposition] = csv.getString(position_csv, 0); //Speichern d. Rechnungpositionsdaten
Rechnung[0][rechnungsposition] = anzahl_flaschen;
Rechnung[1][rechnungsposition] = anzahl_kaesten;
Rechnung[2][rechnungsposition] = gesamtpfand_zw;
Rechnung[3][rechnungsposition] = zwischensumme;
zwischensumme = 0;
gesamtpfand_zw = 0;
anzahl_kaesten = 0;
anzahl_flaschen = 0;
anzahl_kaesten_leer = 0;
klicked = false;
rechnungsposition++;
}
}
}
textAlign(CORNER); //Rechnungs-Bereich
fill(220);
rect(725, 200, 450, 350);
line(500, 355, 950, 355);
fill(0);
rechnungssumme = 0;
for(int i = 0; Rechnung[3][i] != 0; i++){
text((i + 1) + ".", 510, i * 25 + 50);
text(Artikel_name[0][i], 535, i * 25 + 50);
text(round(Rechnung[0][i]), 715, i * 25 + 50);
text(round(Rechnung[1][i]), 760, i * 25 + 50);
text(Rechnung[2][i] + "€", 805, i * 25 + 50);
text(Rechnung[3][i] + "€", 890, i * 25 + 50);
rechnungssumme = rechnungssumme + Rechnung[3][i];
}
rechnungssumme = rechnungssumme * 100; //Konvertieren d. Rechnungssumme, um zu kleine Zahlen zu vermeiden
rechnungssumme = round(rechnungssumme);
int converter = int(rechnungssumme);
rechnungssumme = converter;
rechnungssumme = rechnungssumme / 100;
text(rechnungssumme + "€", 890, 370); //Beschriftung Rechnungsbereich
text("Gesamt:", 515, 370);
text("Nr.:", 505, 20);
text("Getränk:", 535, 20);
text("Flas.:", 715, 20);
text("Kast.:", 760, 20);
text("Pfand:", 805, 20);
text("Zwsumme:", 890, 20);
csv_Rechnungsnummer = loadTable("data/aktuelle_Rechnungsnummer.csv", "header, csv");
aktuelle_Rechnungsnummer = csv_Rechnungsnummer.getLong(0,0);
rechnung_erstellen = false;
if(rechnungsposition > 0){
if(fertig == true){
text("Rechnung: " + (csv_Rechnungsnummer.getLong(0, 0) - 1), 620, 392.5);
}else{
text("Rechnung: " + csv_Rechnungsnummer.getLong(0, 0), 620, 392.5);
}
if(fertig == true){
knopf_zeich_pruef(550, 387.5, 100, 25, "Neue Rechnung", true, 0, 12);
if(klicked == true){
neue_Rechnung();
klicked = false;
fertig = false;
}
knopf_zeich_pruef(900, 387.5, 100, 25, "Drucken", true, 0, 12);
if(klicked == true){
rechnung_drucken();
klicked = false;
}
}
if(fertig == false){
knopf_zeich_pruef(550, 387.5, 100, 25, "Abbrechen", true, 0, 12);
if(klicked == true){
rechnungsvorgang_abbrechen();
klicked = false;
}
fill(0);
knopf_zeich_pruef(900, 387.5, 100, 25, "Fertig", true, 0, 12);
if(klicked == true){
rechnung_erstellen = true;
rechnungsvorgang_beenden();
klicked = false;
}
}
}
}
void controlEvent(ControlEvent theEvent) {
if (theEvent.isController()) {
druck_ausw = theEvent.getValue();
int druck_ausw2 = (int) druck_ausw;
drucker_datei_sicherung(druck_ausw2);
}
}
//Klassen Bereich:
class ChildApplet extends PApplet {
//JFrame frame;
public ChildApplet() {
super();
PApplet.runSketch(new String[]{this.getClass().getName()}, this);
}
void settings() {
size(794, 1123);
smooth();
}
void setup() {
surface.setTitle("Rechnungssicherung (Dieses Fenster einfach minimieren)");
Logo = loadImage("images/Getraenkemarkt_Logo_klein.jpg");
frameRate(60);
}
void draw() {
background(255);
if(rechnung_erstellen == true){
println("Helo");
for(int s = 0; s < 2; s++){
println("h");
if(s == 0){
println("Speicherst du was ?");
beginRecord(PDF, "rechnungen/RNr_" + aktuelle_Rechnungsnummer + "__" + day() + "_" + month() + "_" + year() +".pdf");
}
image(Logo, 25, 40);
textAlign(CORNER); //Rechnungs-Bereich
fill(0);
rechnungssumme = 0;
for(int i = 0; Rechnung[3][i] != 0; i++){
text((i + 1) + ".", 110, i * 25 + 400);
text(Artikel_name[0][i], 135, i * 25 + 400);
text(round(Rechnung[0][i]), 315, i * 25 + 400);
text(round(Rechnung[1][i]), 360, i * 25 + 400);
text(Rechnung[2][i] + "€", 405, i * 25 + 400);
text(Rechnung[3][i] + "€", 490, i * 25 + 400);
rechnungssumme = rechnungssumme + Rechnung[3][i];
}
rechnungssumme = rechnungssumme * 100; //Konvertieren d. Rechnungssumme, um zu kleine Zahlen zu vermeiden
rechnungssumme = round(rechnungssumme);
int converter = int(rechnungssumme);
rechnungssumme = converter;
rechnungssumme = rechnungssumme / 100;
line(100, 705, 550, 705);
line(100, 377.5, 550, 377.5);
text(rechnungssumme + "€", 490, 720); //Beschriftung Rechnungsbereich
text("Gesamt:", 115, 720);
text("Nr.:", 105, 370);
text("Getränk:", 135, 370);
text("Flas.:", 315, 370);
text("Kast.:", 360, 370);
text("Pfand:", 405, 370);
text("Zwsumme:", 490, 370);
textSize(20);
text("Rechnung:", 50, 320);
strokeWeight(1.5);
line(50, 325, 150, 325);
strokeWeight(1);
textSize(12);
fill(220);
if(s == 0){
rect(610, 347.5, 210, 90);
}else{
rect(715, 390, 210, 90);
}
fill(0);
text("Rechnungsnummer: " + aktuelle_Rechnungsnummer, 620, 370);
text("Datum: " + day() + "." + month() + "." + year(), 620, 395);
text("Zeit: " + hour() + ":" + minute(), 620, 420);
if(s == 1){
save("temp/temp_Rechnung.jpg");
}else{
endRecord();
println("Helo2");
}
}
}
}
}
//Methoden Bereich:
public void dropdown_zeichnen(){ //Methode zum Erstellen des Dropdown-Menüs
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
String[] printers = new String[pss.length];
for(int i = 0; i < pss.length; i++){
String zwischensp = " " + pss[i];
String[] zwischenSpAr = split(zwischensp, " : ");
printers[i] = zwischenSpAr[1];
}
ddm = new ControlP5(this);
ddm.addScrollableList("Drucker")
.setPosition(0, 0)
.setSize(200, 200)
.setBarHeight(20)
.setItemHeight(20)
.addItems(printers)
.setColorBackground(color(60))
.setColorActive(color(0, 0, 200))
.setValue(druck_ausw)
;
}
public void knopf_zeich_pruef(float x, float y, float b, float h, String beschriftung, boolean rahmen_fuellung, int shape, int text_groesse){ //Methode zum Erstellen und Überprüfen des Gedrücktseins von Knöpfen
rectMode(CENTER);
fill(255);
if(mousePressed){
if(mouseX > x - 0.5 * b && mouseX < x + 0.5 * b && mouseY > y - 0.5 * h && mouseY < y + 0.5 * h){
fill(200);
klicked = true;
}
delay(25);
}
if(rahmen_fuellung == false){
noFill();
noStroke();
}
if(shape == 0){
rect(x, y, b, h);
}else if(shape == 1){
float x1 = x+0.5*b;
float y1 = y+0.25*h;
triangle(x1, y1, x1-0.5*b, y1-h, x1-b, y1);
}
textAlign(CENTER);
fill(0);
textSize(text_groesse);
text(beschriftung, x, y+5);
fill(255);
stroke(0);
textSize(12);
}
void mouseWheel(MouseEvent event) { //Methode zum Auslesen d. Mausrads
mWheelGlobal = mWheelGlobal + event.getCount();
if(mWheelGlobal > csv.getRowCount()-1){
mWheelGlobal = 0;
}else if(mWheelGlobal < 0){
mWheelGlobal = csv.getRowCount()-1;
}
println("Mausrad-Wert: " + mWheelGlobal);
}
void csvToTable(){ //Methode zum Einlesen d. CSV-Datei
csv = loadTable("data/Sortiment.csv", "header, csv");
println(csv.getRowCount());
println(csv.getColumnCount());
}
public void uebernahme_zeich_pruef(float x1, float y1, float x2, float y2, float x3, float y3, float xh, float yh, float b, float h){ //Methode zum erstellen d. Übernahme-Knöpfe
fill(255);
if(mousePressed){
if(mouseX > xh - 0.5 * b && mouseX < xh + 0.5 * b && mouseY > yh - 0.5 * h && mouseY < yh + 0.5 * h){
fill(200);
klicked = true;
}
}
ellipse(xh, yh, b, h);
fill(0);
triangle(x1, y1, x2, y2, x3, y3);
}
public void rechnungsvorgang_abbrechen(){ //Methode zum Abbrechen des Rechnungsvorgangs
Rechnung = new float[4][20];
Artikel_name = new String[1][20];
rechnungsposition = 0;
rechnungssumme = 0;
}
public void rechnungsvorgang_beenden(){ //Methode zum Speichern der Rechnung
fertig = true;
csv_Rechnungsnummer_neu = new Table(); //Rechnungsnummer wird um 1 erhöht
csv_Rechnungsnummer_neu.addColumn("aktuelle Rechnungsnummer");
TableRow newRow = csv_Rechnungsnummer_neu.addRow();
newRow.setLong("aktuelle Rechnungsnummer", csv_Rechnungsnummer.getLong(0, 0) + 1);
saveTable(csv_Rechnungsnummer_neu, "data/aktuelle_Rechnungsnummer.csv");
//Hier wird die Rechnung selbst für das Finanzamt gesichert
}
public void drucker_datei_sicherung(int ausgew_drucker){ //Sicherung des gewählten Druckers
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
Beleg_Drucker = new Table();
Beleg_Drucker.addColumn("Drucker:");
String Drucker = "";
for(int i = 0; i < pss.length; i++){
if(i > 0){
Drucker = Drucker + " , " + pss[i] ;
}else{
Drucker = pss[i] + "" ;
}
//println(Drucker);
}
TableRow newRow = Beleg_Drucker.addRow();
newRow.setString("Drucker:", Drucker);
TableRow newRow2 = Beleg_Drucker.addRow();
newRow2.setString("Drucker:", "Drucker auswaehlen (Stelle des Druckers in obiger Liste angeben(beginnend bei 0)):");
TableRow newRow3 = Beleg_Drucker.addRow();
newRow3.setInt("Drucker:", ausgew_drucker);
saveTable(Beleg_Drucker, "data/Beleg_Drucker.csv");
}
public void rechnung_drucken(){ //Methode zum Drucken der Rechnung
try {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
println(PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras));
if (pss.length == 0) throw new RuntimeException("No printer services available.");
int druck_ausw2 = (int) druck_ausw;
PrintService ps = pss[druck_ausw2];
// PrintService ps = "Fax";
System.out.println("Printing to " + ps);
DocPrintJob job = ps.createPrintJob();
FileInputStream fin = new FileInputStream(sketchPath() + "/temp/temp_Rechnung.jpg");
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);
job.print(doc, pras);
fin.close();
} catch (IOException ie) {
ie.printStackTrace();
} catch (PrintException pe) {
pe.printStackTrace();
}
}
public void neue_Rechnung(){ //Methode zum Beenden des Rechnungsvorgangs
rechnungsvorgang_abbrechen(); //Wird ausgeführt um Variablen und Rechnungsarray zurückzusetzen
}