Laden...

Forenbeiträge von trib Ingesamt 708 Beiträge

06.08.2008 - 15:05 Uhr

Bitte wähle nächstes Mal einen aussagekräftigeren Thread Titel.

Du kombinierst in der Ausgabe einen String und einen Integer Wert.
Nun muss der Compiler entscheiden welcher davon Sinnvoll ist.

So wie es scheint, hat er sich für Int entschieden und gibt dir aus, das dein Satz aus 49 Zeichen besteht.
Setze mal hinter das x ein x.ToString() um die Ausgabe eindeutiger zu machen.

Gruß,
TriB

06.08.2008 - 14:59 Uhr

Der Pfad wird so wohl nicht als solches erkannt.
Denn innerhalb von den Anführungszeichen werden Kürzel wie z.B. " \n " als Zeilenumbruch erkannt.
Daher musst du 2 Backslashes nutzen oder ein @ davorsetzen:

axAcroPDF1.LoadFile("d:\\test.pdf");
oder
axAcroPDF1.LoadFile(@"d:\test.pdf");
06.08.2008 - 14:45 Uhr

Benutz auf jeden Fall mehrere Forms!

Zum einen die mit den Buttons und dann noch eine um die Auswahl des Screenshots zu zeichnen.
Die 2. Form ist dann ca. 30% Transparent und auf Vollbild gestellt. Sie wird natürlich erst geöffnet, wenn du deinen Screenshot machen möchtest.

Dann benötigst du nur die OnPaint Methode, mit der du ein Rechteck zeichnest,
OnMouseMove um zu wissen WO du es zeichnest (MouseUp & Down ist klar, ne?)

Und zu guter letzt die Screenshot Methode, in der du den Bereich, den du auf der Form gezeichnet hast als Koordinaten nimmst.

Klingt schwierig, ist so aber recht einfach zu machen.

Viel Erfolg,
TriB

05.08.2008 - 10:56 Uhr

Oder so... 🙂
Dann könnte er ja einfach mit dem WindowState Event arbeiten.

Beim minimieren die Werte zwischenspeichern und alles Stoppen. Beim wiederherstellen dann die Funktion mit den gespeicherten Werten wieder aufrufen.

05.08.2008 - 08:56 Uhr

Ich denke eher, das dw1nst die Form nur als Mittel zum Zweck nutzen möchte und eher auf dem Bildschirm zeichnen möchte.

Dann ist es natürlich nicht möglich auf der Form mit g.drawstring zu arbeiten, die Form wegzuklicken und hoffen, das der Text auf dem Desktop bleibt 😉

Der einfachste Weg wäre mit einer transparenten Form zu arbeiten.
BSP. leider nur in VB

Die "richtige" Anwendung sollte etwa so aussehen (ungetestet!)

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;

namespace DrawToScreenTestApp
{

#region UnmanagedMethods
internal class UnmanagedMethods
{

[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr hwnd);

[DllImport("User32.dll")]
internal static extern void ReleaseDC(IntPtr dc);

}
#endregion

#region DrawToScreen

public class DrawToScreen
{
public void PaintRectangleToScreen()
{
IntPtr deskDC = UnmanagedMethods.GetDC(IntPtr.Zero);

Graphics g = Graphics.FromHdc(deskDC);

g.FillRectangle(new SolidBrush(Color.FromArgb(100, Color.CadetBlue)), 0,0, 300, 300);

g.EndContainer(cont);

g.Dispose();

UnmanagedMethods.ReleaseDC(deskDC);
}
}
#endregion
} 

Gruß, TriB

04.08.2008 - 16:38 Uhr

Für mich sind Mac´s und die anderen Apple Produkte zum Teil schon Vorreiter.
Klar hat es Vor- und Nachteile das gesamte Betriebssystem auf einmal umzustellen.

Nachteil: Kompatibilität, ganz klar!
Vorteil: Die Performance der Macs ist wirklich klasse. Wo das verschieben eines Fensters bei einer Vista Aero-Oberfläche den Rechner zum glühen bringt, zuckt der Mac nur mit den Achseln. PhotoShop war ebenfalls schon immer deutlich schneller.

Genau das ist ja das Windows Problem. Die schleppen zu viele Altlasten mit sich herum und achten auf die ultimative Kompatibilität. Irgendwann muss eben ein Schritt weiter gedacht werden.
Daher von mir 1:0 für Apple.

Womit ich aber rein gar nicht klar komme ist die Steve Jobs Firmenpolitik.
Der Preis für die "Designer Geräte" ist schon utopisch. (Gut, wer sich von der Masse abheben will muss eben zahlen)
Dann wird einem bei jedem Gerät iTunes aufgezwungen und mittlerweile sogar Safari.
Ist das eine Vereinfachung der Bedienung oder die volle Kontrolle und der Ausschluß von Drag & Drop?
Was die iPhone Verträge beinhalten ist ja schon der nächste Hammer! Abgesehen davon das z.B. die HTC Geräte deutlich mehr Funktionen und Einstellungsmöglichkeiten bieten. (Nur die Fenster "Sliden" nicht so lustig)

Ich hasse es wirklich, wenn eine Firma mir probiert vorzuschreiben, wie ich ein Gerät zu bedienen habe und wie ich es nutzen kann. Bevormundung durch ein vermeintlich intelligenteres System... Gut -> das macht Vista auch, aber das nutze ich auch nicht 😉

Zuhause nutze ich zum Teil Linux, welches man dank der Modularität optisch auch ähnlich Vista oder OSX aufbohren kann, ohne das es Ressourcen kostet. Da weiß ich genau was der PC gerade macht und werde nicht von einer "KI" bevormundet oder von irgendwelchen pseudo Sicherheitsfunktionen ausgesperrt...

Ansonsten bleibe ich schön bei XP und einem normalen und preisgünstigeren PC. Schöne Cases gibt es dafür auch 🙂

04.08.2008 - 16:14 Uhr

Welches .NET Framework nutzt du denn?

Das z.B. mit Visual Studio 2008 mitgelieferte .NET 3.5 besteht zu 99% aus SQL Funktionen.
Da findet sich so ziemlich alles wieder was man so benötigt.

Gruß, TriB

01.08.2008 - 11:28 Uhr

Hallo hiwi,

das Problem besteht darin, das es für fast alle Office Versionen eigene *.dlls gibt.
Zum Teil unterscheiden sie sich nur geringfügig und können auf verschiedenen Versionen genutzt werden, zum Teil wurden aber auch die Namespaces umbenannt.

Bei 2007 hat sich z.B. das Dateiformat der Dokumente grundlegend geändert, was natürlich dazu führt das die Libarys auch grundlegende Veränderungen abbekommen haben.

Somit kann man sagen, das mehr oder weniger pro Office Version eine individuelle Programmierung gemacht werden muss.

Gruß,
TriB

18.07.2008 - 15:12 Uhr

Vielleicht denke ich zu kompliziert, aber ich würde das etwa wie folgt lösen.
(Kommt natürlich drauf an in welchen Zeiträumen die Variable geändert wird)

Variable in eine *.CS auslagern und mit Get & Set versehen.
Bei dem Set kannst du dann vor der Zuweisung das value abgreifen und z.B. in einer Console ausgeben oder in einem Text-File speichern.

So hättest du zu jedem Zeitpunkt den Wert...

17.07.2008 - 09:10 Uhr

Zu finden in den Weiten des Internets: 😉http://www.codeproject.com/KB/cs/globalhook.aspx

Bzw. hier im Board wurde das Thema auch schon häufiger besprochen.

Gruß,
TriB

16.07.2008 - 14:32 Uhr

Lass mich raten:

System ist Win XP und das Update war SP3.

Wenn ja, Schade. Denn da hilft nur noch ein neu aufsetzten des Rechners.
Wir hatten das selbe Problem und mussten alle PC´s neu aufsetzten da es keine Sinnvolle Lösung gegeben hat.

Weitere Probleme von SP3:
Remotedesktopverbindung funktioniert nicht mehr,
Internet Explorer lässt sich nicht deinstallieren/updaten,
ISS Services gehen irgendwie kaputt
und eben der Report Server startet nicht mehr vernünftig.

15.07.2008 - 16:29 Uhr

Das müsstest du doch per "Anchor" oder "Dock" in den einzelnen Controls festlegen können.
Sicherlich ist das mühselig aber sollte dich zu dem gewünschten Ergebnis führen.

Ziehst du die Form größer oder kleiner, verhalten sich die Elemente dann Proportional.
Evtl. musst du aber Buttons usw. auf Panels auslagern um den gewünschten Effekt zu erhalten.

Eine harte Programmierung alá:
foreach( Control ctrl in MainForm.Controls)
ctrl.width & hight += ein paar Pixel;
würde ich nicht machen (kann auch sein, das das so nicht mal funktioniert).

Gruß, TriB

15.07.2008 - 08:51 Uhr

Probier das mit der Größe doch mal etwa so:

this.Width = Screen.PrimaryScreen.WorkingArea.Width;
this.Height = Screen.PrimaryScreen.WorkingArea.Height;

Das passt dann das Fenster auf die Größe des Desktops, ohne Startleiste an.
Da du nun ja die Screen Klasse kennst, sollte es aber auch kein Problem sein andere Größen darzustellen.

14.07.2008 - 11:53 Uhr

Das Office 2007 Format ist ein grundlegend anderes:

Diese *.docX, *.xlsX Dateien sind in Wirklichkeit ein ZIP-Archiv in dem XML Files liegen.
So müsste das Programm diese entpacken, die richtige XML mit dem Text-Inhalt raus finden und diese durchsuchen.

Ich gehe mal stark davon aus, das grep dazu noch nicht in der Lage ist.
Aber wer weiß ob bald die Office 07er Versionen unterstützt werden...

11.07.2008 - 15:00 Uhr

Ich würde das ganz anders und vor allem nicht so kompliziert machen.

Es gibt in Listen z.B. die Funktion Contains()

Sprich:

foreach (aObjects y in Stapel2)
        {
		if(Stapel1.Contains(y))
			strTemp =  x.Name + " = " + y.Name;
		else
			strTemp = y.Name + " ist in Stapel 1 nicht vorhanden";
	}

Damit sparst du dir schonmal ein paar Funktionen und Zeilen.
Natürlich musst du das ein bisschen umbauen um zu schauen welche Daten in welchem Stapel nicht vorhanden sind.

Du könntest natürlich die Ergebnisse erstmal ein einer 3. List zwischenspeichern, doppelte Einträge löschen, sortieren und dann ausgeben.

10.07.2008 - 13:44 Uhr

Hey super, das sieht ja gut aus!

Ich habe aber noch eine Alternative gefunden, ob sie dir hilft weiß ich nicht, aber sie ist zumindest sehr sehr einfach.

Wenn du auf dem ReportServer bist, kannst du sog. Abonnements abschließen.
Dort gibst du einen Zielpfad und ein Zeitfenster an und der Report speichert sich wie von Geisterhand selbst, im richtigen Format 🙂

10.07.2008 - 10:30 Uhr

Ich habe gestern mal ein wenig gegooglet und ein Beispiel für genau dein Problem in VBA & mit Crystal Reports gesehen...

Das müsste also schon funktionieren einen Report über irgendeine Schnittstelle auszuführen und abzuspeichern. Und genau die gilt es jetzt zu finden.

Mit etwas Glück ist die im .NET 3.5 Framework dabei (Das besteht ja fast nur aus SQL-Geschichten) oder man muss auf etwas vorgefertigtes zurückgreifen.

Ich halte meine Augen mal offen, das würde mich auch mal interessieren!

10.07.2008 - 10:25 Uhr

Und was ist ein "nicht crystal"-Report?

Replace wäre ein Versuch wert...

Ausdruck bearbeiten -> Allgemeine Funktionen -> Text

Dort findet man alle möglichen Verarbeitungen innerhalb des Reports.

10.07.2008 - 10:16 Uhr

Sharepoint arbeitet mit SQL, also kannst du die Pfade der Dateien auslesen. Dann sollte es doch einfach möglich sein, diese Liste ab zu arbeiten und die Dateien der reihe nach zu speichern!

Die Beispiele im Netz greifen sicherlich auf Referenzen zu, also *.dll Dateien, z.B. aus dem .NET Framework.
Werden selbst programmierte DLL´s genutzt, liegt diese normal dem Beispiel-Projekt bei.

Ich denke aber, das das nicht einmal nötig ist, da du wie gesagt per SQL an die Dateilisten kommst.

Gruß,
TriB

09.07.2008 - 16:32 Uhr

So meinst du das, ich dachte mehrere einzelne Parameter...

Dann gibst du den Parameter unter Berichtsparametern "Mehrwertig" an.
Das ist gleich zusetzten mit einem string[] Array in c#.

Zuweisen musst du es dann aber pro Datensatz.
Siehe Msdn:
Verwenden von einwertigen und mehrwertigen Parametern

In die MSDN solltest du sowieso mal einen Blick werfen. Dort findet man schon viele Erklärungen und Tipps!

09.07.2008 - 14:19 Uhr

Ich verstehe gerade nicht was du genau möchtest...

Um an die Werte des SQL-Reports zu kommen musst du ja nur das SQL-Statement herauskopieren und in der Konsolenanwendung ausführen.

Um das Teil zu starten, übergibt man das dem IExplorer oder von mir aus auch einer eigenen Form mit einem WebBrowser Steuerelement den Pfad.

Aber sich im Prinzip das Teil Virtuell ausgeben zu lassen und es dann weiter bearbeiten...
das halte ich nicht unbedingt für möglich.

Evtl. bestünde aber die Möglichkeit den Report als XML zwischen zu speichern und so zu verändern. Man kann ja bei einem Report sagen "Speichern als XML-Datei mit Berichtsdaten".
Wenn du Glück hast, kommst du über eine Schnittstelle an die Methode die genau diese Funktion erfüllt.

Gruß,
TriB

09.07.2008 - 14:09 Uhr

Also ich kann mehrere Parameter übergeben.
Und dieses "Auslassen" bedeutet wohl: Parameter kann leer gelassen werden.
(Habe VS2005, kann sein das sich das geändert hat. Der ansonsten solltest du das bei dem empfangenden Report einstellen können, das die Parameter auch leer sein können)

Ich denke ein Bild sagt mehr als 100 Worte:

09.07.2008 - 11:53 Uhr

Man kann sicherlich mit Substring() arbeiten.

Z.B. weißt du ja, das alles ab der " ( " das Jahr ist, also:

Jahr = DateiName.Substring(Dateiname.LastIndexOf("(") + 1);

Damit erhältst du schonmal " 2008 ) "

Jahr = DateiName.Substring(Dateiname.LastIndexOf("(") + 1).Replace(")","");

ersetzt die Klammer dann mit einem leeren Zeichen.

Nun hast du den letzten Part und kannst dich weiter nach vorne arbeiten:

DateiName.Substring(Dateiname.LastIndexOf("-") + 1).Replace(Jahr,"");

Und so weiter und so fort...

09.07.2008 - 11:41 Uhr

Achso, auch kein Problem:

Du gehst auf die Eigenschaften deines Feldes (rechte Maustaste, nicht die Tabelle rechts) und dann auf den Reiter "Navigation".
Zu Bericht springen -> Bericht eingeben -> Button Parameter

z.B.

Parametername	Parameterwert		Auslassen
UsrName		=Fields!UserNo_.Value	false

Fertig 🙂

09.07.2008 - 08:35 Uhr

Wenn du einen Subreport nutzt, kannst du unter Eigenschaften->Parameters
die Parameter des Haupt-Reports mit denen des Sub-Reports verknüpfen.

Dazu sollten natürlich unter Bericht->Berichtsparameter in beiden Reports die Parameter angegeben sein. (Gleicher Typ, Name ist egal)

Dieser Sub-Report kommt dann in die Detail-Zeile und diese wird von der darüberliegenden Zeile auf Visible gesetzt. Dann hast du ein kleines Kreuz auf das du klicken kannst um den 2. Report zu sehen.

Gruß,
TriB

08.07.2008 - 15:27 Uhr

Sieht etwas kompliziert aus, aber ich denke mal ich habs.

WinFaq sei Dank.
Standard-Icon auf dem Desktop ausblenden

Unter 98ect. war es nur deutlich einfacher und übersichtlicher.
Für XP wurde das Ganze verlagert und die Registry Einträge grundlegend verändert.

Danke für den Tipp, norman_timo!

08.07.2008 - 13:46 Uhr

Im Winter wäre es dann auch nur eine Stunde Unterschied gewesen 🙂

07.07.2008 - 13:44 Uhr

Guten Tag zusammen,

auf dem Desktop können ja die Eigenen Dateien, der Arbeitsplatz sowie die Netzwerkumgebung ein. & ausgeblendet werden.
Dies würde ich gerne per C# realisieren, weiß auch das es geht.
Bei der Suche danach habe ich aber ein Programm gefunden welches diese Funktion bietet, leider aber keinen Code oder Hinweis zur Programmierung.

Der Sinn des ganzen liegt darin, das wir mehrere Images haben, die gewechselt werden.
Dann soll von meinem Programm immer gewährleistet werden, das bestimmte Verknüpfungen vorhanden sind, die Auflösung stimmt, usw.

In der Registry konnte man das unter 98 noch einstellen. Bei XP leider nicht mehr.

Danke für jeden Tipp,

TriB

04.07.2008 - 09:15 Uhr

Oder öffne statt der Solution mal das Projekt, das funktioniert weiterhin.

Die Projektdatei wird dann für 2005 wieder neu erstellt.

04.07.2008 - 08:40 Uhr

Ohh, habe ich mich verlesen, ich meinte natürlich den Exchange Server und nicht den SQL.
Dort sind die Zeiten aber auch in einer Datenbank abgelegt. Und diese speichern natürlich immer ein fixes Datum (Millisekunden seit Anno Schnulle).
Die Berechnung der Sommer/Winterzeit wird dann normalerweise von dem Ausführenden Programm oder gar der Schnittstelle übernommen.

Die GUI geht wahrscheinlich über eine Schnittstelle und er WebDev spricht den Server direkt an.

Warum wären es sonst immer exakt 2Std.?

04.07.2008 - 08:31 Uhr

Wie das funktioniert wurde z.B. hier schon mal besprochen:
Empfangenen Key an andere Applikation weiterleiten

Gruß,
TriB

03.07.2008 - 15:53 Uhr

Beim SQL Server liegt das sehr wahrscheinlich am Zeitformat.
Gerade wenn der Zeitunterschied statisch ist.

Stichwort: Sommer-Winterzeit
Die 2 Stunden würden ja im Moment auch genau hinkommen.

03.07.2008 - 15:42 Uhr

zu Punkt 3) mit dem Autostart:

Um die Windowsfunktion nutzen zu können musst du über die Registry gehen.


RegistryKey regKey;
                regKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
                if (regKey == null) 
                  regKey = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
                regKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                regKey.SetValue("nameDesProgrammes", programmpfad);
                regKey.Close();

So sollte das kein Problem darstellen.

03.07.2008 - 14:18 Uhr

Die simpelste, auch wenn nicht beste Möglichkeit wäre die Zwischenablage dafür zu benutzen.

Einfach deinen String mit Clipboard.SetText() festlegen und diesen per Strg+V (ebenfalls per Hooks möglich) einfügen. Du bist dann ja schon mit dem Cursor an der richtigen Stelle. Evtl. Vorher 3x Backspace um dein Pattern zu löschen.

Damit du danach nicht immer den Text in der Zwischenablage hast, würde ich vorher den Inhalt als Objekt zwischenspeichern und nach der Ausgabe wieder hinterlegen.

Gruß,
TriB

03.07.2008 - 14:13 Uhr

Könnte es evtl. daran liegen?

this.main_module0_panel0.AutoSize = true;

Gruß,
TriB

03.07.2008 - 08:40 Uhr

Du kannst per rechter Maustaste auf die References in deinem Projekt, Referenzen hinzufügen.
Dort sollte sich dann auch die Libary für Access wiederfinden.
(Unter COM schauen)

03.07.2008 - 08:33 Uhr

Guten Morgen pro,

ich verstehe gerade nicht genau was du möchtest.
Du kannst die Funktionen in eine *.js Datei auslagern und sie aus jeder HTML-Seite aufrufen.
Hast du ja auch wohl getan.

Was aber natürlich nicht geht, ist auf die selbe Instanz zuzugreifen.
Und genau das scheinst du zu wollen...

Mir fällt auf die schnelle nur php ein, da du damit die Möglichkeit hast Werte von einer Seite an eine andere zu übergeben.
Ansonsten könnte man mit Sessions arbeiten, das jeder User seine eigene Verbindung hat. Macht aber nur Sinn in Verbindung mit SQL.

Zu guter letzt könnte man pro Nutzer eine Textdatei mit den Werten ablegen.
Ist etwas unperfomant und nicht gerade schön gelöst. So benötigst du kein SQL, kommst aber um PHP auch nicht herum.

Gruß,
TriB

02.07.2008 - 13:41 Uhr

Hallo zusammen,

ich habe gerade ein kleines Programm geschrieben, welches per Knopfdruck über FTP meine Zwischenablage hochläd.
Alles kein Problem. Nur möchte ich ungerne meine Screenshots immer wieder überschreiben, geschweige denn einen Zähler hart programmieren.

Da habe ich "WebRequestMethods.Ftp.UploadFileWithUniqueName;" gefunden und ging blauäugig davon aus, das dann einfach eine Laufende Nummer angehängt wird o.ä.

Jedoch rassel ich in den Catch Block:
Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar oder keinen Zugriff.....

UploadFile Funktioniert hingegen anstandslos.

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server + "Bild.jpg");                
                request.Credentials = new NetworkCredential(login, password);
                request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName;
                //request.Method = WebRequestMethods.Ftp.UploadFile;
                request.Proxy = null;
                request.UseBinary = true;

                try
                {
                    WebResponse response = request.GetResponse();
...

Wende ich das ganze falsch an, oder gibt es eine einfache/bessere Alternative?

Gruß,
(ein bei 36° verdammt schwitzender) TriB

01.07.2008 - 11:57 Uhr

Das angesprochene Problem bezieht sich auf eine unsaubere Tabellenrelation.
Datenredundant ist sie vielleicht nicht, aber normalerweise löst man das Problem, das mehrere User in mehreren Gruppen und andersherum sein können, mit einer n:n Beziehung.

Das heißt, das man eine weitere Tabelle zwischen die beiden packt und dort alle Beziehungen einträgt. (Spalte1 UserID, Spalte2 GruppenID)

So kann auch Access oder ein anderes Programm damit etwas anfangen und nicht nur dein C# Proggie was "hart" diese Verknüpfung ausliest.

Gruß, TriB

01.07.2008 - 08:30 Uhr

Guten Morgen zusammen,

wenn ich per ProcessStartInfo nur den Dateinamen starte ("iexplore", "notepad" oder eben "MSaccess"), dann greift die Process Klasse auf die Registry (Programmhandler) zu um an den Pfad des Programmes zu gelangen.
Genau dort könnte ich dann ebenfalls an den/die Pfade kommen.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.mdb]
"Progid"="MSaccess.exe"

Gruß,
TriB

26.06.2008 - 15:36 Uhr

Da Excel2007 neben den neuen Dateiendungen auch noch ein paar neue *.dll´s mitbringt, wirst du in deinem Projekt die Using-Direktive anpassen müssen.

Das reicht aber noch nicht, da sich zusätzlich ein paar Methoden geändert haben.
(Die Zahlen in den Methodennamen stimmen nicht mehr überein)
Solle man aber recht fix mit dem Debugger herausfinden können welche das sind.

26.06.2008 - 15:24 Uhr

Must declare the scalar variable "@ID",

Das ist sozusagen die Allzweck-Fehlermeldung von SQL 😉
Es muss nicht an der Variable selbst liegen. Es kann auch an jeder Stelle des Codes ein Fehler vorgekommen sein.

Am besten schreibst du dein fertiges SQL-Statement, bevor du es dem Adapter übergibst, in eine Textdatei und schaust es dir dort an.

Das sollte die Fehlersuche vereinfachen.

26.06.2008 - 15:15 Uhr

naja, und auf meinem Noti macht er dann immer eine UMTS-Verbindung auf, oder?

So isses, sprach Meister Pinguin 😉

Ich musste doch sehr schmunzeln als ich das gelesen habe!

Wenn das ganze auf einem Rechner läuft, der selbstständig keine Verbindung aufbauen kann, könnte man das mit dem Ping so lösen:

System.Net.NetworkInformation.Ping p = new Ping();
                p.PingCompleted += pingHandler;
                hostReachableCheckBox.CheckState = CheckState.Indeterminate;
                p.SendAsync("www.google.de", 20000, null);

Aber aus den o.g. Gründen eben nicht die Lösung...

24.06.2008 - 14:21 Uhr

Hiho,

ich reihe mich dann mal mit ein.

In der 1. Ausbildung habe ich Java (1 Jahr), c (0,5) & c++ (1,5) gehabt.
Dazu HTML, CSS, JS & PHP auf die 3 Jahre verteilt. Genauso wie VB in Excel und Access.
Das ganze ist jetzt 2 Jahre her. In der Zwischenzeit habe ich privat viel Webanwendungen gemacht und C eher vernachlässigt.

In Ausbildung Nr. 2 bin ich jetzt seit einem Jahr an C/AL (Job) und C# (Schule).
C# nutze ich aber auch privat oder erstelle kleine Programme die mir den Alltag in der Firma vereinfachen.
(Und alles was in Sachen SQL [Reporting] so anfällt)

Ging aber fix dort wieder rein zukommen. Die Grundlagen aus der Schule waren schon nicht verkehrt.

Vor dem Ganzen gab es noch ein bisschen Basic. Das war aber eher nur Spielerei.

Alles in Summe, komme ich dann auf 5 Jahre einigermaßen ernsthafter Programmierung.

20.06.2008 - 14:48 Uhr

Wie der Name "ANMELDEDAT" schon sagt, denke ich mal das es sich um die Benutzerüberprüfung oder so handelt.

In vielen Datenbanken gibt es ein paar Standard Tabellen für Benutzer, Rollen oder Zuweisungen.
Bevor du an die Daten kommst probiert er evtl. zu checken ob du als Benutzer in der "ANMELDEDAT" eingetragen bist...

Aber das solltest du dann ja sehen, wenn du in dir DB schaust.

Warum das nur manchmal passiert kann ich mir aber nicht erklären. Das sollte eigentlich ein "entweder, oder"-Problem sein.

20.06.2008 - 14:15 Uhr

Boahr, SUPER! Dank dir vielmals.

Habe gerade die " alle" Geschichte ausprobiert und sie funktioniert prima.
An das Stored Procedure werde ich mich dann aber erst nach dem Wochenende wagen 😉
Hast genau mein Problem verstanden und super erklärt.

Ich muss mir nur überlegen wie ich das am sinnvollsten in diese ganzen sub selects einbaue. Evtl. kann ich ja ähnliche Abfragen in einem Rutsch mit dem delete bearbeiten.

Schönes Wochenende,
TriB

17.06.2008 - 15:38 Uhr

verwendetes Datenbanksystem: SQL 2005 SP2 / VS 2005

Hallo zusammen,

ich habe ein eher allgemeines Problem mit SQL.
Genauer SQL Reporting.
Anhand von Berichtsparametern möchte ich Datensätze filtern bzw. wenn kein Parameter angegeben wird, möchte ich alle Daten sehen.

Jeder Filter der leer gelassen wird, muss mit einem „OR“ abgefangen werden um alle Datensätze ungefiltert zu erhalten.

([Tabelle].[Feld] = @Filter) OR (@Filter = NULL)

Genau dieses böse „OR“ nimmt das gesamte SQL Statement, kopiert es einmal davor und einmal dahinter (eben einmal das gesamte Statement mit Filter & einmal mit Parameter=NULL).

Aufgrund der vielen SubSelects(28stk) und der 12 Filterparameter kämen ich nach Adam Riese auf den 336fachen Quellcode.
Das kann ja nicht die Lösung sein…

Abgesehen davon, das wenn man diesen Berichtsparametern eine Tabelle hinterlegt, hat man garnicht die Möglichkeit einen Leeren Wert zu übergeben und alle Datensätze ungefilter anzeigen zu lassen.

Bin für jede Hilfe Dankbar, auch wenn das ganze (noch) nicht viel mit C# zu tun hat 🙂

Gruß,
TriB

17.06.2008 - 10:11 Uhr

Bei einer Standard Tab-Page kann man die Größe so festlegen:

Tab1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
Tab1.ItemSize.Width = 35;
Tab1.ItemSize.Height = 18;

Allerdings nur die selbe Größe für alle Tabs...

13.06.2008 - 11:23 Uhr

hallo zusammen
wenn ich es ganz durchlaufen lasse mit F5 wird es geschrieben.

Das ist ja auch Logisch. Denn wie kleines_eichhoernchen schon sagt, arbeitet das Close()
bei dem StreamWriter wie ein Flush.
Das bedeutet, das alles in einem Rutsch geschrieben wird was du vorher deiner StreamWriter Variablen zugewiesen hast.

Vorher passiert an deiner Textdatei nix.

Gruß,
TriB

12.06.2008 - 13:57 Uhr

Hey, danke JAck30lena!

Habe es mit der Klasse gelöst und es hat auf Anhieb funktioniert.

Klasse "Files.cs" erstellt und 8 Variablen mit Eigenschaften angelegt.

In der Main die List erstellt:

List<Files> Einträge = new List<Files>();

Die Infos speichern...

Files dateien = new Files();
dateien.Info1 = infos.ToString();
...
Einträge.Add(dateien);

...und die Schleife dann so aufgebaut:

foreach(Files dateien in Einträge)
{
       Excel.CellText(dateien.Info1,"Default",true);
       Excel.CellText(dateien.Info2);
       ...

War doch einfacher als ich dachte.
Vielleicht hätte ich in der Klasse besser ein ein string[] Array genommen... Mal schauen. =)