[JW Lua] Help with understanding an error message needed
Jan Angermüller
jan at angermueller.com
Sat May 14 14:02:35 CEST 2016
The Staff name is the (main) name of the staff.
If a staff has several instruments you might need FCInstrumentDef.
If the instrument changes you may also need to check staff styles with
instrument changes.
Jan
Am 14.05.2016 um 13:09 schrieb Robert Wildling:
> Hi,
>
> a script loops over all staves of a score and logs some message to the
> console about found attributes, among them the staff's full name. But
> 2 weird things happen:
>
> 1. it lists empty entries and I have no idea, where they come from. In
> one case, there was an instrument change (and it seems this script
> cannot read a staff name of an instrument change staff...) and two
> others from a multi-staff instrument (harp). But still there are 5
> more logs of staves that have no name and are not in the score. I even
> tried to DeepDelete them, but to no avail...
> Is it possible that Finale remembers staves that were in the score at
> some earlier stage, but were deleted via ScoreManager at a later point?
>
> 2. The function is called like this: loadStaves(30). Depending on
> whether there is an attribute sent along, the script decides if it
> should loop over all staves (id == nil ... LoadAll() .. ) or over the
> specific one ( Load(id) ). But the "found id" part of the script
> throws this error:
>
> -- This function and ..."]:41: attempt to call method 'Load' (a nil value)
>
> According to the Class browser, though, the syntax is correct.
> Nevertheless, the Load method will not even accept a number that is
> entered manually...
>
> Any ideas what I am doing wrong here?
> Thanks!
> Robert
>
>
> This is the script:
>
> ****************************
> function loadStaves( id )
> local staffNameFull = finale.FCString()
> local staffNameAbbr = finale.FCString()
>
> if ( id == nil ) then
> print ( "ID = not given, so get all staves")
> local staves = finale.FCStaves()
> staves:LoadAll()
>
> for staff in each(staves) do
> staffNameFull = staff:CreateTrimmedFullNameString()
> staffNameAbbr = staff:CreateTrimmedAbbreviatedNameString()
> print("ItemNo: ", staff:GetItemNo(),
> " ---> Staff name full: ", staffNameFull.LuaString,
> " - abbr: ", staffNameAbbr.LuaString
> )
>
> if ( staffNameFull.LuaString == ""
> and staffNameAbbr.LuaString == ""
> and staff:GetItemNo() == 30)
> then
> print(" empty... delete this... or not?");
> local bool = staff:DeepDeleteData()
> print(bool)
> staves:SaveAll()
> end
> end
>
> else
> print("ID = ", id, ", process only that staff, type = ", type(id))
> local staff = finale.FCStaves();
> if staff:Load(id) then
> staffNameFull = staff:CreateTrimmedFullNameString()
> staffNameAbbr = staff:CreateTrimmedAbbreviatedNameString()
> print("Staff name full: ", staffNameFull.LuaString, " - abbr:
> ", staffNameAbbr.LuaString )
> end
> end
> end -- end function loadStaff
>
> loadStaves(29)
> ************************************
>
>
> _______________________________________________
> JWLua mailing list
> JWLua at jwmusic.nu
> http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160514/4803e751/attachment.htm>
More information about the JWLua
mailing list