コード例 #1
0
ファイル: mkmscfnc.cpp プロジェクト: DTidd/OpenRDAAPI
int xaddRDATableValue(RDATABLE *T,double a,double b,double r,
	int line,char *file)
{
	TABLEVALUE *v=NULL;
#ifdef USE_RDA_DIAGNOSTICS
	if(diagsec)
	{
		prterr("DIAG addRDATableValue at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	if(T!=NULL)
	{
		if(T->values!=NULL)
		{
			T->values=Rrealloc(T->values,(T->num+1)*sizeof(TABLEVALUE));
		} else {
			T->values=Rmalloc((T->num+1)*sizeof(TABLEVALUE));
		}
		v=T->values+(T->num);
		v->amount=a;
		v->base=b;
		v->rate=r;
		return(++T->num);	
	} else {
		prterr("Error: RDATable is NULL at line [%d] program [%s].",line,file);
		return(-1);
	}
}
コード例 #2
0
ファイル: mkmscfnc.cpp プロジェクト: DTidd/OpenRDAAPI
void xaddRDApvar(RDApdev *p,char *name,char *command,short chgsize,short pitch,
	short points,short type,int line,char *file)
{
	RDApvar *a=NULL;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagrptgen)
	{
		prterr("DIAG addRDApvar at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	if(p!=NULL)
	{
		if(p->pvar!=NULL)
		{
			p->pvar=Rrealloc(p->pvar,(p->num+1)*sizeof(RDApvar));
		} else {
			p->num=0;
			p->pvar=Rmalloc(sizeof(RDApvar));
		}
		a=p->pvar+p->num;
		a->name=stralloc(name);
		a->command=stralloc(command);
		a->type=type;
		a->chgsize=chgsize;
		a->points=points;
		a->pitch=pitch;
		++p->num;
	} else {
		prterr("Error RDApdev at line [%d] program [%s] is NULLL.",line,file);
	}
}
コード例 #3
0
ファイル: alloc.cpp プロジェクト: DTidd/OpenRDAAPI
char *xstralloccat(char *base,char *add,int line,char *file)
{
	if(diagmisc && !diagallocx)
	{
		prterr("DIAG xstralloccat String Allocated at line [%d] program [%s].",line,file);	
	}
	if(base!=NULL)
	{
		if(diagallocx && diagmisc)
		{		
			base=(char *)xRrealloc(base,RDAstrlen(base)+RDAstrlen(add)+1,line,file);
		} else {
			base=(char *)Rrealloc(base,RDAstrlen(base)+RDAstrlen(add)+1);
		}
		if(base!=NULL) strcat(base,add);
	} else {
		if(diagallocx && diagmisc)
		{		
			base=xstralloc(add,line,file);
		} else {
			base=stralloc(add);
		}
	}
	return(base);
}
コード例 #4
0
void* Trealloc(void* memblock, size_t size)
{
    // For compatibility, on 64-bit systems realloc should align to 16 bytes
    size_t alignment = (sizeof(intptr_t)>4 && size>8) ? 16 : 8;
    void *ret = Rrealloc(memblock, size);
    if (0 != ret)
        ASSERT(0==((uintptr_t)ret & (alignment-1)),
               "allocation result should be properly aligned");
    return ret;
}
コード例 #5
0
ファイル: rdadiag.cpp プロジェクト: DTidd/OpenRDAAPI
static void XpertReadMe(RDArsrc *r)
{
	int count=0;
	FILE *fp=NULL;
	char *temp=NULL,xtemp[513];
	RDArsrc *tmprsrc=NULL;

#ifndef WIN32
	fp=fopen("./rda/Xpert.Read.Me","rb");
#endif
#ifdef WIN32
	fp=fopen(".\\rda\\Xpert.Read.Me","rb");
#endif
	if(fp!=NULL)
	{
		memset(xtemp,0,513);
		while(fgets(xtemp,512,fp))
		{
			if(temp==NULL)
			{
				temp=Rmalloc(RDAstrlen(xtemp)+1);
				sprintf(&temp[count],"%s",(xtemp!=NULL ? xtemp:""));
				count=RDAstrlen(xtemp);
			} else {
				temp=Rrealloc(temp,count+RDAstrlen(xtemp)+1);
				sprintf(&temp[count],"%s",(xtemp!=NULL ? xtemp:""));
				count+=RDAstrlen(xtemp);
			}
			memset(xtemp,0,513);
		}
		fclose(fp);
	}
	tmprsrc=RDArsrcNEW("UTILITIES","READ ME");
	addsctrsrc(tmprsrc,"README",0,temp,FALSE);
	addbtnrsrc(tmprsrc,"QUIT",TRUE,quitREADME,NULL);
	tmprsrc->scn=RDAscrnNEW("UTILITIES","READ ME");
	addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,8,"README","Read Me",NULL,NULL,25,70,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,3,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,6,"QUIT","Cancel",NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,4,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL);
	APPmakescrn(tmprsrc,TRUE,quitREADME,NULL,TRUE);
	if(temp!=NULL) Rfree(temp);
}
コード例 #6
0
ファイル: vogl_mem.cpp プロジェクト: Nicky-D/vogl
static void *realloc_block(void *p, size_t size, const char *pFile_line)
{
    VOGL_ASSERT(g_heap_initialized);
    VOGL_NOTE_UNUSED(pFile_line);

#if VOGL_MALLOC_DEBUGGING
    lock_heap();
    void *q = Rrealloc(p, size, pFile_line);
    unlock_heap();
#else
    void *q = realloc(p, size);
#endif

    return q;
}
コード例 #7
0
ファイル: vogl_mem.cpp プロジェクト: Nicky-D/vogl
static void *realloc_block(void *p, size_t size, const char *pFile_line)
{
    VOGL_ASSERT(g_pHeap);

    lock_heap();

#if VOGL_MALLOC_DEBUGGING
    void *q = Rrealloc(p, size, pFile_line);
#else
    VOGL_NOTE_UNUSED(pFile_line);
    void *q = stbm_realloc(NULL, g_pHeap, p, size, 0);
#endif

    unlock_heap();

    return q;
}
コード例 #8
0
ファイル: accfuncs.cpp プロジェクト: DTidd/OpenRDAAPI
char *fullacctdef(RDAacct *account)
{
	RDAaccpart *accpart=NULL;
	short x, longest;
	char *display_value=NULL,zeros[101];
	int defcount=0;

	if(account!=NULL)
	{
	if(account->acct!=NULL)
	{
	for(x=0,accpart=account->acct;x<account->num;++x,++accpart)
	{
		if(accpart->length>RDAstrlen(accpart->name))
		{
			longest=accpart->length;
		} else {
			longest=RDAstrlen(accpart->name);
		}
		if(display_value!=NULL)
		{
			display_value=Rrealloc((void *)display_value,defcount+longest+2);
		} else {
			display_value=Rmalloc((void *)defcount+longest+1);
		}
		memset(zeros,0,101);
		memset(zeros,'0',100);
		zeros[longest]=0;
		if(defcount>0)
		{
			sprintf(&display_value[defcount],"-%-*s",longest,(accpart->force_zero ? zeros:accpart->definition));
			defcount+=longest+1;
		} else {
			sprintf(&display_value[defcount],"%-*s",longest,(accpart->force_zero ? zeros:accpart->definition));
			defcount+=longest;
		}
	}
	}
	}
	return(display_value);
}
コード例 #9
0
ファイル: accfuncs.cpp プロジェクト: DTidd/OpenRDAAPI
char *fullacctlabel(RDAacct *account)
{
	RDAaccpart *accpart=NULL;
	short x, longest;
	char *display_value=NULL;
	int defcount=0;

	if(account!=NULL)
	{
	if(account->acct!=NULL)
	{
	for(x=0,accpart=account->acct;x<account->num;++x,++accpart)
	{
		if(accpart->length>RDAstrlen(accpart->name))
		{
			longest=accpart->length;
		} else {
			longest=RDAstrlen(accpart->name);
		}
		if(display_value!=NULL)
		{
			display_value=Rrealloc((void *)display_value,defcount+longest+2);
		} else {
			display_value=Rmalloc((void *)defcount+longest+1);
		}
		if(defcount>0)
		{
			sprintf(&display_value[defcount],"-%-*s",longest,accpart->name);
			defcount+=longest+1;
		} else {
			sprintf(&display_value[defcount],"%-*s",longest,accpart->name);
			defcount+=longest;
		}
	}
	}
	}
	return(display_value);
}
コード例 #10
0
ファイル: lvemst.cpp プロジェクト: DTidd/OpenRDAAPI
void lvemstm(short dowhich,void *targetkey)
{
	char *name=NULL;
	RDArsrc *mtnrsrc=NULL;
	RDATData *previous=NULL;
	short nofields=0,nokeys=0,x=0,y=0;
	short edit_rsrc=FALSE;
	NRDfield *fields=NULL,*fldx=NULL;
	NRDkey *keys=NULL,*keyx=NULL;
	NRDpart *part;
	
	ZERNRD(MASTER->passkey->fileno);
	previous=RDATDataNEW(MASTER->passkey->fileno);
	mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen);
	nokeys=NUMKEYS(MASTER->passkey->fileno);
	keys=KEYPOINTER(MASTER->passkey->fileno);
	nofields=NUMFLDS(MASTER->passkey->fileno);
	fields=FLDPOINTER(MASTER->passkey->fileno);
	GET_MAINTAIN_INCVARS(mtnrsrc,MASTER);
	GET_SCREEN_VIRTUALS(mtnrsrc,0);
	if(fields!=NULL)
	{
		for(x=0,fldx=fields;x<nofields;++x,++fldx)
		{
			if(fldx->type!=SDECIMALV) edit_rsrc=editable;
			else edit_rsrc=(short)(editable &&
					RDAstrcmp(fldx->name,"PROCESSED EARNINGS") && 
					RDAstrcmp(fldx->name,"UNPROCESSED EARNINGS") && 
					RDAstrcmp(fldx->name,"PROCESSED USED") && 
					RDAstrcmp(fldx->name,"UNPROCESSED USED"));
			nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc);
			if(name!=NULL)
			{
				name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
			} else {
				name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
			}
			sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name);
			FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER);
		}
	}
	if(keys!=NULL)
	{
		for(x=0,keyx=keys;x<nokeys;++x,++keyx)
		{
			if(keyx->part!=NULL)
			{
				for(y=0,part=keyx->part;y<keyx->numparts;++y,++part)
				{
					if(name!=NULL)
					{
						name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					} else {
						name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					}
					sprintf(name,"[%s][%s]",MASTER->mainfile,part->name);
					FINDRSCSETFUNC(mtnrsrc,name,SETID,previous);
					FINDRSCSETEDITABLE(mtnrsrc,name,TRUE);
				}
			}
		}
	}
	if(name!=NULL) Rfree(name);
	if(dscnum!=(-1)) file2rsrc(dscnum,mtnrsrc,FALSE);
	if(lvetyp!=(-1)) file2rsrc(lvetyp,mtnrsrc,FALSE);
	SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER);
	SCRNvirtual2rsrc(mtnrsrc);
	DefaultScreens(mtnrsrc);
	switch(dowhich)
	{
		case 1:
			ApplyPassKey(MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					GetRDATData(MASTER->passkey->fileno,previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				GetRDATData(MASTER->passkey->fileno,previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		case 2:
			ApplyPassKey(MASTER->passkey);
			ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
			} else {
				GetRDATData(MASTER->passkey->fileno,previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		case 0:
		default:
			if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc))
			{
				ZERNRD(MASTER->passkey->fileno);
				ApplyPassKey(MASTER->passkey);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					GetRDATData(MASTER->passkey->fileno,previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				GetRDATData(MASTER->passkey->fileno,previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
	}
	GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE);
	getsupportingrecords(mtnrsrc,FALSE,FALSE);
	MSTSetVirFieldFuncs(mtnrsrc,MASTER);
	addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,previous);
	if(mbl_mst!=NULL)
	{
		addrfcbrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,previous);
	} else {
		addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,previous);
	}
	addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_mst,previous);
	if(mbl_mst!=NULL)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE);
	}
	if(!editable)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE);
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE);
	}
	MakeMasterButtons(mtnrsrc,MASTER);
	MakePrevNextButtons(mtnrsrc,keys,nokeys,previous);
	addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,previous);
	addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,previous);
	addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL);
	addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	MSTcomputeallSCRNvirtuals(mtnrsrc,MASTER);
	APPmakescrn(mtnrsrc,FALSE,quit_record,previous,(mbl_mst==NULL?TRUE:FALSE));
}
コード例 #11
0
ファイル: payjpms.cpp プロジェクト: DTidd/OpenRDAAPI
static void payjpmsm(short dowhich,void *targetkey)
{
	char *name=NULL;
	short nofields=0,nokeys=0,x=0,y=0,edit_rsrc=TRUE;
	NRDfield *fields=NULL,*fldx=NULL;
	NRDkey *keys=NULL,*keyx=NULL;
        NRDpart *part=NULL;
	RDArsrc *mtnrsrc=NULL;
	
	mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen);
	ZERNRD(MASTER->passkey->fileno);
	nofields=NUMFLDS(MASTER->passkey->fileno);
	fields=FLDPOINTER(MASTER->passkey->fileno);
 	nokeys=NUMKEYS(MASTER->passkey->fileno);
 	keys=KEYPOINTER(MASTER->passkey->fileno);
	GET_MAINTAIN_INCVARS(mtnrsrc,MASTER);
	GET_SCREEN_VIRTUALS(mtnrsrc,0);
	if(fields!=NULL)
	{
		for(x=0,fldx=fields;x<nofields;++x,++fldx)
		{
			nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc);
			if(name!=NULL)
			{
				name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno)));
			} else {
				name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno)));
			}
			sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name);
			FINDRSCSETEDITABLE(mtnrsrc,name,FALSE);
		}
		if(keys!=NULL)
		{
			for(x=0,keyx=keys;x<nokeys;++x,++keyx)
			{
				if(keyx->part!=NULL)
				{
					for(y=0,part=keyx->part;y<keyx->numparts;++y,++part)
					{
						if(name!=NULL)
						{
							name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno)));
						} else {
							name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno)));
						}
						sprintf(name,"[%s][%s]",MASTER->mainfile,part->name);
						FINDRSCSETFUNC(mtnrsrc,name,SETID,NULL);
						FINDRSCSETEDITABLE(mtnrsrc,name,TRUE);
					}
				}
			}
		}
	}
	if(name!=NULL) Rfree(name);
	SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER);
	SCRNvirtual2rsrc(mtnrsrc);
	DefaultScreens(mtnrsrc);
	switch(dowhich)
	{
		case 1:
			ApplyPassKey(MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		case 2:
			ApplyPassKey(MASTER->passkey);
			ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
			} else {
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		case 0:
		default:
			if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc))
			{
				ZERNRD(MASTER->passkey->fileno);
				ApplyPassKey(MASTER->passkey);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
	}
	GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE);
	SetVirFieldFuncs(mtnrsrc);
	addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_payjpms,NULL);
	addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,NULL);
	addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record,NULL);
	addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL);
	addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	ADVMakePrevNextButtons(mtnrsrc,keys,nokeys,getpreviouscb,NULL,getnextcb,NULL);
	MakeMasterButtons(mtnrsrc,MASTER);
	computeallSCRNvirtuals(mtnrsrc);
	if(mbl_payjpms!=NULL) FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE);
	APPmakescrn(mtnrsrc,FALSE,quit_record,NULL,(mbl_payjpms==NULL?TRUE:FALSE));
}
コード例 #12
0
ファイル: fineaccm.cpp プロジェクト: DTidd/OpenRDAAPI
void fineaccm(short dowhich,void *targetkey)
{
	int which_type=0;
	char *name=NULL;
	short nofields=0,nokeys=0,x=0,y=0,edit_rsrc=FALSE;
	NRDfield *fields=NULL,*fldx=NULL;
	NRDkey *keys=NULL,*keyx=NULL;
	NRDpart *part;
	RDAacct *acc=NULL;
	RDArsrc *mtnrsrc=NULL;
	mtnstruct *mtn=NULL;
	
	mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen);
	ZERNRD(MASTER->passkey->fileno);
	mtn=Rmalloc(sizeof(mtnstruct));
	mtn->previous=NULL;
	mtn->previous=RDATDataNEW(MASTER->passkey->fileno);
	mtn->DEFtypes=NULL;
	mtn->DEFtypes=APPlibNEW();
	if(EXPENDITURE_ACCOUNT!=NULL)
	{
		if(EXPENDITURE_ACCOUNT->codetype!=NULL)
		{
			for(x=0,acc=EXPENDITURE_ACCOUNT->codetype;x<EXPENDITURE_ACCOUNT->num;++x,++acc)
			{
				addAPPlib(mtn->DEFtypes,acc->name);
			}
		}
	} 
	if(mtn->DEFtypes->numlibs<1)
	{
		addAPPlib(mtn->DEFtypes,"No Definitions Available");
	}
	nokeys=NUMKEYS(MASTER->passkey->fileno);
	keys=KEYPOINTER(MASTER->passkey->fileno);
	nofields=NUMFLDS(MASTER->passkey->fileno);
	fields=FLDPOINTER(MASTER->passkey->fileno);
	GET_MAINTAIN_INCVARS(mtnrsrc,MASTER);
	GET_SCREEN_VIRTUALS(mtnrsrc,0);
	if(fields!=NULL)
	{
		for(x=0,fldx=fields;x<nofields;++x,++fldx)
		{
			edit_rsrc=(short)editable;
			if(!RDAstrcmp(fldx->name,"DEFINITION TYPE"))
			{
				if(FIELDscrn(MASTER->passkey->fileno,fldx->name,&edit_rsrc))
				{
					which_type=0;
					addlstrsrc(mtnrsrc,"DEFINITION TYPES",
						&which_type,
						(edit_rsrc==TRUE?TRUE:FALSE),
						changeDEFtypecb,
						mtn->DEFtypes->numlibs,
						&mtn->DEFtypes->libs,mtn);
				}
			} else {
				nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc);
				if(name!=NULL)
				{
					name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
				} else {
					name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
				}
				sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name);
				FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER);
			}
		}
	}
	if(keys!=NULL)
	{
		for(x=0,keyx=keys;x<nokeys;++x,++keyx)
		{
			if(keyx->part!=NULL)
			{
				for(y=0,part=keyx->part;y<keyx->numparts;++y,++part)
				{
					if(name!=NULL)
					{
						name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					} else {
						name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					}
					sprintf(name,"[%s][%s]",MASTER->mainfile,part->name);
					FINDRSCSETFUNC(mtnrsrc,name,SETID,mtn);
				}
			}
		}
	}
	if(name!=NULL) Rfree(name);
	SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER);
	SCRNvirtual2rsrc(mtnrsrc);
	DefaultScreens(mtnrsrc);
	switch(dowhich)
	{
		case 1:
			ApplyPassKey(MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					GetRDATData(MASTER->passkey->fileno,mtn->previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		case 2:
			ApplyPassKey(MASTER->passkey);
			ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
			} else {
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
			}
			break;
		default:
		case 0:
			if(EQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey))
			{
				ZERNRD(MASTER->passkey->fileno);
				ApplyPassKey(MASTER->passkey);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				} else {
					GetRDATData(MASTER->passkey->fileno,mtn->previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				}
			} else {
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
			}
			break;
	}
	setLISTS(mtnrsrc,mtn,FALSE);
	GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE);
	MSTSetVirFieldFuncs(mtnrsrc,MASTER);
	MakePrevNextButtons(mtnrsrc,keys,nokeys,mtn);
	MakeMasterButtons(mtnrsrc,MASTER);
	MSTcomputeallSCRNvirtuals(mtnrsrc,MASTER);
	addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,mtn);
	if(mbl_fineacc!=NULL)
	{
		addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,mtn);
	} else {
		addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,mtn);
	}
	addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_fineacc,mtn);
	if(mbl_fineacc!=NULL)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE);
	}
	if(!editable)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE);
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE);
	}
	addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,mtn);
	addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,mtn);
	addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL); 
	addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	APPmakescrn(mtnrsrc,FALSE,quit_record,mtn,(mbl_fineacc==NULL?TRUE:FALSE));
}
コード例 #13
0
ファイル: veninvm.cpp プロジェクト: DTidd/OpenRDAAPI
void veninvm(short dowhich,void *targetkey)
{
	char *name=NULL;
	short edit_rsrc=TRUE,nofields=0,nokeys=0,x=0,y=0;
	int which_type=0;
	NRDfield *fields=NULL,*fldx=NULL;
	NRDkey *keys=NULL,*keyx=NULL;
	NRDpart *part;
	RDArsrc *mtnrsrc=NULL;
	mtnstruct *mtn=NULL;
	
	mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen);
	ZERNRD(MASTER->passkey->fileno);
	mtn=Rmalloc(sizeof(mtnstruct));
	mtn->previous=RDATDataNEW(MASTER->passkey->fileno);
	mtn->addresslist=NULL;
	nokeys=NUMKEYS(MASTER->passkey->fileno);
	keys=KEYPOINTER(MASTER->passkey->fileno);
	nofields=NUMFLDS(MASTER->passkey->fileno);
	fields=FLDPOINTER(MASTER->passkey->fileno);
	GET_MAINTAIN_INCVARS(mtnrsrc,MASTER);
	GET_SCREEN_VIRTUALS(mtnrsrc,0);
	if(fields!=NULL)
	{
		for(x=0,fldx=fields;x<nofields;++x,++fldx)
		{
			edit_rsrc=(short)editable;
			if(!RDAstrcmp(fldx->name,"ADDRESS IDENTIFICATION"))
			{
				if(FIELDscrn(MASTER->passkey->fileno,fldx->name,&edit_rsrc))
				{
					if(mtn->addresslist!=NULL) freeapplib(mtn->addresslist);
					mtn->addresslist=APPlibNEW();
					addAPPlib(mtn->addresslist,"No Addresses Defined");
					addlstrsrc(mtnrsrc,
						"VENINV ADDRESS IDENTIFICATIONS",
						&which_type,
						(edit_rsrc?TRUE:FALSE),
						changeADDRlist,
						mtn->addresslist->numlibs,
						&mtn->addresslist->libs,mtn);
				}
			} else {
				nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc);
				if(name!=NULL)
				{
					name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
				} else {
					name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile));
				}
				sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name);
				FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER);
			}
		}
	}
	if(keys!=NULL)
	{
		for(x=0,keyx=keys;x<nokeys;++x,++keyx)
		{
			if(keyx->part!=NULL)
			{
				for(y=0,part=keyx->part;y<keyx->numparts;++y,++part)
				{
					if(name!=NULL)
					{
						name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					} else {
						name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile));
					}
					sprintf(name,"[%s][%s]",MASTER->mainfile,part->name);
					FINDRSCSETFUNC(mtnrsrc,name,SETID,mtn);
					FINDRSCSETEDITABLE(mtnrsrc,name,TRUE);
				}
			}
		}
	}
	if(name!=NULL) Rfree(name);
	SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER);
	SCRNvirtual2rsrc(mtnrsrc);
	DefaultScreens(mtnrsrc);
	switch(dowhich)
	{
		case 1:
			ApplyPassKey(MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
					set_appdefaults(mtnrsrc,mtn,FALSE);
				} else {
					GetRDATData(MASTER->passkey->fileno,mtn->previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
					setlists(mtnrsrc,mtn,FALSE);
				}
			} else {
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				setlists(mtnrsrc,mtn,FALSE);
			}
			break;
		case 2:
			ApplyPassKey(MASTER->passkey);
			ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
			if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
			{
				ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
				set_appdefaults(mtnrsrc,mtn,FALSE);
			} else {
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				setlists(mtnrsrc,mtn,FALSE);
			}
			break;
		default:
		case 0:
			if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc))
			{
				ZERNRD(MASTER->passkey->fileno);
				ApplyPassKey(MASTER->passkey);
				ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey);
				if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc))
				{
					ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey);
					set_appdefaults(mtnrsrc,mtn,FALSE);
				} else {
					GetRDATData(MASTER->passkey->fileno,mtn->previous);
					filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
					setlists(mtnrsrc,mtn,FALSE);
				}
			} else {
				GetRDATData(MASTER->passkey->fileno,mtn->previous);
				filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc);
				setlists(mtnrsrc,mtn,FALSE);
			}
			break;
	}
	GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE);
	SetVirFieldFuncs(mtnrsrc);
	addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,mtn);
        if(mbl_veninv!=NULL)
        {
                addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,mtn);
        } else {
                addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,mtn);
        }
	addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_veninv,mtn);
	addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,mtn);
	addbtnrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,mtn);
	addbtnrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL);
	addbtnrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	MakePrevNextButtons(mtnrsrc,keys,nokeys,mtn);
	MakeMasterButtons(mtnrsrc,MASTER);
	computeallSCRNvirtuals(mtnrsrc);
	if(mbl_veninv!=NULL)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE);
	}
	if(!editable)
	{
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE);
		FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE);
	}
	APPmakescrn(mtnrsrc,FALSE,quit_record,mtn,
		(mbl_veninv==NULL?TRUE:FALSE));
}
コード例 #14
0
ファイル: rptsubd1.cpp プロジェクト: DTidd/OpenRDAAPI
short VIRTUALMTNReportGenSubData1(char **tmp,HoldReport *h,char *modulename)
{
	char *dashname=NULL,*tempvalue=NULL;
	char *tempchar=" ";
	int y=0;
	RDAvirtual *v=NULL;
	RDAreport *rpt=NULL;
	RDArunrpt *rrpt=NULL;
        char *temp=NULL,*gn=NULL,doall=TRUE;
        short start=1,length=0,str_length=0;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagrptgen || diageval)
        {
                prterr("DIAG VIRTUALMTNReportGenSubData1(): Substituting for [%s].",*tmp);
        }
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	rpt=h->rpt;
	rrpt=h->rrpt;
	if(isEMPTY(modulename)) return(1);
	if(rpt->virflds!=NULL && rpt->numvirtuals!=0)
	{
		for(y=0,v=rpt->virflds;y<rpt->numvirtuals;++y,++v)
		{
			if(!RDAstrcmp(modulename,v->name)) break;
		}
		if(y<rpt->numvirtuals)
		{
			switch(v->type)
			{
				case SCROLLEDTEXT:
				case VARIABLETEXT:
				case DATES:
				case TIMES:
				case SOCSECNUM:
				case PLAINTEXT:
				case PHONE:
				case CUSTOMTYPE:
				case ZIPCODE:
				case EXPENDITURE:
				case REVENUE:
				case BALANCESHEET:
				case BEGINNINGBALANCE:
				case OPTIONALFIELDS:
					if(RDAstrlen(*tmp)>(RDAstrlen(v->name)+2))
					{
						temp=*tmp+(RDAstrlen(v->name)+3);
						gn=strtok(temp,",]");
						if(gn!=NULL)
						{
							if(!isEMPTY(gn))
							{
							start=Ratoi(gn);
							} else start=1;
							gn=strtok(NULL,"]");
							if(!isEMPTY(gn))
							{
							length=Ratoi(gn);
							} else length=0;
						}		
						if(start<1) start=1;
						doall=FALSE;
					}
					str_length=(v->value.string_value!=NULL?RDAstrlen(v->value.string_value):0);
					if(length==0) length=str_length;
					if(RDAstrlen(*tmp)<(length+3))
					{
						*tmp=Rrealloc(*tmp,length+3);
					}
					if(doall)
					{
						sprintf(*tmp,"\"%s\"",(v->value.string_value!=NULL ? v->value.string_value:""));
					} else if(!isEMPTY(v->value.string_value) && (start-1)<str_length && str_length<length)
					{
						temp=stralloc(v->value.string_value);
						gn=temp+(start-1);
						if(RDAstrlen(gn)>(length))
						{
							temp[start-1+length]=0;
						}
						sprintf(*tmp,"\"%s\"",&temp[start-1]);
						if(temp!=NULL) Rfree(temp);
						temp=NULL;
					} else if((start-1)<str_length && !isEMPTY(v->value.string_value))
					{
						sprintf(*tmp,"\"%s\"",&v->value.string_value[start-1]);
					} else {
						sprintf(*tmp,"\"\"");
					}
					if(!RDAstrcmp(v->name,"ERROR DESCRIPTION") && !isEMPTY(v->value.string_value))
					{
						if(rrpt->errorlist->numlibs==1 && !RDAstrcmp(rrpt->errorlist->libs[0],"No Errors Encountered")) 
						{
							freeapplib(rrpt->errorlist);
							rrpt->errorlist=APPlibNEW();
						}
						addAPPlib(rrpt->errorlist,v->value.string_value);
					}
					break;
				case SHORTV:
				case SSHORTV:
					if(*v->value.short_value<0)
					{
						sprintf(stemp,"(%d)",*v->value.short_value);
					} else {
						sprintf(stemp,"%d",*v->value.short_value);
					}
					str_length=RDAstrlen(stemp);
					if(RDAstrlen(*tmp)<str_length)
					{
						*tmp=Rrealloc(*tmp,str_length+1);
					}
					memcpy(*tmp,stemp,str_length+1);
					break;
				case SCROLLEDLIST:
				case LONGV:
				case SLONGV:
					if(*v->value.integer_value<0)
					{
						sprintf(stemp,"(%d)",*v->value.integer_value);
					} else {
						sprintf(stemp,"%d",*v->value.integer_value);
					}
					str_length=RDAstrlen(stemp);
					if(RDAstrlen(*tmp)<str_length)
					{
						*tmp=Rrealloc(*tmp,str_length+1);
					}
					memcpy(*tmp,stemp,str_length+1);
					break;
				case DOLLARS:
				case DOLLARS_NOCENTS:
				case DOUBLEV:
				case SDOUBLEV:
					if(*v->value.float_value<0)
					{
						sprintf(stemp,"(%.0f)",*v->value.float_value);
					} else {
						sprintf(stemp,"%.0f",*v->value.float_value);
					}
					str_length=RDAstrlen(stemp);
					if(RDAstrlen(*tmp)<str_length)
					{
						*tmp=Rrealloc(*tmp,str_length+1);
					}
					memcpy(*tmp,stemp,str_length+1);
					break;
				case DECIMALV:
				case SDECIMALV:
					if(*v->value.float_value<0)
					{
						sprintf(stemp,"(%f)",*v->value.float_value);
					} else {
						sprintf(stemp,"%f",*v->value.float_value);
					}
					str_length=RDAstrlen(stemp);
					if(RDAstrlen(*tmp)<str_length)
					{
						*tmp=Rrealloc(*tmp,str_length+1);
					}
							memcpy(*tmp,stemp,str_length+1);
					break;
				case BOOLNS:
					if(RDAstrlen(*tmp)<2)
					{
						*tmp=Rrealloc(*tmp,2);
					}
					sprintf(*tmp,"%d",(*v->value.string_value ? 1:0));
					break;
				case CHARACTERS:
					if(RDAstrlen(*tmp)<2)
					{
						*tmp=Rrealloc(*tmp,2);
					}
					sprintf(stemp,"%c",*v->value.string_value);
					break;
				default:
					prterr("Error field type %d is invalid for %s.",v->type,v->name); 
					if(*tmp!=NULL) Rfree(*tmp);
					*tmp=NULL;
					break;
			}
		} else {
                	return(1);
		}
	} else {
               	return(1);
	}
	return(0);
}