#import "Aprica.h"
// Aprica2
// copyright Pirmin Braun 1997-2007 - pirmin@pirmin.de
// all Rights reserved;
@implementation PBWOUebersicht
ACCESSm(ueName,setUeName)
- (void)dealloc;
{ [ueName release];
[super dealloc];
}
- (BOOL)configureUebersicht:(NSString *)s table:(PBDDTable *)t cm:(PBWOEditor *)cm;
{ NSString *newLifFileName;
if(!FILLED(s)){ LOGS(@"ueName nicht gefuellt");
return NO;
}
if(!t){ LOGS(@"keine Table uebergeben");
return NO;
}
if(!cm){ LOGS(@"calling Modul nicht uebergeben");
return NO;
}
[self setCallingModul:cm];
[selectedObjects removeAllObjects];
multiSelect = NO;
if([s iE:@"ms_zuord"] || [s iE:@"ue_posten"]){// fuer alle Module gleich; nur abhaengig von Zieltabelle;
newLifFileName = [NSSWF @"%@_%@",s,[t dbName]];
}else{ newLifFileName = [NSSWF @"%@_%@",[callingModul name],s];
}
[self setUeName:s];
if(![t iE:myTable]){ [myTable release];
myTable = [t retain];
[self setLifFileName:newLifFileName];
[self reconfigureMyTable];
}else{ if(![lifFileName iE:newLifFileName]){ [self setLifFileName:newLifFileName];
[self reconfigureLif]; //weniger zu tun
}
}
[parmDict removeAllObjects]; // damit auch callingModulName
[parmDict setObject:lifFileName forKey:@"p_lifFileName"];
[parmDict setObject:[myTable dbName] forKey:@"p_tableName"];
[parmDict setObject:ueName forKey:@"p_ueName"];
[parmDict setObject:[callingModul name] forKey:@"p_cmn"];
[_APP executeScriptNamed:@"PBWOUebersicht/didConfigure" datasource:self parmDict:parmDict];
return YES;
}
- (NSString *)callingModulName;
{ NSString *sod = [parmDict ofk:@"callingModulName"];
if(FILLED(sod))return sod; // kann explizit gesetzt werden in scripts
if(![callingModul selObj]){ sod = @"";
}else{ sod = [[callingModul selObj]descri];
}
if([[callingModul name]iE:@"PBWOPosEditor"]){ if(uebernMode == UEB_NONE) return [NSSWF TRANSLATION(@"Übersicht %@ für %@ %@"),[myTable guiName],[[callingModul myTable]guiName],sod];
return [NSSWF TRANSLATION(@"%@ übernehmen für %@ %@"),[myTable guiName],[[callingModul myTable]guiName],sod];
}else{ if(uebernMode == UEB_NONE) return [NSSWF TRANSLATION(@"Übersicht %@ für %@ %@"),[myTable guiName],[callingModul guiName],sod];
return [NSSWF TRANSLATION(@"%@ übernehmen für %@ %@"),[myTable guiName],[callingModul guiName],sod];
}
}
- (WOElement *)editLine:(int)line columnName:(NSString *)columnName;
{ int r = currentPage * [self pageLeng] + line;
if([ma count]){ PBEO *eo;
if(r>=[ma count])r=[ma count]-1;
if(r<0)r=0;
eo = [ma oai:r];
if(uebernMode == UEB_NONE || [[[[self context] request] formValueForKey:@"isESC"]iE:@"ESC"]){ // Satz editieren; Modul besorgen; wenn Berechtigung, dann hinspringen mit pkq
// uebersicht didClickRow Script wird nicht aufgerufen
// wird es benoetigt, dann oeffneUebersichtMS: verwenden
PBWOEditor *e = [_SESSION instanceForBundleNamed:[myTable dbName]];
if(!e){ LOGI(TRANSLATION(@"keine Berechtigung."));
return self;
}
SUCH_EXTERNAL(e,[eo pkq]);
}else{ // MS oder MS_REF
[selectedObjects removeAllObjects];
[selectedObjects addObject:eo];
[parmDict removeAllObjects];
[parmDict setObject:eo forKey:@"p_eo"];
[parmDict setObject:lifFileName forKey:@"p_lifFileName"];
[parmDict setObject:[myTable dbName] forKey:@"p_tableName"];
[parmDict setObject:ueName forKey:@"p_ueName"];
if(columnName)[parmDict setObject:columnName forKey:@"p_columnName"];
[parmDict setObject:[callingModul name] forKey:@"p_cmn"];
[_APP executeScriptNamed:@"PBWOUebersicht/didClickRow" datasource:self parmDict:parmDict];
if(uebernMode == UEB_MULTI_REF){ // mit Refresh [self neuSuchen];
return self;
}
if(uebernMode == UEB_MULTI_DEL){ // mit Delete; gepickte rausnehmen; [ma removeObjectAtIndex:r];
[selectedObjects removeAllObjects];
return self;
}
// bleibt auf jeden fall in der Uebersicht; will man das nicht, in uebersichtEditLine explizit callingModul nach vorne bringen
}
}
return self;
}
- (WOElement *)allSelection;
{ int i,j;
for(i=0,j=[ma count];i<j;i++){ SET_CHECKED([ma oai:i]);
}
[selectedObjects removeAllObjects];
[selectedObjects addObjectsFromArray:ma];
return self;
}
@end