msc84
-
Gesamte Inhalte
22 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von msc84
-
-
Hallo,
ich habe folgendes vor:
Word Serienbrief aus C#.
Dazu öffne ich eine Vorlagendatei, durchlaufe die Paragraphen, passe meine Serienbrief Key-Felder an, und schreib den Kram in ein neues Dokument.
Das ganze funktioniert auch, mein Problem ist nur, das ich die Formateigenschaften des Quelldokumentes (sVorlage) nicht übernehmen kann,
ich finde einfach keine Lösung.
CODE:
public void Start(List<string> liSelKundenIDs, string sVorlage, string sRTBText)
{
Microsoft.Office.Interop.Word._Document wrdDoc1;
Microsoft.Office.Interop.Word.Selection wrdSelection;
Microsoft.Office.Interop.Word.MailMerge wrdMailMerge;
Microsoft.Office.Interop.Word.MailMergeFields wrdMergeFields;
// Create an instance of Word and make it visible.
wrdApp = new Microsoft.Office.Interop.Word.Application();
wrdApp.Visible = true;
// Add a new document.
wrdDoc = wrdApp.Documents.Add(ref oMissing, ref oMissing,
ref oMissing, ref oMissing);
//Vorlage öffnen
object oFile = sVorlage;
wrdDoc1 = wrdApp.Documents.Open(ref oFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
wrdDoc.Select();
wrdSelection = wrdApp.Selection;
wrdMailMerge = wrdDoc.MailMerge;
// Create a MailMerge Data file.
CreateMailMergeDataFile(liSelKundenIDs);
wrdMergeFields = wrdMailMerge.Fields;
string sLines = "";
for (int i = 0; i < wrdDoc1.Paragraphs.Count; i++)
{
sLines = wrdDoc1.Paragraphs[i + 1].Range.Text;
Range rng = wrdDoc1.Paragraphs[i + 1].Range.FormattedText;
while (sLines.Contains("<<"))
{
string sNurText = sLines.Substring(0, sLines.IndexOf("<<"));
wrdSelection.TypeText(sNurText);
string sKeyField = sLines.Substring((sLines.IndexOf("<<") + 2), sLines.IndexOf(">>") - (sLines.IndexOf("<<") + 2));
wrdMergeFields.Add(wrdSelection.Range, sKeyField);
sLines = sLines.Substring((sLines.IndexOf(">>") + 2), sLines.Length - (sLines.IndexOf(">>") + 2));
}
wrdSelection.TypeText(sLines);
//wrdSelection.Font.Bold = wrdDoc1.Paragraphs[i + 1].Range.Font.Bold;
//wrdSelection.Font.Size = wrdDoc1.Paragraphs[i + 1].Range.Font.Size;
//wrdSelection.Font.Italic = wrdDoc1.Paragraphs[i + 1].Range.Font.Italic;
//wrdSelection.Font.Name = wrdDoc1.Paragraphs[i + 1].Range.Font.Name;
//wrdSelection.Font.Underline = wrdDoc1.Paragraphs[i + 1].Range.Font.Underline;
//wrdSelection.Font.UnderlineColor = wrdDoc1.Paragraphs[i + 1].Range.Font.UnderlineColor;
//wrdSelection.Font.Color = wrdDoc1.Paragraphs[i + 1].Range.Font.Color;
//wrdSelection.Font.Position = wrdDoc1.Paragraphs[i + 1].Range.Font.Position;
//wrdSelection.Font.StrikeThrough = wrdDoc1.Paragraphs[i + 1].Range.Font.StrikeThrough;
}
// Perform mail merge.
wrdMailMerge.Destination = Microsoft.Office.Interop.Word.WdMailMergeDestination.wdSendToNewDocument;
wrdMailMerge.Execute(ref oFalse);
// Close the original form document.
wrdDoc.Saved = true;
wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
wrdDoc1.Saved = false;
wrdDoc1.Close(ref oFalse, ref oMissing, ref oMissing);
// Release References.
wrdSelection = null;
wrdMailMerge = null;
wrdMergeFields = null;
wrdDoc = null;
wrdDoc1 = null;
wrdApp = null;
// Clean up temp file.
System.IO.File.Delete("C:\\DataDoc.doc");
}
Bin für jede Hilfe und Anmerkung sehr dankbar.
-
Hi,
Ich habe ein fertiges SQL-Statement, also keine Möglichkeit in die Zusammenstellung des Statements einzugreifen.
Zum Beispiel:
"SELECT Name FROM Kunden WHERE Name='Supervisor O'Boyle'
Problem ist das Hochkomma im String.
Ich muss nun an einer zentralen Stelle wo die Statemens "durch kommen",
das Problem abfangen.
Weiß jemand wie ich das abfangen kann?
Vielen Dank!
-
kann es jetzt hier nicht testen, aber ich denke, dass du nach dem selected noch den Focus auf deine listView setzen musst. also sowas in der Art:
myListview.Select();
Ach ja genau, das wars!
Danke schön und schönes WE
-
Hi,
ich würde gerne eine Zeile in einer Listview(ViewStyle: Details) markieren.
Mein Ansatz:
myListview.Items[x].Selected = true;
myListview.Items[x].EnsureVisible;
Aber ich hätte die ganze Zeile gerne wirklich markiert, also mit blauem Hintergrund usw. .
Dankeschön!
-
SQL ist zwar nicht so mein Fachgebiet, und das Statement ist auch nicht getestet, aber vielleicht könnte es so oder so ähnlich gehen:
select k.* from Kunden k, Produkte p, KundeHatProdukte kxp where k.ID = kxp.IDKunde and p.id = kxp.IDProdukt and exists ( select ikxp.IDKunde from KundeHatProdukte ikxp where ikxp.IDProdukt = 1 and ikxp.IDKunde = k.ID) and exists ( select ikxp.IDKunde from KundeHatProdukte ikxp where ikxp.IDProdukt = 3 and ikxp.IDKunde = k.ID)
Ich weiß allerdings nicht, ob Du innerhalb des inner selects auf "k.ID" Zugriff hast.
Viel Erfolg!
Peter
Cool!
Das funktioniert.
Daraus kann ich mir mein Statement basteln.
Vielen Dank!
-
Also geschlagen wirst du nicht,
aber es funktioniert aucht nicht!
Ein Feld kann ja nicht gleichzeitig 1 und 3 sein. Wenn ich das richtig verstehe.
Ich denke das man hier mit Subqueries arbeiten muss.
Trotzdem danke.
-
Hallo,
irgendwie habe ich ein Brett vorm Kopp und bräuchte mal Hilfe.
Ich habe drei Tabellen,
Tabelle Kunden:
ID Name
1 Müller
2 Meier
3 Schmidt
Tabelle Produkte
ID Bezeichnung
1 Fenster
2 Haustür
3 Markise
und Tabelle KundeHatProdukte (Beziehungstabelle)
IDKunde IDProdukt
1 1
1 3
3 1
2 2
So jetzt bräuchte ich alle Kunden, die Fenster UND Markisen beziehen.
Select Name, Bezeichnung
From Kunden, KundeHatProdukte, Produkte
Where Kunden.ID=KundeHatProdukte.IDKunde
and KundeHatProdukte.IDProdukt= Produkte.ID
AND (Bezeichnung ='Fenster or Bezeichnung='Markise');
Mein Problem ist das ich hier nur eine Oder Verknüpfung bekommen,
also alle Kunden die Fenster ODER Markisen beziehen, und nicht Kunden die genau beides beziehen.
Als Ergebnis soll also nur Kunde Müller rauskommen.
Vll kann mir jemand helfen.
-
also ungetestet würd ich einfach ma sagen:
Worksheets("Tabelle2").Cells(2, 2).Value = Worksheets("Tabelle1").Cells(1, 1).Value
Worksheets("Tabelle2").Cells(3, 3).Value = Worksheets("Tabelle1").Cells(1, 2).Value
-
Hallo,
ich benötige das Erstellungsdatum einer Datei auf einem FTP Server,
um einen Vergleich mit einer lokalen Datei durchzuführen und gegenenfalls ein Dateiupdate durchzuführen.
Für jeden Tipp wie ich an das Datum ran komme bin ich dankbar.
-
hihi die Erfahrung hab ich Donnerstag gemacht.
2 der Prüfer waren total korrekt, und habe mir schöne technische Fragen zum Projekt gestellt, welche ich schön beantworten konnte. Aber auf einmal fing der eine an und hat mich zu netzplan und aufbau und ablauforganisation und diese Liniensystem und so abgefragt.....
Aber mach dich nicht verrückt, war eigentlich alles harmlos.
Kannst eh nicht alles lernen.
-
Also hab mir grade die Rar geladen,
ich finde den Hintergrund zu dunkel und finde das die Schrift nicht klar genug hervorkommt.
Wenn ich deine Gliederung so lese kommt mir das so vor als wenn deine Präsi sehr der Doku ähnelt. Versuche in der Präsi dir ein Szenario oder Thema deines Projektes herauszugreifen und gehe daruf näher ein.
Viel Glück
PS: Habe Donnerstag Präsi gehabt und 93 % bekommen =).....
-
Hi,
ich wollte auch mal eine schöne Diskussionsrunde zur GA1 der Anwendungsentwickler eröffnen, wie die FISI's.
Also, was haltet Ihr von der Prüfung.
Also ich fande sie eigentlich OK, die Zeit ist halt immer ein Problem (Struktogramm, Code etc. ist Zeitaufwendig).
Den 4. Handlungsschritt habe ich sofort gestrichen, weil die 5 mit dem Struktogramm eigentlich geschenkt war.
Was auch doof war, das es auf die Fragen zur Änderungsanomalie und Löschanomalie ganze 10 Punkte gab, und über sql Tabellen erstellen mit Beziehungen setzen.
Habt Ihr ggf. noch Lösungen im Kopf?
Also her mit Euren Meinungen, Kritiken, Lösungen oder kniffligen Aufgeben etc.
-
GA 1 - ging so, leicht schwer
GA 2 - war eigentlich kein allg. Teil, sondern FISI
WiSo - OK
Ich finde das die jetzige Prüfung ganz anders war als wie letzen Jahre, zu mind. GA1/2
Joa so seh ich das eigentlich auch.
Wann gibts denn eigentlich die Ergebnisse?
Und wie ist das genau mit den Ergebnissen, darf ich in keinem Bereich unter 50% kommen?
-
FIAE...
GA1 machbar, aber von der Zeit echt knapp, das mit den SQLs war etwas gemein, wer rechnet schon mit Tabellen erstellen und dazu dann Fremdschlüssel setzen, den 4. Schritt nach 2 min gestrichen, als ich gesehen habe das der 5. mit dem Struktogramm oder PAP geschenkt ist. =)
GA2 fand ich nicht toll, DoS und DDoS konnte ich nicht erklären, und das super Buch hat auch kein meter geholfenn Zum Glück gabs Punktesammler wie die Datenbankaufgabe und die EPK. Diese fragen zu den Englischen TExten, hmmm auch irgendwie doof.
WISO naja wiso halt=).
Eine Frage zu WISO, Aufgabe mit Angebots und Nachfrage Kurve, wisst ihr noch Ergebnisse?
Max Stückpreis und Max Umsatz oder was das war?
-
Stichwörter SelectedRow, Currentrow...
Weiss es grade nicht mehr auswendig.
-
Wir würde dir ja gerne helfen...
Aber die Beschreibung ist wirklich ein bisschen "Allgemein".
Zeig doch mal ein paar Codeschnipsel.
Irgendwie musst du ja auf den Tastendruck reagieren.
Hast wahrscheinlich das Keypress Event benutzt und weisst jetzt nicht wie
du richtige Buchstaben abfangen sollst?
Also...TRAU DICH
-
naja wenn du das array doch nun public hast brauchst du doch nix mehr zu übergeben. Dann ist es ja überall bekannt... Ob das n guter Stil ist ist die andere Frage...
Mal n schnelles Beispiel wie du ein Array an eine Funktion übergeben kannst.
Private Function FillArray(strArray() As String)
Dim i As Integer
While i < 10
strArray(i) = "TEST"
i = i + 1
Wend
End Function
Private Sub Form_Load()
Dim strArray(10) As String
Dim i As Integer
Call FillArray(strArray)
While i < 10
MsgBox strArray(i)
i = i + 1
Wend
End Sub
-
Hast du das Formuar selbst erstellt?
Wenn ja kannst du den Pfad doch einfach in irgendeiner Datei abspeichern und wieder auslesen?
mfg MSC
-
hmm mich würde mal interessieren wie du die Verbindung zur Datenbank herstellst...
nur conn.open() ???
Wie sieht denn der ConnectionString aus??
mfg
MSC
-
Nur noch mal als anregung oder so...
Was mir persönlich sehr gut gefallen hat:
Eine Tabelle selbst erstellen und zwar mit
DataTable MyTable = new DataTable
Diese Tabelle kann man dann mit zeilen und spalten füllen und später an ein DataGridView binden... funktioniert super...
mfg
MSC
-
hmmm,
in PageLoad rufst du die Funtion TourenArray auf, welche dir dein Array füllt,
das Array ist allerdings private, das heisst PageLoad kennt das Array strArray gar nicht,
strArray = tourenArray(strSql)
oder du machst das strArray halt public (hmmnaaajaaaaaa...)
Ausserdem vermisse ich irgendwie den Datentyp der Funktion?
Und die Funktion gibt nicht das komplette Array zurück sondern nur das element an der Stelle j...
Sorry bin C# - ler....
Das ist mir jetzt alles mal so aufgefallen, hoffe konnte dir weiter helfen....
mfg
MSC
WORD-Serienbrief mit C#
in .NET
Geschrieben
Hat sich erledigt, habs hinbekommen.
CLOSED