Ich habe den Fehler gefunden und - es tut mir leid - aber ihr konntet ihn nicht finden, denn er lag in der Funktion GenerateConnectionString(/.../) aus
Zeile 6.
Der Vollständigkeit halber anbei die Funktion:
public string GenerateConnectionString(System.Uri Link, string ListName)
{
string ConnString = string.Empty;
/*This was wrong!!!*/
//ConnString += "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=1;RetrieveIds=Yes; DATABASE=" + Link.ToString() + "; List=" + ListName;
/*This is running correctly!*/
ConnString += "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=1; DATABASE=" + Link.ToString() + "; List=" + ListName;
return ConnString;
}
Bei Abruf der Daten schon entscheiden, welche Spalten du brauchst sollte dabei helfen. Ich würde die DataTable schon vor dem Anhängen an das DataGridView manipulieren. Entweder direkt bei der Datenabfrage oder aber in den Business-Logik.
Am einfachsten wäre da wohl eine Konfigurationsdatei die definiert bei welchem Dialog welche Spalte benötigt wird. - Spalten die dann nicht in der Liste für den Dialog vorkommen würde ich einfach per Schleife ausblenden / aus der DataTable entfernen.
Hallo.
Ich habe eine SAP Anwendung in einer Instanz kreiert. Es funktioniert soweit alles wunderbar, aber der Code soll eher eine Art erweitertes Startskript sein. Ich starte SAP und melde mich gleich unter dem korrekten System an:
string SAP_System;
string Mandant;
string User;
string Password;
string Language;
SAPFEWSELib.GuiApplication App = (SAPFEWSELib.GuiApplication)System.Activator.CreateInstance(Type.GetTypeFromProgID("SapGui.ScriptingCtrl.1"));
SAPFEWSELib.GuiConnection Con = App.OpenConnection(SAP_System);
SAPFEWSELib.GuiSession Ses = (SAPFEWSELib.GuiSession)Con.Sessions.Item(0);
Ses.TestToolMode = 1;
((SAPFEWSELib.GuiTextField)Ses.ActiveWindow.FindByName("RSYST-MANDT", "GuiTextField")).Text = Mandant;
((SAPFEWSELib.GuiTextField)Ses.ActiveWindow.FindByName("RSYST-BNAME", "GuiTextField")).Text = User;
((SAPFEWSELib.GuiTextField)Ses.ActiveWindow.FindByName("RSYST-BCODE", "GuiPasswordField")).Text = Password;
((SAPFEWSELib.GuiTextField)Ses.ActiveWindow.FindByName("RSYST-LANGU", "GuiTextField")).Text = Language;
Ses.SendCommand("");
Console.ReadKey(); //Hit any key to end programm AND close SAP (I want to avoid that)!!
Ich denke, interessant ist Zeile 7 und Zeile 17;
Kann man diese SAP-Instanz in einen eigenen Prozess auslagern und anschließend möglichst viele Informationen dieses Prozesses - so dass man die Oberfläche evtl. später wieder attachen könnte?
Ich würde mich über Ideen sehr freuen...
Gruß,
CJens
Ich konnte meine Probleme selbst lösen
Zu 1)
Den Debugger haette ich wohl schon frueher verwenden sollen, denn sobald die Zelle Text enthaelt konnte die Form2 gar nicht mehr geoffnet werden. => musste also mein if-Statement entsprechend abaendern
Zu 2)
Funktioniert so prima
// Prüfen ob bereits eine Form geöffnet ist.
Form fc = Application.OpenForms["Formname"];
if (fc != null)
fc.Close();
Hallo,
ich suche eine Möglichkeit wie man zwei schwarz-weiss Bilder überlagern und gegeneinander verschieben kann. Das erste Bild soll ganz normal in einem Fenster angezeigt werden, und das zweite Bild soll mit 50% Transparenz darübergelegt werden und in X und Y verschiebbar sein.
Alternativ könnte man auch ohne Transparenz arbeiten und unterschiedliche Farbkanäle verwenden, z.B. rot für Bild1 und grün für Bild2.
Hat jemand eine Idee wie man das realisieren könnte?
Gruß
Michael
Ich würde die Variante mit gleichen Anfangs- und End-Symbolen als universell schlechter ansehen. Also nicht nur schwieriger zu implementieren, sondern auch blöder zu verwenden, blöder zu erklären etc.
Also wozu sich den Mehraufwand antun, für etwas was universell schlechter ist als die einfacher zu implementierende Lösung?
Sharpy schrieb:
Hallo!
Weiß jemand wie ich über Outlook emails verschicken kann ohne Outlook offen zu haben?!
Der Code unten funktioniert zwar, aber nur wenn ich Outlook vorher manuell starte. Wenn Outlook nicht geöffnet ist, bleiben mails bis zum nächsten start von outlook alle im postausgang und werden auch erst dann versendet. Gibt es eine Möglichkeit eine Mail tatsächlich zu versenden, in der outlook quasi im hintergrund geöffnet wird und solange offen bleibt bis die mail auch tatsächlich versendet wurde?
public static void sendmail(string Empfaenger, string Betreff, string Nachricht)
{
try
{
var OutlookApp = new Outlook.Application();
Outlook.NameSpace OutlookNameSpace = OutlookApp.GetNamespace("MAPI");
Outlook.MAPIFolder MAPI_FolderFolder = OutlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail);
Outlook.MailItem EMail = (Microsoft.Office.Interop.Outlook.MailItem)MAPI_FolderFolder.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
EMail.To = Empfaenger;
EMail.Subject = Betreff;
EMail.Body = Nachricht;
EMail.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatRichText;
EMail.Importance = Outlook.OlImportance.olImportanceHigh;
EMail.ReadReceiptRequested = true;
((Outlook._MailItem)EMail).Send();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception");
}
}
Hi.
Ich habe das wie folgt gelöst:
Microsoft.Office.Interop.Outlook.Application OL = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem Mail = OL.CreateItem(OlItemType.olMailItem);
Mail.Subject = Subject;
Mail.To = DestAddress.Address;
Mail.Body = Text;
Mail.Display(false);
Text = string.Empty;
Mail.Send();
OL.Quit();
Ich habe jetzt den Filter erstellt.
string FilterExpression = "(Spalte A = 'Kriterium A' OR Spalte A = 'Kriterium B') AND Spalte B = 'Kriterium C'"
DataView dv = new DataView(myTable)
dv.RowFilter = FilterExpression;
return dv.ToTable();
Funktioniert erstmal super, vielen Dank. Jetzt noch eine Frage: Wie kann ich als Kriterium "irgendeine Zahl", "irgendeine Zeichenfolge" angeben?
Und noch eine Frage habe ich:
Folgender Audruck funtioniert:
string filterExp = "Status = 'Active'";
Folgender Ausdruck funktioniert nicht:
string filterExp = "Aktueller-Status = 'Active'"; //Fehler wegen dem '-'
Wie kann man das implementieren?
Sorry für die vielen Fragen, aber:
a, es ist keinem geholfen, wenn ich daraus hundert Posts mache und
b, jeder, der das googelt wird sehen, dass es zu diesen spezifischen Problemen nicht viel Hilfe gibt.
Vielen Dank,
Jan
Ps.: Das hier funktioniert definitiv NICHT:
http://stackoverflow.com/questions/34628778/unable-to-have-dash-in-dataview-filter-c-sharp
Hi.
Das Problem bei Google ist, dass man 134.528.437 Antworten auf eine Frage bekommt. Hier wurde ich bisher immer gut beraten.
Welche, möglichst .Net-nahe Library würdet ihr verwenden,um ein PDF zu laden und es dann als Image speichern zu können.
Danke,
Jan
Das ist auch nur bei einigen Steuerelementen so. Nutze ich beispielsweise ein SimpleOGLObject (aus dem Tao-Framework), so ist der explizite Fokus gar nicht notwendig.
Danke hab es ...
//das Werkzeug Pipette
private void toolStripButtonPipette_Click(object sender, EventArgs e)
{
zeichenwerkzeug = 7;
toolStripStatusLabelWerkzeug.Text = "Pipette";
}
//die Methode um die Farbe aus einem Pixel zu übernehmen
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
//Ist die Pipette markiert?
if (zeichenwerkzeug == 7)
{
//wurde die linke Taste benutzt?
if (e.Button == MouseButtons.Left)
{
//dem Stift die Farbe des Pixels zuweisen
//über die GetPixel() Methode, übergeben werden die Koordinaten des Pixels
stift.Color = bild.GetPixel(e.X, e.Y);
//Einstellungen speichern
einstellungSpeichern();
}
//wurde die rechte Taste benutzt?
if (e.Button == MouseButtons.Right)
{
//dem Pinsel die Farbe des Pixels zuweisen
//über die GetPixel() Methode, übergeben werden die Koordinaten des Pixel
pinsel.Color = bild.GetPixel(e.X, e.Y);
//Einstellungen speichern
einstellungSpeichern();
}
}
}
Ich habe eine "Lösung" für mein Problem gefunden.
Meine folgende Vorgehensweise schaut wie folgt aus:
var xml = XElement.Load(@"D:\file.xml").Elements().ToList();
var dic = xml[0].Elements().ToDictionary( x => x.FirstAttribute.Value, x => x.FirstAttribute.NextAttribute.Value);
Soweit erfüllt es meine Absicht.
Ich lasse dabei alles in eine Liste laden und greife dann über den Index auf die einzelnen TAGs zu, welche ich über ihren VALUE selektieren kann (if-anweisung).
Ich finde das dies noch viel effizienter geht. Also lasst es mich wissen, wenn Ihr eine besseren Ansatz habt.
Vielen Dank im Voraus!
Gruß,
Gast01