//NAME_CHECKING: bei jedem leer ausgegangenen valueForKey Zugriff auf ein PBEO wird geprueft, ob
// die table so ein Attribut hat; dient dem Aufspueren von Schreibfehlern;
// kostet Performance und sollte in Produktivbetrieb aus sein;
// Kompilieren des PBEO genuegt, wenn hier geaendert;
#define NAME_CHECKING
#import <Foundation/Foundation.h>
#import <EOControl/EOControl.h>
#import <WebObjects/WebObjects.h>
// man kann auch mit der neuen mysql-client DLL auf den alten Server zugreifen;
// daher kann man hier generell den PBMySQL4 drin lassen
#import <PBMySQL4/MySQLWrapper.h>
// Classes
//define here all classes of this project
@class Application;
@class Session;
@class PBWOBundle;
@class PBCategories;
@class PBDD;
@class PBDDAttribute;
@class PBDDTable;
@class PBDate;
@class PBEO;
@class PBPDFDoc;
@class PBMySQLChannel;
@class PBActionO;
@class PBWOEditor;
@class PBWOAsso;
@class PBWOBundle;
@class PBWOBundleDoku;
//defines
#define ANZ_GRUPPEN 10
#define EON @""
#define COMMENT @"//"
#define STARTCOMMENT @"/*"
#define ENDCOMMENT @"*/"
#define NSAPPNAME @"Aprica2"
#define GIF_1A [NSSWF @"/Aprica2_%@/Images/1a.gif",[_APP mandant]]
#define ND_FORMAT @"%Y%m%d%H%M%S"
#define ND_MYSQL_FORMAT @"%Y-%m-%d %H:%M:%S"
#define ND_GUID_FORMAT @"%d.%m.%Y"
#define ND_GUIDT_FORMAT @"%d.%m.%Y %H:%M:%S"
//globales
#define _APP (Application *)WOApp
#define _SESSION (Session *)[_APP currentSession]
#define myFM [NSFileManager defaultManager]
#define MYDD [_APP myDD]
#define _K [NSSWF @"_K_%@",[_APP mandant]]
#define LOCALLIBRARY [_APP localLibrary]
#define GLOBALCONFIGPATH [_APP globalConfigPath]
#define RESOURCEPATH [_APP resourcePath]
#define RESOURCEURL [_APP resourceURL]
#define MANDANTPATH [_APP mandantPath]
#define TEMPDIR [_APP tempdir]
#define TRANSLATION(s) ((_SESSION!=nil)?(NSString *)[_SESSION transFor:s]:(NSString *)s)
#define TRANSLATIONL(s,lng) ((_SESSION!=nil)?(NSString *)[_SESSION transFor:s lang:lng]:(NSString *)s)
#define CURRENTUSER [_SESSION userName]
#define CURRENTUSEREO [_SESSION ueo]
#define IS_ROOT [_SESSION isRoot]
#define SCRIPT(s) [_APP clearCacheForScriptNamed:@"here_script"]; [_APP executeScriptNamed:@"here_script" script:s datasource:self parmDict:parmDict]
#define SECURE_SELECTOR_FROM_STRING(s) [_APP secureSelectorFromString:s]
//f. Druck
#define mmtp(v) (((v) * POINTSPERCM) / (10 * scale))
#define ptmm(v) ((v) * (10 * scale)) / POINTSPERCM
#define mmtpFromTop(v) (fromTop - mmtp(v))
#define ptmmFromTop(v) ptmm(((fromTop - (v))))
#define A4quer "0 0 842 595"
#define A5quer "0 0 421 298"
#define qm "0 0 2835 2835"
#define CHECK_PGC if(pageCount < 1){ LOGS(([NSSWF @"noch keine Seite: %@",s])); continue;}#define BLOCKL 100000
//shortcuts
#define PBNOTHINGQ [PBSQLQualifier nothingQualifier]
#define PBALLQ [PBSQLQualifier allQualifier]
#define iE isEqual
#define NSSWF NSString stringWithFormat:
#define NSSWCOF NSString stringWithContentsOfFileUTF8:
#define NSSWCOFPE NSString stringWithContentsOfFilePE:
#define WTF writeToFileUTF8
#define WTFPE writeToFilePreferredEncoding
#define NSS(someInt) [NSSWF @"%i",someInt]
#define NSSD(someDouble) [NSString dbFromDouble:someDouble]
#define NSSDN(someDouble,nachkomma) [NSString dbFromDouble:someDouble nak:nachkomma]
#define DGI(myInt) [NSString dottedGuiFromDouble:myInt nak:0]
// #define EON EON
#define sbas stringByAppendingString
#define ofk objectForKey
#define rofk removeObjectForKey
#define vfk valueForKey
#define oai objectAtIndex
#define dwok dictionaryWithObjectsAndKeys
#define DWOK(o,k) [NSDictionary dictionaryWithObjectsAndKeys:o,k,nil,nil]
#define sofk(object,key) setSecureObject:object forKey:key
#define LARP_Start localPool = [[NSAutoreleasePool alloc]init]
#define LARP_End [localPool release]
#define SET_CHECKED(eo) [eo takeValue:[NSNumber numberWithBool:YES] forKey:@"isCheckedPBEO"]
#define SET_UNCHECKED(eo) [eo takeValue:[NSNumber numberWithBool:NO] forKey:@"isCheckedPBEO"]
#define IS_CHECKED(eo) [[eo vfk:@"isCheckedPBEO"]intValue]
#define NAME_OF_AKTIV_FLAG @"status"
#define MDS(aMD,size) aMD = [[NSMutableDictionary allocWithZone:NULL]initWithCapacity:size]
#define MD(aMD) MDS(aMD,10)
#define LMDS(aMD,size) NSMutableDictionary *aMD = [NSMutableDictionary dictionaryWithCapacity:size]
#define LMDN(aMD) LMDS(aMD,10)
#define LMD LMDN(lmd)
#define MAS(aMA,size) aMA = [[NSMutableArray allocWithZone:NULL]initWithCapacity:size]
#define MA(aMA) MAS(aMA,10)
#define LMAS(aMA,size) NSMutableArray *aMA = [NSMutableArray arrayWithCapacity:size]
#define LMAN(aMA) LMAS(aMA,10)
#define LMA LMAN(lma)
#define MS(aMS) aMS = [[NSMutableString allocWithZone:NULL]initWithCapacity:10240]
#define pa_non 0
#define pa_ins 1
#define pa_upd 2
#define IS_INSERTING (pendingAction == pa_ins)
#define BOT 1
#define TOP 2
#define KEEP 3
#define ADD 4
#define PAD_NONE 0
#define PAD_RIGHT 1
#define PAD_LEFT 2
//Attribute Target
#define ATTVCSELOBJ 1
// Button: Name=action; guiName=Alt; expression=scriptName oder Script selbst
#define ATBU 6
#define ATTVCPD 7
// Portlet: guiName = Portlet-Name
#define ATPORTLET 8
#define SC_ATTVCSELOBJ @"TVCSelObj"
#define SC_ATTVCPD @"TVCPD"
#define SC_ATBU @"BUTTON"
#define SC_ATPORTLET @"PORTLET"
//data type in attribute
#define DT_CHAR 0
#define DT_MONEY 1
#define DT_INT 2
#define DT_FLOAT 3
#define DT_DATE 4
#define DT_BOOL 5
#define DT_CHAR_FIX 6
#define DT_DATETIME 7
#define SC_DT_CHAR @"char"
#define SC_DT_MONEY @"money"
#define SC_DT_INT @"integer"
#define SC_DT_FLOAT @"float"
#define SC_DT_DATE @"date"
#define SC_DT_BOOL @"bool"
#define SC_DT_DATETIME @"datetime"
//key type in attribute
#define KT_NONE 0
#define KT_PRIM 1
#define KT_AUTO 3
#define KT_SERI 4
#define SC_KT_NONE @"N"
#define SC_KT_PRIM @"P"
#define SC_KT_AUTO @"A"
#define SC_KT_SERI @"S"
#define FILE_APP_STD 3
#define FILE_APP_K 4
#define FILE_PB 5
#define infoTypeDB_1 1
#define infoTypeDB_7 2
#define infoTypeAll_1 3
#define infoTypeAll_7 4
#define viewTypeM 0
#define viewTypeW 1
#define viewTypeD 2
#define viewTypeJ 3
#define taTerminOwn 0
#define taTerminEmpf 1
#define taTerminUser 2
#define taTerminRes 3
#define taAuftrag 4
#define taBestellung 5
#define taTour 6
#define tpHigh 1
#define tpMed 2
#define tpLow 3
#define tsunbearbeitet 0
#define tsgesichtet 1
#define tsinArbeit 2
#define tsfertig 3
#define tsblockiert 4
#define PBWOTVCCol_Align_left 0
#define PBWOTVCCol_Align_right 1
#define LINEHEIGHT 22
#define HTML_PREFIX @"<html "
#define BLOCK_PREFIX @"<block "
#define CLASS_PREFIX @"<class="
#define TEXT_PREFIX @"<text "
#define IMG_PREFIX @"<pidimg "
#define NI_PREFIX @"<namedIcon "
#define ZEILEN_PREFIX @"<zeilen "
#define RASTER_PREFIX @"<raster "
#define RASTER_D @"<rasterd>"
#define NUM_OF_COL_TO_SHOW [[[_APP configDict]ofk:@"numofcols"]intValue]
#define SPLITSTRING @"<!--- split here --->"
#define BEGIN_T @"<|"
#define END_T @"|>"
// 10
//neu: mit wasFetched am eo automatisch unterscheiden, ob oldValues gefuehrt werden muessen;
//filtern entfaellt ganz; wird vor insert/update sowieso gemacht;
#define tvfk(value,key) takeValue:value forKey:key
#define hasChanged(_eo,fieldName) (fieldName && [[_eo oldValues]ofk:fieldName])
#define testExistQf(en,qf) ([[_APP getEOs:en qualifier:[PBSQLQualifier qualifierWithString:qf] offset:0 count:1 soa:nil]firstObject]!=nil)
//einzelnes EO
#define getEOPkValue(en,pkv) [[_APP getEOs:en qualifier:[PBSQLQualifier qualifierFromKn:[[MYDD tableNamed:en]primaryKeyName] keyValue:pkv] offset:0 count:1 soa:nil]firstObject]
#define getEOQf(en,qf) [[_APP getEOs:en qualifier:[PBSQLQualifier qualifierWithString:qf] offset:0 count:1 soa:nil]firstObject]
#define getEOQ(en,q) [[_APP getEOs:en qualifier:q offset:0 count:1 soa:nil]firstObject]
//mehrere EOs
//ohne soa
#define getEOsKnKv(en,kn,kv) [_APP getEOs:en qualifier:[PBSQLQualifier qualifierFromKn:kn keyValue:kv] offset:0 count:0 soa:nil]
#define getEOsQf(en,qf) [_APP getEOs:en qualifier:[PBSQLQualifier qualifierWithString:qf] offset:0 count:0 soa:nil]
#define getEOsQ(en,q) [_APP getEOs:en qualifier:q offset:0 count:0 soa:nil]
//mit soa
#define getEOsQSoa(en,q,soaP) [_APP getEOs:en qualifier:q offset:0 count:0 soa:soaP]
//StringConstants
//global
#define SC_BOOL_FALSE @"N"
#define SC_BOOL_TRUE @"J"
#define SC_YES @"YES"
#define SC_NO @"NO"
#define SC_J @"J"
#define SC_N @"N"
#define SC_NewLine @"\n"
#define SC_BegTag @"<pirmin>"
#define SC_EndTag @"</pirmin>"
#define isYES(field) [[[self selObj]vfk:(field)]iE:SC_BOOL_TRUE]
#define isNO(field) [[[self selObj]vfk:(field)]iE:SC_BOOL_FALSE]
#define isInActive(eo) [[[eo values]vfk:NAME_OF_AKTIV_FLAG]iE:SC_BOOL_FALSE]
//bundles
#define SC_Hidden @"*Hidden"
#define SC_PrinCl @"PrincipalClass"
#define SC_xpos @"xpos"
#define SC_Tab @"Tab"
#define SC_real @"real"
//DD
#define SC_NewAttr @"newattribute"
#define SC_NewTable @"newtable"
#define SC_New @"new"
#define SC_EN @"entityName"
#define SC_MYSQL @"MySQL"
#define SC_tableType @"type"
#define SC_dbName @"dbName"
#define SC_segment @"segment"
#define SC_comment @"comment"
#define SC_primary @"P"
#define SC_uniq @"U"
#define SC_DbNames @"DbNames"
#define SC_Name @"Name"
#define SC_name @"name"
#define SC_GuiName @"guiName"
#define SC_pbt @"pbt"
#define SC_channel @"channel"
#define SC_loginName @"loginName"
#define SC_doku @"doku"
#define SC_tc @"tc"
#define SC_color @"color"
#define SC_Real @"R"
#define SC_Abstract @"A"
#define SC_Action @"A"
#define SC_Auto @"A"
#define SC_Modul @"M"
//PBWOEditor
#define SC_BezSuffix @"Bez"
#define SC_LIF_Unres @"unresolved"
#define SC_LIF_Unknown @"unknown"
#define SC_LIF_TV @"tableview"
#define SC_LIF_COMMON @"_common"
#define SC_LIF_SS @"_suchen"
#define SC_LIF_SUCHABFR @"_suchabfr"
#define SC_LIF_DRUCK @"_druck"
#define SC_LIF_EXPORT @"_export"
//Inspectors
#define SC_typ @"typ"
//fuer interaktives Logging an Oberflaeche;
#define LOGI(info) [_SESSION addMsg:((info))]
#define LOGS(info) [_APP log:[NSSWF @"[%@ %@] %@",[(NSObject *)[self class]description],NSStringFromSelector(_cmd),info]]
#define LOG(info) [_APP log:info]
#define LOGS_Ex(info) [_APP log:[NSSWF @"[%@ %@] %@ name:%@\n reason:%@\n userinfo:%@\n",[(NSObject *)[self class]description],NSStringFromSelector(_cmd),info,[localException name],[localException reason],[[localException userInfo]description]]]
#define LOG_ACTION if([_APP logActions])LOGS(([NSSWF @"%@ %@ ***",[self name],[selObj primaryKey]]));
#define SYSTEM(sys_) [_APP system:sys_]
#define PRINTCURRENTSTACK [OEObject printCurrentStack]
#define PRINTCURRENTSTACKSHORT [OEObject printCurrentStackShort]
//fuer PBOrb
#define NEW_EO(tableName) [_APP createEOforEN:tableName]
#define singleValueSQL(s) [_APP getSingleValueAsResultFrom:s]
#define SQL(s) [_APP evaluateSQL:s]
#define UPDAT(eo) [_APP updateEO:eo]
#define DELET(eo) [_APP deleteEO:eo]
#define INSRT(eo) [_APP insertEO:eo]
// sonstige Annehmlichkeiten;
#define FILLED(aField) ((aField) && [(NSString *)aField length])
#define FILLEDNUM(aField) ((FILLED(aField)) && ![aField iE:@"0"])
// Accessormethoden fuer einen NSString;
// V = Instance Variable, SV = SetV
#define ACCESSm(V,SV) \
- (NSString *)V;\
{\ return V;\
}\
- (void)SV:(NSString *)_value;\
{\ if(V != _value){\ [V release];\
V = [_value retain];\
}\
}
#define ACCESSh(V,SV) \
- (NSString *)V;\
- (void)SV:(NSString *)_value;
// Accessormethoden fuer eine Klasse;
// V = Instance Variable, SV = SetV, C = Class
#define ACCESSClassm(V,SV,C) \
- (C *)V;\
{\ return V;\
}\
- (void)SV:(C *)value;\
{\ if(V != value){\ [V release];\
V = [value retain];\
}\
}
// Accessormethoden fuer eine Klasse die nicht retained werden soll;
// V = Instance Variable, SV = SetV, C = Class
#define ACCESSClassmNR(V,SV,C) \
- (C *)V { return V; }\- (void)SV:(C *)value { V = value; }#define ACCESSClassh(V,SV,C) \
- (C *)V;\
- (void)SV:(C *)value;
#define MONEYGUI(val) [NSString dottedGuiFromDouble:[val doubleValue] nak:2]
#define FLOATGUI(val) [NSString dottedGuiFromDouble:[val doubleValue] nak:[pba nak]]
typedef struct { float r; /* RGB color components */
float g;
float b;
} ColorRGB;
#define SUCH_EXTERNAL(e,q) if(e && [e respondsToSelector:@selector(suchSuccessfulExternalQ:)] && [e suchSuccessfulExternalQ:q]){\ [e setCallingModul:self];\
[self bringToFront:e];\
}
/* es gibt diese Encodings:
NSASCIIStringEncoding = 1, 0..127 only
NSNEXTSTEPStringEncoding = 2,
NSJapaneseEUCStringEncoding = 3,
NSUTF8StringEncoding = 4,
NSISOLatin1StringEncoding = 5,
NSSymbolStringEncoding = 6,
NSNonLossyASCIIStringEncoding = 7,
NSShiftJISStringEncoding = 8,
NSISOLatin2StringEncoding = 9,
NSUnicodeStringEncoding = 10,
NSWindowsCP1251StringEncoding = 11, Cyrillic; same as AdobeStandardCyrillic
NSWindowsCP1252StringEncoding = 12, WinLatin1
NSWindowsCP1253StringEncoding = 13, Greek
NSWindowsCP1254StringEncoding = 14, Turkish
NSWindowsCP1250StringEncoding = 15, WinLatin2
NSISO2022JPStringEncoding = 21, ISO 2022 Japanese encoding for e-mail
NSMacOSRomanStringEncoding = 30,
*/
#ifndef GNUSTEP
#define sel_eq(sel1,sel2) ((sel1) == (sel2))
#endif
#define MODUL(n) [_SESSION instanceForBundleNamed:n]
#import "PBWOCategories.h"
#import "PBSmallObjects.h"
#import "PBSocket.h"
#import "PBDD.h"
#import "PBDDAttribute.h"
#import "PBDDTable.h"
#import "PBDate.h"
#import "PBEO.h"
#import "PBPDF.h"
#import "PBMySQLChannel.h"
#import "Session.h"
#import "Application.h"
#import "Application_1.h"
#import "Application_2.h"
#import "PBWOEditor.h"
#import "Ordner.h"
#import "Home2.h"
#import "PBWOLookup.h"
#import "PBWOUebersicht.h"
#import "PBWOPosEditor.h"
#import "PBWOAsso.h"
#import "PBWOBundle.h"
#import "PBFunctions.h"
#import "OEObject.h"
#import "PBArea.h"
#import "PBWOPortlets.h"
#import "PBWOBundles1.h"
#import "Falk_Auto.h"