Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Naam variabele

Omschrijving

Datatype

dataset

Dit is de huidige dataset

System.Data.DataTable

mappingfiles

Dit is een verzameling (array) van alle beschikbare bronnen uit Verzamelen. Door mappingfiles['100098'] bijvoorbeeld te pakken, wordt de bron met ID 100098 opgehaald en kan gebruikt worden. Door bij het verzamelen met de muis over de bron te gaan, wordt de ID zichtbaar.

System.Collections.Generic.Dictionary<string,System.Data.DataTable>

...

Filteren op meerdere regels in bron

Om het mogelijk te maken om data uit een andere verzameling te halen, kunnen we bijvoorbeeld gebruik maken van de zogenaamde DataView. Deze biedt de mogelijkheid om te sorteren en daardoor een zogenaamde indering aan te leggen. Hierdoor wordt het zoeken in een gesorteerde DataView sneller.

Code Block
languagepy
#Get fieldnames based on name
def GetFieldIDByName(datatable,fieldName):
	for col in datatable.Columns:
		if col.Caption == fieldName:
			return col.ColumnName

#Get source 2
source2ID = '100095'
source2 = mappingfiles[source2ID]

#Set sort/index columns
COLUMN_source2_Crediteurnaam = GetFieldIDByName(source2,'Crediteurnaam')
COLUMN_source2_Inkooprelatie = GetFieldIDByName(source2,'Inkooprelatie.')

#create DataView
dv = DataView(source2)

#Sort dataView and create index
dv.Sort = "[" + COLUMN_source2_Crediteurnaam + "] asc, [" + COLUMN_source2_Inkooprelatie + "] asc"

#Function to get from dataview based on parameters
def GetNumberOfRows(Crediteurnaam, Inkooprelatie):
    #Create filter. This is an array of all values. Sequense is important
	xFilterArray = System.Array[System.String]([Crediteurnaam,Inkooprelatie])
	DataRowViews = dv.FindRows(xFilterArray)

	#if found return length
	if DataRowViews.Length>0:
		return DataRowViews.Length
	else:
		return None

#Iterate through rows
for rw in dataset.Rows:
    #Set first column of each row to number of results found
	rw[0] = GetNumberOfRows('Mooqe','12345')

In bovenstaand script wordt uit de functie GetNumberOfRows voor iedere regel het aantal regels gehaald gevonden o.b.v. de input. In het voorbeeld worden vaste waarden gebruikt (Mooqe en 12345). In een echte situatie zullen hier bijvoorbeeld waarden staan uit de regel van de dataset.