Hát, nem volt könnyű

Ilyet se csináltam még. És hogy mire is való ez? Egy jobb, könnyebben kezelhető névtáblára. Nem volt szórakozás ez a kis BASIC program OpenOffice-ban, de győztünk. Holnap be is fejezem:

REM  *****  BASIC  *****

Sub SelectLayer
	Dim oLayer, oForm, oLayerArray As Object
	Dim i As Integer
	oForm = ThisComponent.DrawPages(0).Forms.getByName("Beállító")
	oLayerArray = oForm.getByName("Képzések").StringItemList
	For i = LBound(oLayerArray()) To UBound(oLayerArray())
		oLayer = ThisComponent.LayerManager.getByName(oLayerArray(i))
		If oLayer.Name  sSelected Then
			oLayer.IsPrintable = FALSE
			oLayer.IsVisible = FALSE
		End If
	Next
	oLayer = ThisComponent.LayerManager.getByName(oForm.getByName("Képzések").getCurrentValue())
	oLayer.IsPrintable = TRUE
	oLayer.IsVisible = TRUE
End Sub

Sub ClearLayer
	Dim oLayer, oForm, oLayerArray As Object
	Dim i As Integer
	oForm = ThisComponent.DrawPages(0).Forms.getByName("Beállító")
	oLayerArray = oForm.getByName("Képzések").StringItemList
	For i = LBound(oLayerArray()) To UBound(oLayerArray())
		oLayer = ThisComponent.LayerManager.getByName(oLayerArray(i))
		If oLayer.Name  sSelected Then
			ThisComponent.LayerManager.remove(oLayer)
		End If
	Next
	oLayer = ThisComponent.LayerManager.getByName(oForm.getByName("Képzések").getCurrentValue())
	oLayer.IsPrintable = TRUE
	oLayer.IsVisible = TRUE
	oForm.getByName("Képzések").Enabled = FALSE
	oForm.getByName("RétegTörlés").Enabled = FALSE
End Sub

Sub AddData
	Dim i As Integer
	For i = 1 To 10
		 FindShapeByName( ThisComponent.DrawPages(0), "HelyszínÉsIdőpont-"+i ).String = ThisComponent.DrawPages(0).Forms.getByName("Beállító").getByName("HelyszínÉsIdőpont").getCurrentValue()
	Next i
End Sub

REM köszönet: Danny Brewer (Danny's Draw PowerTools)
Function FindShapeByName( oDrawPage As com.sun.star.drawing.GenericDrawPage, cShapeName As String )
	nNumShapes = oDrawPage.getCount()
	For i = 0 To nNumShapes - 1
		oShape = oDrawPage.getByIndex( i )
		If oShape.getName() = cShapeName Then
			FindShapeByName() = oShape
			Exit Function
		EndIf
	Next
End Function
  • Jóbel