2.2.4.9.38 DataRange::SetToVirtualDataset

Description

It sets a DataRange object into a virtual dataset.

Syntax

BOOL SetToVirtualDataset(LPCSTR lpcszVSName)


Parameters

lpcszVSName
[input]

Return

True if Successful

Examples

// This method is used by the following OC code to fix all the virtual matrices in the corrupted project
static	BOOL	_fix_virt_series(LPCSTR lpcszVirtSeries, Worksheet &wks,
								int nRowXValues,
								int nColumnYValues,
								int nR1,
								int nR2,
								int nC1,
								int nC2
								)
{
	DataRange	rng;
	//int			nn = rng.Add("X", wks, int nR1, int nC1, int nR2, int nC2);
	int			nn = rng.Add("X", wks, nRowXValues, nC1, nRowXValues, nC2);
	nn = rng.Add("Y", wks, nR1, nColumnYValues, nR2, nColumnYValues);
	nn = rng.Add("Z", wks, nR1, nC1, nR2, nC2);

	BOOL		bb = rng.SetToVirtualDataset(lpcszVirtSeries);
	ASSERT( bb );
	
	return bb;
}

static	BOOL	_fix_virt_matrix_ORG_17473(LPCSTR lpcszVirtSeries, Worksheet &wks)
{
	int		nRowXValues = 0;		// the first row of data always contains the X-values
	int		nColumnYValues = 0;		// the first column always contains the Y-values
	int		nR1 = 1;
	int		nR2 = wks.GetNumRows() - 1;
	int		nC1 = 1;
	int		nC2 = wks.GetNumCols() - 1;
	
	return _fix_virt_series(lpcszVirtSeries, wks, nRowXValues, nColumnYValues, nR1, nR2, nC1, nC2);
}


static	BOOL	_fix_virt_matrix_ORG_17473(const string &strVMname, int index)
{
	// Get the long name:
	MatrixObject mo( strVMname ); 
	if(!mo)
	{
		ASSERT(0);
		return FALSE;
	}
	
	string		strVMLongName = mo.GetLongName();
	if ( strVMLongName.IsEmpty() )
	{
		ASSERT(0);
		return FALSE;
	}
	
	// Assume that the VM's long name matches the sheet name of the source worksheet
	// for this virtual matrix 
	// Need to find the worksheet:
	foreach(WorksheetPage wp in Project.WorksheetPages)
	{
		foreach(Layer lay in wp.Layers)
		{
			Worksheet	wksh = lay;
			string		strName = wksh.GetName();
			if ( 0 == strName.CompareNoCase(strVMLongName) )
			{
				string		strDump;
				strDump.Format("index = %d,\t VM Name: %s,\t Workbook: %s,\t Sheet: %s", index, strVMname, wp.GetName(), wksh.GetName());
				out_str(strDump);
				_fix_virt_matrix_ORG_17473(strVMname, wksh);
				return TRUE;
			}
		}
	}
	
	return TRUE;
}

// For fixing virtual matrices in the corrupted project
void	fix_virt_matrices()
{
	// Get all the virtual matrices:
	QueryResult qr;
	qr.Build("Select VIRTUALMATRIX from Project");
	vector<string>	vsVMListNames;
	qr.GetNames(vsVMListNames, QUERYRESULTNAME_SNAME);
	
	for (int ii =0; ii < vsVMListNames.GetSize(); ii++)
	{
		_fix_virt_matrix(vsVMListNames[ii], ii);
	}
	
}

Remark

See Also

Header to Include

origin.h