- 1. Hur man installerar Gambas3
- 2. Skapa Gambas -projekt med DB och rapportera
- 3. Utför Gambas -programmet
- 4. Utformning av formuläret för att skriva in studenter
- 5. Vi började koda Gambas
- 6. Visa lagrad data
- 7. Skapa formulär för att ange elevdata
- 8. Konfigurera datasökning
- 9. Vi programmerar stängningsknappen
Gambas är en utvecklingsmiljö som distribueras under GNU GPL -licensenMed detta kan vi säga att det inte bara är ett programmeringsspråk som härrör från grundspråket utan det är också ett mycket användbart verktyg när man bygger visuella applikationer för nästan alla GNU / Linux -distributioner.
I Gambas har programmeraren möjlighet att utforma fönster grafiskt, dra objekt från verktygslådan och sedan skriva koden i grundläggande för varje objekt.
Som vi såg tidigare är Gambas baserat på en grundläggande tolk med objekttillägg, liknande Visual Basic. Men fördelen vi har med Gambas är att du snabbt kan designa din grafiska applikation med QT eller GTK +, komma åt MySQL, PostgreSQL, Firebird, ODBC och SQLite databaser, styra applikationer med DBUS, bygga Front End av Linux -kommandon, göra 3D OpenGL -applikationer , skapa CGI -webbapplikationer, generera installationspaket för bland annat olika distributioner.
Av denna anledning kan vi då säga att det i Gambas inte är en kopia eller klon av Visual Basic, eftersom det trots att det är baserat på grundläggande är ett alternativ för att skapa program och applikationer för GNU -miljöer. Om vi tittar på räkornas historia, kommer vi att upptäcka att den första versionen av räkor släpptes 1999 av fransmannen Benoît Minisini, vilket skapar en miljö som gör att vi enkelt kan programmera och utveckla applikationer med ett grafiskt användargränssnitt.
Till en början var programformen i Gambas liknande Gimp, med flera fönster och inriktad på användning av Qt och KDE. När det gjorde språnget till 2.x -versioner 2008 innebar det en fullständig redesign av det grafiska programmeringsgränssnittet, integrerade allt i ett enda fönster och tillät användning av GTK +. 2011 hoppade den till version 3.x.
Låt oss börja med Gambas3 installation.
1. Hur man installerar Gambas3
Enkelheten i Gambas gör den enkel att använda så det är inte nödvändigt att kunna något programmeringsspråk. Du behöver bara ha en gratis manual och lägga lite tid på den. Av denna anledning är det perfekt för inlärning om du precis har börjat. Tja, låt oss lära oss hur du installerar det på vårt Linux -operativsystem:
Först måste vi öppna kommandoterminalen och ange dessa kommandon en efter en:
sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3Gambas installationskommandon
Med denna kommandorad kan vi få den senaste versionen av Gambas. För närvarande går de för 3.8.1, även om jag rekommenderar att ha den mest stabila versionen som vi kan få med dessa andra kommandon, men vi måste komma ihåg att vi aldrig kan lägga till de två PPA: erna samtidigt, vi kan bara ha en av de två, det beror på att vi kan orsaka ett fel och vi måste börja om med att rengöra de tidigare installationerna.
2. Skapa Gambas -projekt med DB och rapportera
Det första vi måste göra är att designa databasen vi behöver för att lagra vår information. Den som jag föreslår kommer att kallas "studenter" och kommer att ha två tabeller (studenter och ämnen).
Studentbord: ID, ID, namn, efternamn, adress, telefon och e -post. Ämnesbord: id, ämnesnamnFör att göra det använder vi en mycket enkel chef för databasdesign, kallad SQLite Data Browser, vi öppnar den och skapar databasen genom att klicka på den nya knappen. Vi hittar var vi ska spara det och skapar tabellerna enligt den tidigare designen.
När det väl skapats skulle det se ut så här:
Vi lämnar ID -fältet som primärnyckel i båda tabellerna. Innan mini-manager stängs lägger vi till några data till den för att kontrollera dess funktion när vi utformar formuläret i programmet. Om vi nu kan klicka på knappen Spara och stänga mini databrowser manager.
3. Utför Gambas -programmet
Vi öppnar Gambas och skapar ett nytt projekt som ger det namnet och motsvarande sökväg:
FÖRSTORA
För mer bekvämlighet placerar vi databasen som skapats i den mapp som skapats för projektet, i detta fall mappen som heter GestionEstudiantes, så det blir enkelt när du hittar dess sökväg i programmet.
"Vi konfigurerar exit -knappen. Public Sub btnCerrar_Click () Avsluta slutVi skapade två nya former, för att komma in studenter och för ämnen.
Nu konfigurerar vi knappen för att ange elever:
Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show EndVi konfigurerar också knappen Lägg till ämne:
Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show EndSå vi kommer att tilldela det.
4. Utformning av formuläret för att skriva in studenter
Till att börja med sätter vi en columview och två knappar som vi lägger till den nya texten respektive avslutar (Textegenskap).
Vi kan, om vi vill, lägga till en ikon till varje knapp genom dess bildegenskap. Till columview vi kommer att kalla det helt enkelt "bord" (I fastighetsnamnet) det liknar alla tabeller och vi försöker hålla detta första databasprojekt så enkelt som möjligt.
Vi kommer att kalla knapparna: nyhet Y gå ut.
Formuläret skulle se ut så här:
Vi konfigurerar stängningsknappen i formuläret.
Public Sub btnExit_Click () Me.Close EndNu går vi vidare till kodning.
5. Vi började koda Gambas
Vi ska börja lägga in lite kod i vårt program, och vi kommer att kommentera det. Det första i en databas är anslutningen till den. För detta ger Gambas oss Anslutningsobjekt.
Allt som visas med en enda apostrof i koden är en kommentar som inte kommer att tolkas av programmet.
Exempel:
'Project Test Private hconn As Connection' variabel för att upprätta anslutningen Private Function ConnectBase () As Boolean 'variabel för anslutningen, returnerar ett sant eller falskt värde Om hconn Null Then Return False' kontrollerar vi att anslutningen inte är öppen hconn = Ny Anslutning "Vi initierar anslutningen med den nya metoden och skickar sedan parametrarna med hconn" parameter för databasvägen hconn.Host = " / home / test" hconn.Name = "students" databasnamn hconn.Type = " sqlite3 "'databastyp Testa hconn.Open ()' vi försöker öppna anslutningen om vi inte lyckas skickar vi ett felmeddelande och vi ger det värdet null If Error Then hconn = Null Message.Error (" Det gick inte att ansluta till databasen ") Returnera True Endif Return False EndNär du har kopierat koden ovan klickar du på alternativet Kör från Debug -menyn. Om allt går bra ska inget fel visas och skärmen för vårt projekt visas igen. Vilket innebär att anslutningen till vår databas har gjorts tillfredsställande.
I händelse av ett fel, här är möjliga orsaker:
Orsaker till felLåt oss titta på orsakerna:
1. När du kopierar och klistrar in koden måste du ta hänsyn till citattecken, som ofta ändras vid kopiering och klistring och därför inte känns igen av applikationen. I det här fallet är det lämpligt att radera citattecken och placera dem manuellt. Koden i citaten måste vara i fuchsia för att veta att den är korrekt.
2. Ett annat möjligt fel är att inte ha markerat motsvarande alternativ på fliken Projektegenskaper, som du hittar genom att klicka på projektmenyn, sedan Egenskaper och där på fliken Komponenter, kontrollera att följande alternativ är markerade:
- bg
- gb.db
- gb.db.sqlite3
- gb.form
- gb.db.mysql (Detta borde inte vara nödvändigt för databasen vi gör, men vi markerar det ändå)
3. Ett annat mycket vanligt fel är sökvägen där vi har både projektet och databasen, det är där de markerade raderna finns i koden som ska kopieras och klistras in.
Efter att ha korrigerat eventuella fel och kontrollerat att vår applikation fungerar fortsätter vi att stänga anslutningen genom att placera följande kod i slutet.
PUBLIC SUB stäng anslutning () OM hconn = NULL DÅ RETUR hconn.Close () hconn = NULL ENDFörst ser vi att det inte längre är stängt, om inte stänger vi det med .stänga
6. Visa lagrad data
Vi öppnar formuläret och inom Form process och vi sätter följande kod:
(Glöm inte att kontrollera citaten som när du klistrade in koden kunde ha ändrats).
Public Sub Form_Open () 'först deklarerar vi variablerna och rensar columnview Dim hresul As Result Dim key As String Dim filter As String table Clear If ConnectBase () Then Return' we confirm connection with the database 'definierar vi egenskaperna för columnview 'räkna för antal kolumner' text för titeln på kolumnernas bredd för bredden på kolumnernas inriktning för fälternas inriktning. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Namn" tabell.Kolumner [1] .Alignment = Align.Center tabell.Kolumner [1] .Bredde = 120 tabell.Kolumner [2] .Text = "Efternamn" tabell.Kolumner [2] .Alignment = Align.Center tabell .Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table.Columns [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4]. Text = "Telefon" tabell.Kolumner [4] .Alignment = Align.Center tabell.Kolumner [4] .Bredd = 120 tabell.Kolumner [5] .Text = "Mail" tabell.Kolumner [5] .Alignment = Justera. Centrertabell.Kolumner [5] .Bredd = 120 hresul = hconn.Exec ("välj * från studenter") 'Denna instruktion söker i databasen, om den hittar data gör den hresul -variabeln sann och därför tillgänglig (tillgänglig) Do While hresul .Available 'då går det genom tabellen med en do while loop baserat på nyckeln (Cedula) och fyller tabellen med data. key = hresul ["ID"] 'vi gör ID -fältet som primärt för tabellsökningar. Lägg till (lösenord, lösenord)' vi lägger till data som finns i databasen. tabell [nyckel] [1] = hresul ["namn"] tabell [nyckel] [2] = hresul ["efternamn"] tabell [nyckel] [3] = hresul ["adress"] tabell [nyckel] [4] = hresul ["telefon"] tabell [nyckel] [5] = hresul ["post"] hresul.MoveNext () 'denna instruktion avancerar sökningen till nästa dataslinga' Kör om instruktionerna inuti slingan tills det inte finns fler data som ska visas. CloseConnection () 'stänger anslutningen SlutForm process
I slutet kör vi det och kontrollerar hur det fungerar, vilket ger följande resultat:
FÖRSTORA
7. Skapa formulär för att ange elevdata
Nu ska vi skapa ett nytt formulär som gör att vi kan mata in data för nya studenter, det föreslagna namnet på det är edata.
Det kommer att ha följande objekt: 6 etikettiketter, 6 textrutor och två knappar.
Den föreslagna layouten är följande:
För att se om allt går bra går vi till formuläret som visar studentlistan och konfigurerar den nya knappen enligt följande:
FÖRSTORA
Om det inte finns några fel och allt går bra, låt oss fortsätta med att konfigurera det nyskapade formuläret för att ange nya elevdata. Detta formulär kommer att få en referens till ett objekt av typ förbindelse, i vårat fall hconn därför placerar vi det i början av vår form.
'Gambas klassfil' först konfigurerar vi anslutningen Privat hconn som anslutning 'vi skapar en runnew -metod som kommer att kallas från formuläret som listar elevernas Public Sub runnew (data As Connection) hconn = data' referens för föregående formulär Me. ShowModal () tvingar att interagera med formuläret innan vi stänger det Sluta Vi konfigurerar knappen Avbryt: Public Sub btnCancelar_Click () Me.Close (0) End För att ange nya data kommer vi att använda följande instruktion: TRY hconn.EXEC (“ infoga i mytable -värden (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Fälten anropas av ett ampersand och motsvarande index enligt nedan. (& 1, & 2, & 3, & 4, & 5. & 6)Låt oss gå tillbaka till föregående formulär och konfigurera acceptknappen enligt följande:
FÖRSTORA
Först försöker vi ansluta till vår databas, om vi inte lyckas lämnar vi. När anslutningen uppnåddes ringde vi runnewde fdata -metod. Eftersom det här formuläret visas i modal form väntar den här koden på att vi ska mata in data i fdata eller så stänger vi det helt enkelt.
Den stänger sedan anslutningen och anropar form_open -metoden som laddar om data för att visa ändringarna. Nu ska vi se hur vi gör för att ändra en post, till exempel om en vän byter mobil, bara redigera det fältet.
Vi kommer att dra nytta av den aktiverade händelsen för vår kontroll colunmview (tabell) för att lägga till den här funktionen. Denna händelse utlöses genom att dubbelklicka på vilken kolumn som helst i tabellen.
Public Sub table_Activate () Dim hresul As Result If table.Current = Null Returnera sedan om ConnectBase () Returnera sedan hresul = hconn.Edit ("studenter", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Anropa runeedit -metoden i formuläret edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["förnamn"] table.Current [2] = hresul ["efternamn "] table. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () EndAktivera event
Fet linje är den som kallar edata runedit -metod. Eftersom vi inte har skapat den här metoden ännu, fungerar det inte om vi försöker köra den nu.
Låt oss därför återvända till ålder och låt oss placera följande variabler i början av formuläret så att de är tillgängliga från hela formuläret.
Privat hconn Som anslutning Privat hresul Som resultat Privat redigering som boolskLåt oss sedan skapa den nya metoden som heter runedit:
Public Sub runedit (data som resultat) hresul = dataredigering = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["förnamn"] txtName.Text = hresul ["efternamn"] txtAddress.Text = hresul ["adress"] txtTelephone.Text = hresul ["telefon"] txtEmail.Text = hresul ["mail"] Me.ShowModal EndDetta visar oss edata med data från den valda posten så att vi kan redigera den och sätter variabelredigeringen med värdet true. Detta är nödvändigt för att använda ett villkorligt uttalande när du klickar btna acceptera Skilj mellan nytt och modifiera.
Vi kan testa det även om det fortfarande inte fungerar, det saknas fortfarande Ställ in acceptknappen, men vi kan kontrollera att det tar oss till det begärda formuläret.
Låt oss konfigurera acceptknappen för att spara ändringarna:
Public Sub btnAccept_Click () Om du redigerar Prova sedan hresul ["cedula"] = txtCedula.Text Prova hresul ["names"] = txtNames.Text Prova hresul ["efternamn"] = txtSurname.Text Prova hresul ["address"] = txtAddress .Text Prova hresul ["phone"] = txtTelephone.Text Try hresul ["mail"] = txtEmail.Text Prova hresul.Update Else Try hconn.Exec ("infoga i elevernas värden (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'med detta anger vi den information som skickas Endif Me.Close () Catch Message.Error ("Omöjligt att ange data som skickats") SlutVi kan nu spara ändringarna.
8. Konfigurera datasökning
Låt oss lägga till en sökknapp och en textruta i formuläret. Detta är formulärets nya utseende:
FÖRSTORA
Vi konfigurerar sökknappen på ett liknande sätt som den nya knappen, det här är koden:
Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table.Clear If ConnectBase () Then Return table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0 ] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Names" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 tabell.Kolumner [2] .Text = "Efternamn" tabell.Kolumner [2] .Alignment = Align.Center tabell.Kolumner [2] .Bredd = 120 tabell.Kolumner [3] .Text = "Adress" tabell. Kolumner [3] .Alignment = Align.Center -tabell.Kolumner [3] .Bredd = 120 tabell.Kolumner [4] .Text = "Telefon" -tabell.Kolumner [4] .Alignment = Align.Center -tabell.Kolumner [4] . Width = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align.Center table.Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" välj * bland elever där namn som '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabell [lösenord] [2] = hresul [" efternamn "] tabell [lösenord] [3] = hresul [" adress "] tabell [lösenord] [4] = hresul [" telefon "] tabell [lösenord] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () SlutMed det vi har gjort kan vi redan vara tydliga med processen, nu ska vi göra detsamma med formuläret för ämnena. De föreslagen layout är följande:
Som alltid är det första vi ska programmera exit -knappen:
Public Sub btnExit_Click () Me.Close EndNu gör vi anslutningen till databasen:
Privat hconn som anslutning Privat funktion connectbase () Som Boolean Om hconn Null Returnera sedan Falsk hconn = Ny anslutning hconn.Host = " / home / test" hconn.Name = "students" databasnamn hconn.Type = "sqlite3" 'databas typ Prova hconn.Open () Om fel Då hconn = Nullmeddelande.Error ("Fel vid anslutning av databas") Returnera True Endif Return False EndVi schemalägger evenemanget för att stänga anslutningen:
Public Sub closeConexion () Om hconn = Null Returnera sedan hconn.Close () hconn = Null EndNu visualiserar vi data i columview, i formulärets öppna händelse.
Koden är följande:
Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returnera sedan tabell2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Namnet på ämnet eller kursen" hresul = hconn.Exec ("välj * från ämnen") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () EndNu skapar vi formuläret för att lägga till och / eller redigera data i tabellen, ämnen eller kurser. Det föreslagna namnet är adata. (registrerade).
9. Vi programmerar stängningsknappen
Public Sub btnCerrar_Click () Me.Close EndVi skapar referensen till ett objekt av typanslutning, i vårt fall hconn, därför kommer vi i början av vårt adata -formulär att placera följande kod:
Privat hconn som anslutningDessutom skapar vi den runnew -metod som kommer att kallas från huvudformuläret. Syntaxen är följande:
Public Sub runnew (data As Connection) hconn = data Me.ShowModal () EndNu går vi till formuläret för att ange ämnenas data och i btnnuevo -klickhändelsen placerar vi följande kod:
Public Sub btnNuevo_Click () If connectbase () Returnera sedan adata.runnew (hconn) closeConexion () Form_Open () EndNu kan vi prova ny knapp av nämnda form.
Fortsätter med samma formulär, kodar vi metoden för att ändra poster enligt följande. Vi kommer att dra nytta av vår aktiveringshändelse colunmview -kontroll (tabell) för att lägga till den här funktionen. Denna händelse utlöses genom att dubbelklicka på vilken kolumn som helst i tabellen.
Public Sub table2_Activate () Dim hresul As Result If Table2.Current = Null Returnera sedan if connectbase () Returnera sedan hresul = hconn.Edit ("subject", "id = & 1", table2.Current.Key) adata.runedit ( hresul) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["matter_name"] closeConnection () EndKom ihåg att det inte kommer att fungera förrän vi har skapat den här händelsen i adata -formuläret. Låt oss därför återvända till fdata och låt oss placera följande variabler i början av formuläret så att de är tillgängliga från hela formuläret.
PRIVATE hconn AS Connection PRIVATE hresul AS Resultat PRIVAT redigering som boolskVi skapar runedit -metoden vars kod är följande:
Public Sub runedit (data som resultat) hresul = dataredigering = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal EndKom ihåg att testa för att kontrollera att allt går bra. Nu vi programmerar acceptknappen som följer:
Public Sub btnAceptar_Click () Om du redigerar Försök sedan hresul ["subject_name"] = txtAsignaturas.Text Try hresul.Update Else Try hconn.Exec ("insert into subject_name values (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Det går inte att ange skickade data") AvslutaNu programmerar vi ämnesökningsrutinen:
Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returnera sedan tabell2.Columns.Count = 2 tabell2.Kolumner [0] .Text = "id" tabell2.Kolumner [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Namn på ämnet eller kursen" filter = txtBuscar.Text hresul = hconn.Exec ("välj * från ämnen där ämnesnamn som" "& filter &" ' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () EndVi ska ha det klart.
Slutsatser om räkor
För personer som har gjort en applikation i Visual Basic och är intresserade av att programmera, är detta ett av verktygen som utan tvekan kommer att intressera dig och det är ett klart alternativ som du bör överväga.
Tack vare de tester som vi kan se i denna handledning kan vi se att det är enkelt att arbeta och verkligen det tar inte mycket tid att göra någon annan enkel applikation för Linux.
Som vi kan se är autofyllningen som har räkor begränsad till det objekt du arbetar med, inte som i fallet med Geany, som kan sätta allt på dig. Vi måste ge det poäng eftersom det fungerar som Java och Netbeans och utan ytterligare komplikationer.
Så för dem som vill lära sig att programmera enkla applikationer i Linux och är nyfikna rekommenderar vi att du ger Gambas3 ett försök.