PBWOUebersicht.m


max21 Unternehmensgruppe
#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
Foto