Bij gelegenheid hebben we de noodzaak om de metadata lijst voor elke tabel in onze database gezien (je weet wel de naam van het veld, het gegevenstype en lengte) voor bijvoorbeeld naar een functie die me in staat stelt te voegen gegevens in een tabel te maken . Het is een goede gewoonte om SQL-statements te schrijven in de broncode voor onze toepassing want het is een dubbele compilatie die ervoor zorgt dat je verliest snelheid van uitvoering, maar dit voorbeeld beschreven kunnen worden genomen om te maken hun commandant functies aan te roepen de opgeslagen procedure manager Voer de gegevens in (in het geval de database manager heeft sp ondersteuning Ms bijvoorbeeld SQL Server, MySQL, etc.).
Broncode geschreven in MS Visual Basic 6.0 aanval op een database Ms Access:
'------------------------------------------------- ---------------------------------------------
'Functie geschreven in MS Visual Basic 6.0 naar de gegevens en metagegevens te lezen
'In elke tabel die wordt doorgegeven als een parameter ...
Publieke functie Auditar_X (tabel As String) Zoals ADODB.Recordset
SQL = "SELECT * FROM" & tabel
cn.CursorLocation = adUseClient
Set rs = cn.Execute (SQL)
September Auditar_X = rs
End Function
'Einde van de functie ...
'------------------------------------------------- ---------------------------------------------
'Functie Functie pistool (pun intended) in te voegen gegevens in de tabel ITEMS ...
Private Sub cmdAceptar_Click ()
On Error GoTo e
ArtTipoDato Dim As String, Art As String
Dim tabel As String, Value As String
ComillasDobles As String Dim
'Chr (10) = ENTER
'Chr (13) = TAB
ComillasDobles = "" ""
Table = "Artikelen"
Waarden = ComillasDobles & vbTab & vbTab & "VALUES ("
Art = "SQL =" & ComillasDobles & vbTab & "INSERT INTO" & tabel & "("
Als Me.ListView1.ListItems (1). Vervolgens geselecteerd
frmCatDocumentos.Show 1
End If
Als Me.ListView1.ListItems (2). Vervolgens geselecteerd
'MsgBox "Kardex"
Dim i As Integer
Set rs = Me.Auditar_X (tabel)
Me.List1.Clear
ArtTipoDato = "Public Sub invoegen" & tabel & "("
Voor i = 0 Om rs.Fields.Count
'Me.List1.AddItem rs.Fields (i) Naam en. "-" & TypeName (rs.Fields (i)-waarde.) & "-" & Rs.Fields (i) DefinedSize.
Me.List1.AddItem rs.Fields (i).Naam & "As" & TypeName (rs.Fields (i). Value) & ""
ArtTipoDato = ArtTipoDato & rs.Fields (i). Naam & "As" & TypeName (rs.Fields (i). Value) & ""
Kunst = Kunst & rs.Fields (i). Naam & ""
Als ucase (TypeName (rs.Fields (i). Value)) = "string" Dan
Waarden = waarden & "'" & ComillasDobles & "&" & rs.Fields (i). Naam & "&" & ComillasDobles & "'"
End If
Als ucase (TypeName (rs.Fields (i). Value)) = "DATE" Dan
Waarden = waarden & "#" & ComillasDobles & "&" & rs.Fields (i).Naam & "&" & ComillasDobles & "#,"
'Waarden = waarden & "#" & rs.Fields (i). Naam & "#,"
End If
Als ucase (TypeName (rs.Fields (i). Value)) = "long" of ucase (TypeName (rs.Fields (i). Value)) = "DOUBLE" Dan
Waarden = waarden & "" & ComillasDobles & "&" & rs.Fields (i). Naam & "&" & ComillasDobles & ""
'Waarden = waarden & "" & rs.Fields (i). Naam & ", &"
End If
'MsgBox rs.Fields (i). Naam
'MsgBox rs.Fields (i). Prijs
'MsgBox TypeName (rs.Fields (i). Value)
Vervolgens heb ik
End If
'MsgBox ArtTipoDato
ArtTipoDato = Left (ArtTipoDato, Len (ArtTipoDato) - 1)
ArtTipoDato = ArtTipoDato & ")"
Art = Left (Kunst, Len (kunst) - 1)
Kunst = Kunst & ")" & ComillasDobles & "& _"
Waarden = Links (Waarde, Len (Waarden) - 1)
Waarden = waarden & ")"
Me.lb.Caption = ArtTipoDato & Art & Waarden
Waarden = waarden & "Set rs = cn.Execute (SQL)"
Waarden = waarden & "End Sub"
Me.Te.Text = ArtTipoDato & Chr (13) & Art & Chr (13) & Waarden
Als Me.ListView1.ListItems (3). Vervolgens geselecteerd
frmCatArticulos.Show 1
End If
Als Me.ListView1.ListItems (4). Vervolgens geselecteerd
MsgBox "Exit"
End If
e:
Resume Next
End Sub
'------------------------------------------------- ---------------------------------------------
'Dit is de functie die liep de vorige code ...
Public Sub InsertarARTICULOS (ARTIKEL As String, BESCHRIJVING As String,
VERKOPER As String, UMP_C As String, UMP_V As String,
FACTOR_CONVER As Long, COSTO_UMC As Double, COSTO_UMV As Double,
PRECIO_V As String, ACTIVA As String, USR_CREACION As String,
FECHA_HORA_CREACION als datum, USR_MODIFICACION As String,
FECHA_HORA_MODIFICACION Zoals Datum)
SQL = "INSERT INTO PUNTEN (artikelen, recensies, LEVERANCIER
UMP_C, UMP_V, FACTOR_CONVER, COSTO_UMC, COSTO_UMV, PRECIO_V,
ACTIEVE USR_CREACION, FECHA_HORA_CREACION, USR_MODIFICACION,
FECHA_HORA_MODIFICACION) "& _
"VALUES ('" & AFDELING & "','" & beschrijving & "','" & LEVERANCIER
& & "','" UMP_C & "','" & UMP_V & "'," & FACTOR_CONVER & ""
& COSTO_UMC & "" & COSTO_UMV & "'" & PRECIO_V & "','" & ACTIEF
& & "','" USR_CREACION & "',#" & FECHA_HORA_CREACION & "#,'"
& & USR_MODIFICACION "',#" & FECHA_HORA_MODIFICACION & "#)"
Set rs = cn.Execute (SQL)
End Sub
'Einde van de functie ...
'------------------------------------------------- ---------------------------------------------
Nu bent u klaar om te worden toegevoegd InsertarARTICULOS functie en bellen vanaf elke locatie in het programma. Tiep veel leidde ons naar de minuten te verkrijgen van de functie InsertarARTICULOS SECONDEN Ik zou zeggen dat, en hoe lang het zou duren om het te schrijven op de voet, wat zou ik zeggen .....
Bij gelegenheid hebben we de noodzaak om de metadata lijst voor elke tabel in onze database gezien (je weet wel de naam van het veld, het gegevenstype en lengte) voor bijvoorbeeld naar een functie die me in staat stelt te voegen gegevens in een tabel te maken . Het is een goede gewoonte om SQL-statements te schrijven in de broncode voor onze toepassing want het is een dubbele compilatie die ervoor zorgt dat je verliest snelheid van uitvoering, maar dit voorbeeld beschreven kunnen worden genomen om te maken hun commandant functies aan te roepen de opgeslagen procedure manager Voer de gegevens in (in het geval de database manager heeft sp ondersteuning Ms bijvoorbeeld SQL Server, MySQL, etc.).
Broncode geschreven in MS Visual Basic 6.0 aanval op een database Ms Access:
'------------------------------------------------- ---------------------------------------------
'Functie geschreven in MS Visual Basic 6.0 naar de gegevens en metagegevens te lezen
'In elke tabel die wordt doorgegeven als een parameter ...
Publieke functie Auditar_X (tabel As String) Zoals ADODB.Recordset
SQL = "SELECT * FROM" & tabel
cn.CursorLocation = adUseClient
Set rs = cn.Execute (SQL)
September Auditar_X = rs
End Function
'Einde van de functie ...
'------------------------------------------------- ---------------------------------------------
'Functie Functie pistool (pun intended) in te voegen gegevens in de tabel ITEMS ...
Private Sub cmdAceptar_Click ()
On Error GoTo e
ArtTipoDato Dim As String, Art As String
Dim tabel As String, Value As String
ComillasDobles As String Dim
'Chr (10) = ENTER
'Chr (13) = TAB
ComillasDobles = "" ""
Table = "Artikelen"
Waarden = ComillasDobles & vbTab & vbTab & "VALUES ("
Art = "SQL =" & ComillasDobles & vbTab & "INSERT INTO" & tabel & "("
Als Me.ListView1.ListItems (1). Vervolgens geselecteerd
frmCatDocumentos.Show 1
End If
Als Me.ListView1.ListItems (2). Vervolgens geselecteerd
'MsgBox "Kardex"
Dim i As Integer
Set rs = Me.Auditar_X (tabel)
Me.List1.Clear
ArtTipoDato = "Public Sub invoegen" & tabel & "("
Voor i = 0 Om rs.Fields.Count
'Me.List1.AddItem rs.Fields (i) Naam en. "-" & TypeName (rs.Fields (i)-waarde.) & "-" & Rs.Fields (i) DefinedSize.
Me.List1.AddItem rs.Fields (i).Naam & "As" & TypeName (rs.Fields (i). Value) & ""
ArtTipoDato = ArtTipoDato & rs.Fields (i). Naam & "As" & TypeName (rs.Fields (i). Value) & ""
Kunst = Kunst & rs.Fields (i). Naam & ""
Als ucase (TypeName (rs.Fields (i). Value)) = "string" Dan
Waarden = waarden & "'" & ComillasDobles & "&" & rs.Fields (i). Naam & "&" & ComillasDobles & "'"
End If
Als ucase (TypeName (rs.Fields (i). Value)) = "DATE" Dan
Waarden = waarden & "#" & ComillasDobles & "&" & rs.Fields (i).Naam & "&" & ComillasDobles & "#,"
'Waarden = waarden & "#" & rs.Fields (i). Naam & "#,"
End If
Als ucase (TypeName (rs.Fields (i). Value)) = "long" of ucase (TypeName (rs.Fields (i). Value)) = "DOUBLE" Dan
Waarden = waarden & "" & ComillasDobles & "&" & rs.Fields (i). Naam & "&" & ComillasDobles & ""
'Waarden = waarden & "" & rs.Fields (i). Naam & ", &"
End If
'MsgBox rs.Fields (i). Naam
'MsgBox rs.Fields (i). Prijs
'MsgBox TypeName (rs.Fields (i). Value)
Vervolgens heb ik
End If
'MsgBox ArtTipoDato
ArtTipoDato = Left (ArtTipoDato, Len (ArtTipoDato) - 1)
ArtTipoDato = ArtTipoDato & ")"
Art = Left (Kunst, Len (kunst) - 1)
Kunst = Kunst & ")" & ComillasDobles & "& _"
Waarden = Links (Waarde, Len (Waarden) - 1)
Waarden = waarden & ")"
Me.lb.Caption = ArtTipoDato & Art & Waarden
Waarden = waarden & "Set rs = cn.Execute (SQL)"
Waarden = waarden & "End Sub"
Me.Te.Text = ArtTipoDato & Chr (13) & Art & Chr (13) & Waarden
Als Me.ListView1.ListItems (3). Vervolgens geselecteerd
frmCatArticulos.Show 1
End If
Als Me.ListView1.ListItems (4). Vervolgens geselecteerd
MsgBox "Exit"
End If
e:
Resume Next
End Sub
'------------------------------------------------- ---------------------------------------------
'Dit is de functie die liep de vorige code ...
Public Sub InsertarARTICULOS (ARTIKEL As String, BESCHRIJVING As String,
VERKOPER As String, UMP_C As String, UMP_V As String,
FACTOR_CONVER As Long, COSTO_UMC As Double, COSTO_UMV As Double,
PRECIO_V As String, ACTIVA As String, USR_CREACION As String,
FECHA_HORA_CREACION als datum, USR_MODIFICACION As String,
FECHA_HORA_MODIFICACION Zoals Datum)
SQL = "INSERT INTO PUNTEN (artikelen, recensies, LEVERANCIER
UMP_C, UMP_V, FACTOR_CONVER, COSTO_UMC, COSTO_UMV, PRECIO_V,
ACTIEVE USR_CREACION, FECHA_HORA_CREACION, USR_MODIFICACION,
FECHA_HORA_MODIFICACION) "& _
"VALUES ('" & AFDELING & "','" & beschrijving & "','" & LEVERANCIER
& & "','" UMP_C & "','" & UMP_V & "'," & FACTOR_CONVER & ""
& COSTO_UMC & "" & COSTO_UMV & "'" & PRECIO_V & "','" & ACTIEF
& & "','" USR_CREACION & "',#" & FECHA_HORA_CREACION & "#,'"
& & USR_MODIFICACION "',#" & FECHA_HORA_MODIFICACION & "#)"
Set rs = cn.Execute (SQL)
End Sub
'Einde van de functie ...
'------------------------------------------------- ---------------------------------------------
Nu bent u klaar om te worden toegevoegd InsertarARTICULOS functie en bellen vanaf elke locatie in het programma. Tiep veel leidde ons naar de minuten te verkrijgen van de functie InsertarARTICULOS SECONDEN Ik zou zeggen dat, en hoe lang het zou duren om het te schrijven op de voet, wat zou ik zeggen .....
In de afgelopen 35 jaar, van computer hardware ontwerpers hebben bedrijven zijn het ontwerpen van grote apparatuur om laptops op basis van microprocessors.
In dezelfde periode, ontwikkelaars hebben software gegaan van het schrijven in assembler programma's te schrijven in C of C + +. Duidelijk wereld van software-ontwikkeling is het niet vordert zo snel als de hardware wereld. Dus de belangrijke vraag hier is, wat zijn de hardware-ontwerpers en software-ontwikkelaars niet?
Het antwoord op deze vraag ligt in de manier van werken hardware-ontwerpers, die ze gebruiken componenten en systemen ontwikkeld om de hardware vormen hun.
Het hergebruik van onderdelen is ook een methode om software te maken beter.Vandaag software-ontwikkelaars beginnen vanaf nul en volg dezelfde stappen dat veel programmeurs in het verleden geleid. De creatie van nieuwe systemen uit bestaande componenten die al zijn getest, altijd de neiging om meer betrouwbare code. Bovendien heeft zij bewezen sneller en goedkoper.
Tussen 1970 en 1990, analisten ontwikkelde software en object-georiënteerde aanpak voor het jaar 1994 had meer dan 50 methoden van objecten. Echter, slechts 3 bereikt populariteit methoden:
In 1994, Rumbaugh, Booch en Jacobson in 1995 hun krachten gebundeld om methoden te ontwikkelen de definitie taal UML (Unified Modeling Language), standaard die definieert een taal door het opnemen van de voordelen van verschillende vorige.
Vandaag object-georiënteerd programmeren is niet alleen beïnvloed programmeertalen, maar ook in de analyse en het ontwerp van een bepaald systeem, met inbegrip van base management systemen zijn object-georiënteerde gegevens zoals PostgreSQL (open source DBMS-georiënteerde objecten).
Al deze vorderingen heeft deze techniek is te wijten aan de brede mogelijkheden en voordelen van het gestructureerd programmeren tegen.
Een aantal voordelen dat de programmering hebben deze manier van:
1. Bevordert het hergebruik van code en uitbreiding.
2. Hiermee kunt u systemen te creëren ingewikkelder.
3. Erin slaagt om de echte wereld betrekking hebben.
4. Faciliteert de ontwikkeling van visuele programma's.
5. Prototyping
6. Stroomlijnt de ontwikkeling van software
7.Vergemakkelijkt teamwerk
8. Aanzienlijk vereenvoudigt onderhoud van de software
Vervolgens toont een lijst van talen object-georiënteerd programmeren:
Veel van deze programmeertalen zijn niet louter object-georiënteerd, maar zijn hybriden die te combineren
Net als C + + andere talen, zoals OOCOBOL , OOLISP , OOPROLOG enObject REXX , zijn gecreëerd door het toevoegen van uitbreidingen van object-georiënteerde programmeertaal klassieker.
Nou, niet alleen Java-mens leeft. Af en toe heb ik mee te werken. NET voor een aantal specifieke projecten en zodra ik iets gevonden waardoor ik sommige hoofdpijn met de Visual Studio 2005. Deze tool zorgt voor een console waar ze de debug gegevens, die kan worden uitgeschakeld in de opties, maar het is meestal nuttig dump. Het nadeel van dit instrument is dat het kan schoon dat de console met de opdracht Console.Clear (), blijkbaar deze volgorde niet direct van toepassing op het raam.
In dit project was om bepaalde informatie toen hij gedwongen werd in de debug-modus, zodat ik naar een oplossing te vinden. De meest snelle en vuile (quick and dirty), dat ik kreeg was dit:
Maak een klasse die de volgende code bevat:
using System; met behulp van System.Runtime.InteropServices; nsClearConsole naamruimte {/ / / / / / Beknopte beschrijving voor ClearConsole. / / /
public class {private const int ClearConsole STD_OUTPUT_HANDLE = -11;Private Const byte LEEG = 32; [StructLayout (LayoutKind.Sequential)] struct COORD {publieke korte x; publieke korte y;} [StructLayout (LayoutKind.Sequential)] struct {publieke korte Links SMALL_RECT; publieke korte Top, openbare korte Rechts; openbare korte Bottom;} [StructLayout (LayoutKind.Sequential)] struct {openbare COORD dwSize CONSOLE_SCREEN_BUFFER_INFO; openbare dwCursorPosition COORD; public int wAttributes; openbare srWindow SMALL_RECT; openbare dwMaximumWindowSize COORD;} [DllImport ("kernel32.dll", entrypoint = "GetStdHandle ", = SetLastError waar, Charset = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int GetStdHandle (int nStdHandle) [DllImport (" kernel32.dll ", entrypoint =" FillConsoleOutputCharacter ", SetLastError = true, charset = karakterset.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int FillConsoleOutputCharacter (int hConsoleOutput, cCharacter byte, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten) [DllImport ("kernel32.dll", entrypoint = "GetConsoleScreenBufferInfo", SetLastError = true , charset = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int GetConsoleScreenBufferInfo (int hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo) [DllImport ("kernel32.dll", entrypoint = "SetConsoleCursorPosition", SetLastError = true, charset = Tekenset . Auto, CallingConvention = CallingConvention.StdCall)] private static extern int SetConsoleCursorPosition (int hConsoleOutput, COORD dwCursorPosition) private int hConsoleHandle; openbare ClearConsole () {/ / / / TODO: Voeg hier constructor logica. / / HConsoleHandle = GetStdHandle (STD_OUTPUT_HANDLE);} public void clear () {int hWrittenChars = 0; CONSOLE_SCREEN_BUFFER_INFO CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new ();COORD Home; Home.x = Home.y = 0; GetConsoleScreenBufferInfo (hConsoleHandle, ref strConsoleInfo) FillConsoleOutputCharacter (hConsoleHandle, leeg, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, ref hWrittenChars) SetConsoleCursorPosition (hConsoleHandle, Home );}}} Later in het gedeelte waar we nodig hebben om het reinigen van de console moet het volgende fragment, waarin een instantie van de klasse creëert roepen en dan bellen ClearConsole Clear methode die uiteindelijk is het reinigen van de console.
ClearConsole ClearConsole cs = new (); cs.Clear ();
Ten slotte, omdat in het begin gezegd dat deze hack niet onmiddellijk Console toepassing met ingang van Visual Studio 2005, hebben we te vertellen een console programma dat in MS DOS loopt voor de hack het werk:
# Als DEBUG ConsoleEx.AllocConsole (); # endif
Dit moet worden in de vorm of de klasse-code start van het project ontwikkelen we. Ten slotte moet ook de klasse toe te wijzen of release van de console.Dus in een klasse op zich moeten stellen de volgende code:
using System; met behulp van System.Runtime.InteropServices; public static class ConsoleEx {[DllImport ("kernel32.dll"] public static extern Boolean AllocConsole (); [DllImport ("kernel32.dll")] public static extern Boolean FreeConsole () ;} Tegen die tijd genoeg te hebben van een MS-DOS-console voor debugging tijd dat we schoon te maken. Dus hier is in het geval iemand het nodig heeft. Het voorbeeld is in C # maar ik neem aan dat die vloeiend in Visual Basic. NET kan aanpassen. De oplossing werd genomen in het kader van de volgende Microsoft-KB .
In het begin van 2001, het bedrijf Ximian door de hand van Miguel de Icaza (Mexicaanse gratis software-ontwikkelaar. Onder zijn bijdragen is het fundament van het GNOME-project, de bestuurder bestand of de bestanden Midnight Commander, Gnumeric, de Bonobo component model ) drijft de Mono-project als een open source implementatie van Microsoft en ECMA plataforma.Net standaard. Het doel was om Linux een gratis software platform voor het vergemakkelijken van de ontwikkeling van toepassingen.
In januari 2003, Novell koopt Ximian en geeft zijn steun aan Miguel de Icaza te gaan met de Mono-project, op dit ogenblik ongeveer 20 ingenieurs van Novell en hebben geholpen meer dan 300 vrijwilligers.
C # is een onderdeel van het platform.Netto-pakketten die make-up de verdeling van de Mono-platform heeft een C # compiler, een virtuele machine (die het mogelijk maakt het uitvoeren van applicaties), en een set van klasse bibliotheken die duizenden functies.
Mono applicaties kunnen worden geschreven in meerdere programmeertalen, waaronder waaronder Python, Object Pascal, Nermele, en C #. Zodra schriftelijke verzoeken worden vertaald in CIL (Common Intermediate Language), dat is een tussenproduct taal is niet specifiek voor een architectuur. Eens gecompileerd in CIL uitvoering vertaalt de specifieke taal van de uiteindelijke architectuur die zal worden uitgevoerd. Dit systeem kan verspreiden een binair programma voor alle platforms in plaats van een specifiek programma voor elk platform. Mono biedt nu de tools te bouwen applicaties voor Linux, Solaris, Windows, Mac / OS, en IBM mainframes. In tegenstelling tot traditionele programma's die draaien op het systeem direct de Mono-platform programma's die op de uitvoering van een gecontroleerde omgeving bekend als Virtual Machine
Mono biedt de nodige functies voor web services technologie die XML, SOAP, ASP.NET en Remoting en toegang tot databases door middel bevat ADO.NET, type Oracle, MySQL, DB2, SQL Server te creëren, of vooruitgang. Met deze bibliotheken kunnen uitvoeren Windows of diensten die zijn ontwikkeld in onze eigen schriftelijk te kunnen Apache web server te gebruiken. Voor de ontwikkeling van gebruikersinterfaces voor client-toepassingen zijn meerdere opties. Aan de ene kant biedt een open source implementatie van System.Windows.Forms (de optie die door Microsoft) om de ontwikkelingen in het platform. Net op Windows kan draaien op andere platformen zoals Linux of Mac OS. GTK # voorziet ook in een bibliotheek die alle functionaliteit van de grafische omgeving Gnome, dat cross-platform applicaties kan blootstelt.
Ik persoonlijk adviseren twee IDE is gratis te werken met Mono:
Op een bepaald punt in ons leven als ontwikkelaars van desktop applicaties die we hebben gezien de noodzaak van het verzamelen van informatie over de tabbladen (Ms SSTab Control Visual Basic 6.0), maar we hadden enige moeite aan of uit (we hebben tabblad door tab), door Daarom opnieuw deze situatie te vermijden, zijn hier een functie type in MS Visual Basic 6.0 die het mogelijk maakt in-of uitschakelen tabbladen SSTab controle.
Deze functie heet Activar_Desactivar_Pestanas, en ontvangt als parameters mee te nemen (voor het activeren van tabbladen) of False (uit te schakelen tabbladen) en de naam van het tabblad controle.
Public Sub Activar_Desactivar_Pestanas (Enable As Boolean, Pestana Zoals SSTab)
Voor i = 0 Om Pestana.Tabs - 1
Als Inschakelen dan
Pestana.TabEnabled (i) = True
Anders
Pestana.TabEnabled (i) = False
End If
Volgende
End Sub
Als een programmeur een applicatie (desktop of web) moet denken aan de eindgebruiker ontwikkelt, is het gewend om bepaalde vensters (interface), een vorm van werk (bijvoorbeeld accountants op de ENTER veel meer dan de muis te gebruiken) dan is de reden is dat het moet enkele functies die de eindgebruikers gewend zijn.
In Microsoft Excel 2003, dan zien we het volgende venster XXX die aangeeft wanneer u de rechter muisknop drukt / Plaats de naam van een werkblad. Dus in dit voorbeeld, ik gesimuleerd dit venster.
Dit voorbeeld maakt deel uit van een databank systeem. Het idee is dat de gebruiker kan kiezen: DOC. ANDERE (om te werken met documenten), Kardex of item master (voor onze eigen data-items), eenmaal gekozen (de beweging van een voorwerp te zien), drukt u op de knop OK.
In dit voorbeeld maakt gebruik van Microsoft Visual Basic 6.0 programmeertaal en vooral de volgende controles:
1 ListView (voor het weergeven van afbeeldingen.)
1 afbeeldingslijst (voor beeldopslag).
BRON CODE VOOR HET INVULLEN ListView
Private Sub Form_Load ()
Dim Zoals kolomnaam column_header
Zoals listitem Dim list_item
Value = ""
Land = ""
'Maak de kolomkoppen.
Column_header = ListView1 september. _
ColumnHeaders.Add (,, "Abbrev", _
Textwidth ("andere documenten"))
Column_header = ListView1 september. _
ColumnHeaders.Add (,, "Titel", _
Textwidth (KARDEX "))
Column_header = ListView1 september. _
ColumnHeaders.Add (,, "ISBN", _
Textwidth ("Master of artikel"))
Column_header = ListView1 september. _
ColumnHeaders.Add (,, "ISBN", _
Textwidth ("EXIT"))
ListView1.Icons = imgLarge
September ListView1.ListItems.Add list_item = (,, 'DOC. DIVERSE)
list_item.Icon = 1
list_item.SmallIcon = 1
list_item.SubItems (1) = "Ready-to-Run Visual Basic Algorithms"
list_item.SubItems (2) = "0-471-24268-3"
September ListView1.ListItems.Add list_item = (,, "KARDEX)
list_item.Icon = 2
list_item.SmallIcon = 2
list_item.SubItems (1) = "Visual Basic Graphics Programming"
list_item.SubItems (2) = "0-471-15533-0"
September ListView1.ListItems.Add list_item = (,, "Item Master")
list_item.Icon = 3
list_item.SmallIcon = 3
list_item.SubItems (1) = "Custom Controls"
list_item.SubItems (2) = "0-471-24267-5"
September ListView1.ListItems.Add list_item = (,, "EXIT")
list_item.Icon = 4
list_item.SmallIcon = 4
list_item.SubItems (1) = "Geavanceerde Visual"
list_item.SubItems (2) = "0-471-18881-6"
End Sub
Broncode voor de item omlaag ListView
Private Sub cmdAceptar_Click ()
On Error GoTo e
Als Me.ListView1.ListItems (3). Vervolgens geselecteerd
frmCatArticulos.Show 1
End If
'......
e:
Resume Next
End Sub
Het idee in dit artikel is te laten zien hoe clausule bouwen van een dynamisch en waar, dus als je) hebben een formulier met 2 tekstvakken (NoCliente, clientname) en een command-toets om op te filteren (om te selecteren uitvoeren van de query, dan als gebruiker getypte iets in een van de vakken in het 'Waar enige verandering te vragen voor een veld als hij schreef in beide tekstvakken in de' Waar is dan gevraagd door beide kampen.
Filter = ""
Als. TxtNoCliente.Text <> "" Then
Filter = "client =" &. TxtNoCliente.Text
End If
Als. TxtNombre.Text <> "" Then
Als Filter <> "" Then
Filter = Filter & "en naam als '" &. TxtNombre.Text & "%'"
Anders
Filter = Filter & "naam als '" &. TxtNombre.Text & "%'"
End If
End If
End With
'Verzenden naar query uit te voeren van de
End Sub
Dit voorbeeld is bijvoorbeeld handig wanneer de wil om de cellen die in een kolom te zoeken naar een bijzondere gegevens, optellen of aftrekken waarden te bezoeken.
Deze functie is SumarSubTotales naam) geeft een dubbele waarde (het resultaat van de som, ontvangt 2 parameters (de naam van een Flex die deze kolom wordt de reis en een aantal (col geeft), die is dat worden toegevoegd aan.
Met flex
i = 2 tot. voor rijen - 1
SUBT = SUBT + TextMatrix. (-. Rijen i, col)
Vervolgens heb ik
End With
SumarSubTotales = Ronde (SUBT, 2)
End Function
Deze klasse heeft zijn vriend Armando Alaniz. Is een klasse verschil tussen twee datums en heel expliciet in hun gebruik per se te berekenen. Dan is de code:
import java.util.Calendar;
import java.util.Date;
/ **
* @ Author Armando J. Alaniz Aragon
* @ Sinds 20090312
* @ Versie 1.0
* /
Dateutil {openbare laatste klasse
public static definitieve int jaar = 0;
public static int laatste maand = 1;
private static int getDateDiffInYears (Datum startdatum, Datum endDate) {
getDateDiffInMonths terugkeer (startdatum, endDate) / 12;
}
private static int getDateDiffInMonths (Datum startdatum, Datum endDate) {
StartCal agenda = Calendar.getInstance ();
EndCal agenda = Calendar.getInstance ();
StartY int = -1, startMonth = -1;
endYear int = -1, endMonth = -1;
int maanden = 0;
int factor = 1;
if (startDate.after (endDate)) {
factor = -1;
startCal.setTime (endDate);
endCal.setTime (startdatum);
Else {}
startCal.setTime (startdatum);
endCal.setTime (endDate);
}
StartY = startCal.get (Calendar.YEAR)
startMonth = startCal.get (Calendar.MONTH) + 1;
endYear = endCal.get (Calendar.YEAR)
endMonth = endCal.get (Calendar.MONTH) + 1;
if (StartY == endYear) {
maanden = endMonth - startMonth;
Else {}
maanden = 12 - startMonth;
maanden + = endMonth;
- EndYear;
if (endYear - StartY> 0) {
maanden + = (endYear - StartY) * 12;
}
}
maanden *= factor;
rendement maanden;
}
public static int getDateDiff (int veld, Datum startdatum, Datum endDate) {
if (gebied == JAAR) {
getDateDiffInYears terugkeer (startdatum, endDate);
} Else if (veld == MAAND) {
getDateDiffInMonths terugkeer (startdatum, endDate);
Else {}
return 0;
}
}
}