Laden...
M
mrennen myCSharp.de - Member
Softwareentwickler Duisburg Dabei seit 23.09.2008 166 Beiträge
Benutzerbeschreibung

Forenbeiträge von mrennen Ingesamt 166 Beiträge

21.08.2009 - 10:45 Uhr

Hier im Betrieb gibt es bestimmte Richtlinien an die ich mich leider halten muss 😦 und da ist das nicht vorgesehen ...

Ich hatte das schon angesprochen aber ist halt nicht gewollt

TrueCrypt verschlüsselt auch die gesamte Festplatte ?

21.08.2009 - 10:32 Uhr

Hallo,

hier ist heute folgende Frage aufgekommen:

Ist es möglich den Quellcode der Entwicklungsrechner dermaßen zu schützen dass sogar ein evtl. Diebstahl eines Rechners den Dieb nicht ran lässt ?

Hintergrund ist dass in der vorherigen Entwicklungssprache (MAGIC) von der Entwicklungsumgebung ein Login nötig war um an den Quellcode zu kommen.

Gibt es etwas ähnliches unter Visual Studio 2008 oder ein externes Programm in welchem der Quellcode gespeichert wird (verschlüsselt) ???

Danke schonmal

Michael

12.07.2009 - 15:40 Uhr

Hallo, da bin ich wieder mit einem, ich denke großen Problem ...

Ich habe eine Datenbank unter MSSQL 2005 samt eingerichtetem Volltextbereich.

Jetzt gibt es ein Suchprogramm in welchem der User vorab die unterschiedlichsten Kriterien bestimmen kann um Datensätze auszulesen.

Jetzt ist es gewünscht über ein Textfeld eine Suche auf insgesamt 5 Beschreibungsfelder zu definieren. Hierfür dient die SQL Volltextsuche.

Jetzt zu meinem Problem:

Ich kann natürlich über WHERE CONTAINS(*, @Suchtext) eine Anfrage machen - funktioniert auch sehr gut.

Aber: WHERE CONTAINS(*, 'Muster') liefert mir auch Datensätze mit Musterverträge, usw. zurück was nicht gewünscht ist.

Weiterhin sollen folgende Funktionen möglich sein:

AND, AND NOT, OR, NEAR, SOUNDEX, =, über alle DB-Felder, einzelne DB-Felder wählbar, Beginnt mit, Beinhaltet, Endet mit, ...

Wie kriege ich das alles unter einen Hut ? Der Benutzer hat ja nur ein Suchfeld und direkt SQL da eintippen ??? Das kann und will ich den Usern nicht zumuten (darf ich auch nicht)

Hat jemand so etwas schon einmal gebaut und kann mir den einen oder anderen Tipp geben ?

Danke und Gruß aus Duisburg

Michael

Achja: Ich habe in der Applikation hier ein spezifisches "Zugriffsmodell". Heisst ich übergebe die Parameter der Form an eine Access.cs welche das SQL Script erstellt und dann die Daten abruft, bzw. anschließend an ein Grid zurück gibt.

LINQ oder direkte DB Zugriffe aus der Form gibt es nicht. Ich muss also aus den Eingangsparametern ein SQL Script basteln ...

08.07.2009 - 11:26 Uhr

Autsch 8o

Da hab ich den Wald vor lauter Bäumen nicht gesehen

1000 Dank

Michael

08.07.2009 - 11:14 Uhr

Hallo mal wieder,

ich habe hier folgendes Problem:

Ich habe einen String welchen ich an ein anderes Programm übergebe. Evtl. darin enthaltene Zeichen (+ und -) möchte ich gerne umwandeln. An für sich ganz einfach via Replace.

Nur macht er das einfach nicht obwohl er die Anweisung durchläuft.

Beschreibung.ToString().Replace("+", " AND ");
Beschreibung.ToString().Replace("+", " & ");

Hat jemand eine Idee ? Bei anderen Anweisungen (mit anderen Zeichen funktioniert es).

Danke

Michael

22.05.2009 - 09:06 Uhr

Hallo und Danke für die schnelle Antwort.

Habe es eben probehalber mit einem Programm (bei mehreren Feldern mal von enabled = false auf ReadOnly = true) probiert.

Der Effekt ist auch hier leider identisch - sind die Felder nicht begehbar, änderbar greift das RightToLeft einfach nicht.

Evtl. noch andere Ideen ?

22.05.2009 - 08:41 Uhr

Hallo mal wieder. Heute habe ich ein etwas anderes Problem. Ich habe diverse decimal-Felder und möchte diese rechtsbündig darstellen. Alles in allem natürlich kein Problem.

Aber jetzt kommts. Da die Fehler im "Ansichtmodus" auf Enabled = false stehen und nur bei Änderung auf Enabled = true gestellt werden, funktioniert das leider auch mit der rechtsbündigen Anzeige nur im Ändern-Modus.

Also trotz entsprechender Feldformatierung:

Enabled = false -> steht auf linksbündig
Enabled = true -> steht auf rechtsbündig wie gewünscht

Kennt da einer nen Kniff ?

Danke und Gruß

Michael

13.05.2009 - 13:39 Uhr

BOING 🤔

Manchmal sieht man den Wald vor Bäumen nicht ...

Lösung ist ein Regex (Maskentyp Numeric - Regex n3)

Löst alle Probleme auf einen Schlag, lediglich manuelles Abfangen von zu großen Zahlen ist notwendig gewesen

Danke für alle Antworten und Ratschläge

Michael

12.05.2009 - 14:36 Uhr

Hallo herbivore,

Danke schonmal für den Tipp mit den Fragezeichen. Einen Regex-Tester nutze ich hier (Eingebettet in DevExpress).

Leider bringt mich das mit den Fragezeichen nicht wirklich weiter (obwohl schonmal sehr gut zu wissen)

Selbst wenn ich die weiter vorne im Regex anbringe schaffe ich es noch immer nicht das er mir automatisch beim Erreichen von 6 Vorkommastellen an die 3. Stelle einen Punkt setzt - entsprechend dann bei 9 Vorkommastellen an die 3. und die 6. einen Punkt...

Trotzdem muss auch die Eingabe von 0,001 über den Tastaturblock möglich sein ohne 9x vorher die 0 einzugeben

So langsam werde ich aber das Gefühl nicht los das Regex hier der falsche Weg ist ...

12.05.2009 - 13:39 Uhr

Sry hat etwas gedauert (Inetprobleme)

Folgender Regex macht fast was ich will:

[0-9]{1,3}(.[0-9]{3})(.[0-9]{3}) <- ohne Nachkommastellen - funktioniert einwandfrei

[0-9]{1,3}(.[0-9]{3})(.[0-9]{3})(,[0-9]{3}) <- Mit Nachkommastellen - Murks 😦

12.05.2009 - 12:02 Uhr

Das ist mir klar und darum geht es ja auch ...

Es soll nur die Eingabe von Dezimalzahlen mit 6 Vorkomma- und 3 Nachkommastellen erlaubt sein. Wenn die Vorkommazahl jedoch über 1000 ist soll da mit Tausendertrennzeichen getrennt werden

Ich hoffe das ist jetzt etwas besser erklärt 😃

12.05.2009 - 11:50 Uhr

Hallo mal wieder,

heute habe ich folgendes Problem: Ich muss bei einem Preisfeld einen Regex hinterlegen, bekomme es aber nicht hin 🙁

Folgendes soll vom Benutzer eingegeben werden können:

123,123
1234.1234,123
1234.1234

Ich habe schon einige Rexex durchprobiert und bekomme das mit dem Tausender-Trennzeichen auch hin, aber sobald ich testweise folgendes eingebe:

123,123 bekomme ich folgendes angezeigt: 123.,123

Hat jemand eine Idee ?

Danke und Gruß

Michael

06.05.2009 - 13:37 Uhr

Gelöst und damit 1000 Dank an alle:

Folgender Quellcode bringt die Lösung 😃:

private void InsertInto()
        {
            Regex DescRegexVon = new Regex("0{0,10}[1-9]{1}[0-9]{0,}");
            Regex DescRegexBis = new Regex("[-]1{0,10}[1-9]{1}[0-9]{0,}");

            // Variablen definieren
            string Zahl1;
            string Zahl2;
            string tempDescr = Feld1.Text.Trim() + ' ' + Feld2.Text.Trim() + ' ' ; // Strings verketten

            // Solange Regex zuschlägt
            while (DescRegexVon.IsMatch(tempDescr.Trim()) && DescRegexBis.IsMatch(tempDescr.Trim()))
            {
                Zahl1 = DescRegexVon.Match(tempDescr, 0).ToString();
                Zahl2 = Convert.ToString(Convert.ToInt32(DescRegexBis.Match(tempDescr, 0).ToString()) * (-1));

                // Hier wird gespeichert
                
                // Regex aus der Hilfsvariablen entfernen
                tempDescr = tempDescr.Replace(Zahl1, "");
                tempDescr = tempDescr.Replace(Zahl2, "");
            }
        }

Gruß

Michael

06.05.2009 - 11:58 Uhr

Also ein Format kann ich dem Benutzer nicht aufdrängen. Es gibt zwar bei den Feldern Regex Formate die dynamisch geschrieben (aus der DB gefüllt) werden (z.B. nur Datum eintragen) aber die sind jeweils pro Fall vorbelegt und könnten auch leer sein so dass widerrum alles erlaubt ist.

Und da muss ich ansetzen, wenn innerhalb eines Strings der Wert Test 123 890-990 yy-zzz 31.12.2999 vorkommt brauche ich die Zahlen 890 und 990.

Kommt darin vor: Test 123 890-990 yy-zzz 31.12.2999 1 - 2005 brauche ich die Zahlen 890 und 990 im ersten Datensatz und die Zahlen 1 und 2005 im zweiten Datensatz.

Ich bin grade dabei mich in Regex einzulesen da ich es erst ein- oder zweimal gesehen habe und nicht wirklich weiß wie ich mittels Regex Teilstrings zerlege und die dann gleichzeitig noch in Zahlen umwandel 😦

06.05.2009 - 11:35 Uhr

Danke schonmal für die Hinweise. Ich vergaß jedoch zu erwähnen das darin auch z.B.
xyz 1-1000 31.12.2009 1400-9999 xyz vorkommen kann.

Der Benutzer hat darin völlig freie Hand. Ich habe jetzt jedoch die Struktur aufgrund der Datenmenge geändert. Jetzt muss nicht mehr pro Zahl ein Datensatz geschrieben werden sondern nur der jeweilige Minimal- und Maximalwert.

Also pro vorkommendes - die Zahl davor und dahinter ermitteln und dann einen Datensatz in folgender Form (für das obrige Beispiel):

Datensatz A - 1 - 1000
Datensatz B - 1400 - 9999

schreiben. Ist leichter und das Minus kann ich auch jeweils ermitteln. Nur kriege ich es irgendwie nicht hin die Zahl davor und die dahinter eindeutig zu identifizieren 😦

06.05.2009 - 11:10 Uhr

Hallo mal wieder,

ich habe diesmal ein "besonderes" Problem und hoffe ihr könnt mir, wie sonst auch, einen Denkanstoß liefern.

Folgendes:

Ich habe ein Textfeld in welchem Benutzer beliebige Einträge machen können. Jetzt kann es aber vorkommen das ein Benutzer dort den Wert 1-1000 eingibt.

Diesen Wert muss ich in folgender Form in einer gesonderten Tabelle speichern:

Datensatz A - 1
Datensatz B - 2
Datensatz C - 3
....
Datensatz XXX - 1000

Hat jemand eine Idee wie ich das bewerkstelligen soll ?

Danke schon einmal für die Hilfe

Michael

28.04.2009 - 15:18 Uhr

[Gelöst]

Sry war keine normale Combobox - habe ich erst spät gesehen...

Es war ein lookupedit und ich konnt es folgendermassen lösen:

lookupedit.ItemIndex = cbPlatz.lookupedit + 1;

Danke für den Denkanstoss (hatte nach dem Hinweis gesucht und nicht gefunden - so kam ich auf den Fehler von mir)

28.04.2009 - 14:52 Uhr

Hallo mal wieder,

diesmal stehe ich vor einem Problem mit einer Combobox in welche ich in Abhängigkeit von zuvor gewählten Daten unterschiedliche Inhalte fülle.

Das funktioniert soweit auch gut und schnell. Jetzt zu meinem Problem. Ist ein Vorgang auf der Form abgeschlossen, springe ich zurück auf die Combobox und hätte dort gerne den nächsten Wert angezeigt welcher in der Auswahl vorhanden ist.

Und das bitte ohne alles neu laden zu müssen. Gibt es irgendeinen Befehl ala Combobox.NextRow oder sowas ?

Danke und Gruß

Michael

27.04.2009 - 09:27 Uhr

Hallo mal wieder,

ich habe folgendes Problem: Ich habe eine Loginform welche durch TopMost immer im Vordergrund steht. Soweit ist das auch richtig aber ...

Sind noch andere Programme geöffnet so kann es vorkommen das die Loginform zwar im Vordergrund steht, jedoch nicht aktiv ist und der Benutzer immer mittels Mausklick die Loginform "aktivieren" muss um Eingaben zu machen.

Dieses ist nicht gewünscht. Solange der Benutzer den Login nicht bestätigt oder abbricht soll die Form auch aktiv bleiben.

Hat jemand eine Ahnung wie ich das bewerkstelligen kann das die Form immer im Vordergrund und immer aktiv ist ?

Danke schonmal im Vorraus

Michael

06.03.2009 - 11:45 Uhr

Hallo mal wieder,

diesmal habe ich Probleme ein DataSet in einem CrystalReportViewer darzustellen.

Das DataSet ist gefüllt (mit GridView kontrolliert). Jedoch bringt mir folgender Code:


DataSet ds = new DataSet();
ds = DataAccess.GetData();

Report myDataReport = new Report();
myDataReport.SetDataSource(ds.Tables[0]);

crvViewer.ReportSource = myDataReport;

folgenden Fehler aus: "Der Bericht enthält keine Tabellen."

im Grid wird mit folgendem Code:


gridDokumente.DataSource = ds.Tables[0];

ordentlich gefüllt.

Ich habe schon seitenweise im Forum gelesen und viel "probiert" kriege es aber einfach nicht hin. Hat jemand eine Idee ?

Danke und Gruß

Michael

27.02.2009 - 12:14 Uhr

omg - ich Depp

Sooo einfach, hatte der mir sogar vorgeschlagen und ich habs nicht gesehen 😦

DANKE SCHÖN !

27.02.2009 - 12:11 Uhr

Hallo mal wieder ...

Ich habe heute folgendes Problem - bald denke ich habe ich alle durch (naja Anfänger halt)...

Ich möchte unter bestimmten Umständen verbieten das ein Benutzer eine Applikation verlässt.

Folgenden Code habe ich (als Abfrage):

        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (frmMainDockBar.Controls.Count.ToString() != "2")
            {
                if (MessageBox.Show("Es sind noch Programme offen. \n\n Möchten Sie xyz wirklich verlassen?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    // HIER DEN 'ABFANG' REIN ...
                }
            }
        }

Jedoch fehlt mir die Möglichkeit das Schliessen abzufangen. Habt ihr einen Hinweis ?

Danke

Michael

26.02.2009 - 16:18 Uhr

Das Altsystem ist irgendwann mal nach Access (Keine Ahnung was es vorher war) gewandelt worden, durch etliche Firmen bearbeitet worden und kaum Dokumentation vorhanden - und Zeit für ein Konzept in der Größenordnung ist definitiv nicht vorhanden zumal jeder aktuelle Benutzer andere Programme braucht und andere Wünsche hat ...

Da würde ich noch 5 Jahre konzipieren - von daher, loslegen, proggen, teilprogramm testen lassen vom jeweiligen Benutzer, Unterschrift holen -> nächstes Teilprogramm

geht leider nicht anders aber wird sicherlich IRGENDWANN mal komplett überarbeitet (hoffentlich bin ich dann in Rente) 😃

26.02.2009 - 16:04 Uhr

Neue Idee und die wird jetzt umgesetzt !

Ich baue mir eine weitere Form die nix anderes beinhaltet als eine progressbar im Stil von Windows Vista (Endloslaufleiste) und rufe die dann von jeder Usercontrol aus auf mit

        WaitDialogForm form = new WaitDialogForm();  
        form.Show();  

        // Aktion hier  

        form.Close();  

Bringt einen ähnlichen Effekt und dem Wunsch der Benutzer ist genüge getan 😃

Vielen Dank fürs Brainstorming

Michael

PS: Funktionen und Optik habe ich bereits getrennt da vieles ja etliche Male genutzt wird. Macht die Sache schon einfacher ...

26.02.2009 - 15:53 Uhr

weil in der applikation hunderte von sql tabellen existieren die über insgesamt 200 verschiedene rechte gesteuert werden.

dazu kommen die unterschiedlichsten ansichten und vorschauen .....

ist eine neuentwicklung einer über 20 jahre gewachsenen applikation - und was in 20 jahren an oberflächen entstanden sind kann man sich vorstellen 😃

Man könnte natürlich alles in wenige Oberflächen packen und dynamisch darstellen - jedoch kommt täglich ein Benutzer und will da und dort noch was zusätzlich haben - und bevor ich dann jedesmal bei 0 anfange, gibts eigene Usercontrols - ist im Endeffekt leichter zu pflegen ...

26.02.2009 - 15:26 Uhr

was für mich bedeutet das ich nun hunderte von events bauen muss ? nur weil es (aktuell noch nicht aber bald) soviele usercontrols gibt ?

gibt es da nicht eine, nicht so arbeitsintensive lösung ?

26.02.2009 - 15:17 Uhr

Habe ich eben durchgelesen und ich denke nicht das die Lösung dabei ist. Wenn ich es richtig verstanden, gelesen habe ist dort der form2 die form1 bekannt.

Wenn dem so wäre dann wäre es ja wie bei allen anderen Zugriffen die ich mache 😃

Meiner form2 ist die form1 nicht bekannt und wenn ich mit Handlern anfange darf ich in die form1 hunderte Handler reinpacken (sehr viele form2) 😦

Gibt es eine Möglichkeit meiner form2 die form1 bekannt zu machen ohne eine Ringabhängigkeit zu erzeugen ?

26.02.2009 - 14:58 Uhr

Hallo vom Neuling

Ich habe ein Problem mit Bäumen und Wald usw....

Folgendes: Ich habe eine Applikation mit mehreren Ordnern auf gleicher Ebene. In einem Ordner ist die frmMain (Startbildschirm) welche die in anderen Ordnern vorhandenen Usercontrols aufruft, bzw. in sich einbettet.

Jetzt möchte ich in der frmMain eine processBar einbinden welche von den Usercontrols sichtbar und unsichtbar gemacht wird.

Die Funktion für die processBar würde ich gerne in die frmMain legen und jeweils vom Usercontrol starten.....

in der frmMain:

public void Sichtbar()
{
    pcbProcessBar.Visible = true
}

im Usercontrol:

frmMain Mainprogramm = new frmMain();
Mainprogramm.Sichtbar();

Und da liegt die Kruxx - ich kriege das einfach nicht hin, bzw. er akzeptiert es nicht 😦

Ich kann von den Usercontrols auf alle anderen Funktionen und Dateien in anderen Ordnern zugreifen - nur auf den Hauptordner lässt er mich einfach nicht drauf (Kann die frmMain nicht anwählen).

Einen Verweis auf den frmMain Ordner kann ich ebenfalls nicht anlegen - er meckert dann: "Es konnte kein Verweis auf Ordner xyz angelegt werden da ansonsten eine Ringabhängigkeit verursacht würde" .....

Ich hoffe ihr könnt mir einen kleinen Denkanstoss geben

Danke schomal im Voraus

Michael

19.02.2009 - 09:38 Uhr

Wenn ich folgendes eintrage (über die übergeordnete Control):

            foreach (DevExpress.XtraEditors.CheckEdit _checkbox in xtpDokumente)
            {
                _checkbox.Properties.ReadOnly = true;
            }

bekomme ich folgende Fehlermeldung:

Eine foreach-Anweisung kann nicht für Variablen vom Typ "DevExpress.XtraTab.XtraTabPage" verwendet werden, da "DevExpress.XtraTab.XtraTabPage" keine öffentliche Definition für "GetEnumerator" enthält.

19.02.2009 - 09:34 Uhr

Ich habe aktuell folgenden Code (den ich ersetzen möchte):

            ceDok1.Properties.ReadOnly = true;
            ceDok2.Properties.ReadOnly = true;
            ceDok3.Properties.ReadOnly = true;
            ceDok4.Properties.ReadOnly = true;
            ceDok5.Properties.ReadOnly = true;
            ceDok6.Properties.ReadOnly = true;
            ceDok7.Properties.ReadOnly = true;
            ceDok8.Properties.ReadOnly = true;
            ceDok9.Properties.ReadOnly = true;

usw.

Bei den Checkboxen handelt es sich um DevExpress.XtraEditors.CheckEdit Boxen (und davon sehr viele).

Ich habe mir die Links angesehen, schonmal danke hierfür, jedoch komme ich damit irgendwie nicht klar 😦

19.02.2009 - 08:55 Uhr

Hallo mal wieder,

heute habe ich eine etwas "doofe" Frage. Ich habe auf einer Form hunderte von Checkboxen die alle nach dem gleichen Muster durchnummeriert sind (checkbox1, checkbox2, usw.)

Jetzt möchte ich die, je nach Buttonklick, ändern (true, false, readonly, usw.).

Muss ich wirklich je Buttonklick alle Checkboxen einzeln wieder aufführen oder kann ich das auch über eine for Schleife regeln ?

for (int a; a<= 200; a++)
{
     checkbox + a + .visible = false
}

statt

checkbox1.visible = false;
checkbox2.visible = false;

usw...

Irgendwie stehe ich da auf dem Schlauch. Wenn da einer eine Lösung weiss wäre das super da ich mir Stunden an Arbeit sparen könnte

Gruß

Michael

10.02.2009 - 12:42 Uhr

Ich nutze eine Combobox - genauer gesagt ein lookupedit welches ich beim öffnen der Form fülle.

Jedoch muss ich den Editor zuschalten um da was von Hand eintragen zu können. Beim Verlassen des Feldes ist das Feld jedoch leer und auswählen kann ich da auch nichts - selbes Ergebnis ...

Ich verzweifel hier langsam 😦

10.02.2009 - 12:25 Uhr

Hallo mal wieder,

ich stehe erneut vor einem "kleinen" Problem und hoffe ihr könnt mir den Gedankenknoten entwirren.

Ich habe eine Suchenmaske in welcher viele Felder stehen. Jetzt ist unter diesen Feldern auch ein Editfeld in welchem nach einem Freitext gesucht werden kann.

Jede Suche wird in einer extra Tabelle benutzerabhängig gespeichert. Jetzt mein Problem:

Es ist gewünscht das beim Eingeben eines Buchstaben automatisch eine Dropdownbox aufgeht mit Vorschlägen aus den bisherigen gespeicherten Suchen welche mit Mausklick übernommen werden sollen.

Mit welchem Control bzw. wie kann ich das am einfachsten realisieren ?

Danke schonmal im Vorraus

Michael

26.01.2009 - 15:51 Uhr

Hallo BerndFfm,

wie kann ich das erlauben ? Der weigert sich sturr weiter zu gehen sobald die ersten 2 Zahlen (Tag) eingegeben wurden. Fängt dann wieder bei 0 an (bei der dritten Zahl)

26.01.2009 - 15:42 Uhr

Hallo mal wieder,

diesmal habe ich ein wahrscheinlich triviales Problem bei dem ich einfach nicht auf die Lösung komme.

Ich habe ein Datumsfeld auf einer Windowsform (DevExpress.XtraEditors.DateEdit).

Jetzt möchten die User das Datum wie folgt eingeben: 30112009 (Beispiel). Das Feld springt jedoch nach Eingabe des Tages nicht automatisch auf den Monatsbereich. Hier muss vor dem Wechsel vom User ein Punkt (oder der Wechsel mittels Maus) getätigt werden.

Wie kann ich dem User ermöglichen das er das Datum einfach so eingibt ?

Danke schonmal für die Antworten

Michael

13.01.2009 - 15:23 Uhr

Und ich wunder mich die ganze Zeit warum der Shortcut mir nur einen Ordner öffnet ...

1000 Dank und Gruß

Capfu

Nochmal PS: Ich habe da die Benutzeroberfläche "Kundeninformationen" in welcher ich einen Installationskey vom Anwender fordern kann.

Kann ich den irgendwie abfragen (nach Richtigkeit) oder verhält sich das ebenso (unmöglich) wie mit den Checkboxen für die Shortcuts ?

13.01.2009 - 14:46 Uhr

Herzlichen Dank - wenn ich die Versionsnummer wechsel (egal ob ich hoch oder wieder runter zähle) dann funktioniert es

Dann habe ich aber direkt die nächsten 3 Fragen wenn ich schonmal nen Profi "an der Hand" habe 😃

Wie erzeuge ich Shortcuts auf/im (dem)
a) Desktop
b) Schnellstartleiste
c) Programmmenü

und zwar so das der Benutzer bei der Installation wählen kann ob und was er bekommt.

Folgendes habe ich bereits angelegt:

siehe Anhang

Gruß und nochmals DANKE

Michael

13.01.2009 - 14:23 Uhr

Hallo und danke für die Antwort ...

Das habe ich versucht - ohne Erfolg 😦

Ich hänge mal Screenshots an wie es bei mir in den Eigenschaften da aussieht - evtl. liegt der Fehler ja woanders ????

Gruß

Michael

13.01.2009 - 13:02 Uhr

Hallo erstmal wieder,

nach längerer Abstinenz bin ich mal wieder mit einer Frage da ...

Ich habe eine Applikation welche sich über eine Setup.exe installieren lässt. Mache ich Änderungen am Quellcode, erstelle mir eine neue Setup.exe so fordert diese jedoch die vorherige Deinstallation des Programms.

Wo kann ich evtl. eine Einstellung ändern um das Setup einfach über die existierende Umgebung drüber zu installieren ?

Der Pfad ist immer gleich - ProgrammPath\Programmordner - also sollte von der Stelle kein Problem auftreten wenn ich es einfach drüber ziehe.

Da wir uns gerade in der Testphase befinden mit fast stündlicher Aktualisierung ist es lästig immer vorher deinstallieren zu müssen ...

Danke schonmal

mrennen

13.12.2008 - 18:27 Uhr

Ich bin aktuell dabei mir C# selber anzueignen. Im obrigen Fall müsste ich, vom Verständnis her, den Datenpool in der kopierten Memorytable einfach nur wie in einem Batch durchlaufen und für jeden gefundenen Datensatz einen SQL Delete Befehl absetzen.

Aber genau hier haperts. Ich weiss einfach nicht wie ich dieses Table im Batch durchlaufen soll.

Das sollte eigentlich schon alles sein - wenn da jemand bitte einen Lösungsansatz für mich hätte ?

Danke ...

11.12.2008 - 09:49 Uhr

Hallo mal wieder

Diesmal habe ich das Problem das ich in einem DevExpress.XtraGrid markierte Datensätze löschen will.

Folgenden Quellcode habe ich schon (zum Drucken in einer PrintPreview, was auch super funktioniert):

        #region MultiSelect
        public DataTable GetTableOfSelectedRows(GridView view)
        {
            DataTable resultTable = new DataTable();
            DataTable sourceTable = null;
            if (view.DataSource is DataView)
                sourceTable = ((DataView)view.DataSource).Table;
            else if (view.DataSource is BindingSource)
            {
                object dv = ((BindingSource)view.DataSource).List;
                sourceTable = ((DataView)dv).Table;
            }
            if (sourceTable != null)
            {
                resultTable = sourceTable.Clone();
                foreach (int rowHandle in view.GetSelectedRows())
                {
                    DataRow row = view.GetDataRow(rowHandle);
                    resultTable.Rows.Add(row.ItemArray);
                }
                resultTable.AcceptChanges();
            }
            return resultTable;
        }

        public GridControl CloneGrid(GridControl sourceGrid)
        {
            GridControl resultGrid = new GridControl();
            resultGrid.MainView = new GridView(resultGrid);
            resultGrid.MainView.Assign(sourceGrid.MainView, false);
            Controls.Add(resultGrid);
            resultGrid.Visible = false;
            return resultGrid;
        }

        public GridControl GetGridWithSelection(GridControl grid, string Print_Delete)
        {
            GridControl clonedGrid = CloneGrid(grid);
            DataTable clonedTable = GetTableOfSelectedRows(grid.MainView as GridView);
            clonedGrid.DataSource = clonedTable;
            if (Print_Delete == "Print")
            {
                clonedGrid.ShowPrintPreview();
            }
            else
            {
                std.FinanzenLoeschen(tempFinanzId, GetUserInfo().UserID);
            }
            return clonedGrid;
        }
        #endregion

Hinter dem Button der für die Druckvorschau existiert habe ich folgendes hinterlegt:

            if (grvFinanzen.SelectedRowsCount < 2)
            {
                grid_stamm_finanzen.ShowPrintPreview();
            }
            else
            {
                GetTableOfSelectedRows(grvFinanzen);
                CloneGrid(grid_stamm_finanzen);
                GetGridWithSelection(grid_stamm_finanzen, "Print");
            }

Jetzt möchte ich hinter dem Button fürs Löschen die Möglichkeit bieten den Inhalt des geklonten Grids in der realen Tabelle zu löschen nur ich komme da einfach nicht weiter 😦

Ich hoffe Ihr habt da eine Idee wie ich das geklonte Grid in einem Batch durchlaufe. Ich habe sowas noch nie gemacht ...

06.11.2008 - 14:26 Uhr

Ich habs gelöst 😁 dank eines Codebeispiels

Ich kam einfach nicht auf den Textfeld.Substring Befehl .....

Sagte doch ich bin heute total neben der Spur

Danke an alle und bis zur nächsten "dämlichen" Frage

Michael

06.11.2008 - 12:49 Uhr

Der String wird nicht auf der selben Form zusammen gesetzt. Darauf habe ich schon geachtet !

Die Zusammensetzung der übergebenen Werte findet in einer anderen Datei statt so das die Sicherheit der Applikation gewährleistet ist.

Von der GUI Form werden nur die eingegebenen Daten weitergeleitet - kein SQL Script oder sonstiges

Und die werden vor Weitergabe auf Richtigkeit (sind diese schon gespeichert) überprüft ...

06.11.2008 - 12:44 Uhr

Also folgendes habe ich mittlerweile an Quellcode:

if (Beschreibung.Trim().Contains("+"))
    {
         while (Beschreibung.Trim().Contains("+"))
         {
              sql += " AND (LTRIM(RTRIM(Textfeld1)) LIKE '%" + Beschreibung.Trim().Substring(1, /* ('POSITION DES + ZEICHENS') */ + "%')";
              // HIER MÜSSTE DIE TRENNUNG DES STRINGS REIN - POSITION VOM + ZEICHEN + 1
         }
    }

Die Trennung vom String (Wie errechne ich die Position des ersten + Zeichens) ist das einzige was mir aktuell fehlt wenn ich das richtig sehe

Und da stehe ich aktuell auf dem Schlauch

Das mit dem SQL String hat nichts mit diesem Forumsbereich zu tun, richtig. Aber es könnte ja auch eine normale Textbox sein - die Verarbeitung dahinter ist doch eigentlich völlig egal weil funktioniert schon ...

06.11.2008 - 12:30 Uhr

Hallo erstmal,

diesmal habe ich folgendes Problem:

Ich habe auf einer GUI ein Textfeld welches verschiedene Benutzereingaben aufnimmt (wie das Google Suchfeld). Jetzt möchte ich mir aus den verschiedenen Eingabemöglichkeiten einen SQL String zusammen bauen.

Beispiel:

Benutzereingabe von "123 +456 -ABC" soll einen String erzeugen welcher wie folgt aussehen könnte:

... WHERE Textfeld1 LIKE '%123%' AND Textfeld1 LIKE '%456%' AND Textfeld1 <> 'ABC'

Dazu muss ich mir eine Schleife bauen welche a) die Plus und b) die Minus ausfiltert

Hat jemand die Zeit und Lust mir ein Beispiel zu geben weil ich stehe heute irgendwie total auf dem Schlauch

Danke

Michael

22.10.2008 - 16:15 Uhr

TextEdit Felder aus der DevExpress 8.2 Erweiterung

22.10.2008 - 16:12 Uhr

Hallo mal wieder. Diesmal habe ich eine wahrscheinlich sehr einfache Frage ...

Ist es möglich Felder nur Read only darzustellen statt die Enable, Disable Funktion zu nutzen ? Diese ist optisch nicht ganz so schön anzuschauen ...

Die Felder sollen auch dann normal zu sehen sein wenn diese nicht begehbar sind.

Danke schonmal für die Antworten

Michael

Fast vergessen: Es handelt sich um TextEdit Felder aus der DevExpress Reihe (Version 8.2)

16.10.2008 - 13:58 Uhr

Hallo mal wieder 😁

Folgendes Problem diesmal: Ich habe aus einem Grid einen Datensatz in seperate Editfelder übernommen und geändert.

Jetzt aktualisiert sich das Grid und das ist auch soweit alles ok. Jedoch parkt er nach der Aktualisierung nicht auf dem zuvor geänderten Datensatz und das ist schon echt nervig wenn im Grid tausende Datensätze stehen und mittig mehrere geändert werden sollen

Gibt es eine Möglichkeit nach der Aktualisierung direkt an den zuvor bearbeiteten Datensatz zu springen ?

16.10.2008 - 12:26 Uhr

Danke an alle die sich beteiligt haben. Ich habs gefunden 😁

Die Lösung ist eigentlich ganz einfach:

grid_stamm_plaetze.EmbeddedNavigator.TextStringFormat = "Datensatz {0:#,0} von {1:#,0}";
16.10.2008 - 11:02 Uhr

Nein ich übersetze momentan gar nichts. Die deutschen Spaltenüberschriften kommen mit dem SQL Befehl "SELECT number AS Nummer FROM ..." und den deutschen Groupingtext habe ich über den Designer gefunden und mit dem Befehl:

grvPlaetze.GroupPanelText = "Zum Gruppieren bitte die entsprechenden Felder hierher ziehen ...";

ändern können. Nur an die Navigationsleiste komme ich irgendwie nicht dran ...