Laden...

Profil von DerSchnapper

myCSharp.de - Member Mitglied seit

Alle Beiträge

Ah, hervorragend!

Vielen Dank für die schnelle Antwort, klappt tadellos!
DAS gibt sonst schöne Effekte bei Datenbank-Anwendungen...schwärm

Hallo,

ich arbeite an einem .NET 2.0 Datenbankprogramm mit C#.

Ich würde jetzt gerne erreichen, dass die Anwendung zu einem Zeitpunkt auf dem lokalen Rechner generell nur ein mal zur gleichen Zeit gestartet werden kann. Wie kann man denn sowas machen?

11.01.2007 - 19:59 Uhr

Hmm, da ist was dran...

danke!

11.01.2007 - 18:24 Uhr

Hi,

ich arbeite gerade ein einer C# .NET 2.0 Datenbankanwendung, welche mit dem MS SQL Server 2005 Express Edition arbeitet.

Könnte ich eine solche Anwendung unter der GNU GPL anbieten? Weil diese sich ja Komponenten bedient, die nicht unter dieser Lizenz stehen...

Hi,

ja, das hab ich eben noch vergessen zu erwähnen:
SelectedItem war nur ne Beschreibung des Verhaltens, ich lese ohnehin .Text aus, weil das in einen BindingSource-Filter übertragen wird.

Aber direkt nach dem KeyUp wird der Wert sowohl des selectedIndex als auch des zugehörigen Anzeigetextes auf das erste Element gesetzt. Und dann lese ich dummerweise auch immer .Text des ersten Elementes aus.

Und das find ich doch eher verwunderlich...

Hi,

Es handelt sich um ein .NET 2.0 Datenbankprojekt.

Ich habe eine Combobox mit einer zugrundeliegenden DataSource. Die Elemente werden alle in der Combobox angezeigt, Auswählen klappt, Autovervollständigen klappt.

"Wenn KeyUp und Key=RETURN, dann nimm den Wert des SelectedIndex und mach was damit."

Soweit, so gut. Nur will ich jetzt, dass man nicht mehr auswählen kann (also keine klassische Combobox mehr hat), sondern nur ein Textfeld, welches anhand der Daten aus der DataSource Autovervollständigung praktiziert.

Sollte eigentlich auch ganz einfach sein, denn das klingt ja zunächst mal nach ComboBoxStyle=Simple

Sah im ersten Moment auch gut aus! Nur, immer wenn der Wert bestätigt wird (welcher auch tadellos per Autovervollständigung vorgeschlagen wird), dann wird eben leider nicht der Index des vervollständigten Wertes genommen wie beim "normalen" ComboBox-Syle, sondern die Box nimmt wieder den Index 1 (oder 0? Naja, den ersten Eintrag eben) und meine Methode hinter besagtem KeyUp-Event arbeitet folglich immer mit dem ersten Eintrag, egal was eingegeben wurde.

Was mach ich falsch? Bzw. an welcher Schraube muss ich noch drehen, um damit Erfolg zu haben?

18.12.2006 - 11:59 Uhr

Entschuldigt bitte, aber wenn ich aus der doku schlau geworden wäre, hätte ich nicht gefragt.
Nicht jeder Entwickler ist gleich gut bei so was, ich musste eben leider auf die Erfahrung anderer Leute zurückgreifen.

Ich ziehe mich jetzt zurück und übe gaaaanz viel, um viel viel besser zu werden und alles verstehen zu können.

18.12.2006 - 11:18 Uhr

Ah, ok!

Und wenn man nun wieder was im dgv ändert und dann speichert, dann ist die tatsache, dass die bindingsource gefiltert ist, aber kein problem? Die Datensatze, die in der bs dann eben herausgefiltert sind in dem Moment werden dann in der Tabelle nicht beeinflusst oder gar gelöscht?

18.12.2006 - 10:48 Uhr

kapier ich jetzt nicht so wirklich. Gibts denn keine andere möglichkeit, das DataGridView zu filtern?
Ich könnte ja an der Stelle auch eine Connection auf die DB-Tabelle machen und mit ein Select-Statement basteln und anwenden. Das Ergebnis wäre dann ein DataReader. Nur wie würde ich dann den Inhalt des DataReader in das dgv bekommen? grübel...

@Jürgen:
Ja, das Beispiel hab ich schon gesehen und das dann auch so angewendet. Leider ohne Erfolg irgendwie...

bzw: Danach hatte ich dann nur noch das Datum zur Wahl, auf das ich gefiltert hab. Scheinbar ist die BindingSource nun gefiltert. Wie stelle ich jetzt nur die gefilterte Tabelle in dem dgv dar?

18.12.2006 - 09:48 Uhr

Tja, selbst wenn man den Filter "hart codiert" setzt und dann im String Filter "Datum = 2.12.2006" steht...

dann kommt ne Exception
das Token '.' an der Position 13 wurde nicht erkannt.

Ich bin ratlos!

Könnte man auch irgendwie den Datentyp der Spalte im Filter umgehen indem man ein Stringliteral des Spaltenwertes bekommt? Wie könnte man das machen, wenn überhaupt?!

18.12.2006 - 09:19 Uhr

Hallo!

Ich hab ein ganz ähnliches Problem. Wollte ich mein DataGridView nach einem Namen oder so filtern, dann wäre das hiermit ja schon gelöst.

Aber mein zu filterndes DGV enthält eine Spalte mit Datum. Dazu habe ich eine Combobox, in der die Benutzer alle Datum der Tabelle aufgelistet bekommen (Die Tabelle als DataSource der ComboBox). Nun kann der Benutzer ein Datum auswählen und ich will die DataGridView nach diesem Datum filtern.

Wie müsste denn ein entsprechender Ausdruck für den BindingSourceFilter in dem Fall aussehen?!

LIKE kann man nicht auf DateTime und String anwenden. Hab dann DateTime.Parse.comboBox.SelectetText) probiert, geht aber auch nicht.

Hat jemand ne Idee?

13.04.2006 - 12:12 Uhr

Hey, cool!

Ich glaube, das ist genau das, was ich gesucht hab!
Vielen Dank!

13.04.2006 - 10:28 Uhr

Hi,

gibts irgendeine Klasse, Framework oder ähnliches mit dem ich PDFs (sofern nicht geschützt) auslesen kann, so wie man das z.B. mit den Interops von MS auch mit Word-Dokumenten machen kann?

Oder gibt es vielleicht sogar im .NET-Framework bereits was dafür? PDFReader sozusagen? Ich hab eben mal was von der Erstellung von PDFs gefunden hier im Forum, da war auch dieser Link

http://itextsharp.sourceforge.net/

dabei, aber da steht nur was von der Erzeugung von PDFs, und ich will ja fertige auslesen...

Hi,

danke, in der Tat gibt es auch Grafiken und Tabellen und so. Ich hab jetzt nen anderen Weg gefunden, das Dilemma zu umgehen, weil es immer in besonderen Fällen auf einen bestimmten Satz am Ende einer Seite folgt. Das Ganze resultiert nämlich aus einem typischen Formatierungsfehler der WordDoks, und so konnte ich das ganze dann auf anderem Wege eben gerade erfolgreich lösen 😉

Hmmm.....

das ist nicht schön!
Blöd. Was nun? Gibts vielleicht nen pragmatischen Ansatz, der einigermaßen zuverlässig ist? Vielleicht das Dokument Zeilenweise iterieren und auf Zeilen mit mehr als drei Zeichen, jedoch ohne Ziffern/Characters durchsuchen oder so irgendwas?

Hi,

ich stehe vor einem nicht uninteressantem Problem, dessen Lösung mich leider ein wenig vor ein Rätsel stellt.

Ich öffne nacheinander eine große Sammlung von Word-Dokumenten und drucke diese automatisch aus. Leider enthalten diese aber manchmal auch leere Seiten, die ich natürlich dann nicht drucken will. Eine Leerseitenkorrektur des Druckers bewirkt aber nichts, da die Seiten nicht wirklich leer sind - sie enthalten dann nämlich eine oder mehrere Zeilen die nichts als Leerzeichen enthalten.

Hat jemand ne Idee, wie ich diese automatisch aufspüren und zudem die Leerräume löschen könnte, ohne die Seiten ober- und unterhalb der Leerseite zu manipulieren?

Hallo, ihr lieben Mitprogrammierer 😉

Ich hab wieder mal ein Problem. Man kann bei der Interop-Schnittstelle im Word ja wunderbar bei PrintOut als Range wdPrintCurrentPage mitgeben, druckt dann die Seite, auf der gerade die selection ist. Oder man kann von Seite bis Seite drucken.

Da ich jedoch nicht in der Lage bin, die Seitenzahl herauszufinden, auf der meine Selection gerade steht, müsste ich sagen, dass ich von Seite 1 bis zur aktuellen Seite drucken will. Hat jemand ne Idee, wie ich das lösen könnte? Da knabber ich jetzt auch schon länger dran und komm nicht weiter...

24.03.2006 - 07:35 Uhr

Hmm, dann versteh ich die Frage nicht so ganz, sorry...ich erklär mal, was ich mache:

Also, meine Anwendung öffnet im Hintergrund Word, guckt sich den Inhalt gemäß verschiedener Kriterien an und druckt es dann aus, wenn verschiedene Dinge zutreffen. Die Anwendung bekommt einen Ordner mit einer großen Sammlung an Doks übergeben und iteriert die alle nacheinander durch.

23.03.2006 - 09:53 Uhr

Nee, über die Interop-Schnittstelle von Microsoft (die PIAs)

23.03.2006 - 09:35 Uhr

Hi,

wenn ich geöffnete Word-Dokumente mit der Methode PrintOut drucken will, kann ich dann irgendwie die eventuell auftretende Dialogbox "Die Seitenränder liegen außerhalb des druckbaren Bereichs, fortsetzen?" auch unterdrücken und automatisch immer mit "ja" beantworten lassen?

Ich habe noch einen anderen Ansatz:

Ich kann an dem Bild auch noch die Datei abfragen, die eigentlich da verlinkt ist. Und die stimmt auch. Und den Pfad kenne ich.

Jetzt ist es mir auch gelungen, das Bild auszuschneiden und ein Selection-Objekt da zu platzieren. Wie kann ich jetzt genau da explizit wieder ein Bild aus einer Datei einfügen?

Hi,

ich hab ein dickes Problem! Ich verwende die PIAs um Word und Excel zu steuern. Meine anderen Beiträge dazu sind auch einigen Leuten wohl bekannt 😉

Jetzt hab ich gesehen, dass Dokumente, in die die Bilder nicht fest eingebunden sondern verlinkt sind (EPS-Datei, werden beim "normalen" starten von Word dann automatisch importiert) nicht geladen werden! Wie kann ich jetzt anstoßen, dass Word die Bilder dann auch lädt?

Ich weiß, dass das Shape den LinkType == WdLinkType.wdLinkTypePicture hat, aber was nützt mir die Weisheit?

Ah, das hilft mir schon weiter, da will ich mich mal dran versuchen!

Vielen Dank!

Hmm, aber jetzt, wo ich's gerade umsetzen will...die Info reicht mir leider doch nicht. Was mach ich denn nun genau?

Ich will ein paar Batch-Befehle ausführen, so wie sie sonst in einer batch-Datei stehen. Kann mal jemand ein Beispiel liefern?

21.03.2006 - 14:18 Uhr

Hi,

ja, die einzige Referenz ist wohl die MSDN, aber irgendwie muss man da auch schwer Glück haben, gerade den richtigen Artikel zu finden. Meiner Meinung nach steht da alles sehr verstreut in der Gegend herum...

17.03.2006 - 10:29 Uhr

Hmm, auf WdInlineShapeType.wdInlineShapePicture pruefen, ist nicht so der Akt.

Ok, jetzt weiß ich an dieser Stelle, dass es sich um eine Grafik handelt. Aber in was caste ich das denn nun? Ich kriegs nicht auf die Reihe, tut mir leid! Wenn jemand was weiß, dann teilt's mir bitte einfach mit, anstatt mich langsam da drauf zu führen, ich hab keine Zeit mehr, die Uhr tickt!

Ich guck derweil auch nochmal weiter

16.03.2006 - 18:07 Uhr

Kann mir bitte nochmal jemand einen Tipp geben?

Ich kann jetzt alle Shapes und InlineShapes scheinbar in einer foreach-Schleife iterieren:

foreach(Microsoft.Office.Interop.Word.InlineShape insh in xEinWordDoc.InlineShapes)
{

}

Kann ich jetzt irgendwie im Schleifenrumpf rausfinden, wie der Dateiname des darin enthaltenen Bildes ist? Das wäre ne feine Sache!

15.03.2006 - 13:15 Uhr

Hi,

ich steuere Excel über die PIAs.

Jetzt habe ich über ein Range-Object eine Zelle markiert und kann mit set_value da was reinschreiben. Aber wie kann ich denn erreichen, dass die Zelle z.B. gelb ist?

Was diese Frage angeht:

Ich bin ernsthaft am Verzweifeln! Es MUSS doch irgendeine Lösung geben!
Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte !!!!!!!!!!!!!!!!

Ich muss das unbedingt irgendwie hinbekommen!

Hi,

kann ich eigentlich in einer C#-Anwendung zur Laufzeit einen Kommandozeilenbefehl ausführen? Also wie eine Batch-Datei, genau solche Anweisungen. Davon müsste ich zur Laufzeit ein paar zusammenbasteln und dann ausführen, als sei es eine Batch. Geht sowas? Wie geht sowas?

03.03.2006 - 14:56 Uhr

Ähm, ja, VB.NET meinte ich. Dann hab ich da scheinbar kein Problem, danke 😉
Wenn mir jetzt noch jemand meine Frage in meinem anderen Post beantworten könnte...(Wie bekomme ich die Seitenzahl des Worddocs, wo gerade das selection-Object steht)

03.03.2006 - 10:12 Uhr

Ok, dann muss ich VB nutzen, denn auch damit lässt sich die FinePrint-API ansteuern. Nur hab ich mit VB noch nie was gemacht, deswegen wollte ich erstmal wegen C++ fragen.

Andere Frage dazu:
Diese lustigen Sachen, die man mit C# mit Hilfe der PIAs machen kann, kann man ja mit VB auch machen, meist sehr ähnlich. Setze ich da jetzt auch einfach die PIAs als Verweis in das Projekt mit ein? Und sind das die gleichen PIAs, oder muss ich wieder andere bei MS runterladen?

02.03.2006 - 10:35 Uhr

Hi,

kann man die schönen Sachen, die man mit C# und VB machen kann (Word oder so öffnen, Dokumente erstellen, usw.) eigentlich auch mit C++ erreichen? Ich hätte da eine gewisse Notwendigkeit, weil meine Anwendung zugleich eine Drucker-API ansteuern muss, die wiederum C++ basierend ist, und das ist jetzt ein Problem!

Hat denn keiner nen Vorschlag? Die Sache ist echt wichtig, und ich komme einfach nicht dahinter!

28.02.2006 - 09:33 Uhr

Wie schon angekündigt guck ich mir das gerade etwas näher an...

Also, ich müsste ja dann alle Shapes/InlineShapes in meinem WordDoc iterieren und auf Typ prüfen. Wie macht man das? Müsste ich jetzt ein Selection-Objekt in einer Endlosschleife immer weiter rücken, dann prüfen auf Shape/InlineShape, wenn ja, prüfen auf Typ, wenn nein, weiter...

Und was ist die Abbruchbedingung? Klar, Dokument-Ende erreicht, aber wie frag ich das ab? Oder geht das alles auch einfacher?

Hi,

zum Einen, was gewiss ganz einfach ist:
Wie finde ich die Anzahl der Seiten eines geöffneten WordDocs heraus?

Zum Anderen, wahrscheinlich etwas komplizierter:
Ich suche etwas in einem WordDoc (wie das geht, weiß ich). Jetzt hab ich's gefunden und muss abspeichern, auf welcher Seite ich das gefunden hab. Wie geht das?

23.02.2006 - 14:21 Uhr

Ach so...ok, danke, da guck ich nochmal. Ist in diesem Fall aber auch egal, da die Dokumente, die ich durchforste, entweder Text oder Grafik enthalten.

23.02.2006 - 12:49 Uhr

Ah, ich habs gerade eben gefunden!

man kann Word.Document.Content.Shapes.Count abfragen, und das gleiche nochmal mit InlineShapes. Die beiden zusammen geben die Anzahl der Grafiken.

Danke trotzdem!

23.02.2006 - 11:30 Uhr

Hi,

ich müsste mit einer C#-Anwendung zählen, wieviele Grafiken sich im gerade geöffneten Word-Dokument befinden.

Ich habe bereits Word und auch ein WordDok geöffnet, soweit brauch ich keine Hilfe. Ich weiß auch, wie man Text sucht über ein Selection-Objekt. Aber wie suche ich nach Grafiken, bzw zähle diese?

Hi,

angenommen, man hat im Code statisch vergeben ein Verzeichnis, es sei mal "C:\temp"

In diesem Verzeichnis sind Dateien und weitere Unterordner, tiefe beliebig. Jetzt will man von oben angefangen bis in alle Unterordner alle *.doc oder so finden und damit was machen. Meinetwegen einfach mal in eine ArrayList setzen, spielt keine Rolle.

Die primäre Frage ist:
Wie durchlaufe ich die komplette Ordnerhierarchie bis unten hin und sammle alle gewollten Dateien ein? Wie macht man sowas, hat jemand ne Idee?

20.02.2006 - 14:47 Uhr

Ok, danke für die Lektionen 😉

Ich hab's jetzt auch geschafft, in die Zellen zu schreiben. Geht über ein Range Object.

20.02.2006 - 13:44 Uhr

Ähm, was ist eigentlich vba? Hör ich dauernd, aber ich kenn's noch immer nicht wirklich 😉

20.02.2006 - 11:57 Uhr

Hi,

ich hab jetzt zumindest meine Anwendung soweit, dass sich Excel öffnet, ein neues Dokument vorliegt, und dieses kann ich auch speichern.

Aber wie schreib ich denn nun was da rein? Ich hab noch nicht ganz verstanden, worauf ich eigentlich zugreife. Ein Neues Dokument ist bei mir ein Workbook. Dieses enthält drei Tabellen, der Excel-Standard. Sind das meine Worksheets? Tabelle1 dann zu Beginn das ActiveSheet?

Angenommen, ich möchte jetzt "Hallo Bill" in die Zelle A2 schreiben - was ist zu tun? Ich werd nicht schlau aus der MSDN, so leid's mir tut!

Ok, das ist mal ne Aussage, mit der ich arbeiten kann, danke! Vielen Dank!

Ich versuch mich mal dran, und dann melde ich mich wieder, wenn ich zu blöd bin 😉

Hallo,

nachdem ich alle Beiträge des Suchbegrifft "Word" und "C#" durchkämmt hab, bin ich leider noch nicht wirklich weiter gekommen, weil ihr scheinbar alle schon ein paar Schritte weiter seid wie ich.

Bitte bitte geb mir mal jemand eine Schritt-für-Schritt-Einführung!
Ich habe ein kleines Programm, meinetwegen eine Konsolenanwendung (ich nutze VStudio .NET 2003).

Darin möchte ich ein Word-Dokument öffnen, sagen wir mal, Pfad und Dateiname statisch im Code gegeben.
Dann will ich einen String in dem Word-Dokument suchen.
Dann das Dokument wieder schließen.

Ich weiß nicht einmal, wie ich ein Word-Dokument öffnen kann! Die MSDN lässt mich ein bisschen im Regen stehen. Da steht lediglich als Code-Beispiel:

// C#
object missingValue = Type.Missing;
object fileName = "C:\Test\MyNewDocument.doc";
ThisApplication.Documents.Open(ref fileName, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref missingValue, ref missingValue);

Schön, was bringt mir die Weisheit? Der Code funktioniert bei mir natürlich nicht. Ich weiß nicht einmal, welche Verweise ich zum Projekt setzen muss, damit das kompiliert werden kann! Bitte bitte sagt mir mal schlüssig und Anfängertauglich, was ich tun muss, um genanntes Vorhaben umzusetzen!

Vielen vielen Dank!