Android Tutorial ScrollView example with multiselection and SQL

Discussion in 'Tutorials & Examples' started by klaus, Apr 23, 2011.

  1. klaus

    klaus Expert Licensed User

    Here is another ScrollView example with:
    - adding a row
    - moving a selected row up and down
    - mono-selection, clicking on one row selects it, clicking on another row unselects the previous one and selects the new one.
    - multi-selection, after one row is selected, a longclick on another row activates multi-selection, clicking on a third row selects it, clicking on a selected row unselects it. Unselecting down to one selected row reactivates mono-selection.
    - deleting rows, mono and multi

    Best regards.
     

    Attached Files:

  2. cnicolapc

    cnicolapc Active Member Licensed User

    Thanks Klaus
    very interesting example
    Nicola
     
  3. klaus

    klaus Expert Licensed User

    Ansewer to this post:
    You should have a closer look at the program and you will find the answer on your own. When you have found the answer to the first question you will have an aswer for the second one.

    I just tested the search function in the top right corner, with 'sql example'. And guess what example came out first ? The example I suggested you.

    Best regards.
     
  4. blexnmedia

    blexnmedia Member Licensed User

    Remote DB Connection

    Hello Klaus,

    In your examples, a local db is being created and used. Do you have any sample of the ScrollView but being filled with data from a remote MySQL DB?

    Thanks.
     
  5. klaus

    klaus Expert Licensed User

    No, I don't.
    But you should find some examples in the forum.
    Or you could make a combination of an example how to get the remote database and use the code in the ScrollView examples for the display.

    Best regards.
     
  6. Peter Simpson

    Peter Simpson Expert Licensed User

    Thank you very much klaus, great grid.

    I've modified it to work with MySQL. I'll clean up and post source for other users to look at when I get the time :)
     
  7. Hodi

    Hodi Member Licensed User

    Hi Klaus (and all other:),



    I worked a little bit with your code to learn more about the scrollview.
    I want to add a edittext external of the scrollview and want to multiselect all rows where the edittext is found in scrollview.

    I´ve add edittext and tried to do the same like the Cell_longclick :

    Sub Edittext1_EnterPressed
    Cursor1 = SQL1.ExecQuery("SELECT * FROM Table WHERE col1= '" & Edittext1.Text & "'")

    Dim row(NumberOfColumns) As String
    row(0)="col0"
    row(1)="col1"
    row(2)="col2"
    NumberOfRows=0
    For i = 0 To Cursor1.RowCount - 1
    Dim row(NumberOfColumns) As String
    Cursor1.Position = i
    row(0)=Cursor1.GetString("col0")
    row(1)=Cursor1.GetString("col1")
    row(2)=Cursor1.GetString("col2")
    Next
    Cursor1.Close
    If Cursor1.RowCount = 0 Then
    Msgbox ("text don´t match...")
    Else
    If SelectedItems.Size=1 Then
    Dim rc As RowCol
    Dim l As Label
    l = Sender
    rc = l.Tag
    SelectRow(rc.Row, rc.Col,0)
    SelectAdd
    Else
    Cell_Click
    End If
    End Sub


    Please can everybody can helf to show me the right way to do this?

    Thanks in advance
    Hodi
     
  8. klaus

    klaus Expert Licensed User

    It would be easier to help you if you posted your project as a zip file with a database example.

    There are some strange things in your code.
    This code is for nothing because you dim row again in the loop.
    Code:
    Dim row(NumberOfColumns) As String
    row(
    0)="col0"
    row(
    1)="col1"
    row(
    2)="col2"
    In this part of the code row(0), row(1) and row(2) will have the values of the last row.
    Code:
    For i = 0 To Cursor1.RowCount - 1
       
    Dim row(NumberOfColumns) As String
       Cursor1.Position = i
       row(
    0)=Cursor1.GetString("col0")
       row(
    1)=Cursor1.GetString("col1")
       row(
    2)=Cursor1.GetString("col2")
    Next
    This test is too late it must be before the For/Next loop.
    Code:
    If Cursor1.RowCount = 0 Then
    Best regards.
     
  9. Hodi

    Hodi Member Licensed User

    Hi Klaus,

    First, Thanks for your quick answer - and secound, Sorry I´ve copied two different parts of the code together....

    The complette code ist:

    Sub Process_Globals
    Dim SQL1 As SQL
    End Sub

    Sub Globals
    Dim Edittext1 As EditText
    Dim Edittext3 As EditText
    Dim Edittext2 As EditText
    Dim scvList As ScrollView
    Dim Header As Panel
    Dim Pan1 As Panel
    Dim SelectedItems As List
    Dim NumberOfRows As Int : NumberOfRows=0
    Dim PreviousRow As Int : PreviousRow=-1
    Dim NumberOfVisibleRows As Int
    Dim NumberOfColumns As Int : NumberOfColumns = 3
    Dim RowHeight, RowHeight_1, RowLineWidth As Int
    RowLineWidth = 1dip
    RowHeight = 50dip
    RowHeight_1 = RowHeight - RowLineWidth

    Type RowCol (Row As Int, Col As Int)
    Dim LineColor As Int : LineColor = Colors.Transparent
    Dim ColumnWidth(3) As Int
    Dim ColumnWidth_1(3) As Int
    Dim ColLineWidth As Int : ColLineWidth = 1dip
    Dim SelectedRowColor As Int : SelectedRowColor=Colors.Green
    Dim SelectedCellColor As Int : SelectedCellColor=Colors.Red
    'Table settings
    Dim HeaderColor(3) As Int
    HeaderColor(0)=Colors.ARGB (120,0,0,0)
    HeaderColor(1)=Colors.ARGB (120,0,0,0)
    HeaderColor(2)=Colors.ARGB (180,0,0,0)

    Dim HeaderFontColor(3) As Int
    HeaderFontColor(0)=Colors.White
    HeaderFontColor(1)=Colors.White
    HeaderFontColor(2)=Colors.White

    Dim CellColor(3) As Int
    CellColor(0) = Colors.ARGB (30,0,0,0)
    CellColor(1) = Colors.ARGB (30,0,0,0)
    CellColor(2) = Colors.ARGB (30,0,0,0)
    Dim FontColor(3) As Int
    FontColor(0) = Colors.Black
    FontColor(1) = Colors.Black
    FontColor(2) = Colors.Red

    Dim FontSize(3) As Float
    FontSize(0) = 12
    FontSize(1) = 18
    FontSize(2) = 24

    Dim Alignment(3) As Int
    Alignment(0) = Gravity.CENTER
    Alignment(1) = Gravity.CENTER
    Alignment(2) = Gravity.CENTER
    Dim Cursor1 As Cursor
    Dim RowET As String
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout ("Test.bal")
    Dim i As Int
    scvList.Panel.Color=Colors.ARGB (120,0,0,0)
    Pan1 = scvList.Panel
    Pan1.Color = LineColor

    ColumnWidth(0) = 0.2 * scvList.Width
    ColumnWidth(1) = 0.4 * scvList.Width
    ColumnWidth(2) = 0.4 * scvList.Width
    For i=0 To NumberOfColumns-1

    ColumnWidth_1(i) = ColumnWidth(i)-ColLineWidth
    Next
    SelectedItems.Initialize
    If FirstTime Then
    SQL1.Initialize(File.DirRootExternal,"database.db",True)
    End If

    NumberOfVisibleRows=scvList.Height/RowHeight
    Edittext1.Hint = "check1"
    Edittext2.Hint = "check2"
    Edittext3.Hint = "check3"
    SQL1.Initialize(File.DirRootExternal, "Database.db", True)


    End Sub

    Sub Activity_Resume

    End Sub

    Sub Activity_Pause (UserClosed As Boolean)

    End Sub



    Sub Edittext1_EnterPressed

    Cursor1 = SQL1.ExecQuery("SELECT * FROM Table1 WHERE col1= '" & Edittext1.Text & "'")

    Dim row(NumberOfColumns) As String
    row(0)="data1"
    row(1)="data2"
    row(2)="data3"
    SetHeader(row)
    NumberOfRows=0
    For i = 0 To Cursor1.RowCount - 1
    Cursor1.Position = i
    row(0)=Cursor1.GetString("data1")
    row(1)=Cursor1.GetString("data2")
    row(2)=Cursor1.GetString("data3")

    AddRow(Row)
    Next

    If Cursor1.RowCount = 0 Then
    Msgbox ("check again", "no data found")
    Else
    Edittext1.Text = ""
    Edittext1.Visible=False
    Edittest2.Visible=True
    Edittext3.Visible=False
    End If
    End Sub

    Sub Edittext2_EnterPressed
    Dim rc As RowCol
    Cursor1 = SQL1.ExecQuery("SELECT * FROM Tabel1 WHERE col2= '" & Edittext2.Text & "'")
    For i = 0 To Cursor1.RowCount - 1
    Cursor1.Position = i
    RowET=Cursor1.GetString("data2")
    Next
    Cursor1.Close
    If Edittext2.Text = RowET Then
    SelectRow(rc.Row, rc.Col,0)
    selectAdd
    Else
    Msgbox ("data not found","Please check")
    End If

    End Sub

    Sub Cell_Click
    Dim rc As RowCol
    Dim l As Label
    l = Sender
    rc = l.Tag

    If SelectedItems.Size=1 Then
    SelectRow(rc.Row, rc.Col,2)
    Else
    SelectRow(rc.Row, rc.Col,0)
    End If
    SelectAdd
    End Sub

    Sub Cell_LongClick
    ' activates multiselection
    If SelectedItems.Size=1 Then
    Dim rc As RowCol
    Dim l As Label

    l = Sender
    rc = l.Tag
    SelectRow(rc.Row, rc.Col,0)
    SelectAdd

    Else
    Cell_Click
    End If
    End Sub

    Sub SelectAdd
    Dim txt As String

    txt="Codes = "
    For i=0 To SelectedItems.Size-1
    If i=0 Then
    txt=txt&GetView(SelectedItems.Get(i),0).Text
    Else
    txt=txt&" / "&GetView(SelectedItems.Get(i),0).Text
    End If
    Next
    Activity.Title = txt
    End Sub

    Sub Header_Click
    Dim l As Label
    Dim col As Int
    l = Sender
    col = l.Tag
    Activity.Title = "Header clicked: " & col
    End Sub

    Sub SelectRow(Row As Int, Col As Int, Mode As Int)
    ' Mode = 0 -> multi selection
    ' = 1 -> up / down move
    ' = 2 -> mono selection
    Dim col, index As Int

    index=SelectedItems.IndexOf(Row) ' tests if the row is alrady selected

    If index>-1 Then ' row already selected
    For col = 0 To NumberOfColumns - 1
    GetView(Row, Col).Color = CellColor(col) ' remove the color of previously selected row
    Next
    SelectedItems.RemoveAt(index) ' removes the row from the list of selected rows
    If SelectedItems.Size=1 Then
    Row=SelectedItems.Get(0) ' sets row to the last selected row
    End If
    Else
    ' adds the selected row to the list and sets the line color
    If Mode=0 Then
    SelectedItems.Add(Row)
    Else If Mode=2 Then
    For col = 0 To NumberOfColumns - 1
    GetView(PreviousRow, Col).Color = CellColor(col) ' sets standard colors to previous row
    Next
    End If
    For col = 0 To NumberOfColumns - 1
    GetView(Row, Col).Color = SelectedRowColor ' sets selected row colors
    Next
    End If

    If Mode=1 Then ' up / down move
    For col = 0 To NumberOfColumns - 1
    GetView(PreviousRow, Col).Color = CellColor(col)
    GetView(Row, Col).Color = SelectedRowColor
    Next
    End If

    ' update or the Buttons and EditText views
    If SelectedItems.Size=0 Then
    Else If SelectedItems.Size=1 Then
    SelectedItems.Set(0,Row)
    PreviousRow=Row
    End If
    End Sub

    Sub GetView(Row As Int, Col As Int) As Label
    ' Returns the label in the specific cell
    Dim l As Label
    l = Pan1.GetView(Row * NumberOfColumns + Col)
    Return l
    End Sub

    Sub AddRow(Values() As String)
    ' Adds a row to the Pan1
    Dim ColWidth As Int

    If values.Length <> NumberOfColumns Then
    Log("Wrong number of values.")
    Return
    End If
    ColWidth=0
    For i = 0 To NumberOfColumns - 1
    Dim l As Label
    l.Initialize("cell")
    l.Text = values(i)
    l.Gravity = Alignment(i)
    l.TextSize = FontSize(i)
    l.TextColor = FontColor(i)
    l.Color=CellColor(i)
    Dim rc As RowCol
    rc.Initialize
    rc.Col = i
    rc.Row = NumberOfRows
    l.Tag = rc
    Pan1.AddView(l, ColWidth, RowHeight * NumberOfRows, ColumnWidth_1(i), RowHeight_1)
    ColWidth=ColWidth+ColumnWidth(i)
    Next
    NumberOfRows=NumberOfRows+1
    Pan1.Height = NumberOfRows * RowHeight
    End Sub

    Sub SetHeader(Values() As String)
    ' Set the headers values
    Dim ColWidth As Int

    If header.IsInitialized Then Return 'should only be called once
    header.Initialize("")
    ColWidth=0
    For i = 0 To NumberOfColumns - 1
    Dim l As Label
    l.Initialize("header")
    l.Text = values(i)
    l.Gravity = Alignment(i)
    l.TextSize = FontSize(i)
    l.Color = HeaderColor(i)
    l.TextColor = HeaderFontColor(i)
    l.Tag = i
    header.AddView(l, ColWidth, 0, ColumnWidth_1(i), RowHeight_1)
    ColWidth=ColWidth+ColumnWidth(i)
    Next
    Activity.AddView(header, scvList.Left, scvList.Top - RowHeight, scvList.Width, RowHeight)
    End Sub

    Sub SetCell(Row As Int, Col As Int, Value As String)
    ' Sets the value of the given cell
    GetView(Row, Col).Text = value
    End Sub

    Sub GetCell(Row As Int, Col As Int) As String
    ' Gets the value of the given cell
    Return GetView(Row, Col).Text
    End Sub

    ------------------------------------------
    With the Edittext2 I want to select the row If the edittext2.text is in shown in the scrollview. (the same like cell_longclick)

    Please can you help me with the code? (currently the code select only the first row because I don´t know how I can call the right Row and Col)

    Thanks in advance
    Hodi
     
  10. klaus

    klaus Expert Licensed User

    Sorry, but I asked you to post your project with a database example as a zip file (IDE menu Files / Export As Zip) so I can test your code in the same conditions as you. It would be much easier.

    Best regards.
     
  11. Hodi

    Hodi Member Licensed User

    Hi Klaus,


    I´ve attached the test1.zip file.
    In the edittext1 please enter "1001" and in edittext2 I will select the right row like cell_longclick. (with multiselection Mode 0)

    Thanks
    Hodi
     

    Attached Files:

  12. klaus

    klaus Expert Licensed User

    Here you are, I hope it's what you wanted.

    You should save your database in UTF-8 encoding not ANSI because the special german characters are not displayed.

    Best regards.
     

    Attached Files:

  13. StarinschiAndrei

    StarinschiAndrei Active Member Licensed User

    wrong selected item

    Hi Klaus ,

    I tried to modify my application based on your exemple, but it doesn't metter what cell i click the rc is (col 5 ; row 19).
    I attached my app. Could you advice me how can a solve the problem ?
    Thk
    Sorry the zip file is bigger than the maximum alowed, for this reason i put the code here.
    Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim sql1 As SQL
    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Begin - Change for Database>>>>>>>>>>>>>>>>>>>>>>>>>>
    Dim DBFileName As String : DBFileName = "countries.db"
    Dim DBTableName As String : DBTableName = "datePers"
    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<End - Change for Database>>>>>>>>>>>>>>>>>>>>>>>>>>

    ' Dim DBFileDir As String : DBFileDir = File.DirInternal
    Dim DBFileDir As String : DBFileDir = File.DirDefaultExternal
    Dim sqltxt As String
    Dim cur As Cursor
    End Sub

    Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim spnGrupe As Spinner
    Dim spnValoare As Spinner
    Dim spnOre As Spinner
    Dim spnstare As Spinner
    Dim spnsport As Spinner
    Dim lbltitlu As Label
    Dim txtnume As EditText
    Dim txtprenume As EditText
    Dim txttelefon As EditText
    Dim txtmail As EditText
    Dim txtdatanastere As EditText
    Dim CsCal As CustomCalendar
    Dim pnlcamp As Panel
    Dim l As Label

    ''---------------------------------------------------------------------------------
    Dim nrrand As Int
    Dim nrcol As Int
    Dim SV As ScrollView
    Dim header As Panel
    Dim HeaderColor, TableColor, FontColor, HeaderFontColor As Int
    Dim FontSize As Float
    HeaderColor = Colors.Gray
    HeaderFontColor = Colors.White
    Type RowCol (Row As Int, Col As Int)
    Dim SelectedRowColor As Int : SelectedRowColor=Colors.LightGray
    Dim selectedItems As Map ''+18.11
    Dim cellcolor As Int
    'Table settings


    End Sub

    Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")

    If FirstTime Then
    sql1.Initialize(DBFileDir, DBFileName, True)
    End If

    Activity.LoadLayout("inregistrare")
    selectedItems.Initialize ''+18.11
    grupe
    valoare
    ore
    sporturi
    stare
    incarc_tabel
    End Sub

    Sub Activity_Resume

    End Sub

    Sub Activity_Pause (UserClosed As Boolean)

    End Sub
    #Region"Populez campuri si tabel"
    Sub incarc_tabel


    Dim colwidth As Int
    Dim rowhight As Int

    rowhight=30dip
    nrcol=6
    Dim rand(nrcol) As String
    Dim numeHeader() As String

    numeHeader=Array As String("id","Nume","Prenume","NumarOre","Telefon","DataNastere")
    colwidth = SV.Width /nrcol
    '' adaug header
    header.Initialize("")
    For x = 0 To nrcol - 1
    Dim lb As Label
    lb.Initialize("header")
    lb.Text = numeHeader(x)''numeHeader(i)

    lb.Gravity = Gravity.CENTER
    lb.TextSize = FontSize
    lb.Color = HeaderColor
    lb.TextColor = HeaderFontColor
    lb.Tag = x

    header.AddView(lb, colwidth * x, 0, colwidth, rowhight)
    Next
    Activity.AddView(header, SV.Left, SV.Top - rowhight, SV.Width, rowhight)

    sqltxt="Select id,nume,prenume,nrore,telefon,datanastere from datepers"
    cur=sql1.ExecQuery(sqltxt)

    For y=0 To cur.RowCount -1
    cur.Position =y
    rand(0)=cur.GetInt("id")
    rand(1)=cur.GetString("nume")
    rand(2)=cur.Getstring("prenume")
    rand(3)=cur.GetInt("nrOre")
    rand(4)=cur.GetString("telefon")
    rand(5)=cur.GetString("datanastere")
    For i=0 To nrcol -1

    l.Initialize("cell")
    l.Gravity =Gravity.CENTER
    l.TextSize =18
    l.Text =rand(i)
    l.TextColor =HeaderFontColor
    Dim rc As RowCol
    rc.Initialize
    rc.Col =i
    rc.Row =y
    l.Tag =rc
    SV.Panel.AddView(l,colwidth*i,rowhight*y,colwidth,rowhight)
    Next
    Next
    cur.Close
    SV.FullScroll(True)
    SV.Panel.Height = rowhight * y
    End Sub
    Sub cell_click
    Dim rc As RowCol
    Dim l As Label
    l=Sender
    rc=l.Tag
    If selectedItems.Size <>1 Then
    selectedRow(rc.Row ,rc.Col )
    End If
    ''Dim l As Label
    '' Dim rc As RowCol

    '' l = Sender
    '' rc = l.Tag
    '' Activity.Title = "Row " & rc.Row & " Col " & rc.Col &" / " & l.Text
    End Sub
    Sub selectedRow(row As Int , selcol As Int ) ''18.11
    Dim col , index As Int
    Msgbox(col&";"&row,"")

    End Sub
    Sub grupe
    spnGrupe.Clear
    sqltxt="select * from grupe"
    cur=sql1.ExecQuery(sqltxt)
    If cur.RowCount > 0 Then
    spnGrupe.Add("Selecteaza Grupa")
    For i=0 To cur.RowCount -1
    cur.Position =i
    spnGrupe.Add(cur.GetString("grupe"))
    Next
    End If
    cur.Close
    End Sub
    Sub sporturi
    spnsport.Clear
    sqltxt = "select * from activitati"
    cur=sql1.ExecQuery(sqltxt)
    If cur.RowCount > 0 Then
    spnsport.Add("Selecteaza Activitatea Sportiva")
    For i=0 To cur.RowCount -1
    cur.Position =i
    spnsport.Add(cur.GetString("sport"))
    Next
    End If
    cur.Close
    End Sub
    Sub valoare
    spnValoare.Clear
    sqltxt = "select * from valori"
    cur=sql1.ExecQuery(sqltxt)
    If cur.RowCount>0 Then
    spnValoare.Add("Selecteaza Valoare")
    For i=0 To cur.RowCount -1
    cur.Position =i
    spnValoare.Add(cur.GetString("valori"))
    Next
    spnValoare.SelectedIndex=0
    End If
    cur.Close
    End Sub
    Sub ore
    spnOre.Clear
    sqltxt = "select ore from nrore"
    cur=sql1.ExecQuery(sqltxt)
    If cur.RowCount > 0 Then
    spnOre.Add("Selecteaza Numarul de ore")
    For i=0 To cur.RowCount -1
    cur.Position =i
    spnOre.Add(cur.GetString("ore"))
    Next
    spnOre.SelectedIndex =0
    End If
    cur.Close
    End Sub
    Sub stare
    spnstare.AddAll(Array As String("Activ","Inactiv"))
    End Sub

    #End Region
    #Region"Functii adaugare"
    Sub addDate (comanda As String)
    ''FPDataNastere=DateTime.DateParse(FPDataNastere)
    sql1.BeginTransaction
    ''sql1.ExecNonQuery("Insert INTO datePers (nume,prenume,telefon,adrMail,datanastere) VALUES ('" & FPnume & "','" & FPprenume & "','" & FPtelefon & "','" & FPadrmail & "','" & FPdata & "')")
    sql1.ExecNonQuery(comanda)
    sql1.TransactionSuccessful
    sql1.EndTransaction
    End Sub
    #End Region

    Sub btnSalveaza_Click
    Dim data As String
    Dim now As Long
    Dim SQL As String
    Dim idClient As Int

    If txtnume.Text = "Nume" Then
    Msgbox("Nu ai completat campul Nume","Eroare Operare")
    Return
    End If
    If txtprenume.Text ="Prenume" Then
    Msgbox("Nu ai completat campul Prenume","Eroare Operare")
    Return
    End If
    If txttelefon.Text ="Telefon" Then
    Msgbox("Nu ai completat campul Telefon","Eroare Operare")
    Return
    End If
    If spnGrupe.selectedItem="Selecteaza Grupa" Then
    Msgbox("Nu ai selectat Grupa","Eroare Operare")
    Return
    End If
    If spnValoare.selectedItem = "Selecteaza Valoare" AND spnOre.selectedItem<>"Selecteaza Numarul de ore" Then
    Msgbox("Ai uitat sa selectezi Valoare","Eroare Operare")
    Return
    End If
    If spnOre.selectedItem ="Selecteaza Numarul de ore" AND spnValoare.selectedItem <> "Selecteaza Valoare" Then
    Msgbox("Ai uitat sa selectezi valoarea","Eroare Operare")
    Return
    End If
    '' Inserez datele personalre
    SQL="Insert INTO datePers (nume,prenume,telefon,adrMail,datanastere,grupa,sport,stare)VALUES ('" & txtnume.Text & "','" & txtprenume.Text & "','" & txttelefon.Text & "','" & txtmail.Text & "','" & txtdatanastere.Text & "','" & spnGrupe.selectedItem & "','" &spnsport.selectedItem &"','" & spnstare.selectedItem &"')"
    addDate(SQL)
    '' Caut ID de client
    SQL="Select id from datePers where nume = '" &txtnume.Text &"'and prenume='"& txtprenume.Text &"'and telefon='" &txttelefon.Text &"'and adrMail='"&txtmail.Text &"'"

    cur=sql1.ExecQuery(SQL)
    For i=0 To cur.RowCount -1
    cur.Position =i
    idClient=cur.GetInt("id")
    Next
    cur.Close

    ''daca se face plata la inregistrare inserez in activZilnica
    DateTime.DateFormat="yyyy-MM-dd"
    If spnValoare.selectedItem <> "Selecteaza Valoare" Then
    data=DateTime.Date(now)
    SQL="Insert INTO activZilnica(idpers,data,suma)VALUES('"& idClient &"','" & data &"','" &spnValoare.selectedItem &"')"
    addDate(SQL)
    End If
    incarc_tabel
    End Sub
    Sub txtTelefon_FocusChanged (HasFocus As Boolean)
    If HasFocus=True AND txttelefon.Text = "Telefon" Then
    txttelefon.Text =""
    Else
    If txttelefon.Text ="" Then
    txttelefon.Text ="Telefon"
    End If
    End If
    End Sub
    Sub txtPrenume_FocusChanged (HasFocus As Boolean)
    If HasFocus=True AND txtprenume.Text = "Prenume" Then
    txtprenume.Text =""
    Else
    If txtprenume.Text ="" Then
    txtprenume.Text ="Prenume"
    End If
    End If
    End Sub
    Sub txtNume_FocusChanged (HasFocus As Boolean)
    If HasFocus=True AND txtnume.Text = "Nume" Then
    txtnume.Text =""
    Else
    If txtnume.Text ="" Then
    txtnume.Text ="Nume"
    End If
    End If
    End Sub
    Sub txtMail_FocusChanged (HasFocus As Boolean)
    If HasFocus=True AND txtmail.Text = "Adresa Mail" Then
    txtmail.Text =""
    Else
    If txtmail.Text ="" Then
    txtmail.Text ="Adresa Mail"
    End If
    End If
    End Sub
    Sub txtDataNastere_FocusChanged (HasFocus As Boolean)

    If HasFocus = True Then
    CsCal.Initialize(Me,"CsCal",100%x,100%y,DateTime.Now)
    Activity.AddView(CsCal.AsView,0,0,100%x,100%y)
    CsCal.ShowCalendar(True)
    End If
    End Sub
     
    Last edited: Nov 18, 2012
  14. StarinschiAndrei

    StarinschiAndrei Active Member Licensed User

    Hi Klaus , after few our investigation i solved the problem :BangHead:
     
  15. Pancha

    Pancha New Member

    How to align number field "Right" in Scrollview?
     
  16. klaus

    klaus Expert Licensed User

    The Alignment array holds the Gravity value for each column.
    You can change the alignment for a given column with Alignment(ColumnIndex) = Gravity.RIGHT
     
  17. Tornet91

    Tornet91 Member Licensed User

    How can I make so the code row can't be the same as Another row ?´

    Best regards
    Tornet
     
  18. klaus

    klaus Expert Licensed User

    Could you be more precise on what you want to do ?
    I don't really understand the question.
     
  19. Tornet91

    Tornet91 Member Licensed User

    I want to make a list there user add's Article number and articlename, but if they write same article number or article name twice, it will come up a msgbox ("You have choice same article numbers","Error") And it doesnt come up a new row.
     
  20. klaus

    klaus Expert Licensed User

    You should request a query to check if this entry already exists.
    Something like this:
    Code:
    'first we check if the entry already does exist
    Query = "SELECT * FROM DatabaseName WHERE ArticleNumber = ? AND ArticleName = ?"
    Cursor1 = Main.SQL1.ExecQuery2(Query, 
    Array As String (edtArticleNumber .Text, edtArticleName.Text))

    If Cursor1.RowCount > 0 Then
        
    'if it exists show a message and do nothing else
        ToastMessageShow("This entry already exists"False)
    Else
        
    'if not, add the entry
        'your code
    End If
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice