[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skript-Dialogfeld erkennt "00" nicht.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Skript-Dialogfeld erkennt "00" nicht.

Manfred Aicher
Beiträge gesamt: 8

10. Feb 2009, 11:18
Beitrag # 1 von 5
Bewertung:
(1475 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Grüß Gott, liebes HDS-Forum.

Um meinen Kollegen und mir die Arbeit zu erleichtern, habe ich ein kleines ID3-Skript geschrieben.
Dieses Skript generiert ein Dialogfeld, in dem in verschiedenen Textfeldern Einträge gemacht werden, welche dann in einen vom Skript erzeugten Textrahmen gestellt und mit einem vom Skript erzeugten Absatzformat versehen werden.
Ein Teil der Eintragungen wird in einen zweiten Textrahmen kopiert und als Barcode dargestellt.
Wenn ein oder mehrere Textfelder nicht ausgefüllt werden, dann werden diese einfach ignoriert.
Das Skript klinkt sich als eigener Menüpunkt in die Menüleiste ein und funktioniert wunderbar, bis auf ein kleines Problem.
Es kommt vor, dass in einem Textfeld der Wert „00“ eingetragen werden muss. Diesen Wert interpretiert das Skript als „nichts eingetragen“ und lässt diesen Wert einfach weg.

Kann mir jemand sagen, was ich machen muss, damit der Wert „00“ als normaler Eintrag erkannt und verarbeitet wird?
Ich hab schon so ziemlich alles mögliche versucht, gelesen und gegoogelt, bin aber leider nicht fündig geworden.

Vielen Dank schon mal
Viele Grüße
Manfred
X

Skript-Dialogfeld erkennt "00" nicht.

Lars
Beiträge gesamt: 285

10. Feb 2009, 11:52
Beitrag # 2 von 5
Beitrag ID: #384876
Bewertung:
(1463 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Manfred,

ohne die entsprechenden Stellen in deinem Skript gesehen zu haben wird dir da wohl niemand helfen können.

Lars


als Antwort auf: [#384868]

Skript-Dialogfeld erkennt "00" nicht.

Manfred Aicher
Beiträge gesamt: 8

10. Feb 2009, 13:39
Beitrag # 3 von 5
Beitrag ID: #384894
Bewertung:
(1442 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Lars,

da hast du natürlich recht.

Hier ist ein Teil wie das Dialogfeld generiert wird:

//Generieren des Dialogfeldes "ID-Zeile".
var meinDialogfeld = app.dialogs.add({name:"ID-Zeile einfügen", canCancel:true});
with(meinDialogfeld){
//Dialogreihe hinzufügen.
with(dialogColumns.add()){
//Rahmenfeld hinzufügen.
with(borderPanels.add()){
//Dialogfelder mit Beschriftung setzen.
staticTexts.add({staticLabel:"ID:"});
var meinID_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Version:"});
var meinVersion_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Software:"});
var meinSoftware_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Auflage:"});
var meinAuflage_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Datum:"});
var meinDatum_Feld = textEditboxes.add({editContents:"", minWidth:80});
}

und hier ein Teil der Abfrage der eingetragenen Werte:

/Anzeigen des Dialogfeldes ID-Zeile.
if(meinDialogfeld.show() == true){
var meinAlterNullpunkt = SpeichernNullpunkt();
var myParagraphAlignment, meinFeld1, meinFeld2, meinFeld3, meinFeld4, meinFeld5, meineDruckerei;
//Auslesen der Werte von den Variablen aus der Dialogbox wenn "Cancel" nicht gedrückt wird.
//Variablen aus den Textfeldern.
if(meinID_Feld.editContents == false){
meinFeld1 = "";
}
else{
meinFeld1 = meinID_Feld.editContents + " · ";
}
if(meinVersion_Feld.editContents == false){
meinFeld2 = "";
}
else{
meinFeld2 = "Ver" + meinVersion_Feld.editContents + " · ";
}
if(meinSoftware_Feld.editContents == false){
meinFeld3 = "";
}
else{
meinFeld3 = "SW" + meinSoftware_Feld.editContents + " · ";
}


Wenn ich das komplette Skript einstellen soll, dann mach ich das natürlich. Wie geht das eigentlich, dass so ein Skript in einem eigenen Fenster innerhalb des Beitrages steht? Das würde es viel übersichtlicher machen. Ich hoffe aber, dass mir so auch schon jemand weiter helfen kann.

Viele Grüße
Manfred


als Antwort auf: [#384876]

Skript-Dialogfeld erkennt "00" nicht.

Uwe Laubender
Beiträge gesamt: 5360

10. Feb 2009, 14:07
Beitrag # 4 von 5
Beitrag ID: #384901
Bewertung:
(1440 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Manfred!
Antwort auf [ Manfred Aicher ] Wenn ich das komplette Skript einstellen soll, dann mach ich das natürlich. Wie geht das eigentlich, dass so ein Skript in einem eigenen Fenster innerhalb des Beitrages steht?


Du benutzt den Button "code" vor und nach dem Scripttext. Steht gleich unterhalb des Eingabefensters.


als Antwort auf: [#384894]

Skript-Dialogfeld erkennt "00" nicht.

Manfred Aicher
Beiträge gesamt: 8

10. Feb 2009, 14:43
Beitrag # 5 von 5
Beitrag ID: #384913
Bewertung:
(1429 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

vielen Dank für den Hinweis.
Vergesst einfach alles was ich vorher gepostet habe. Ich stelle jetzt einfach das Skript (fast) komplett ein. Den Teil mit dem Einklinken in die Menü-Leiste lasse ich weg.

Code
//ID_Zeile_generieren.jsx 
//Ein InDesign CS3 JavaScript

var myDocument =app.activeDocument
app.paragraphStyles.item('[Einfacher Absatz]').appliedFont = "Univers";
app.paragraphStyles.item('[Einfacher Absatz]').fontStyle = "45 Light";

//Generieren des Dialogfeldes "ID-Zeile".
var meinDialogfeld = app.dialogs.add({name:"ID-Zeile einfügen", canCancel:true});
with(meinDialogfeld){
//Dialogreihe hinzufügen.
with(dialogColumns.add()){
//Rahmenfeld hinzufügen.
with(borderPanels.add()){
//Dialogfelder mit Beschriftung setzen.
staticTexts.add({staticLabel:"ID:"});
var meinID_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Version:"});
var meinVersion_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Software:"});
var meinSoftware_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Auflage:"});
var meinAuflage_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Datum:"});
var meinDatum_Feld = textEditboxes.add({editContents:"", minWidth:80});
}
//Neues Rahmenfeld hinzufügen.
with(borderPanels.add()){
staticTexts.add({staticLabel:"Druckerei:"});
var meinDruckerei_Feld = dropdowns.add({stringList:["F&W", "H", "E", "S"], selectedIndex:0});
}
//Neues Rahmenfeld hinzufügen
with(borderPanels.add()){
staticTexts.add({staticLabel:"Position Barcode:"});
var meineRadioButtonGruppe = radiobuttonGroups.add();
with(meineRadioButtonGruppe){
var Dialog_Barcode_Oben = radiobuttonControls.add({staticLabel:"Barcode über ID-Zeile", checkedState:true});
var Dialog_Barcode_Rechts = radiobuttonControls.add({staticLabel:"Barcode rechtsbündig"});
}
}
}
}

//Anzeigen des Dialogfeldes ID-Zeile.
if(meinDialogfeld.show() == true){
var meinAlterNullpunkt = SpeichernNullpunkt();
var myParagraphAlignment, meinFeld1, meinFeld2, meinFeld3, meinFeld4, meinFeld5, meineDruckerei;
//Auslesen der Werte von den Variablen aus der Dialogbox wenn "Cancel" nicht gedrückt wird.
//Variablen aus den Textfeldern.
if(meinID_Feld.editContents == false){
meinFeld1 = "";
}
else{
meinFeld1 = meinID_Feld.editContents + " · ";
}
if(meinVersion_Feld.editContents == false){
meinFeld2 = "";
}
else{
meinFeld2 = "Ver" + meinVersion_Feld.editContents + " · ";
}
if(meinSoftware_Feld.editContents == false){
meinFeld3 = "";
}
else{
meinFeld3 = "SW" + meinSoftware_Feld.editContents + " · ";
}
if(meinAuflage_Feld.editContents == false){
meinFeld4 = "";
}
else{
meinFeld4 = meinAuflage_Feld.editContents + " · ";
}
if(meinDatum_Feld.editContents == false){
meinFeld5 = "";
}
else{
meinFeld5 = meinDatum_Feld.editContents + " · ";
}

//Werte aus dem Pop-up Menü.
if(meinDruckerei_Feld.selectedIndex == 0){
meineDruckerei = "F&W";
}
else if(meinDruckerei_Feld.selectedIndex == 1){
meineDruckerei = "H";
}
else if(meinDruckerei_Feld.selectedIndex == 2){
meineDruckerei = "E";
}
else{
meineDruckerei = "S";
}

//Werte aus dem Button Feld.
if(meineRadioButtonGruppe.selectedButton == 0){
Barcode_Oben();
IDRahmen_Oben();
HerstellenNullpunkt( meinAlterNullpunkt );
}
else{
Barcode_Rechts();
IDRahmen_Rechts();
HerstellenNullpunkt( meinAlterNullpunkt );
}
meinDialogfeld.destroy();
}

//Textrahmen für ID-Zeile bei Barcode Oben erzeugen.
function IDRahmen_Oben() {
with(myDocument){
var myPage = pages.lastItem();
with(myPage){
var meinIdRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_ID_u = 4; // Unterkante des Textrahmens
var myFrameOffset_ID_o = 7; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_ID_u, 10, myPageHeight - myFrameOffset_ID_o, 100]; // Koordinaten des Textrahmens
with(meinIdRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = (meinFeld1 + meinFeld2 + meinFeld3 + meinFeld4 + meinFeld5 + meineDruckerei + " · Printed in Germany");
//Absatzformat zuweisen.
Absatz_Light();
parentStory.appliedParagraphStyle = "ID-Zeile";
}
}
}
}

//Textrahmen für Barcode_Oben erzeugen.
function Barcode_Oben() {
with(myDocument) {
var myPage = pages.lastItem();
with(myPage){
var meinFeld1a = meinID_Feld.editContents;
var meinBarcodeRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_Bar_u = 10; // Unterkante des Textrahmens
var myFrameOffset_Bar_o = 15; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_Bar_u, 10, myPageHeight - myFrameOffset_Bar_o, 100]; // Koordinaten des Textrahmens
with(meinBarcodeRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = ("*I_" + meinFeld1a + "*");
//Absatzformat zuweisen.
Barcode();
parentStory.appliedParagraphStyle = "Barcode";
}
}
}
}

//Textrahmen für ID-Zeile bei Barcode Rechts erzeugen.
function IDRahmen_Rechts() {
with(myDocument){
var myPage = pages.lastItem();
with(myPage){
var meinIdRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_ID_u = 4; // Unterkante des Textrahmens
var myFrameOffset_ID_o = 7; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_ID_u, 7.5, myPageHeight - myFrameOffset_ID_o, 100]; // Koordinaten des Textrahmens
with(meinIdRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = (meinFeld1 + meinFeld2 + meinFeld3 + meinFeld4 + meinFeld5 + meineDruckerei + " · Printed in Germany");
//Absatzformat zuweisen.
Absatz_Light();
parentStory.appliedParagraphStyle = "ID-Zeile";
}
}
}
}

//Textrahmen für Barcode_Rechts erzeugen.
function Barcode_Rechts() {
with(myDocument) {
var myPage = pages.lastItem();
with(myPage){
var meinFeld1a = meinID_Feld.editContents;
var meinBarcodeRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_Bar_u = 4.5; // Unterkante des Textrahmens
var myFrameOffset_Bar_o = 9.5; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_Bar_u, 144.5, myPageHeight - myFrameOffset_Bar_o, 205]; // Koordinaten des Textrahmens
with(meinBarcodeRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = ("*I_" + meinFeld1a + "*");
//Absatzformat zuweisen.
Barcode();
parentStory.appliedParagraphStyle = "Barcode";
}
}
}
}

//Absatzformat "7 Punkt Light" generieren, wenn noch dieses Format noch nicht besteht.
function Absatz_Light(){
var myName, myParagraphStyle
//Abfagen ob das Format bereits existiert.
try{
myParagraphStyle = myDocument.paragraphStyles.item("ID-Zeile");
//Aufruf des nicht vorhandenen Formats liefert einen Fehler.
myName = myParagraphStyle.name;
}
catch (myError){
//Das Formt existiert noch nicht. Neu erstellen.
myParagraphStyle = myDocument.paragraphStyles.add({name:"ID-Zeile"});
//Dem Format Werte zuweisen.
with (myParagraphStyle){
appliedFont = "Univers";
//appliedFont = app.fonts.item("Univers");
fontStyle = "45 Light";
pointSize = 7
}
}
}

//Absatzformat "Barcode" generieren, wenn noch dieses Format noch nicht besteht.
function Barcode(){
var myName, meinBarcode
//Abfagen ob das Format bereits existiert.
try{
meinBarcode = myDocument.paragraphStyles.item("Barcode");
//Aufruf des nicht vorhandenen Formats liefert einen Fehler.
myName = meinBarcode.name;
}
catch (myError){
//Das Formt existiert noch nicht. Neu erstellen.
meinBarcode = myDocument.paragraphStyles.add({name:"Barcode"});
//Dem Format Werte zuweisen.
with (meinBarcode){
appliedFont = "Code-39-Logitogo";
fontStyle = "Regular";
pointSize = 12
}
}
}

var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight;

//Nullpunkt setzen und wiederherstellen.
function SpeichernNullpunkt() {
with ( app.activeDocument ) {
var myHorizontalMeasurementUnits = viewPreferences.horizontalMeasurementUnits;
var myVerticalMeasurementUnits = viewPreferences.verticalMeasurementUnits;
var myRulerOrigin = viewPreferences.rulerOrigin;
var myZeroPoint = zeroPoint;
viewPreferences.horizontalMeasurementUnits = MeasurementUnits.MILLIMETERS;
viewPreferences.verticalMeasurementUnits = MeasurementUnits.MILLIMETERS;
viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
zeroPoint = [0,0];
}
return { h:myHorizontalMeasurementUnits, v:myVerticalMeasurementUnits, r:myRulerOrigin, z:myZeroPoint }
}
function HerstellenNullpunkt ( p ) {
with ( app.activeDocument ) {
viewPreferences.horizontalMeasurementUnits = p.h;
viewPreferences.verticalMeasurementUnits = p.v;
viewPreferences.rulerOrigin = p.r;
zeroPoint = p.z;
}
}


Bitte nicht gleich steinigen wenn der Code vielleicht etwas umständlich oder nicht ganz sauber ist. Es ist mein erstes Skript und mangels Erfahrung darin sind einzelne Teile aus den ID-Beispielen herauskopiert.

Aber nochmal mein Problem: Wenn ich in eines der Textfelder den Wert "00" eingebe, dann wird die Eingabe so interpretiert, als ob ich gar nichts eingegeben hätte.
Ich hoffe, dass jemand weiß, was ich wo ändern muss, damit eine Eingabe in diesen Feldern (egal welcher Art) auch in meinem Textrahmen erscheint.

Da mein Tag heute um 15.00 endet, habe ich heute nicht mehr die Möglichkeit eventuelle Kommentare zu beantworten. Ich bin erst morgen wieder hier vertreten.

Auf jeden Fall wünsche ich allen noch einen schönen Tag.
Vielen Dank nocheinmal und viele Grüße
Manfred


als Antwort auf: [#384901]
X