Edukiak

# SFDialogs.DialogControl zerbitzua

DialogControl zerbitzuak Basic-en elkarrizketa-koadroen editorearekin definitutako elkarrizketa-koadro baten kontrolak kudeatzen ditu. Uneko zerbitzuaren instantzia bakoitzak elkarrizketa-koadro bateko kontrol bakun bat ordezkatzen du.

Fokua elkarrizketa-koadroko kontrolek bistaratzen dituzten balioak eskuratzen eta ezartzen ezarrita dago. Formatua atzitzeko, XControlModel and XControlView propietateak erabiltzen dira.

Ikusi nola DialogControl.Value propietatearen eduki bakarra aldatzen den kontrol motaren arabera.

Arreta berezia eskaini zaie zuhaitz-kontrol motako kontrolei. Erraza da zuhaitz bat betetzea, bai adarrez adar, bat adar sorta oso bat aldi berean. Zuhaitz-kontrol bat estatikoki zein dinamikoki bete daiteke.

SFDialogs.DialogControl zerbitzuak erlazio estua du SFDialogs.Dialog zerbitzuarekin.

## Zerbitzuari deitzea

DialogControl zerbitzua erabili baino lehen, ScriptForge liburutegia kargatu edo inportatu behar da:

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService

DialogControl zerbitzuari lehendik dagoen Dialog zerbitzu-instantzia batetik deitu behar zaio, Controls() metodoa erabilita. Elkarrizketa-koadroa SFDialogs.Dialog zerbitzuarekin hasi behar da.

          Dim myDialog As Object, myControl As Object
          Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
          Set myControl = myDialog.Controls("myTextBox")
          myControl.Value = "Elkarrizketa-koadroaren hasierako ordua: " & Now()
          myDialog.Execute()
          ' ... kontrolen uneko balioak prozesatzen ditu
          myDialog.Terminate()

         from time import localtime, strftime
         dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
         text = dlg.Controls('myTextBox')
         text.Value = "Elkarrizketa-koadroaren hasierako ordua: " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
         dlg.Execute()
         # ... kontrolen uneko balioak prozesatzen ditu
         dlg.Terminate()

## Kontrol-gertaera bat abiarazi duen DialogControl instantzia atzitzea

DialogControl zerbitzuaren instantziak SFDialogs.DialogEvent zerbitzuaren bidez eskuratu daitezke, betiere elkarrizketa-koadroa Dialog zerbitzuarekin hasieratu bada. Beheko adibidean, oControl aldagaiak kontrol-gertaera abiarazi duen DialogControl instantzia dauka.

          Sub aControlEventHandler(ByRef poEvent As Object)
              Dim oControl As Object
              Set oControl = CreateScriptService("SFDialogs.DialogEvent", poEvent)
              ' ...
          End Sub

Edo Python bidez:

         def control_event_handler(event: uno):
             oControl = CreateScriptService('SFDialogs.DialogEvent', event)
             # ...

Kontuan izan aurreko adibideetan "SFDialogs." aurrizkia ez dela derrigorrezkoa erabiltzea.

## Salbuespenak maneiatzea gertaera-maneiatzaileekin

Kontroleko gertaeretarako maneiatzaileak sortzean, praktika ona izan ohi da erroreak azpierrutinan bertan maneiatzea. Adibidez, demagun botoia sakatzen denean beheko gertaera-maneiatzaileari deitzen zaiola.

        Sub OnButtonClicked(ByRef oEvent As Object)
        On Local Error GoTo Catch
            Dim oControl As Object
            oControl = CreateScriptService("DialogEvent", oEvent)
            ' Prozesatu gertaera
            Exit Sub
        Catch:
            MsgBox SF_Exception.Description
            SF_Exception.Clear
        End Sub

Deitu SF_Exception.Clear funtzioari elkarrizketa-koadroaren exekuzioa amaitu ondoren errorea hedatu ez dadin nahi baduzu.

Python lengoaian, erabili jatorrizko try/except blokeak salbuespenak maneiatzeko, honela:

        def on_button_clicked(event=None):
            try:
                oControl = CreateScriptService("DialogEvent", event)
                # Prozesatu gertaera
            except Exception as e:
                # Beheko "bas" objektua Basic zerbitzuaren instantzia bat da
                bas.MsgBox(str(e))

## Kontrol motak

DialogControl zerbitzua honako kontrol motetarako dago erabilgarri:

• Button • CheckBox • ComboBox • CurrencyField • DateField • FileControl | • FixedLine • FixedText • FormattedField • GroupBox • Hyperlink • ImageControl | • ListBox • NumericField • PatternField • ProgressBar • RadioButton • ScrollBar | • TableControl • TextField • TimeField • TreeControl

## Propietateak

Izena | Irakurtzeko soilik | Mota | Honi aplikagarria: | Deskribapena
--- | --- | --- | --- | ---
Border | Yes | String | Button, … | The Border property refers to the surrounding of the control: 3D, FLAT or NONE.
Cancel | Ez | Boolean | Button | Komando-botoi batek 'Utzi' botoi baten portaera duen ala ez zehazten du.
Caption | Ez | String | Button, CheckBox, FixedLine, FixedText, GroupBox, Hyperlink, RadioButton | Kontrolari lotutako testua zehazten du.
ControlType | Bai | String | Dena | Goian zerrendatutako motetako bat.
CurrentNode | Ez | UNO objektua | TreeControl | Zuhaitz-kontrolean hautatutako goreneko uneko nodoa. Begiratu XmutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.
Default | Ez | Boolean | Button | Komando-botoi bat botoi lehenetsia ('Ados') den ala ez zehazten du.
Enabled | Ez | Boolean | Dena | Kontrola kurtsorearekin atzitu daitekeen ala ez zehazten du.
Format | Ez | String | DateField, TimeField, FormattedField (irakurtzeko soilik) | Datak eta orduak bistaratzeko formatua zehazten du. Kate hauetako bat izan behar du: Datetarako: "Standard (short)", "Standard (short YY)", "Standard (short YYYY)", "Standard (long)", "DD/MM/YY", "MM/DD/YY", "YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD". Orduetarako: "24h short", "24h long", "12h short", "12h long".
ListCount | Bai | Long | ComboBox, ListBox, TableControl | Zerrenda-koadro, konbinazio-koadro edo taula-kontrol baten errenkada kopurua zehazten du.
ListIndex | Ez | Long | ComboBox, ListBox, TableControl | Zerrenda-koadro, konbinazio-koadro edo taula-kontrol batean zein elementu dagoen hautatuta zehazten du.
Locked | Ez | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, TextField, TimeField | Kontrola irakurtzeko soilik den zehazten du.
MultiSelect | Ez | Boolean | ListBox | Erabiltzaileak zerrenda-koadro batean hautapen anitz egin ditzakeen zehazten du.
Name | Bai | String | Dena | Kontrolaren izena.
Page | Ez | Integer | Dena | Elkarrizketa-koadro batek orri bat baino gehiago izan dezake. Erabiltzaileak banan banan joan daiteke batetik bestera. Elkarrizketa-koadroaren objektuaren 'Page' propietateak koadroaren zein orri dagoen aktibo definitzen du. Kontrol baten 'Page' propietateak kontrola elkarrizketa-koadroko zein orritan egongo den ikusgai definitzen du.
Parent | Bai | Dialog zerbitzua | Dena | SFDialogs.Dialog klase-objektuaren instantzia gurasoa.
Picture | Ez | String | Button, ImageControl | Zehaztutako kontrolean bistaratuko den bit-mapa edo beste motaren bateko grafikoa duen fitxategi-izena zehazten du. Fitxategi-izenak ScriptForge.FileSystem zerbitzuaren FileNaming atributuarekin bat etorri behar du.
RootNode | Bai | UNO objektua | TreeControl | Erro-nodorik behekoena ordezkatzen duen objektu bat (normalean erro-nodo bakar bat dago). Begiratu XmutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.
RowSource | Ez | Array of strings | ComboBox, ListBox | Konbinazio-koadroan edo zerrenda-koadroan dauden datuak zehazten ditu.
TabIndex | Yes | Numeric | All | The TabIndex property specifies a control's place in the tab order in the dialog.
Text | Bai | String | ComboBox, FileControl, FormattedField, PatternField, TextField | Kontrolak erakusten duen testua atzitzeko aukera ematen du.
TipText | Ez | String | Dena | Saguaren erakuslea kontrolaren gainean jartzen denean agertzen den aholkuaren testua zehazten du.
TripleState | Ez | Boolean | CheckBox | Kontrol-laukia grisean agertu daitekeen ala ez zehazten du.
URL | No | String | Hyperlink | The URL to open when the control is clicked.
Value | Ez | Variant |  | Refer to Value property
Visible | Ez | Boolean | Dena | Kontrola ezkutuan dagoen ala ikusgai dagoen zehazten du.
XControlModel | Bai | UNO objektua | Dena | Kontrol-eredua ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XControlModel eta UnoControlDialogModel informazio xeheagorako.
XControlView | Bai | UNO objektua | Dena | Kontrol-bista ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XControl eta UnoControlDialog informazio xeheagorako.
XTreeDataModel | Bai | UNO objektua | TreeControl | Zuhaitz-kontrolaren datu-eredua ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XMutableTreeDataModel informazio xeheagorako.

## The Value property

Kontrol mota | Mota | Deskribapena
--- | --- | ---
Button | Boolean | Txandakatze-botoietarako soilik
CheckBox | Boolearra edo osoa | 0, False: markatu gabea 1, True: markatua 2: grisean, ezezaguna
ComboBox | String | Hautatutako balioa. ListIndex propietatea ordezko aukera bat da.
CurrencyField | Zenbakia |
DateField | Date |
FileControl | String | ScriptForge.FileSystem zerbitzuaren FileNaming propietatearen arabera formatua eman zaion fitxategi-izen bat.
FormattedField | Katea edo zenbakia |
ListBox | Kate edo kateen matrizea | Hautatutako errenkada(k) eskalar gisa edo matrize gisa, MultiSelect atributuaren arabera.
NumericField | Zenbakia |
PatternField | String |
ProgressBar | Zenbakia | Muga aurredefinituen barruan egon behar du
RadioButton | Boolean | Botoi bakoitzak bere izen propioa du. Elkarrekin lotuta daude beren TAB kokaguneak elkarren albokoak badira. Aukera-botoi baten balioa True bada, erlazionatutako gainerako botoiei automatikoki False ezarriko zaie.
ScrollBar | Zenbakia | Muga aurredefinituen barruan egon behar du
TableControl | Array | Dimentsio bakarreko matrizea, unean hautatutako errenkadaren datuak dituena.
TextField | String | Eremuan ageri den testua
TimeField | Date |

There's no Value property for GroupBox, Hyperlink, ImageControl and TreeControl dialog controls.

## Gertaeraren propietateak

On… properties return a URI string with the reference to the script triggered by the event. On… properties can be set programmatically.
Read its specification in the scripting framework URI specification.

Izena | Irakurtzeko soilik | Deskripzioa, Basic IDEan etiketatu den moduan
--- | --- | ---
OnActionPerformed | Bai | Exekutatu ekintza
OnAdjustmentValueChanged | Bai | Doitzean
OnFocusGained | Bai | Fokua hartzean
OnFocusLost | Bai | Fokua galtzean
OnItemStateChanged | Bai | Elementuaren egoera aldatzean
OnKeyPressed | Bai | Tekla sakatzean
OnKeyReleased | Bai | Tekla askatzean
OnMouseDragged | Bai | Tekla sakatuta dagoenean sagua arrastatzean
OnMouseEntered | Bai | Sagua barnean dagoenean
OnMouseExited | Bai | Sagua kanpoan dagoenean
OnMouseMoved | Bai | Sagua mugitzean
OnMousePressed | Bai | Saguaren botoia sakatzean
OnMouseReleased | Bai | Saguaren botoia askatzean
OnNodeExpanded | Ez | (Ez Basic IDEan) hedatze-botoia zuhaitz-kontroleko nodo batean sakatzen denean
OnNodeSelected | Ez | (Ez Basic IDEan) zuhaitz-kontroleko nodo bat hautatzen denean
OnTextChanged | Bai | Testua aldatzean

Assigning events via the Basic IDE and assigning events via macros are mutually exclusive.

## Metodoak

DialogControl zerbitzuaren metodoen zerrenda
AddSubNode AddSubTree CreateRoot | FindNode Resize SetFocus | SetTableData WriteLine

## AddSubNode

Sortu eta itzuli zuhaitzaren nodo berria, nodo guraso baten azpiko UNO objektu gisa. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Metodo hau elkarrizketa-koadroa bistaratu baino lehen deitu daiteke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu daiteke, bai elkarrizketa-koadro batetik bai kontrol-gertaera batetik (OnNodeExpanded gertaera erabilita).

### Sintaxia:

svc.AddSubNode(parentnode: uno, displayvalue: str, opt datavalue: any): uno

### Parametroak:

parentnode: Nodo motako UNO objektu bat, com.sun.star.awt.tree.XMutableTreeNode motakoa.

displayvalue: Zuhaitzaren kontrol-laukian ageri den testua.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

### Adibidea:

LibreOffice Basic eta Python adibideek uneko dokumentuaren myDialog elkarrizketa-koadroa Standard liburutegitik hartzen dute.

##### Basic lengoaian

          Dim oDlg As Object, myTree As Object, myNode As Object, theRoot As Object
          Set oDlg = CreateScriptService("Dialog",,, "myDialog")
          Set myTree = oDlg.Controls("myTreeControl")
          Set theRoot = myTree.CreateRoot("Tree top")
          Set myNode = myTree.AddSubNode(theRoot, "A branch ...")

##### Python lengoaian

         dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
         tree = dlg.Controls('myTreeControl')
         root = tree.CreateRoot('Tree top')
         node = tree.AddSubNode(root, 'A branch ...')

## AddSubTree

True (egia) itzultzen du nodo guraso baten mendeko azpizuhaitz bat zuhaitz-kontrol batean ongi txertatu daitekeenean. Nodo gurasok dagoeneko nodo haurrak baditu metodo honi deitu baino lehen, nodo haurrak ezabatu egingo dira.

Metodo hau elkarrizketa-koadroa bistaratu baino lehen deitu daiteke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu daiteke, bai elkarrizketa-koadro batetik bai kontrol-gertaera batetik (OnNodeExpanded gertaera erabilita).

### Sintaxia:

svc.AddSubTree(parentnode: uno, flattree: any, opt withdatavalue: bool): bool

### Parametroak:

parentnode: Nodo motako UNO objektu bat, com.sun.star.awt.tree.XMutableTreeNode motakoa.

flattree: Bi dimentsiotako matrize bat, bistaratze-balioak dituen zutabeetan ordenatuta. Horrelako matrize bat bidaltzeko, erabili GetRows metodoa SFDatabases.Database zerbitzuan aplikatuta. Bistaratuko den testua duen matrize-elementu bat Empty edo Null bada, ez da azpinodo berririk sortuko eta errenkadaren gainerakoa saltatu egingo da.

          Zuhaitz laua    >>>>    Emaitza gisa sortutako azpizuhaitza
          A1	B1	C1             |__   A1
          A1	B1	C2                   |__   B1
          A1	B2	C3                         |__  C1
          A2	B3	C4                         |__  C2
          A2	B3	C5                   |__   B2
          A3	B4	C6                         |__  C3
                                 |__   A2
                                       |__   B3
                                             |__  C4
                                             |__  C5
                                 |__   A3
                                       |__   B4
                                             |__  C6

withdatavalue: Balio lehenetsia den False erabiltzen denean, flattree matrizeko zutabe bakoitzak zuhaitz-kontrolean bistaratuko diren testuak ditu. Balioa True bada, bistaratuko diren testuak (displayvalue) 0, 2, 4... zutabeetan daude eta datu-balioak (datavalue) 1, 3, 5... zutabeetan daude.

### Adibidea:

##### Basic lengoaian

          Dim myTree As Object, theRoot As Object, oDb As Object, vData As Variant
          Set myTree = myDialog.Controls("myTreeControl")
          Set theRoot = myTree.CreateRoot("By product category")
          Set oDb = CreateScriptService("SFDatabases.Database", "/home/.../mydatabase.odb")
          vData = oDb.GetRows("SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] " _
              & "FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] " _
              & "ORDER BY [Category].[Name], [Product].[Name]")
          myTree.AddSubTree(theRoot, vData, WithDataValue := True)

##### Python lengoaian

         SQL_STMT = "SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] \
             FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] \
             ORDER BY [Category].[Name], [Product].[Name]"
         tree = dlg.Controls('myTreeControl')
         root = tree.CreateRoot('By Product category')
         db = CreateScriptService('SFDatabases.Database', '/home/.../mydatabase.odb')
         sub_tree = db.GetRows(SQL_STMT)
         tree.AddSubTree(root, sub_tree, withdatavalue=True)

## CreateRoot

Zuhaitz-kontrolaren erro-nodo berri bat itzultzen du, com.sun.star.awt.tree.XMutableTreeNode motako UNO objektu mota gisa. Zuhaitz-erro berria lehendik dauden erro-nodoen aurrean txertatuko da. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Metodo honi elkarrizketa-koadroa bistaratu baino lehen deitu dakioke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu dakioke elkarrizketa-koadro batetik edo kontrol-gertaera batetik.

### Sintaxia:

svc.CreateRoot(displayvalue: str, opt datavalue: any): uno

### Parametroak:

displayvalue: Zuhaitzaren kontrol-koadroan ageri den testua.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

### Adibidea:

##### Basic lengoaian

          Dim myTree As Object, myNode As Object
          Set myTree = myDialog.Controls("myTreeControl")
          Set myNode = myTree.CreateRoot("Tree starts here ...")

##### Python lengoaian

         tree = dlg.Controls('myTreeControl')
         node = tree.CreateRoot('Tree starts here ...')

## FindNode

Zuhaitza zeharkatzen du eta, modu errekurtsiboan eta errotik hasita, irizpideren bat betetzen duen nodo bat aurkitzen du. Aski da bat etortze batekin, bai bistaratze-balioa displayvalue ereduarekin bat etortzea bai bere datu-balioa datavalue parametroarekin bat etortzea. Konparazioak maiuskulak/minuskulak kontuan hartu ditzakete edo ez. Bat datorren lehen agerraldia com.sun.star.awt.tree.XMutableTreeNode nodo motako UNO objektu gisa itzuliko da. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Aurkitzen ez bada, metodoak Nothing itzuliko du, IsNull() funtzio integratuarekin probatuko dena.

Metodo honi elkarrizketa-koadroa bistaratu baino lehen deitu dakioke, hasierako zuhaitza eraikitzeko. Elkarrizketa-koadro batetik edo kontrol-gertaera batetik ere deitu dakioke.

### Sintaxia:

svc.FindNode(displayvalue: str = '', opt datavalue: any, casesensitive = False): uno

### Parametroak:

Bi argumentutako bat, displayvalue edo datavalue, zehaztu behar da. Biak badaude, bat etortze bakarra aski da nodoa hautatzeko..

displayvalue: Bat etortzeetarako erabiliko den eredua. Begiratu SF_String.IsLike() metodoa erabili daitezkeen balizko komodinak ezagutzeko. Zero luzerako kate baten berdina bada (modu lehenetsia), bistaratze-balioa ez da bilatuko.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

casesensitive: Balio lehenetsia False da.

### Adibidea:

##### Basic lengoaian

          Dim myTree As Object, myNode As Object
          Set myTree = myDialog.Controls("myTreeControl")
          Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)

##### Python lengoaian

         tree = dlg.Controls('myTreeControl')
         node = FindNode('*Sophie*', casesensitive=True)
         if node is None:
             # ...

## Resize

Move the top-left corner of a dialog control to new coordinates and/or modify its dimensions. Return True if resizing was successful.

### Sintaxia:

svc.Resize(opt Left: int, opt Top: int, opt Width: int, opt Height: int): bool

### Parametroak:

All distances are expressed in Map AppFont units and are measured from the top-left corner of the parent dialog. Without arguments the method resizes the control to its "preferred size", a size adjusted depending on its actual content. Missing arguments are left unchanged.

Left: The horizontal distance from the top-left corner

Top: The vertical distance from the top-left corner

Width: the horizontal width of the rectangle containing the control

Height: the vertical height of the rectangle containing the control

### Adibidea:

##### Basic lengoaian

          Dim oControl As Object
          Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
          Set oControl = oDlg.Controls("thisControl")
          oControl.Resize(100, 200, Height:=6000) ' Width is unchanged

##### Python lengoaian

          dlg = CreateScriptService('Dialog', None, None, 'myDialog')
          ctrl = dlg.Controls('thisControl')
          ctrl.Resize(300, 200, 1500)  # Height is unchanged

## SetFocus

Ezarri fokua kontrolean. True itzuliko du fokuratzea ongi gauzatu bada.

Metodo honi sarritan elkarrizketa-koadro batetik edo kontrol-gertaera batetik deitzen zaio.

### Sintaxia:

svc.SetFocus(): bool

### Adibidea:

##### Basic lengoaian

          Dim oControl As Object
          Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
          Set oControl = oDlg.Controls("thisControl")
          oControl.SetFocus()

##### Python lengoaian

          dlg = CreateScriptService('Dialog', None, None, 'myDialog')
          ctrl = dlg.Controls('thisControl')
          ctrl.SetFocus()

## SetTableData

TableControl emandako datuekin betetzen du. Aurretik dauden datu guztiak garbituko dira argumentu gisa pasatu diren datu berriak txertatu baino lehen.

Elkarrizketa-koadroari TableControl gehitzen bazaio, posible da Basic IDEa erabiltzea zutabe- eta errenkada-goiburukoak taulan erakutsiko diren ala ez definitzeko. TableControl elementuak zutabe- edota errenkada-goiburukoak baditu, emandako datu-matrizearen lehen zutabea edota errenkada taula-goiburukoak sortzeko etiketa modura erabiliko dira.

Metodoak True itzultzen du arrakasta duenean.

### Sintaxia:

svc.SetTableData(dataarray: any[0..*, 0..*], widths: int[0..*], alignments: str, RowHeaderWidth = 10): bool

### Parametroak:

dataarray: Taulan sartuko diren datuak, matrizeen matrize gisa adierazita Basic lengoaian eta tuplen tupla gisa Pythonen. Datuek zutabeen zein errenkaden goiburukoak izan behar dituzte TableControl baten bidez bistaratuko badira.

widths: Array containing the relative widths of each column. In other words, widths = (1, 2) means that the second column is twice as wide as the first one. If the number of values in the array is smaller than the number of columns in the table, then the last value in the array is used to define the width of the remaining columns.

alignments: Zutabe bakoitzeko lerrokatzeak definitzen ditu, kate gisa, non karaktere bakoitza "L" (ezkerra), "C" (erdia), "R" (eskuina) or " " (zuriunea, lehenetsia, horrek esan nahi du ezkerra kateentzako eta eskuina zenbakientzako) izan daitekeen. Katearen luzera taulako zutabe kopurua baino txikiagoa bada, kateko azken karakterea gainerako zutabeen lerrokatzea definitzeko erabiliko da.

RowHeaderWidth: width of the row header column expressed in Map AppFont units. Default = 10. The argument is ignored when the TableControl has no row header.

### Adibidea:

##### Basic lengoaian

Hurrengo adibidean, myDialog elkarrizketa-koadroak Grid1 izeneko TableControl bat du eta horrek "Erakutsi errenkada-goiburukoa" eta "Erakutsi zutabe-goiburukoa" propietateetan "Bai" aukera du ezarrita.

         Dim myDialog As Object, oTable As Object, tableData As Variant
         myDialog = CreateScriptService("Dialog", "GlobalScope", "Standard", "myDialog")
         oTable = myDialog.Controls("Grid1")
         tableData = Array("Column A", "Column B", "Column C")
         tableData = SF_Array.AppendRow(tableData, Array("Row 1", 1, 2))
         tableData = SF_Array.AppendRow(tableData, Array("Row 2", 3, 4))
         tableData = SF_Array.AppendRow(tableData, Array("Row 3", 5, 6))
         vAlignments = "LCC"
         vWidths = Array(2, 1, 1)
         oTable.SetTableData(tableData, vWidths, vAlignments)
         myDialog.Execute()

Value propietateak taulan hautatutako errenkada itzultzen du. Ez badago errenkadarik hautatuta, hutsik dagoen Array objektu bat itzuliko da. Hurrengo kode-zatiak taulan errenkadaren bat hautatuta dagoen ala ez nola probatu erakusten du.

         rowValues = oTable.Value
         If UBound(rowValues) < 0 Then
             MsgBox "Ez da errenkadarik hautatu."
         Else
             MsgBox oTable.ListIndex & ". errenkada hautatu da."
         End If

##### Python lengoaian

         dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "myDialog")
         table_control = dlg.Controls("Grid1")
         table_data = (("Column A", "Column B", "Column C"),
                       ("Row 1", 1, 2),
                       ("Row 2", 3, 4),
                       ("Row 3", 5, 6))
         alignments = "LCC"
         widths = (100, 50, 50)
         table_control.SetTableData(table_data, widths, alignments)
         dlg.Execute()

         bas = CreateScriptService("Basic")
         row_values = table_control.Value
         if len(row_values) == 0:
             bas.MsgBox("No row selected.")
         else:
             bas.MsgBox(f"Row {table_control.ListIndex} is selected.")

## WriteLine

Gehitu lerro bat lerro anitzeko testu-eremu baten amaierari. Lerro berriaren karakterea txertatuko da halakoa behar denean. Metodoak True itzuliko du ongi gauzatzen denean.

Errore bat gertatuko da kontrola ez bada TextField motakoa edo lerro anitzekoa ez bada.

### Sintaxia:

svc.WriteLine(opt line: str): bool

### Parametroak:

Line: Txertatuko den katea. Balio lehenetsia lerro hutsa da.

### Adibidea:

##### Basic lengoaian

          Dim oDlg As Object, oControl As Object
          Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
          Set oControl = oDlg.Controls("thisControl")
          oControl.WriteLine("a new line")

##### Python lengoaian

         dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
         ctrl = dlg.Controls('thisControl')
         ctr.WriteLine("a new line")

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.

Erlazionatutako gaiak

SFDialogs.Dialog zerbitzua

ScriptForge.String zerbitzua

ScriptForge.UI zerbitzua