De keuze in de bouwdoos:

Een aantal op het scherm gezet en gevuld met een eenvouidig text veld:
Ziet er zo uit als programma draait:
Volledige beelden onder elkaar: Continue reading
De keuze in de bouwdoos:

Een aantal op het scherm gezet en gevuld met een eenvouidig text veld:
Ziet er zo uit als programma draait:
Volledige beelden onder elkaar: Continue reading
Een tabstrip zit in de Toolbox onder de tab “Container”.
Eens op het werkvlak getekend heeft hij slechts 1 tab: Tab0.
Als je terug naar de Toolbox gaat zoeken om tab-bladen bij te maken vind je dat daar niet.
Als je op het TabStrip rechtsklikt om tab-bladen bij te maken vind je alleen “Move Tab”, niet “Create”
Om tabs bij te maken moet je de “teller” van de tabstrip verhogen:
“Count” staat op 1.
Zet op het gewenste aantal.
Dit kan natuurlijk ook vanuit je programma, bv:
TabStrip1.Count = 3
Daarna kan je de tabbladen aanspreken met
TabStrip1.Index = 2 ' aktief maken van tabblad 2; dwz het derde want er wordt geteld tab0 tab1 tab2.
Een tabblad kan ook verborgen worden:
TabStrip1.Current.Visible = FALSE ' verbergen van een tabblad, hier dus dat derde.
TabStrip1[0].Visible = FALSE ' of bepaal het tabblad met de index
TabStrip1.Hide ' verbergen van heel de tabstrip
Bij de eigenschappen rechts in het ontwerpscherm zie je nog meer mogelijkheden, als een pictogram opnemen enz.
Nieuw formulier FMain, daarop een columnview “cvTwoCols”.
Eerst moeten de dimensies opgegeven worden met Columns.Count.
Dan kunnen de titels ingevuld worden.
Dan kunnen lijnen bijgemaakt worden met een zelfgekozen sleutel waarmee een opvraging kan gebeuren.
Tenslotte kan
– genavigeerd worden met MoveTo,
– een waarde gewijzigd,
– of de waarde in een bij de lijn horende kolom ingevuld worden.
PUBLIC SUB btFillColView_Click()
'
cvTwoCols.Columns.Count = 2
'
cvTwoCols.Columns[0].Text = "code"
cvTwoCols.Columns[0].Width = 50
cvTwoCols.Columns[1].Text = "description"
cvTwoCols.Columns[1].Width = 100
'
cvTwoCols.Add("0", "test1")
cvTwoCols.Add("1", "test2")
'
' and now? How to add something to the second column?
cvTwoCols.MoveTo("0")
cvTwoCols.Current.Text = "Test1"
cvTwoCols.Item[1] = "TestItem"
'
END
update griddemo download/demo/GridDemo/
Uitvoer kan je eenvoudig doen in html-bestanden, die je lokaal schrijft en opent met een browser.
Daarvoor moeten we een bestand openen (een nieuw bestand maken) om in te schrijven, tekst naar het bestand schrijven, en het bestand sluiten.
Maak een module met alle printonderdelen, en met bovenaan
PUBLIC bToPrint AS Boolean
‘
PRIVATE hFile AS File
schrijf een bestand
OPEN sFilename FOR WRITE CREATE AS #hFile
pushHeader(bToPrint)
dat je begint met een kop die zo gemaakt wordt:
( de < en > tekens moeten natuurlijk aansluiten zonder spaties in je code)
PUBLIC SUB pushHeader(bToPrinter AS Boolean)
'
PRINT #hFile, " < html > "
PRINT #hFile, " < head > < title > " & Application.Name & " - by " & User.Name & " < /title > < /head > "
PRINT #hFile, " < body topmargin='0' leftmargin='0' fontsize='1'"
'
IF (bToPrinter) THEN
DEBUG "To printer ..."
PRINT #hFile, " onload='window.print()'"
' only works when java is on
ENDIF
'
PRINT #hFile, " > "
'
END
Daarna stuur je alle gegevenslijnen, eventueel in de vorm van een tabel, en sluit je het af met een “footer”
PUBLIC SUB pushFooter()
'
PRINT #hFile, " < br > < font size='1' > " & "FACS " & Application.Version
PRINT #hFile, " < i > via " & MCommon.sReportDir & " "
PRINT #hFile, "by " & User.Name & "." & System.Host & " at " & CStr(Date(Now())) & " - " & Left$(CStr(Time(Now())), 5)
PRINT #hFile, " < /i > "
PRINT #hFile, " < /font > "
PRINT #hFile, " < /body > "
PRINT #hFile, " < /html > "
'
END
Bestand afsluiten met CLOSE na het vullen:
…
pushTableHeadwSub(sTitle, arrColNames, sSql, arrColTotals)
pushTableLines(resCostcode, arrColTotals)
pushTableFooter()
pushFooter()
‘
CLOSE #hFile
Als de volledige bestandsnaam met het volledige pad in de variabele sFilename zit, bv:
sFilename = “/home/mijnnaam/Documents/ToPrint/test.html”
dan kan je de pagina openen in een browser:
EXEC ["konqueror", sFilename]
EXEC ["firefox", sFilename]
(dit is in de KDE omgeving uitgevoerd – Gnome heeft bv geen konqueror standaard geïnstalleerd)
Ik ben op zoek naar een manier om een redelijk “universeel” inzetbare productselectie te doen op het scherm.
Voorlopig denk ik aan:
Ik drop de testversie voorlopig hier: upload.noxqs.org/ProductSelect
Continue reading
Een uit Foxpro ingevoerde tabel bevat een kolom met “timestamps”; het is een getal dat in Foxpro gebruikt wordt om te kijken in welke volgorde de records gemaakt (of gemanipuleerd) werden; een vergelijking tussen de getallen levert een aantal seconden verschil op. Hoe dit getal bruikbaar maken, bv door het naar een leesbare datum om te zetten?
Bv: het getal : 487768695 zou op het moment van bewaren het het aantal seconden voorstellen dat verstreken is sinds Foxpro’s referentietijd, een soort seconde nul in het begin van 1980.
Seconden naar minuten -> uren -> dagen: getal / (60 x 60 x 24)
Hier komen de Visual Basic Compatibility functies goed van pas. Je moet dan eerst bij Project, Properties, tab Components gb.vb aankruisen!
De component gb.vb bevat maar een paar functies, niet toevallig met datumfuncties, en meer bepaald om tijd bij te tellen of af te trekken van een datum:
DateAdd DateDiff Left Mid Right Round Str Val
DateAdd vereist de aard van wat erbij geteld wordt (dag), bij te tellen getal, begindatum:
vb.DateAdd("d", Round(db.fldTimestamp / (3600 * 24), 0), Date(1980, 1,1)
Ik probeerde het eerst met seconden maar daar moet ik iets gemist hebben, want dat gaf niet het juiste resultaat:
txlbUpdated.Text=Str$(vb.DateAdd("s", db.fldTimestamp, Date(1980, 1,1))
om weer te geven op het scherm in een programma.
Ik heb al een repository gevonden in de gbvalor reeks:
http://download.opensuse.org/repositories/home:/gbvalor/openSUSE_11.1/i586/
Toevoegen in het pakketbeheer (repository) in Yast2: in 1 keer plakken werkte niet (mogelijk vanwege de : in de url) dus opdelen ongeveer zo:
Bevestig de digitale sleutel van dit repository.
Zoeken naar software in Yast:
Zoek : “gambas2”
Een hele lijst met gambas2 onderdelen verschijnt. Klik rechts, select all.
Installeer; bevestig de afhankelijkheden (dependencies).
Resultaat:
Software menu, Development, gambas2 start Gambas 2.14
Update mei 2010:
* Aangezien dit de laatste openSuse versie is met de KDE 3.5 zou je voor deze versie kunnen kiezen, bv door een installatie van een net-install iso die je alsnog afhaalt van de opensuse site.
Als je na installatie in de repositories de “openSuse-Education” repository kiest, krijg je gambas versie 2.13 geïnstalleerd.
* Recenter: gbvalor
Ofwel de gbvalor repository toevoegen die ondertussen gambas versie 2.18 heeft:
http://download.opensuse.org/repositories/home:/gbvalor/openSUSE_11.1
en import de key.
Software management, zoek “gambas2”, de-installeer eventueel oudere versies; selecteer gambas2 nieuwe versie.
Op hierna genoemde site staan enkele gambas projecten; het valt op dat Gambas bv wordt gebruikt als grafische schil om configuratie te doen voor een ander programma.
Gambas komt voor in het software beheer, maar je moet het vinden…
System, KPackage Kit, Software Management; Find: “gambas2”: levert een lijst op van gambas paketten. Daarin komt gambas2 ide voor. Maar helaas krijg ik de software hiermee niet geïnstalleerd; er is geen selectie + “apply” mogelijk.