Aprica.h


max21 Unternehmensgruppe
//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"
Foto