ஓப்பன் ஆஃபிஸ் பேஸிக்கின் குறிமுறை வாயிலாக ஒரு ஆவணத்தை திறப்பதற்கு பின்வரும் செயலிகள் பயன்படுகின்றன
function
fnOpenDoc(sFile)
sURL = ConvertToURL(sFile)
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())
end function
அதற்கு பதிலாக இதே ஓப்பன் ஆஃபிஸ் பேஸிக்கின் பின்வரும் குறிமுறை வாயிலாக நடப்பிலுள்ள வார்ப்புருவிலிருக்கும் கோப்பு ஒன்றினை அது எந்தஇடத்திலிருக்கின்றதுஎன்ற வழியைமட்டும் குறிப்பிட்டு திறக்கமுடியும். அவ்வாறு திறப்பதற்கு முடியவில்லை என்றால் அதற்கான செய்தியை திரையில் காண்பித்துவிடும்.
Dim PathService as Object
Dim TemplatePath as String ' The path list
Dim SCPos as Integer ' The position of the next semi-colon
Dim MyTemplatePath as String ' The URL for the user template
' substitute your template name here
const TemplateName = "MyTemplate.ott"
' This seems to be the place in which OO stores user templates
const UserTemplateDirectory="/user/template"
PathService=CreateUNOService("com.sun.star.util.PathSettings")
TemplatePath=PathService.Template
MyTemplatePath=""
do while len(TemplatePath) >0
SCPos=InStr (TemplatePath,";")
if SCPos>0 then
MyTemplatePath=Left(TemplatePath, SCPos-1)
else
MyTemplatePath=TemplatePath
end if
' NOTE: as well as file URLs there are some others which should be ignored
if InStr(myTemplatePath,"file:///")=1 And _
Right(myTemplatePath,14) = UserTemplateDirectory then
exit do
end if
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)
MyTemplatePath=""
loop
if MyTemplatePath<>"" then
TemplatePath=ConverttoURL(TemplateName)
MyTemplatePath=MyTemplatePath & "/" & TemplateName
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())
else
MsgBox "Cannot find the template directory"
end if
இவ்வாறு தெரிவுசெய்து வெவ்வேறு கோப்புகளை திறக்கும்போது நடப்பிலுள்ள தெரிவுசெய்யபட்ட கோப்பு மட்டும் எது என அறிந்துகொள்ள பின்வரும் குறிமுறைகள் உதவுகின்றன
sub main
BasicLibraries.loadLibrary("XrayTool")
if fnWhichComponent(thisComponent) = "Text" then
oCurSelection = thisComponent.getCurrentSelection()
'xray oCurSelection
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then
msgbox "There are " & oCurSelection.getCount() & _
" selections in the current text document."
end if
end if
end sub
இந்த குறிமுறைவரிகளை கொண்டுநடப்பிலுள்ள கோப்புகளை ஓப்பன் ஆஃபிஸ் இல்லாது வேறுவகையில் திறக்க முயற்சிக்கும்போது முடியாமல் கணினியின் இயக்கம் தடுமாறும் அவ்வாறு தடுமாறாமல் வேறு மொழிகளின் மூலமாகவும் இதே குறிமுறைவரிகளை கொண்டு நடப்பிலுள்ள கோப்புகளை திறப்பதற்கு அதற்கான பண்பியல்புகளை மட்டும் பின்வருமாறு மாற்றியமைத்துகொள்க
sub main
BasicLibraries.loadLibrary("XrayTool")
if fnWhichComponent(thisComponent) = "Text" then
oCurSelection = thisComponent.getCurrentSelection()
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then
nCount = oCurSelection.Count
'xray oCurSelection.getByIndex(0)
'Warning: The insertion point will have the same action applied twice
'in this case it doesn't matter, but in others it might.
for i = 0 to nCount - 1
oCurSelection.getByIndex(i).setPropertyValue("CharStyleName", "Strong Emphasis")
next
end if
end if
end sub
இவ்வாறு நம்மால் தெரிவுசெய்யப்பட்ட ஓப்பன் ஆஃபிஸினுடைய ரைட்டர் ஆவணம் ஒன்றை திறந்தபின் அதிலுள்ள குறிப்பிட்ட பத்தியை அனுகி திறப்பதற்கு பின்வரும் குறிமுறைவரிகள் பயன்படுகின்றன
' Create enumeration object
oTextElementEnum = thisComponent.getText().createEnumeration()
'or thisComponent.getCurrentSelection().getByIndex(i).createEnumeration()
' loop over all text elements
while oTextElementEnum.hasMoreElements()
oTextElement = oTextElementEnum.nextElement
if oTextElement.supportsService("com.sun.star.text.TextTable") then
MsgBox "The current block contains a table."
end if
if oTextElement.supportsService("com.sun.star.text.Paragraph") then
MsgBox "The current block contains a paragraph."
end if
wend
அவ்வாறு திறந்து அந்த கோப்பின் ஆவணத்தை அனுகிடும்போது அதில் குறிப்பிட்ட பெயரை அனுகிட பின்வரும் குறிமுறைவரிகள் பயன்படுகின்றன
mNames = thisComponent.getSheets.getElementnames
for i = lbound(mNames) to ubound(mNames)
msgbox mNames(i)
பின்வரும்குறிமுறைகள் ஒரு ஆவணத்தில் புதிய உரைசுட்டியை உருவாக்கி நாம் அனுகிய அதே பகுதியில் சுட்டிகாட்டிடுமாறும் அதனை எங்கு வேண்டுமானாலும் நகர்த்த தயாராக இருக்குமாறும் செய்யபட்டுள்ளது
oVC = thisComponent.getCurrentController.getViewCursor
oCursor = oVC.getText.createTextCursorByRange(oVC)
oCursor.gotoStartOfSentence(false)
oCursor.gotoEndOfSentence(true)
msgbox oCursor.getString
பின்வரும்குறிமுறைகள் அதே ஆவணத்தில் புதிய உரைசுட்டிக்கு பதிலாக செவ்வக பெட்டியை நாம் அனுகிய அதே பகுதியில் உருவாக்கிட பயன்படுகின்றன
dim aPoint as new com.sun.star.awt.Point
dim aSize as new com.sun.star.awt.Size
aPoint.x = 1000
aPoint.y = 1000
aSize.Width = 10000
aSize.Height = 10000
oRectangleShape = thisComponent.createInstance("com.sun.star.drawing.RectangleShape")
oRectangleShape.Size = aSize
oRectangleShape.Position = aPoint
thisComponent.getDrawPages.getByIndex(0).add(oRectangleShape)
மேற்கண்டவாறு நாம் உருவாக்கும் புதிய ஆவணத்தினை கையாளுபவரையும் கவணித்தல் செய்பவரையும் கொண்டுவருவதற்கு பின்வரும்குறிமுறைவரிகள் பயன்படுகின்றன.
global IannzExampleKeyHandler
sub SetupKeyHandler
oController = thisComponent.currentController
IannzExampleKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")
oController.addKeyHandler(IannzExampleKeyHandler) ' Register the listener
end sub
sub RemoveKeyHandler
thisComponent.currentController.removeKeyHandler(IannzExampleKeyHandler)
end sub
sub KeyHandler_disposing
end sub
function KeyHandler_keyReleased(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean
KeyHandler_keyReleased = False
end function
function KeyHandler_keyPressed(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean
KeyHandler_keyPressed = false 'Let other listeners handle the event
if oKeyEvent.modifiers = com.sun.star.awt.KeyModifier.MOD2 then 'Control key was pressed
if oKeyEvent.keyCode = com.sun.star.awt.Key.Q then
msgbox "Alt + Q was pressed"
KeyHandler_keyPressed = true 'Don't let other listeners process this event
end if
end if
end function
இதுவரை நாம் கடந்த 108 தொடரின் வாயிலாக ஓப்பன் ஆஃபிஸ் பற்றி அதில் ஆவணங்களை உருவாக்க பயன்படும் ஓப்பன் ஆஃபிஸ் ரைட்டர், கணக்கீடுகள் செய்வதற்கான ஓப்பன் ஆஃபிஸ் கால்க், படவில்லை காட்சியை பயன்படுத்தி கொள்ள ஓப்பன் ஆஃபிஸ் இம்ப்பிரஸ், ஓவியம் அல்லது படம் வரைவதற்கான ஓப்பன் ஆஃபிஸ் ட்ரா, கணித சூத்திரங்களை கையாள ஓப்பன் ஆஃபிஸ் ஃபார்முலா, தரவுகளை கையாளுவதற்கான ஓப்பன் ஆஃபிஸ் பேஸ், பொதுவான பிடிஎஃப் ஆக கோப்பினை உருமாற்றுவது இணைய பக்கத்தை உருவாக்குவது ஆகிய தேவைகளுக்கான பொதுபயன்பாடு , இந்த பயன்பாடுகளின் தானியங்கி செயலை செய்வதற்கான கட்டளை குறிமுறைவரிகளை உருவாக்கிட ஓப்பன் ஆஃபிஸ் பேஸிக் என தெரிந்துகொண்டோம்.
இந்த தொடர்களை படிப்பவர்கள் தங்களுடைய தேவைகளுக்கு எம்எஸ் ஆஃபிஸ் எனும் கட்டணம் செலுத்தி பெறவேண்டிய தனியுடைமை பயன்பாட்டிற்கு மாற்றாக அல்லது பதிலாக அதே வாய்ப்புகளுடனும் வசதிகளுடனும் கூடுதலான வாய்ப்புகளையும் வசதிகளையும் வழங்க தயாராக உள்ள கட்டணம் எதுவும் செலுத்தவேண்டிய அவசியமே இல்லாத ஓப்பன் ஆஃபிஸை பயன்படுத்தவேண்டும் என்ற பேரவாவே இந்த தொடர்கட்டுரையின் நோக்கமாகும்.
மேலும் இந்த ஓப்பன் ஆஃபிஸானது எந்தவொரு இயக்கமுறைமையிலும் இயங்கும் திறன்கொண்டது. அதுமட்டுமின்றி இது ஒரு திறமூல பயன்பாடாக விளங்குகின்றது அதனால் தேவையெனில் இந்த ஓப்பன் ஆஃபிஸினுடைய மூலக்குறிமுறைகளை பெற்று நாம் விரும்பிய கூடுதல் வசதிகளை வழங்குமாறு நாமே மாற்றியமைத்து கொள்ளமுடியும் அல்லது இதற்கென உள்ள தன்னார்வ குழுவிடம் நம்முடைய தேவையை அறிவித்தால் அடுத்து வெளியிடும் பதிப்பில் அந்த வசதியுடன்சேர்த்து வெளியிடபடும் என்பதையும் கருத்தில் கொள்க.
.
இந்த தொடரை படித்திடும் அனைவரும் இந்த ஓப்பன்ஆஃபிஸ் பயன்பாட்டினை தத்தமது தேவைகளுக்கு ஏற்ப பயன்படுத்தி பயனடையுங்கள் என கூறி விடைபெறும்
ச.குப்பன்