ஓப்பன் ஆஃபிஸ் பேஸிக்- 108

  ஓப்பன் ஆஃபிஸ் பேஸிக்கின் குறிமுறை வாயிலாக ஒரு ஆவணத்தை திறப்பதற்கு பின்வரும் செயலிகள் பயன்படுகின்றன

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 தொடரின் வாயிலாக  ஓப்பன் ஆஃபிஸ் பற்றி அதில் ஆவணங்களை உருவாக்க பயன்படும் ஓப்பன் ஆஃபிஸ் ரைட்டர், கணக்கீடுகள் செய்வதற்கான ஓப்பன் ஆஃபிஸ் கால்க், படவில்லை காட்சியை பயன்படுத்தி கொள்ள ஓப்பன் ஆஃபிஸ் இம்ப்பிரஸ், ஓவியம் அல்லது படம் வரைவதற்கான ஓப்பன் ஆஃபிஸ் ட்ரா, கணித சூத்திரங்களை கையாள ஓப்பன் ஆஃபிஸ் ஃபார்முலா, தரவுகளை கையாளுவதற்கான ஓப்பன் ஆஃபிஸ் பேஸ், பொதுவான பிடிஎஃப் ஆக கோப்பினை உருமாற்றுவது இணைய பக்கத்தை உருவாக்குவது ஆகிய தேவைகளுக்கான பொதுபயன்பாடு , இந்த பயன்பாடுகளின் தானியங்கி செயலை செய்வதற்கான கட்டளை குறிமுறைவரிகளை உருவாக்கிட ஓப்பன் ஆஃபிஸ் பேஸிக்  என தெரிந்துகொண்டோம்.

இந்த தொடர்களை படிப்பவர்கள் தங்களுடைய தேவைகளுக்கு எம்எஸ் ஆஃபிஸ் எனும் கட்டணம் செலுத்தி பெறவேண்டிய தனியுடைமை பயன்பாட்டிற்கு மாற்றாக  அல்லது பதிலாக அதே வாய்ப்புகளுடனும் வசதிகளுடனும் கூடுதலான வாய்ப்புகளையும் வசதிகளையும் வழங்க தயாராக உள்ள  கட்டணம் எதுவும் செலுத்தவேண்டிய அவசியமே இல்லாத ஓப்பன் ஆஃபிஸை பயன்படுத்தவேண்டும் என்ற பேரவாவே இந்த தொடர்கட்டுரையின் நோக்கமாகும்.

மேலும் இந்த ஓப்பன் ஆஃபிஸானது எந்தவொரு இயக்கமுறைமையிலும் இயங்கும் திறன்கொண்டது. அதுமட்டுமின்றி இது ஒரு திறமூல பயன்பாடாக விளங்குகின்றது அதனால் தேவையெனில் இந்த ஓப்பன் ஆஃபிஸினுடைய  மூலக்குறிமுறைகளை பெற்று நாம் விரும்பிய கூடுதல் வசதிகளை வழங்குமாறு நாமே மாற்றியமைத்து கொள்ளமுடியும் அல்லது இதற்கென உள்ள தன்னார்வ குழுவிடம் நம்முடைய தேவையை அறிவித்தால் அடுத்து வெளியிடும் பதிப்பில் அந்த வசதியுடன்சேர்த்து வெளியிடபடும் என்பதையும் கருத்தில் கொள்க..

இந்த தொடரை படித்திடும் அனைவரும் இந்த ஓப்பன்ஆஃபிஸ் பயன்பாட்டினை தத்தமது தேவைகளுக்கு ஏற்ப பயன்படுத்தி பயனடையுங்கள்

 

ஓப்பன் ஆஃபிஸ் –பேஸிக்-107

 ஓப்பன் ஆஃபிஸின் பேஸிக் குறிமுறைவரிகளானது நூலகங்களுக்குள் தகவமைப்பு கூறாக(module) தேக்கிவைக்க படுகின்றது.இவ்வாறான ஒரு நூலகமானது மற்றவர்களுடன் பங்கிட்டு கொள்ளுமாறும், நடப்பு பயனாளர் பயன்படுத்தி கொள்ளுமாறும், நடப்பு ஆவனத்திற்குள் பயன்படுமாறும்  இருக்கும் அதனால் இதிலிருந்து நாம் விரும்பிய குறிமுறைவரிகளை நகலெடுத்து கொள்ளவோ வேறு இடத்திற்கு நகர்த்தவோ செய்யலாம்  இந்த நூலகங்கள் எந்த கோப்பகத்திற்குள் உள்ளது என Tools => Options=> OpenOffice.org => Paths => BASIC.=> என்றவாறு கட்டளைகளை செயற்படுத்துவதன் வாயிலாக அறிந்து கொள்ளமுடியும் இந்த நூலகங்களுக்குள் ஒரு தகவமைப்புகூறின்(module)  அதிகபட்ச எண்ணிக்கை16000 (modules)உம்  அதன் கொள்ளளவானது   64kb ஆகும்.

முதன் முதல் இந்த ஒருங்கிணைந்த குறிமுறை சூழலை நாம் அனுகிட Tools => Macros => Organize macros => OpenOffice.org Basic=> என்றவாறு கட்டளைகளை செயற்படுத்துக. பின்னர் தோன்றிடும் திரையில்புதிய குறிமுறைவரிகளின் பெயராக வழக்கமானHelloWorld என்றவாறு அமைத்துகொண்டும் Standard என்றவாறு தெரிவுசெய்து அமைத்து கொண்டும் New என்றவாறு பெயரிட்டுகொள்க

பொதுவாக இந்த குறிமுறைவரிகளானது பின்வருமாறு இருக்கும்

 

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

Sub Main

End Sub

Sub HelloWorld

End Sub

இந்நிலையில் இடம்சுட்டியானது Sub HelloWorldஎன்ற வரியின் தொடக்கத்தில் இருக்கும்  அடுத்தகாலியான வரிக்கு இடம்சுட்டியை நகர்த்திசென்று msgbox “Hello World!”  என்றவாறு தட்டச்சு செய்திடுக பின்னர்  மேக்ரோவினுடைய கருவிகளின்பட்டையிலுள்ள Run என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக அல்லது  கட்டளை பட்டையில் Tools => Macro => Run Macro=> என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக உடன் ஒரு சிறிய செய்திபெட்டியில் Hello World! என்றவாறான செய்தி திரையில் பிரதிபலிக்கும்.

இந்த குறிமுறைவரிகளாது மிகச்சரியாக செயல்படுகின்றது என அறிந்தவுடன் மேலே செந்தரசெயல்பட்டையிலுள்ள save என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி சேமித்துகொள்க அல்லது  OpenO ffice.org  இலிருந்து வெளியேறினால்    தானாகவே இந்த குறிமுறைவரிகளானதுசேமித்துகொள்ளும்.

 

மேலும் இந்த குறிமுறைவரிகளில் String,Boolean,Float,Double,Long,Currency Integer,Array,என்பன போன்ற மாறிகளை பயன்படுத்தி நாம் விரும்பும் விளைவுகளை பெற்றிடமுடியும் அதனை தொடர்ந்து

sub HelloWorld

dim i as integer ‘This line is optional

for i = 0 to 2

next i

end sub

என்றவாறு மேலே கூறிய மாறிகளில் ஒன்றை பயன்படுத்தி அந்த HelloWorld  என்பதன் குறிமுறைவரிகளை மாற்றியமைத்துகொள்ளமுடியும்

பொதுவாக  ஒருமைக்ரோசாப்ட்டின் ஆஃபிஸ் பயன்பாடு போலல்லாது இந்த ஓப்பன் ஆஃபிஸானது ஒரே பயன்பாட்டிற்குள் பல்வேறு பயன்பாடுகளும் பயன்படுத்த ஏதுவாக தயாராக இருக்கும். அதாவது நாம் வழக்கமாக மைக்ரோசாப்ட் பயன்பாடு போன்று ஒவ்வொரு பயன்பாட்டினையும்

oDoc = StarDesktop.loadComponentFromURL(“private:factory/swriter”, “_blank”, 0, Array())

 என்றவாறான கட்டளை வரிகளின் மூலம் புதிய ஆவணத்தை உருவாக்கமுடியும்.

oDoc = StarDesktop.loadComponentFromURL(“private:factory/scalc”, “_blank”, 0, Array())

 என்றவாறான கட்டளை வரிகளின் மூலம் புதிய விரிதாளை உருவாக்கமுடியும். இவ்வாறு ஒவ்வொரு பயன்பாட்டினையும் தனித்தனியான குறிமுறைவரிகளின்மூலம் உருவாக்குவதற்கு பதிலாக மிகசுலபமாக,

function fnNewDoc(sDocType as string)

fnNewDoc = StarDesktop.loadComponentFromURL(“private:factory/” & sDocType , “_blank”, 0, Array())

end function

என்றவாறான சாதாரான செயலிகளின் வரிகளை அமைத்துகொண்டபின்னர்,

oDoc = fnNewDoc(“swriter”)

oDoc = fnNewDoc(“scalc”)

oDoc = fnNewDoc(“simpress”)

oDoc = fnNewDoc(“sdraw”)

oDoc = fnNewDoc(“smath”)

என்றவாறு மற்ற பயன்பாடுகளையும் ஒரே பயன்பாட்டின் திரையிலிருந்து மற்ற பயன்பாடுகளை உருவாக்கிடமுடியும். இதனை தொடர்ந்து இதுபற்றி மேலும் அறிந்து கொள்ள விழைபவர்கள் பின்வரும் இணைய முகவரிக்கு சென்று அறிந்துகொள்க

http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html .

ஓப்பன் ஆஃபிஸ் பேஸிக் -105 –தொடர்ச்சி

 

ஓப்பன் ஆஃபிஸ்  பேஸிக்கில் com.sun.star.awt.UnoControlFixedLineஎன்ற கட்டுப்பாட்டின் மூலம் ஒரு உரையாடல் பெட்டியில் தேவையான கோடு ஒன்றினை உருவாக்கமுடியும், அவ்வாறே  com.sun.star.awt.UnoControlDateFieldஎன்ற கட்டுபாடானது ஒருஉரைபுலத்தினை விரிவாக்கம் செய்து நாம் உள்ளீடு செய்திடும்  நடப்பு நாளினை YYYYMMDD என்ற வடிவமைப்பில் ஏற்றுக் கொள்ளுமாறும் இதில் கீழிறங்கு  பட்டியலை உருவாக்கி அவற்றிலிருந்து தெரிவுசெய்துகொள்ளுமாறும் செய்யமுடியும்,

மேலும் com.sun.star.awt.UnoControlNumericField என்ற கட்டுப்பாட்டின் மூலம் எண்களையும் பின்ன எண்களையும் உள்ளீடு செய்திட அனுமதிக்கலாம்  அதுமட்டுமின்றி com.sun.star.awt.UnoControlFormattedField என்ற கட்டுப்பாட்டின் மூலம் குறிப்பிட்ட புலம் எந்தவகையான வடிவமைப்பில் வேண்டுமென முடிவுசெய்திடலாம்  முடிவாக com.sun.star.awt.UnoControlFileControl என்ற கட்டுப்பாடு மேலேகூறிய உரைபுலத்தில் கூடுதலான முன்கூட்டியே கட்டமைக்கபட்ட பொத்தான்களுடனான கோப்பு கட்டுபாடாக பணிபுரிகின்றது அதாவது இந்த பொத்தானை சொடுக்கினால்  நாம் இதுவரை உரைபெட்டிகளின் மூலம் பெறப்பட்ட தரவுகளை சேமிக்கவேண்டி உரையாடல் பெட்டியொன்று திரையில் தோன்றிடசெய்கின்றது

ஓப்பன் ஆஃபிஸ் பேஸிக்கை பயன்படுத்தும்போது உரையாடல் பதிப்பு பெட்டியொன்று திரையில் தோன்றிடும் இது நாம் உருவாக்கிடும் புதியதான உரையாடல்பெட்டியை வடிவமைத்திடும் கருவியாக பயன்படுகின்றது இதில்com.sun.star.awt.XDialogProvider API என்ற கட்டுபாட்டினை பயன்படுத்தி BeanShell, JavaScript, Java, OpenOffice.org Basic ஆகிய மொழிகளில்  உருவாக்கபடும் மேக்ரோவின் வாயிலாக இந்த  உரையாடல்பெட்டியை வடிவமைத்திட பயன்படும் உரையாடல் பதிப்பு பெட்டியை நினைவகத்தில் மேலேற்றி திரையில் தோன்றிட செய்கின்றது. மேலும் Java Swing என்ற உறுப்பினை பயன்படுத்தியும் இயக்க நேரத்தில் ஒரு உரையாடல்பெட்டியை உருவாக்கிடமுடியும்   இதற்காக முதலில் com.sun.star.awt.UnoControlDialogModel என்ற கட்டுபாட்டின் மூலம் ServiceManager எனும் சேவைமேலாளரின் வாயிலாக ஒரு உரையாடல் பெட்டியை இயக்கநேரத்தில் உருவாக்கிடமுடியும்   பின்னர் அவ்வுரையாடல் பெட்டியின் இடவமைவு ,தலைப்பு போன்றவைகளை com.sun.star.beans.XPropertySet என்ற கட்டுபாட்டினை பயன்படுத்தி அமைத்திடுக இந்நிலையில் மிகசிக்கலான அமைவிற்கு com.sun.star.beans.XMultiPropertySet என்றகட்டுபாட்டினை பயன்படுத்திகொள்ளுமாறு பரிந்துரைக்கபடுகின்றது இதனோடு “PositionX”, “PositionY”, “Width”, “Height”, “Name”, “TabIndex”, “Step” and “Tag” ஆகியவற்றின் பண்பியல்புகளை பயன்படுத்தி ஒரு  கட்டுபாட்டு மாதிரியை உருவாக்கியபின்னர் com.sun.star.container.XNameContainer என்ற கட்டுபாட்டின் மூலம்  ஒரு கட்டளை பொத்தான், அதன் பெயர், இடவமைவு, அளவு ஆகியவற்றினை முடிவுசெய்துஅமைத்துகொள்க இறுதியாக நாம்உருவாக்கிய உரையாடல் பெட்டியை com.sun.star.awt.XDialog interface. என்ற கட்டுபாட்டினை பயன்படுத்தி திரையில் பிரதிபலிக்கசெய்க.

நிரல் தொடர்-105-1

public void trigger(String sEvent) {

if (sEvent.equals(“execute”)) {

try {

createDialog();

}

catch (Exception e) {

throw new com.sun.star.lang.WrappedTargetRuntimeException(e.getMessage(), this, e);

}

}

}

மேலே காணும் நிரல் தொடர்வழிமுறையின்வாயிலாக com.sun.star.task.XJobExecutor என்ற கட்டுபாடானது ஒருபயனாளர் எத்தனைமுறை கட்டளைபொத்தானை சொடுக்கினார் என கவணித்தல் செய்கின்றது இதே செயலை   பின்வரும் எளிய மேக்ரோவரிகளும் செய்கின்றன

 

Sub Main

Dim oJobExecutor

oJobExecutor = CreateUnoService(“com.sun.star.examples.SampleDialog”)

oJobExecutor.trigger(“execute”)

End Sub

வருங்காலத்தில் இயக்கநேரத்திலும் உரையாடல் பெட்டியொன்று தானாகவே உருவாகி செயல்படுமாறான வழிமுறையுடன் இந்த ஓப்பன் ஆஃபிஸ் பேஸிக்கின் வாயிலாக வழங்கவிருக்கின்றனர் என்றசெய்தியை மனதில் கொள்க.

105.

ஓப்பன் ஆஃபிஸ் பேஸிக்-104

ஓப்பன் ஆஃபிஸ் பேஸிக்கில் கட்டளைவரிகளை தொடர்ந்து செயல்படுமாறு இணைத்திடுகின்ற புரியாக்குதலும்(threading), செயல்களை மறுஅட்டவணை படுத்துதலும் (rescheduling) சிறிது வித்தியாசமான செயலாகும்.  ஏனெனில் இது இயக்க நேரத்தில் மட்டும் செயல்களை அட்டவணைபடுத்திடுவதற்கான வசதியை வைத்துள்ளது. மேலும் மூலக்குறிமுறைகளையும் உரையாடல் பெட்டிகளுக்கான கட்டளை வரிகளையும் மேம்படுத்தபட்ட நூலகத்தை நிருவகித்தலின்மூலம் பராமரிக்கின்றது இந்த மேம்படுத்தபட்ட நூலகத்தை நிருவகித்தலின் பொதுவான கட்டமைப்பானது Library container , Library , Library elements ஆகியமூன்று நிலைகளில் உள்ளன

104.1

அதிலும் Basic library container என்பது மூலக்குறிமுறைகளை மட்டும் dialog library container என்பது உரையாடல் பெட்டிகளுக்கான கட்டளைவரிகளைமட்டும் கொண்டுள்ளன. இதிலுள்ள முன்கூட்டியே கட்டமைக்கபட்ட BasicLibraries. DialogLibraries ஆகிய பண்பியல்புகளின் மூலம் இதனை அனுகி திருத்தம் செய்யலாம்  இந்த பேஸிக்ஆனது இயங்க துவங்கும்போது நூலகத்தின் Standard என்பது மட்டும் எப்போதும் நினைவகத்தில் மேலேற்றம் செய்யபட்டிருக்கும் மற்றவை தேவைப்படும்போதும் மட்டும் மேலேற்றம் செய்து பயன்படுத்தி கொள்ளும்

createLibrary() என்ற கட்டளைவரியின் வாயிலாக புதிய நூலகதாங்கி (library container) உருவாக்கபடும்  அவ்வாறே நடப்பிலுள்ள   நூலகதாங்கி  (existing library container) யானது createLibraryLink()என்ற கட்டளைவரியின் வாயிலாக இணைத்து வேறு library container உருவாக்கபடும்

உரையாடல் பெட்டியும் ,உரையாடல் பெட்டியின் கட்டுப்பாடும் model, view,  controller ஆகிய மூன்று முக்கியதருக்க வகைகளில் Toolkit controls என்பதன் வாயிலாக  கட்டுபடுத்தபடுகின்றது

மேற்கூறியவாறு உரையாடல் பெட்டியை வடிவமைத்து உருவாக்கியபின் அவ்வுரையாடல் பெட்டியை நம்முடைய பயன்பாட்டில்  கொண்டுவரமுடியும்  அதனை கட்டுபாட்டு பெட்டியாக எப்போதுவேண்டுமானாலும் மாற்றிகொள்ளமுடியும்  மேலும் அதனுடைய பண்பியல்புகளையும் மாற்றியமைக்கமுடியும் அதுமட்டுமல்லாது கூடுதலான பக்கங்களை அதில் சேர்க்கமுடியும் மேலும் அதில் (இந்தமேக்ரோவில்)

oDialogModel = oDialog.getModel()

oButtonModel = oDialogModel.getByName(“CommandButton1”)

oButtonModel.setPropertyValue(“Label”, “My Label”)

என்றவாறான கட்டளைவரிகளின் வாயிலாக பொத்தன்களையும்(Buttons)

oImageControlModel = oDialog.Model.ImageControl1

oImageControlModel.ImageURL =

“file:///D:/Office60/share/gallery/photos/beach.jpg”

oImageControlModel.ScaleImage = True

என்றவாறான கட்டளைவரிகளின் வாயிலாக  உருவப்படகட்டுபாட்டையும்  (ImageControl)

oCheckBoxModel = oDialog.Model.CheckBox3

oCheckBoxModel.TriState = True

oCheckBoxModel.State = 2

என்றவாறான கட்டளைவரிகளின் வாயிலாக தேர்வுசெய்பெட்டியையும்(CheckBox)

If oOptionButton.State Then

‘ The option is checked

Else

‘ The option is not checked

End If

என்றவாறானகட்டளைவரிகளின் வாயிலாக வாய்ப்பு பொத்தான்களையும் (OptionButtons)

Dim nCount As Integer, oListBox As Object

 

oListBox = oDialog.getControl(“ListBox1”)

nCount = oListBox.getItemCount()

oListBox.addItem( “New Item”, nCount )

Dim nPos As Integer, nCount As Integer

 

nPos = 0

nCount = 1

oListBox.removeItems( nPos, nCount )

 

oListBox.selectItemPos( 0, True )

Dim sSelectedItem As String

sSelectedItem = oListBox.getSelectedItem()

Dim selectPos As Integer

selectPos = oListBox.getSelectedItemPos()

என்றவாறான கட்டளைவரிகளின் வாயிலாக பட்டி பெட்டியையும்(ListBox)

Dim nCount As Integer

Dim sItems As Variant

 

REM get control

oComboBox = oDialog.getControl(“ComboBox1”)

 

REM first remove all old items from the list

nCount = oComboBox.getItemCount()

oComboBox.removeItems( 0, nCount )

 

REM add new items to the list

sItems = Array( “Item1”, “Item2”, “Item3”, “Item4”, “Item5” )

oComboBox.addItems( sItems, 0 )

என்றவாறான கட்டளைவரிகளின் வாயிலாக சேர்க்கை பெட்டியையும்(ComboBox) உள்ளிணைக்க முடியும்

oScrollBarModel = oDialog.Model.ScrollBar1

oScrollBarModel.ScrollValueMax = 100

oScrollBarModel.BlockIncrement = 20

oScrollBarModel.LineIncrement = 5

oScrollBarModel.VisibleSize = 20

என்றவாறான கட்டளைவரிகளின் வாயிலாக கிடைவரிசை,நெடுவரிசை நகர்வுபட்டையையும்  (Horizontal/Vertical Scroll Bar)

Dim oLabelModel As Object

Dim oScrollBarModel As Object

Dim ScrollValue As Long, ScrollValueMax As Long

Dim VisibleSize As Long

Dim Factor As Double

Static bInit As Boolean

Static PositionX0 As Long

Static Offset As Long

REM get the model of the label control

oLabelModel = oDialog.Model.Label1

REM on initialization remember the position of the label control and calculate offset

If bInit = False Then

bInit = True

PositionX0 = oLabelModel.PositionX

OffSet = PositionX0 + oLabelModel.Width – (oDialog.Model.Width – Border)

End If

REM get the model of the scroll bar control

oScrollBarModel = oDialog.Model.ScrollBar1

REM get the actual scroll value

ScrollValue = oScrollBarModel.ScrollValue

REM calculate and set new position of the label control

ScrollValueMax = oScrollBarModel.ScrollValueMax

VisibleSize = oScrollBarModel.VisibleSize

Factor = Offset / (ScrollValueMax – VisibleSize)

oLabelModel.PositionX = PositionX0 – Factor * ScrollValue

End Sub

என்றவாறான கட்டளைவரிகளின் வாயிலாக அதனை கட்டுபடுத்தவதற்கான சரிசெய்திடும் கைப்பிடி(AdjustmentHandler) என்பதையும்

Sub ProgressBarDemo()

Dim oProgressBar as Object, oProgressBarModel As Object, oDialog as Object

Dim ProgressValue As Long

REM Dialog1 contains progress bar ProgressBar1 saved in standard library

DialogLibraries.loadLibrary(“Standard”)

oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)

REM progress bar settings

Const ProgressValueMin = 0

Const ProgressValueMax = 40

Const ProgressStep = 4

REM set minimum and maximum progress value

oProgressBarModel = oDialog.getModel().getByName( “ProgressBar1” )

oProgressBarModel.setPropertyValue( “ProgressValueMin”, ProgressValueMin)

oProgressBarModel.setPropertyValue( “ProgressValueMax”, ProgressValueMax)

REM show progress bar

oDialog.setVisible( True )

REM increase progress value every second

For ProgressValue = ProgressValueMin To ProgressValueMax Step ProgressStep

oProgressBarModel.setPropertyValue( “ProgressValue”, ProgressValue )

Wait 1000

Next ProgressValue

End Sub

என்றவாறான கட்டளைவரிகளின் வாயிலாக நடைபெறும் பணியின் தற்போதைய நிலையை அறிந்து கொள்வதற்கான (Progress Bar)என்பதை  உள்ளிணைக்க முடியும்

ஓப்பன் ஆஃபிஸ் பேஸிக்-103

பொதுவாக பெரும்பாலான செயலிகளின் வாயிலாக ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக்குடன்ஒத்தியங்குக்கின்றது. அவைகளுள் ஒருசில பின்வருமாறு

திரையின் உள்ளீட்டு வெளியீட்டு செயலிகள்

ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது அறிக்கைகளின் மூலமாகவும் செயலிகளின் மூலமாகவும் திரையில் தகவல்களை பிரதிபலிக்கசெய்தல்  பயனாளரிடமிருந்து தகவல்களை பெறுதல் ஆகிய செயல்களை செய்கின்றது  உதாரணமாக அச்சிடும்பணிக்கான செய்திகளை திரையில் பிரதிபலிக்கசெய்து பயனாளரிடமிருந்து பெறும் கட்டளைகளுக்கு ஏற்ப செயல்படுதல், செய்தி பெட்டியை (MsgBox)  பிரதிபலிக்கசெய்து  OK, Cancel, Yes ,No ஆகிய  பொத்தான்களை பயனாளர்கள் தெரிவுசெய்து சொடுக்குவதற்கேற்ப செயல்படுதல் , அவ்வாறே உள்ளீட்டு  பெட்டியை (InputBox )பிரதிபலிக்கசெய்து பயனாளர்கள் தெரிவுசெய்வதற்கேற்ப செயல்படுதல் ஆகிய செயல்கள் விசுவல் பேசிக்கின் செயலிகளுடன்  ஓப்பன் ஆஃபிஸ் பேஸிக்கின் செயலிகளும் ஒத்தியங்குமாறு செய்யபட்டுள்ளன

கோப்புகளின் உள்ளீட்டு வெளியீட்டு செயலிகள்

குறிப்பிட்ட இயக்கமுறைமையில்தான்  இயங்கமுடியும் என்ற கட்டுப்பாடு எதுவுமில்லாமல் விசுவல் பேஸிக் போன்றே ஓப்பன் ஆஃபிஸ் பேஸிக்கும்  Function Read Directories( ) ,Sub SaveDataToFile( ) ,Function LoadDataFromFile( ) , Function CreateFolder( ) என்பன போன்ற கோப்புகளை கையாளும் உள்ளீட்டு வெளியீட்டு செயல்களை மிக எளிதாக செயல்படுத்துகின்றது

அதுமட்டுமல்லாது  copy, move , remove  files  folders, openFileRead(), openFileWrite(), openFileReadWrite()) என்பன போன்ற கோப்புகளை கையாளும் உள்ளீட்டு வெளியீட்டு செயல்களையும் மிக எளிதாகசெயல்படுத்துகின்றது

 

நாளிற்கும் நேரத்திற்குமான செயலிகள்

DateSerial, DateValue, Day, Month, WeekDay, Year, Hour, Now, Second, TimeSerial, TimeValue, Date, Time, and Timer என்பன போன்ற  நாளிற்கும் நேரத்திற்குமான செயலிகளை விசுவல் பேஸிக் போன்றே ஓப்பன் ஆஃபிஸ் பேஸிக்கும்   செயல் படுத்துகின்றது

எண் செயலிகள்

Cos,Sin ,Tan,Atn ,Exp,Log,Sqr,Abs,Sgn  என்பன போன்ற   முக்கோணவியல் செயலிகளையும், எண்களின் செயலிகளையும்  ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக் போன்றே செயல்படுத்துகின்றது

 

எழுத்துகளின் செயலிகள்

 

மேலும் பின்வரும் எழுத்துகளை கையாளும் செயலிகளையும்  ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக் போன்றே செயல்படுத்துகின்றது Asc ,Chr ,Str,LCase ,UCase ,Left returns,Mid returns ,Right returns, Trim

இயக்கநேர செயலிகள்

அதுமட்டுமின்றி CreateUnoListener, CreateUnoService, GetProcessServiceManager, HasUnoInterfaces, IsUnoStruct, EqualUnoObjects என்பன பேன்ற இயக்கநேர செயலிகளையும் விசுவல் பேஸிக் போன்று ஓப்பன் ஆஃபிஸ் பேஸிக்கும் செயல்படுத்து கின்றது .

கட்டளை செயலிக்கான உதாரணம்

மேலும் MsgBox StarDesktop.Dbg_SupportedInterfaces  என்ற ஓப்பன் ஆஃபிஸ் பேஸிக்கின் கட்டளை செயலியானது

Dim oDesktop

oDesktop = CreateUnoService( “com.sun.star.frame.Desktop” )

MsgBox oDesktop.Dbg_SupportedInterfaces

என்ற விசுவல் பேஸிக்கின்  கட்டளை செயலியை போன்று செய்தி பெட்டியை திரையில் பிரதிபலிக்கசெய்கின்றது

அலுவலக பயன்பாடுகளை கையாளுதல்

அதுமட்டுமின்றி  com.sun.star.text.XTextDocument., com.sun.star.sheet.Spreadsheet DocumentSettings , com.sun.star.drawing.DrawingDocument.,

என்பன போன்ற  சேவைகளின் மூலமாக அலுவலக பயன்பாடுகளின் செயல்களையும் ஓப்பன் ஆஃபிஸ் பேஸிக் கையாளுகின்றது

ஓப்பன் ஆஃபிஸ் பேஸிக்-102

பேஸிக்கின் ஒருங்கfணைந்த சாளரமானது(IDE window)மூலக்குறிமுறைகளின் தகவமைகளில் உள்ள பிழைகளை சரிசெய்து நீக்கம் செய்திடும் பதிப்பு (Basic Source Editor and Debugger)நிலையிலும்,உரையாடல் பெட்டியின் பதிப்பு திரை (Dialog Editor ) நிலையிலும் உள்ளது ஆயினும் இவ்விரண்டு நிலையையும் ஒரேசமயத்தில் திரையில் பிரதிபலிக்காது. இந்த மூலக்குறிமுறைகளின் தகவமைகளில் உள்ள பிழைகளை சரிசெய்து நீக்கம் செய்திடும் பதிப்பு நிலையை(Basic Source Editor and Debugger)எனும் முதல்நிலையை திரையில் கொண்டுவருவதற்கு மேலே கட்டளைபட்டையிலுள்ள Tools=> Macros=> Organize Macros=> OpenOffice.org=>என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக இரண்டாவது நிலையை திரையில் பிரதிபலிக்கசெய்ய OpenOffice.org Basic Macro Organizerஎன்ற உரையாடல் பெட்டியில் Editஎன்ற பொத்தானை தெரிவுசெய்து சொடுக்குக இந்த இரண்டாவது நிலையின் திரையில் குறிப்பிட்ட உருவை கருவிகளின் உதவியால் வரைந்து உருவாக்கிடும் போது அதற்கான பண்பியல்களை வரையரை செய்யவேண்டும் அதற்காக கருவிபட்டியில் உள்ள Propertiesஎன்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் Propertiesஎன்ற உரையாடல் பெட்டி General, Eventsஆகிய இரு தாவிகளின் திரையுடன்தோன்றிடும்

102.1

102.1

அவ்விரு தாவிகளின் திரையில் தேவையான பண்பியல்புகளை வரையறை செய்துகொள்க

பிறகு மேலே கட்டளைபட்டையிலுள்ள Tools=> Customize=> என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக அல்லது மேக்ரோ எனும் உரையாடல் பெட்டியில் Assignஎன்ற பொத்தானை தெரிவுசெய்து சொடுக்குக

102.2

102.2

உடன் Customize என்ற உரையாடல் பெட்டி menus என்ற தாவியின் திரையுடன் தோன்றிடும் அதில் தேவையானவாறு புதிய கட்டளைகளை சேர்த்தல் மாறுதல் செய்தல் மறுஅமைவு செய்தல் ஆகிய பணிகளை அதனதன் பொத்தான்களை தெரிவுசெய்து சொடுக்கி செயல்படுத்தி கொள்க

102.3

102.3

நாம் உருவாக்கிடும் புதிய மேக்ரோவின்மூலம் பிரதிபலிக்கும் உரையாடல் பெட்டியின் திரையானது நம்முடைய சொந்த மொழியில் இருந்தால் நன்றாக இருக்கும் என எண்ணிடுவோம் அந்நிலையில் கருவிபட்டியின் மேலே வலதுபுற மூலையில் உள்ள Manage Language என்ற பொத்தானை தெரிவுசெய்த சொடுக்குக உடன் Manage User Interface Languages என்ற உரையாடல் பெட்டி தோன்றிடும் அதில் Add என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் விரியும் Set Default User Interface Language என்ற உரையாடல் பெட்டி திரையில் விரியும் அதில் Tamil என்றவாறு நாம் விரும்பிடும் ஏதேனுமொருமொழியை தெரிவுசெய்து கொண்டு OK என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக Manage User Interface Languages என்ற உரையாடல் பெட்டியில் close என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி இந்த உரையாடல் பெட்டியை மூடிவிடுக. இந்த தொடரில் நாம் உருவாக்கிய பொத்தான் அல்லது உரையாடல் பெட்டிக்கான செயலை ஒதுக்கீடு செய்தல் அதற்கான மொழியை நமக்கு தெரிந்த மொழியை ஒதுக்கீடு செய்தல் ஆகியவற்றை பார்த்து வந்தோம் வரும் தொடரில் ஓப்பன் ஆபிஸினுடைய பேஸிக்கின் திறன் அதனுடைய பயன்பாடு ஆகியவற்றை காண்போம்

ஓப்பன் ஆஃபிஸ் பேஸிக்-101-தொடர்

ஓப்பன் ஆஃபிஸின் திரையின் மேல் பகுதியின் கட்டளை பட்டியிலுள்ள Tools=> => Macros=> Organize Macros =>OpenOffice.org Basic=>  என்றவாறு கட்டளைகளை செயற்படுத்துக உடன் Open Office Basic.Macros என்ற உரையாடல் பெட்டியொன்று திரையில் தோன்றிடும்

101.1

இந்த உரையாடல் பெட்டியிலுள்ள பொத்தான்களில்  Run என்ற பொத்தானை கொண்டு நடப்பு மேக்ரோவிலுள்ள நிகழ்வுகளையும் துனை நிகழ்வுகளையும்  இயக்குதல்( Run Macros), Close என்ற பொத்தானை கொண்டு  இந்த மேக்ரோவை உருவாக்கிடும் உரையாடல் பெட்டியை மூடுதல்(Close), New என்ற பொத்தானை கொண்டு புதிய மேக்ரோவை உருவாக்குதல்(Create Macros), Assign என்ற பொத்தானை கொண்டு குறிப்பிட்ட நிகழ்விற்கு தேவையான மேக்ரோவை ஒதுக்கீடு செய்தல் (Assign Macros),  Edit என்ற பொத்தானை கொண்டு ஏற்கனவே உருவாக்கிய மேக்ரோவை பதிப்பித்தல்(Edit macros) , Delete என்ற பொத்தானை கொண்டு தேவையற்ற மேக்ரோவை நீக்கம்செய்தல் (Delete Macros), , ஆகிய செயல்களையும்  ,தொடர்புடைய  பேஸிக் உரையாடல் நூலகங்களையும் கையாளமுடியும்

Organizer . என்ற பொத்தானை கொண்டு OpenOffice.org Basic Macro Organizer என்ற மற்றொரு உரையாடல் பெட்டியை Modules என்ற  தாவியின் திரையுடன்  திரையில் தோன்றசெய்யமுடியும்

101.2

இந்த OpenOffice.org Basic Macro Organizer என்ற உரையாடல் பெட்டியிலுள்ள பொத்தான்களில்  Edit என்ற பொத்தானை கொண்டு ஏற்கனவே உருவாக்கிய தகவமைவுகளை பதிப்பித்தல்(Edit Modules), Close என்ற பொத்தானை கொண்டு  இந்த தகவமைவுகளை உருவாக்கிடும் உரையாடல் பெட்டியை மூடுதல்(Close Modules), New என்ற பொத்தானை கொண்டு புதிய தகவமைவுகளை உருவாக்குதல்(Create Modules), , Delete என்ற பொத்தானை கொண்டு தேவையற்ற தகவமைவுகளை நீக்கம்செய்தல் (Delete Modules), , ஆகிய செயல்களை கையாளமுடியும்.

101.3

அதற்கு பதிலாக  ஓப்பன் ஆஃபிஸின் திரையின் மேல் பகுதியின் கட்டளை பட்டியிலுள்ள Tools=>  Macros=> Organize  Dialogs =>  என்றவாறு கட்டளைகளை செயற்படுத்தி இதே OpenOffice.org Basic Macro Organizer என்ற உரையாடல் பெட்டியை ஆனால் Dialogsஎன்ற தாவியின் திரையுடன் திரையில் தோன்றிட செய்யமுடியும்

இந்த திரையில் மேலே கூறியவாறு உருவாக்கியதை பதிப்பித்தல்,திரையில் தோன்றி யிருப்பதை மூடுதல், புதியதை உருவாக்குதல்,தேவையற்றதை நீக்கம் செய்தல்  ஆகிய செயல்களை கையாளமுடியும்.

101.4

இதே  OpenOffice.org Basic Macro Organizer என்ற உரையாடல் பெட்டியிலுள்ள Libraries என்ற தாவியின் திரையை திரையில் தோன்றசெய்க. இதில் வழக்கமான நூலகங்கள் கருப்பு வண்ணத்திலும் , படிக்கமட்டும் என்பவை சாம்பல் வண்ணத்திலும்  கடவுச்சொற்களுடன் இணைப்பில் உள்ளவை திறவுகோள் உருவுடனும் தோன்றிடும் மேலும் தொடர்புடைய நூலகமானது தற்போது இருக்கும் இடத்தின் இணைப்பு முகவரியுடன் இவை பிரதிபலிக்கும்

இந்த OpenOffice.org Basic Macro Organizer என்ற உரையாடல் பெட்டியின் Libraries என்ற தாவியின் திரையிலுள்ள பொத்தான்கள் பின்வருமாறு

Edit என்ற பொத்தானை கொண்டு ஏற்கனவே உருவாக்கிய நூலகங்களை பதிப்பித்தல்(Edit Libraries), Close என்ற பொத்தானை கொண்டு  இந்த நூலகங்களை உருவாக்கிடும் உரையாடல் பெட்டியை மூடுதல்(Close Libraries), New என்ற பொத்தானை கொண்டு புதியநூலகங்களை உருவாக்குதல்(Create Libraries), , Delete என்ற பொத்தானை கொண்டு தேவையற்ற நூலகங்ககளை நீக்கம்செய்தல் (Delete Libraries),  ஆகிய செயல்களை கையாளமுடியும்.

அதுமட்டுமின்றி கூடுதலாக Password என்ற பொத்தானை கொண்டு குறிப்பிட்ட நூலகத்திற்கு உள்நுழைவு செய்வதற்கான  கடவுச்சொற்கள் மறந்து விட்டதெனில் இந்த பொத்தானை அழுத்தியவுடன்  தோன்றிடும்  change password என்ற சிறு உரையாடல் பெட்டியில் தேவையான வாறு  கடவுச்சொற்களை மாற்றியமைத்து கொண்டு ok என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி சேமித்தபின் குறிப்பிட்ட கடவுசொற்களை கொண்டு மட்டுமே குறிப்பிட்ட நூலகத்திற்குஉள்நுழைவுசெய்யமுடியும்

101.5

மேலும் import என்ற பொத்தானை கொண்டு கூடுதலான நூலக்கங்களை பதிவிறக்கம் செய்துகொள்ளமுடியும்  நாம் உருவாக்கிய நூலகங்களை வேறு நிகழ்விற்கு பயன்படுத்தி கொள்வதற்காக Export என்ற பொத்தான் பயன்படுகின்றது   அதற்காக தேவையான நூலகத்தை உருவாக்கிய பின் இந்த  Export என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக   உடன் விரியும் Export Basic Library  என்ற  சிறு உரையாடல் பெட்டியில் Export as extension, Export as Basic library  ஆகிய இருவாய்ப்புகளில்  ஒன்றை தெரிவுசெய்து கொண்டு Ok  என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி சேமித்துகொள்க

101.6

ஓப்பன் ஆஃபிஸ்பேஸிக்-100

முந்தைய தொடரில் கூறியவாறு  தோன்றிடும் காலியான வரைகலை பதிப்பு திரையின் இடதுபுறமுள்ள கருவிகளின் பட்டியலிலிருந்துControlsஎன்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்கி ஒரு கட்டுபாட்டு பெட்டியை உருவாக்கிஅதற்கு internet graphic wizard என்றவாறு ஒரு பெயரிட்டிடுக. அவ்வாறே திரையின் இடதுபுறமுள்ள கருவிகளின் பட்டியலிலிருந்துlabelஎன்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்கி ஒரு கட்டுபாட்டு பெட்டியை உருவாக்கிஅதற்கு Select graphic no என்றவாறு ஒரு பெயரிட்டிடுக

பின்னர் அதே கருவி பட்டியில் உள்ள  File Selectionஎன்றவாறு உள்ள உருவ பொத்தானை தெரிவுசெய்து பிடித்து கொண்டு முதலில் நீளம் அகலம்  எவ்வளவு இருக்கவேண்டும் என தீர்மாணித்துகொண்டு அதன்பின்னர் ஒரு செவ்வக தேடிடும் பெட்டியை(browse) வரைந்திடுக .பிறகு பண்பியல்பு(properties) எனும் உருவபொத்தானை தெரிவுசெய்து சொடுக்குக  உடன் பண்பியல்பு(properties) எனும் உரையாடல் பெட்டி திரையில் தோன்றிடும்  அதில் இந்த உரையாடல் பெட்டிக்கு பெயராக  தேடிடும்பெட்டி(browse) என்றும்  இதர பண்பியல்புகளையும் அமைத்துகொண்டு Ok என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக பின்னர் திரையின் இடதுபுறமுள்ள கருவிகளின் பட்டியலிலிருந்து பொத்தான்(button)  என்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்கி << Back ,Next>>, Finish, Cancel ஆகிய பொத்தான்களையும் மேலே கூறியவாறு அதனதன் பண்பியல்பு உரையாடல்  பெட்டியையும் (படம்-100-1) தோன்றசெய்து இவைகளுக்கான பெயரையும் இதர பண்பியல்புகளையும் அமைத்துகொள்க

100.1

படம்-100-1

இவ்வாறு இந்த பொத்தான்களையும் பெட்டிகளையும் உருவாக்கிடும்போது திரையானது வடிவமைப்பு நிலைக்கு மாறியமையும் அந்நிலையில்   கருவிகளின் பட்டியலிலிருந்துActivate Test Mode என்றவாறு உள்ள உருவ பொத்தானை தெரிவுசெய்து பிடித்து கொண்டு ஒவ்வொன்றையும் செயல்படுகின்றதாவென பரிசோதித்து (test)சரிபார்த்து கொள்க. உண்மையில் இந்த பொத்தான்கள் நாம் உருவாக்கிடும் உரையாடல் பெட்டியில்  செயல்படுமாறு செய்திடவேண்டும் அதற்காக ஒவ்வொரு பொத்தானையும் செயல்படுத்துவதற்குநாம் உருவாக்கிய Module1என்பதை அதற்கான தாவியின் திரையை தோன்ற செய்து பின்வரும் கட்டளைவரிகளை  தவறில்லாமல் உள்ளீடு செய்து இணைத்திடுக

Private oDialog as Variant ‘ private, module-wide variable

Sub RunGraphicsWizard

oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)

oDialog.execute

End Sub

Sub CancelGraphicsDialog

oDialog.endExecute()

End Sub

Sub FinishGraphicsDialog

Dim sFile as String, sGraphicURL as String

oDialog.endExecute()

sFile = oDialog.Model.FileControl1.Text

‘ the FileControl contains a system path, we have to transform it to a file URL

‘ We use the built-in Basic runtime function ConvertToURL for this purpose

sGraphicURL = ConvertToURL(sFile)

‘ insert the graphics

‘ access the document model

oDoc = ThisComponent

‘ get the Text service of the document

oText = oDoc.getText()

‘ create an instance of a graphic object using the document service factory

oGraphicObject = oDoc.createInstance(“com.sun.star.text.GraphicObject”)

‘ set the URL of the graphic

oGraphicObject.GraphicURL = sGraphicURL

‘ get the current cursor position in the GUI and create a text cursor from it

oViewCursor = oDoc.getCurrentController().getViewCursor()

oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

‘ insert the graphical object at the cursor position

oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)

End Sub

Sub Main

End Sub

உதாரணமாக நாம் உருவாக்கிடும்internet graphic wizard  என்ற உரையாடல் பெட்டியிலுள்ள Cancel எனும் பொத்தானை தெரிவுசெய்து கொண்டு  இதற்கான பண்பியல்பு(properties) எனும் உரையாடல் பெட்டி திரையில் தோன்றசெய்க அதில்Event  என்ற தாவியின் திரையை தோன்றிட செய்க இதில் when initiating  எனஅபதற்கருகில் உள்ள முப்புள்ளியை தெரிவுசெய்து சொடுக்குக

100.2

படம்-100-2

உடன்Assign Action என்ற  மற்றொரு உரையாடல் பெட்டி தோன்றிடும் இதில் Macro  எனும் பொத்தானை தெரிவுசெய்து சொடுக்கியவுடன்  Macro Selector   என்ற  மற்றொரு உரையாடல் பெட்டி(படம்-100-2) தோன்றிடும் இந்த உரையாடல் பெட்டியில் FirstStepsBasic.Standard.Module1, என்பதை தேடிபிடித்திடுக  Sub CancelGraphicsDialog என்பதை தெரிவுசெய்து கொண்டுokஎன்ற பொத்தானை தெரிவுசெய்து சொடுக்குக அவ்வாறே Assign Action என்ற  உரையாடல் பெட்டியிலுள்ள  okஎன்ற பொத்தானையும்  தெரிவுசெய்து சொடுக்குக  உடன் நாம் உருவாக்கிடும் internet graphic wizard  என்ற உரையாடல் பெட்டியிலுள்ள Cancel எனும் பொத்தானை செயல்படுத்திடுவதற்கான கட்டளைவரி இணைக்கபட்டுவிடும்

பிறகு திரையின் இடதுபுறமுள்ள கருவிகளின் பட்டியலிலிருந்துRunஎன்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்கி நாம் உருவாக்கிடும் internet graphic wizard  என்ற உரையாடல் பெட்டியிலுள்ள Finish,Cancel ஆகிய  பொத்தான்கள் உண்மையில் செயல்படுகின்றதாவென சரிபார்த்திடுக. இப்போது நாம் உருவாக்கிடும் உரையாடல் பெட்டியின் செயலை வரிசை படுத்திடுதற்கானAutoPilotஎன்ற இரு பக்கமுடைய உரையாடல் பெட்டியில் அமைப்பதற்கானஇறுதி நிலைக்கு வந்திருக்கின்றோம்

100.3

படம்-100-3

முதலில்Control  என்ற விசையை அழுத்தி பிடித்துகொண்டுfile control  என்பதை தெரிவுசெய்து கொண்டு properties என்ற உரையாடல் பெட்டியில்  page(step) என்ற  பண்பியல்பை 1 என அமைத்து கொண்டு உள்ளீட்டு விசையை தெரிவுசெய்து சொடுக்குக  பின்னர் நாம் உருவாக்கிடும் உரையாடல் பெட்டியின் விளிம்பை தெரிவுசெய்து பிடித்துகொண்டு properties என்ற உரையாடல் பெட்டியில்page(step)என்ற  பண்பியல்பை 2  என அமைத்து கொண்டு உள்ளீட்டு விசையை தெரிவுசெய்து சொடுக்குக இப்போது நாம் உருவாக்கிய Anchor என்ற தலைப்பில்at paragraph at character ஆகிய பொத்தான்கள்(படம்-100-3) மட்டும் தெரியும் at aragraph என்பது இயல்பு நிலையில் தெரிவுசெய்து இருந்திடுமாறும் தேவையென தெரிவுசெய்தால் மட்டும் at character  எனும் பொத்தான் தெரிவுசெய்திடுமாறும் பண்பியல்பு பெட்டிஉரையால் பெட்டியில் page(step)என்ற  பண்பியல்பை 2  என அமைத்து கொண்டு உள்ளீட்டு விசையை தெரிவுசெய்து சொடுக்குக  page(step) என்ற  பண்பியல்பை 1  என அமைத்து முந்தைய தொடக்கநிலைக்கு சென்றிடுமாறு அமைத்துகொள்க

நாம் உருவாக்கிடும்internet graphic wizard  என்ற உரையாடல் பெட்டியிலுள்ள << Back ,Next>>, ஆகிய பொத்தான்களுக்கும் page(step) என்பதை அமைத்திட இந்த AutoPilotஎன்ற இருபக்கஉரையாடல்  பெட்டியை விரிவு படுத்தி பின்வரும் கட்டளைவரிகளை தவறில்லாமல் உள்ளீடு செய்திடுக

Sub BackGraphicsDialog

oDialog.Model.Step = 1

oDialog.Model.Back.Enabled = false

oDialog.Model.Next.Enabled = true

End Sub

Sub NextGraphicsDialog

oDialog.Model.Step = 2

oDialog.Model.Back.Enabled = true

oDialog.Model.Next.Enabled = false

End Sub

Sub FinishGraphicsDialog

Dim sGraphicURL as String, iAnchor as Long

oDialog.endExecute()

sFile = oDialog.Model.FileControl1.Text

‘ State = Selected corresponds to 1 in the API

if oDialog.Model.AsCharacter.State = 1 then

iAnchor = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

elseif oDialog.Model.AtParagraph.State = 1 then

iAnchor = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH

endif

‘ the File Selection control returns a system path, we have to transform it to a File URL

‘ We use the built-in Basic runtime function ConvertToURL for this purpose

sGraphicURL = ConvertToURL(sFile)

‘ access the document model

oDoc = ThisComponent

‘ get the Text service of the document

oText = oDoc.getText()

‘ create an instance of a graphic object using the document service factory

oGraphicObject = oDoc.createInstance(“com.sun.star.text.GraphicObject”)

‘ set the URL of the graphic

oGraphicObject.GraphicURL = sGraphicURL

oGraphicObject.AnchorType = iAnchor

‘ get the current cursor position in the GUI and create a text cursor from it

oViewCursor = oDoc.getCurrentController().getViewCursor()

oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

‘ insert the graphical object at the beginning of the text

oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)

End Sub

ஓப்பன் ஆஃபிஸ்பேஸிக்-99-

  முந்தைய தொடர்களில் ஓப்பன் ஆஃபிஸ்பேஸிக்கில் கட்டளை தொடர் எழுதுவதற்கு முதற்படியாக அதற்கான திரையை எவ்வாறு தோன்றசெய்வது என தெரிந்து கொள்வுதற்குமுன் நேரடியாக கட்டளை தொடர் எழுதுவதற்கான இலக்கணத்தை காண ஆரம்பித்துவிட்டோம் நிற்க முதலில் ஓப்பன் ஆஃபிஸ்பேஸிக்கின் கட்டளை தொடர் எழுதுவதற்கான திரையை எவ்வாறு தோன்றசெய்வது என கண்டபின் அதனை தொடரலாம் அதற்காக ஓப்பன் ஆஃபிஸ் திரையின் மேல்பகுதியிலுள்ள Tools= > Macros => Organize Dialog= > OpenOffice.org Basic=> என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக

 99.1

படம்-99-1

உடன் OpenOffice.org Basic Macro organizer என்ற உரையாடல் பெட்டி (படம்-99-1)திரையில் தோன்றிடும் அதில் Dialog என்ற பகுதியில் my Dialog என்பதன்கீழ்உள்ள standard என்பதை தெரிவுசெய்துகொண்டு வலதுபுறமுள்ள new என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் new Dialog என்ற சிறு உரையாடல் பெட்டிதோன்றிடும் அதில் Name என்பதில் step by step macro1 என்றவாறு இந்த மேக்ரோவிற்கு ஒரு பெயரினை தட்டச்சு செய்துகொண்டு ok என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக

பின்னர் இந்த OpenOffice.org Basic Macro organizer என்ற உரையாடல் பெட்டியில் close என்ற பொத்தனை தெரிவுசெய்து சொடுக்கி மூடிடுக அதன்பின்னர் இதில் மீண்டும் கட்டளை தொடர் எழுதுவதற்காக திரையின் மேலே கட்டளைபட்டையிலுள்ள Tools => Macros = > Organize Macros= > OpenOffice.org Basic =>என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக உடன் OpenOffice.org Basic Macro என்ற உரையாடல் பெட்டி(படம்-99-2) திரையில் தோன்றிடும்

99.2

படம்-99-2

இதில் Macro fromஎன்ற பகுதியில் பொதுவாக My Macrosஎன்ற பகுதியிலிருந்து இதன் மூலக்குறிமுறைகள் தேக்கி வைக்கப்பட்டு வருவதாக காண்பிக்கும் இதற்கான நூலகமாக Standardஎன்பது இருக்கும் அதனை தெரிவுசெய்து கொண்டு இந்த உரையாடல் பெட்டியின் வலதுபுறமுள்ள new என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் My Macros& Dialog .Standard-Open Office Basic என்ற உரையால் பெட்டி Module1 என்ற பெயருடன் நாம் ஓப்பன் ஆஃபிஸ்பேஸிக்கில் கட்டளை தொடர் எழுதுவதற்காக திரையில் தோன்றிடும்

இவ்வாறு புதியதை தோன்றசெய்வதற்கு பதிலாக ஏற்கனவே பெயரிட்டு உருவாக்கி இருக்கும் மேக்ரோவில் திருத்தம் செய்வது எனில் நாம் திருத்தம் செய்ய விரும்பும் கோப்பினை தெரிவுசெய்துகொண்டு இந்த penOffice.org Basic Macro என்ற உரையாடல் பெட்டியில் உள்ள edit என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக

 99.3

படம்-99-3

பின்னர் பின்வரும் குறிமுறை வரிகளை தவறில்லாமல் தட்டச்சு செய்திடுக .

Sub Main

‘ ask the user for a graphics file

sGraphicUrl = InputBox(“Please enter the URL of a graphic file”, _

“Import Graphics”, _

“file:///”)

if sGraphicURL = “” then ‘ User clicked Cancel

exit sub

endif

‘ access the document model

oDoc = ThisComponent

‘ get the Text service of the document

oText = oDoc.getText()

‘ create an instance of a graphic object using the document service factory

oGraphicObject = oDoc.createInstance(“com.sun.star.text.GraphicObject”)

‘ set the URL of the graphic

oGraphicObject.GraphicURL = sGraphicURL

‘ get the current cursor position in the GUI and create a text cursor from it

oViewCursor = oDoc.getCurrentController().getViewCursor()

oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

‘ insert the graphical object at the cursor position

oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)

End Sub

அதன்பின் இவை படம்99-3இல் உள்ளவாறு இருக்கும் பிறகு கருவி பட்டையிலுள்ள Run Basic என்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் இந்த குறிமுறைகள் சரிபார்க்கபட்டுகுறிப்பிட்ட குறிமுறைவரியில் பிழை ஏதேனுமிருந்தால் அதனை இருப்பதாக சுட்டிகாட்டி இடம்சுட்டி நிற்கும். Enable watch என்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் அவ்வாறு பிழை உள்ளவரிமட்டும் கூர்ந்து கவணிக்கபடும் step into, step out, step over ஆகிய உருவ பொத்தான்களை தெரிவுசெய்து சொடுக்கி ஒவ்வொரு வரியாக பிழை ஏதேனுமிருக்கின்றதாவென சரிபார்த்து அனைத்தும் சரியாக இருக்கின்றது பிழையேதும் இல்லையெனில் save basic என்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்கி இந்த குறிமுறைகட்டளை வரிகளை சேமித்து கொள்க பின்னர் compile என்ற உருவ பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் இந்த குறிமுறைவரிகள் இயந்திரமொழியாக உருமாற்றம் ஆகிவிடும்

இந்த எடுத்துகாட்டில் கட்டளைவரியானது பயனாளியை வரைகலை கோப்பு எங்குள்ளது நடப்பு ஆவணத்தின் சுட்டியின் இடத்தை அவ்விடத்தில் உள்ளிணைத்திடுமாறு கோருகின்றது பிறகு தானியங்கியாக வரைகலையை உள்ளிணைக்குமாறு செய்கின்றது

 99.4

படம்-99-4

OpenOffice.org Basic Macro என்ற உரையாடல் பெட்டி(படம்-99-2)யில் assign என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக அல்லது திரையின் மேல்பகுதியிலுள்ள Tools => Customize=> என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக உடன் விரியும் உரையாடல் பெட்டியில் Toolbars என்ற தாவியின் பொத்தானை தெரிவுசெய்து சொடுக்குக பின்னர் இதில் Add என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக அதன் பின்னர் விரியும் add commandsஎன்ற உரையாடல் பெட்டியில் Category என்பதன்கீழ் OpenOffice.org Macrosஎன்ற மையமுனையையும் அதன் கீழுள்ள Module1என்பதையும் தெரிவுசெய்து சொடுக்கியவுடன் வலதுபுறம் mainஎன்பது தானாகவே உருவாகும் உடன் add என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக

பேஸிக்கின் ஒருங்கிணைந்தமேம்படுத்தும் சூழலில் கீழ்பகுதியில் module1 என்பதன் மீது இடம்சுட்டியை வைத்து சுட்டியின் வலதுபுற பொத்தானை தெரிவுசெய்து சொடுக்கு உடன் விரியும் சிறு பட்டியலில் திரையின் மேல்பகுதியிலுள்ள Tools= > Macros => Organize Dialog= > OpenOffice.org Basic=> edit => என்றவாறு கட்டளைகளை தெரிவுசெய்து சொடுக்குக உடன் படம்-99-5 இல் உள்ளவாறு வரைகலை இடைமுகத்தில் திரைதோன்றிடும்

99.5

படம்-99-5

ஓப்பன் ஆஃபிஸ் பேஸிக்-98

 

கிளைபிரிதல்(branching)   ஒரு கட்டளைத்தொடரில் குறிப்பிட்ட நிபந்தனை நிறைவுபெறும்வரை அடுத்த செயல் நடைபெறாமல் கட்டுபடுத்திட இந்த கிளைபிரிதல் எனும் கருத்தமைவு பயன்படுகின்றது

1) If..Then..Else என்பது நிரல்தொடர் எழுதிடும் பெரும்பாலானவர்களால் தம்முடைய கட்டளைவரிகளில் பயன்படுத்திடும் ஒரு கிளைபிரிதல் கட்டளையாகும்

If A>3 Then B=2 Else B=0

என்றவாறு  ஒற்றைவரிக்குள் இந்த If..Then..Else எனும் கிளைபிரிதல் கட்டளையை குறிப்பிட முடியும்  இதில் Aஇன் மதிப்பு 3 இற்கு மேல் இருக்கும் வரை  Bஇன் மதிப்பு  2 இற்கு சமமாக இருக்கும். இல்லையெனில் Bஇன் மதிப்பு 0 ஆகும் .

 

2) Select …Case என்பது மற்றொரு கிளைபிரிதல் கட்டளையாகும்

 

Select Case Var

Case Var >8 And Var <11

‘…Var is 0

Case Else

‘ …all other instances

End Select

இந்த கட்டளைவரித்தொடரில் மாறியின் மதிப்பு  8 இற்கும் 11 இற்கும் இடையிலுள்ளவரை கூற்று உண்மையாகும் இல்லையெனில் அல்லது தவறெனில் அதாவது மாறியின் மதிப்பு 0 ஆகும் .

சுற்றுகள் (Loops) இந்த கட்டளையானது நாம் குறிப்பிடும் எண்ணிக்கைவரை திரும்ப திரும்ப  அதே இடத்தில் சுற்றிக்கொண்டே இருக்கும். ஒருசிலவற்றை கணக்கற்ற நிலையில் சுற்றிடுமாறு செய்திடுவார்கள்

1 For..Next எனும் கூற்று  குறிப்பிட்ட எண்ணிக்கைவரை சுற்றிக்கொண்டே இருக்கமாறு செய்கின்றது

Dim I

For I = 1 to 10  Step 1

If I = 5 Then

Exit For

End IF

‘…. Inner part of loop

Next I

இந்த நிரல் தொடரில் Iஇனுடைய மதிப்பு 1 முதல் 10  வரை ஒவ்வொன்றாக மதிப்பை கூட்டிக்கொண்டே 5 வரை சென்றிடுமாறும் 5 வந்தவுடன் வெளியேறுமாறும் இல்லையெனில் அடுத்த I இன் மதிப்பை கூட்டிகொண்டு சென்றிடுமாறு கட்டளை கொடுக்கபட்டுள்ளது

2    For ..Each  எனும் கூற்று ஆனது  For..Next எனும் கூற்று போன்று வெளிப்படையாக குறிப்பிட்ட எண்ணிக்கைவரை சுற்றிக்கொண்டே இருக்கமாறு செய்யாது ஆயினும் கட்டளையில் கொடுத்த அனைத்தையும் நிறைவேற்றும் வரை சுற்றிகொண்டே இருந்திடுமாறு செய்கின்றது

Const d1 -2

Const d2=3

Const d3=2

Dim 1

Dim a(d1,d2,d3)

For Each I In a()

‘…. Inner part of loop

Next I

இதில்  கொடுத்துள்ள அனைத்து  எண்ணிக்கையும் சேர்த்து 36 முறை சுற்றிடுமாறு செய்கின்றது

3 Do …Loop   எனும் கூற்று ஆனது குறிப்பிட்ட நிபந்தனை நிறைவேறும் வரை சுற்றிக்கொண்டே இருக்குமாறு செய்கின்றது

 

Do

‘….some international calculations

If A = 4 Then Exit Do

‘ … other instructions

Loop

இதில் Aஇன் மதிப்பு 4 ஆகும் வரை சுற்றிகொண்டிருக்குமாறும் 4ஆக மாறினால் வெளியேறிடுமாறும் செய்யபட்டுள்ளது

 

4 While ..Wend எனும் கூற்றில் Do While போன்று வெளியேறுவதற்கான கட்டளை இல்லை என்பதே இதனுடைய மிகமுக்கியமான குறைபாடாகும்

 

செயல்முறைகளும் செயலிகளும்(Procedures and Functions)

 

இவை ஒரு சிக்கலான மிகநீண்ட கட்டளை தொடர்வரிகளில் சிறு சிறு செயல்களை தனித்தனியாக பிரித்து செயல்படுத்திடுமாறு செய்கின்றன அதன்பின்முக்கிய தொடருக்கு அதன் முடிவை வழங்கிடுமாறு செய்திட பயன்படுகின்றன

இதில் செயல்முறைகளானது(Procedures) குறிப்பிட்ட செயலை வெளிப்படையாக அதனுடைய மதிப்பை குறிப்பிடாமலேயே செயல்படுமாறு செய்கின்றது

ஆனால் செயலிகளானது(Functions) குறிப்பிட்ட செயலிற்கான தொகுப்பாக  குறிப்பிட்ட செயலை வெளிப்படையாக அதனுடைய மதிப்பை குறிப்பிடச்செய்து செயல்படுமாறு செய்கின்றது

Sub Test

Dim ErrorOccured As Boolean

‘…..

If  ErrorOccured Then

Exit Sub

End If

‘…..

End Sub

இந்த கட்டளை தொடரில் பிழை உருவானால்  செயல்முறையிலிருந்தும் செயலியிலிருந்தும் வெளியேறுமாறு கட்டளையிடபட்டுள்ளது

மறுசுழற்சி (Recursion)  இந்த  மறுசுழற்சி (Recursion) எனும்  செயல்முறை அல்லது செயலியானது  அடிப்படை நிபந்தனை நிறைவேறும்வரை தனக்குதானே அழைத்துகொள்ளும் திறன்கொண்டது

 

 

 

Sub Main

Masgbox CalculateFactorial ( 42 ) ‘ Display 1,4050061175288vE+51

Masgbox CalculateFactorial ( -42 ) ‘ Display “ Invalid number for factorial !”

Masgbox CalculateFactorial ( 3.14 ) ‘ Display “ Invalid number for factorial !”

End Sub

Function   CalculateFactorial( Number)

If Number < 0 or Number <> Int ( Number) Then

CalculateFactorial = “ “ Invalid number for factorial !”

ElseIf Number = 0 Then

CalculateFactorial = 1

Else

‘ This is  the recursive call:

CalculateFactorial = Number *  CalculateFactorial ( Number  1)

EndIf

End function

இதில் 42 இற்கான பின்ன எண்ணை  CalculateFactorial  என்ற செயலியானது    1  வரும்வரை மறு சுழற்சி செய்யுமாறு பணிக்கின்றது

 

பிழைகளை கையாளுதல்(Error Handling) 

1.On Error எனும் கட்டளையானது பிழைஏதும  ஏற்பட்டால் பிழைகளை கையாளுபவரை அழைத்து சரிசெய்து கொள்ளும்படி கட்டளை இடுகின்றது.

2 Resume Next எனும் கட்டளையானது பிழை ஏற்பட்டால் அந்த பிழையை களைந்தபின் பழையபடி தொடர்ந்து செயல்படுமாறு செய்கின்றது

பொதுவாக நிரல் தொடர்முழுவதுமான செயலிற்கு On Error  Resume Next என்ற கட்டளைத்தொடர் பிழைகளை களைந்து தொடர்ந்து செயல்பட சிறந்ததாகும்

Previous Older Entries