Laden...

Forenbeiträge von Neidhard Ingesamt 135 Beiträge

27.03.2012 - 14:35 Uhr

Wirhaben von einer Firma eine Anwendung (Zielhost) bekommen die unsere Assemblys nachlädt und deren Funktionalität integriert.
Für Entwicklungszwecke wurde gleichzeitig eine Testanwendung (Testhost) mitgeliefert die nur die nötogen Teile enthält um unsere Assambly zu Testzwecken auszuführen.
In meiner aktuellen Assembly habe ich eine Form erstellt und darin verschiedene Controls gesetz. Das funktioniert in Designer und in der Testanwendung problemlos, nur eben in der Zielanwendung nicht. Deswegen dachte ich das diese evtl irgendwelche fremddesigns verwendet und die Standdardcontrols verändert.
Code von den Hostanwendungen kann ich nicht liefern -> wurde fertig gekauft.

Ich werde es heute Abend noch mal Testen und dann evtl morgen Screenshots bringen.

27.03.2012 - 07:20 Uhr

Hallo,
ich schreibe eine kleine DLL und habe eben das Problem das in der Test-Host-Anwendung das Design passt wie es sollm, in der Zielhostanwendung verschiebt es die Positionen von Label- oder Image-Objekten.
Kann es sein das die Zielhostanwendung eine Art Design verwendet, falls ja wie kann ich das in meinem Fenster abschalten.
Oder woran könnte es noch liegen?

Gruß
Neidhard

24.03.2012 - 11:12 Uhr

Anders geht es immer, aber warum kompliziert wenn es einfach geht... und das auch noch sehr flexibel.
Code sollte man Wart und wiederverwendbar machen, genau das ist die Methode.

Wenn Dir das so nicht gefällt musst Du das nicht nutzen und Deinen Weg gehen.

24.03.2012 - 10:31 Uhr

Ich würde es so machen:


public static object LoadSettings(string path, Type Objecttype)
        {
            try
            {
                XmlSerializer serializer = new XmlSerializer(Objecttype);
                TextReader tr = new StreamReader(path);
                object mySettings = serializer.Deserialize(tr); tr.Close();
                return mySettings;
            }
            catch (Exception ex)
            {
 
            }
            return null;
        }

Der Aufruf erfolgt dann so:


 DatenClass daten = (DatenClass)LoadSettings("c:\\pfad\\tmp.xml", typeof(DatenClass));
24.03.2012 - 10:12 Uhr

So, hab grad mal in mein Projekt reingeschaut und schreib Dir wie ich es gemacht habe:


chart.AxisY.IsStartedFromZero = false;

Das schaltet schon mal die Startvorgabe "0" aus.

24.03.2012 - 00:33 Uhr

Wenn ich mich recht entsinne musst du den Anfangswert manuell einstellen. Such nach Tutorials für MSChart.

15.03.2012 - 11:58 Uhr

Dazu muss aber sichergestellt sein das die Rechner alle mit einem Browser ausgestattet sind der auch html5 unterstützt.

13.03.2012 - 22:37 Uhr

Servus,
Ich arbeite auch in einer relativ großen Firma mit eigener IT.
Aus meiner Erfahrung heraus hab ich festgestellt das viele IT-Mitarbeiter skeptisch Neuem gegenüber stehen und etwas was sie selbst nicht nutzen auch abweisen.

Bei uns ist Silverlight auf jedem Rechner installiert, dafür aber keine Windowsupdates 😕

Sag ihnen das die Installation klein und schnell erledigt ist.

10.03.2012 - 19:41 Uhr

Eine Komponente die wir in der Firma nutzen ist TeeChart. Kostet allerdings.

http://www.steema.com/

09.03.2012 - 13:56 Uhr

Du kannst li nicht mehrfach dem ListView zuweisen.
Für jede Zeile brauchst Du ein eigenes Item.
Nimm ListViewItem li = new ListViewItem(); oben raus und schieb es unten in die Schleife.


for (int i = 0; i < daten.Length ; i++)
             {
                 ListViewItem li = new ListViewItem();                 
                 li.SubItems[0].Text = daten[i][0];
                 for (int ii = 1; ii < daten[i].Length ; ii++)
                 {
                     li.SubItems.Add( daten[i][ii]);
                 }
                 lsv_view.Items.Add(li);
             }
05.02.2012 - 20:05 Uhr

michlG, das kommt drauf an was dietbeck wirklich rechnen will.
Wenn erst die gesamten DateTiemes von einen der abgezogen werden kann ein anderes Ergebnis heruaskommen als wenn nur die ganzzahligen Sekunden subtrahiert werden.

dietbeck, wenn du nur die Sekunden subtrahieren möchtest mach es so:


int ergebnis = dateTime1.Second-dateTime2.Second;
19.01.2012 - 11:53 Uhr

Hallo zusammen,
welche Möglichkeiten gibt es, in einer ASP.net4 MVC3 Webanwendung, einen Service/Dienst einzubinden auf dem Clientanwendungen zugreifen können.

14.12.2011 - 07:52 Uhr

Du hast zwar geschrieben was Du vor hast, aber nicht was Dein Problem ist.
Im Titel schreibst Du das es um Mehrere UserControl geht, ist der TCP-Client in einem UserControl und soll ein anderes UserControl steuern? Verwendest due mehrere Threads?
Ohne genug Infos kann Dir keiner wirklich helfen.

Cu
Neidhard

11.12.2011 - 10:46 Uhr

Das funktioniert, Danke.
Wenn ich nun aber nicht nur den letzten sonder die letzten beiden Produkte haben möchte funktioniert das Satement nicht.

11.12.2011 - 08:00 Uhr

verwendetes Datenbanksystem: <MSSQL 2008>

Guten Morgen,
ich habe ein kleines Problem mit dem erstellen eines SQL-Statements.

Bisher habe ich 2 Statements die mir die gewünschten Ergebnisse liefern
1.

SELECT DISTINCT ANLAGE
FROM         ANLAGEHISTORY WITH (NOLOCK)
WHERE     (ANLAGE LIKE 'FAB.%')
ORDER BY ANLAGE

Als Rückgebe bekomme ich eine Liste mit 60 Anlagennamen.
Zu jeder Anlage benötige ich nun das zuletzt gefertigte Produkt. Das Frage ich mir dem 2. Statement ab.
2.

SELECT     TOP (1) PRODUKT, DATE, ANLAGE
FROM         PRODUKT_HISTORY WITH (NOLOCK)
WHERE     (ANLAGE = @Anlage) 
ORDER BY DATE DESC

Das Funktioniert alles bestens. Da ich mit dem 2. Statement aber jede Anlage einzeln abfragen muss, belastet das den Server und dauert auch entsprechend lange.

Also habe ich versucht die Abfragen mit Join zu kombinieren

SELECT DISTINCT ANLAGE, UNTER1.PRODUKT
FROM         ANLAGEHISTORY WITH (NOLOCK) LEFT OUTER JOIN
                (SELECT     TOP (1) PRODUKT, DATE, ANLAGE
                 FROM         PRODUKT_HISTORY WITH (NOLOCK)
                 ORDER BY DATE DESC) AS UNTER1 ON UNTER1.ANLAGE = ANLAGE
WHERE     (ANLAGE LIKE 'FAB.%')
ORDER BY ANLAGE

Leider bekomme ich damit nur die Anlageliste zurück, die Produktfelder sind leer (DBNull).

Hat jemand eine Idee wie ich das anders hinbekommen könnte?

Cu
Neidhard

05.12.2011 - 08:57 Uhr

Schreib Dir einfach einen Converter der dir den Boolean in den gewünschten Brush umwandelt.

... Grad zuende gelesen 😉
Warum soll das mit dem Converter bei Dir nichtn gehn?

im XAML binde ich meine Converter so ein:

<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Path=Status, Converter={StaticResource StatusConverter}}" Foreground="{Binding Path=Infofarbe, Converter={StaticResource BytesConverter}}" Margin="0"/>

Der Converter ByteConverter konvertiert in meinem Fall ein ByteArray[3] in ein SolidColorBrush, welches für Foreground benötigt wird.

public class BytesConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            try
            {
                byte[] ba = (byte[])value;
                SolidColorBrush rueckgabe = new SolidColorBrush(Color.FromRgb(ba[0], ba[1], ba[2]));
                return rueckgabe;
            }
            catch
            {
                return new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
18.11.2011 - 16:33 Uhr

Wenn die Nutzer die Anwendung vom Netzwerklaufwerk aus starten, ist die Datei gelockt und dir wird es normalerweise nicht möglich sein die Exe zu tauschen. Also auch kein Updates aufzuspielen.
Lass es so wie es ist, du schonst damit auch das Netzwerk

21.10.2011 - 21:24 Uhr

Schreib doch einfach in die Jobbörse was du erwartest und wie viel du investieren möchtet.
Dazu noch welche Aufgaben die Anwendung erfüllen soll.

18.10.2011 - 22:43 Uhr

Danke für die Schnelle Antwort, sehe ich mir gleich mal an

Gruß
Neidhard

18.10.2011 - 21:31 Uhr

verwendetes Datenbanksystem: MSSQL 2008 R2

Hallo, mir hat vor einer kleinen Weile mal jemand gesagt das man Tabellen auf drehen könnte. Ist das den beim Datenabruf möglich oder meint er damit das die ganze Tabelle dauerhaft auf dem Server gedreht wird?
(mit Drehen meine ich das die Zeilen danach die Spalten sind und die Spalten danach die Zeilen)

Gruß
Neidhard

13.10.2011 - 16:44 Uhr

Du könntest statt Trim auch Repleace verwenden und dann die Differenz der stringlänge ermitteln
String.Relpleace("n","");
Wenn Groß-und Kleinbuchstaben gezählt werden sollen, einfach ein String.ToUpper() machen.

22.09.2011 - 11:46 Uhr

Meinst Du mit Fernsteuern das verschieben von Karten?
Ich hab jetzt mein altes WPF-Buch nicht hier, aber darin stand etwas zum fernsteuern einer anderen Anwendung. Der Titel des Buches lautet "Windows Presentation Foundation. WPF - Grafische Oberflächen entwickeln mit .NET 3.0"
Und das Kapitel hieß "UI Automation"
Das sollte also möglich sein.
Unter dem Kapitelnamen wirst Du bestimmt auch fündig.

Gruß
Neidhard

14.09.2011 - 14:20 Uhr

...
Hatte nicht alles gelesen 😉

12.09.2011 - 22:56 Uhr

Hallo zusammen,
ich hab gerade das Problem das ich ein TreeView mit TreeViewItems fülle und diese TreeViewItems enthalten jeweils ein Stackpanel welches wiederum mehrere Usercontrol enthält.
Das Usercontrol hat ein MouseEnter-EventTriger welches allerdings nicht ausgelöst wird.
Hat jemand evtl eine Lösung wie ich es hinbekomme das das Event ausgelöst wird wenn die Maus über das Control bewegt wird?

10.09.2011 - 09:36 Uhr

Da Du die Eingabe nur per "Tastatureingabe" abfängst wird es wohl kaum möglich sein zu unterscheiden ob die eingabe vom Scanner kommt.
Evtl. bietet der Scanner-treiber eine schnittstelle zum abfragen des Scannergebnisses.

08.09.2011 - 05:05 Uhr

Das kommt auf das Objekt an. Mit Fräsen kann man nicht jede Form schaffen. Komplizierte Formen sind mit "drucken" ohne Probleme möglich aber am Ende nur Prototypen und meist zerbrechlich.
3D Druck für 0,75€/cm³

07.09.2011 - 15:04 Uhr

So einfach, ist es nicht. Die Antriebsmotoren sind Schrittmotoren die eine entsprechende Steuerung benötigen.
Lies Dir mal das hier durch:
CNC Fräse Bauanleitung

07.09.2011 - 05:05 Uhr

Schau mal hier:
http://www.windows-smartphones.de/smartphone-vergleich

und nicht vergessen das zum Testen 100$ an MS gelatzt werden muß!

05.09.2011 - 11:19 Uhr

Ein ContentPresenter wird normal dazu benutzt um Inhalt eines Controls anzuzeigen.

Warum machst Du nicht einfach unterschiedliche Grids deren Visibily-Eigenschaft du nach Bedarf umschaltest.

02.09.2011 - 07:28 Uhr

HTML wäre dann wohl wirklich die beste Wahl. Ist bei der Nutzung systemunabhängig und alles was auf dem Server läuft kannst Du mit C#(ASP.NET) entwickeln.
Genau was Du willst 😉

01.09.2011 - 07:09 Uhr

Ja leider, für WindowsMobile6 habe ich auch noch Tools entwickelt die anderen und mir das Leben erleichtert haben.
Schon wegen dieser Sch... von Zwangskosten habe ich auf den Kauf eines WP7-Handys verzichtet und mir statt dessen ein LG Optimus 3D mit Android gekauft.

29.08.2011 - 18:08 Uhr

Wie gesagt, die sollten mir den Express-Server installieren und das haben sie auch nicht auf die Reihe bekommen.

Ich werd mal sehen wie es morgen aussieht.
Trotzdem Danke

29.08.2011 - 15:02 Uhr

Das ist kein EntwicklungsDB-Server XD
und Adminrechte geben die niemand. Unsere IT ist so verbohrt und tut nicht was sie soll. Wenn es nach mir ginge hätte ich die schon lange entlassen und eine Fremdfirma eingesetzt.
Die sind sogar zu blöd SQL-Server Express zu installieren und einzurichten ^^

29.08.2011 - 14:04 Uhr

SQL Server Profiler ?, kann ich da ohne Adminzugriff ran?

29.08.2011 - 13:30 Uhr

verwendetes Datenbanksystem: MS SQL 2008

Folgendes Problem stellt sich mir gerade.
Ich habe vergangene Woche eine Abfrage gebaut die tadellos funktionierte.
Heute morgen hat die Abfrage ihren Dienst verweigert und mit TimeOut quitiert (2min).

Ich habe die Abfrage im Abfragedesigner importiert und da geht sie ohne zu zucken.
Dann habe ich den DataTableAdapter mit der Abfrage gespeichert und per Datenvorschau nochmals getestet. Was passiert ? Nichts
keine Antwort vom Server. Also wieder den Designer gestartet und getestet.... geht.

Also im Designer funktioniert die Abfrage nur nicht außerhalb des selben.

Woran könnte das liegen?

26.08.2011 - 11:46 Uhr

Verabschiede Dich vom Spaltendenken. Definiere einen Tag in Pixelbreite,je nach dem wie genau es angezeigt werden soll (z.B. 1Tag = 3x8h = 3x40Pixel).
Die Umrechnung von Stunden in Pixel kannst Du dynamisch gestallten, damit kannst Du eine Art "Zoom" ermöglichen.
Wenn Du die Zeilenanzahl wärend der Laufzeit nicht mehr ändern möchtest kannst Du die gesamte Zeitachse mit dem Belegungsplan z.B. in ein einzelnes Image zeichnen. Mit Dieser Variante wäre das Verschieben sehr einfach und Leistungsschonend. Muss aber beim Zoomen immer neu gezeichnet werden.
Eine andere Möglichkeit wäre die Verschachtelung von Grids und Rectangles.

Ich hab so was in der Art schon selber geschrieben, da aber in meinem Fall keine Lücken zwischen 2 Einträgen entstehen habe ich ein Stackpanel (für die Belegungsanzeige) genutz.

  1. die Dauer in Pixel umgerechnet
  2. ein Rectangle mit der berechneten Pixelbreite in das Stackpannel eingefügt.
    Das Rectangle hat bei mir noch ein Tooltip bekommen, damit Infos eingeblendet werden wenn mit der Maus über einen Eintrag fährt.

In Deinem Fall würde ich wie geschrieben ein Grid nehmen und es mit Rectangles füllen.
Breite = (bisZeit - vonZeit) * Pixel je Stunde
Position = (vonZeit - jetztzeit) * Pixel je Stunde
So in etwa könntest Du zum Ziel kommen.

22.08.2011 - 19:22 Uhr

Ich möchte mich an dieser Stelle für Eure Hilfe bedanken. Der Anweisungsaufbau von MarsStein hat mir sehr geholfen und die Abfragezeit liegt nun bei weniger als einer Sekunde.

Gruß
Neidhard

21.08.2011 - 15:00 Uhr

Ich kann mir auch nicht vorstellen das das so um Bich steht.
Bei der Methode "Convert" wird z.B. ein Parameter "targetType" und "culture" übergeben, diese werden aber überhaupt nicht genutzt.

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

Wie talla schon geschrieben hat, nutze die Convert-Klasse

int currentValue = Convert.ToInt32(value);

Du musst aber prüfen ob die Konvertierung überhaupt möglich ist, bzw. ob sie erfolgreich war und ggf. Exception abfangen.

Schreib am besten Deinen Converter neu.
Der Converter kann z.b. nur Brush zurück geben, für was ist es sinnvoll den Rückgabewert als Object zu definieren?

18.08.2011 - 20:37 Uhr

Ist es nicht so dass MS Sql Express nur eine aktive Verbindung zulässt? Wär doch dann auch nicht für den betrieblichen Einsatz ungeeignet, zumindest wenn gleichzeitig darauf zugegriffen werden muss.

12.08.2011 - 14:04 Uhr

Danke für eure Tipps. Hab jetzt Wochenende und kann es nicht auf Arbeit testen.
Die lange Laufzeit hängt an der 2.Tabelle. Da dauert die Abfrage für eine einzelnen Objektnamen ca 5sek. Davon brauch ich aber um die 160 und durch die Verschachtelung dauert die Abfrage dann noch länger.

Das DISTINCT hab ich reingenommen das von den Objektnamen mit Standort nur ein einzelner Eintrag zurückkommt. Davon gibts in Tabelle1 leider mehrere

11.08.2011 - 19:31 Uhr

Dann macht es zu.Genauer kann ich es nicht beschreiben.

11.08.2011 - 14:39 Uhr

Wie im meinem Post geschrieben soll die Rückgabe irgendwann mal so aussehen. Das das Statement nicht dazu passt ist mir klar, ich will auch erst mal errecichen das überhaupt der Objektname und der Standort zurückgegeben wird und falls vorhanden noch der dazugrhörige Rest.

Tabelle1 und Tabelle2 sind nur Schematisch- und begrenzte Tabellen da die Originaltabellen tausende Einträge haben.

11.08.2011 - 12:04 Uhr

Im Anhang habe ich einen kleinen Nachbau der beiden Tabellen hinzugefügt und wie die Ausgabe am besten Aussehen sollte 😉 aber mit dem unten stehenden SQL-Statment noch nicht tut.

Mein Problem besteht nun darin das im Fall der fehlenden Einträge in Tabelle2
(kein Description1 und kein Description2) auch keine Rückgabe für Objektname und Standort erfolgt, die ich allerdings benötige.

SELECT DISTINCT Tabelle1.Objektname
,Tabelle1.Standort,Tabelle2.VAL
FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.Objektname=Tabelle2.Objektname
WHERE (Tabelle1.Standort LIKE 'Maschine%') AND (Tabelle2.Description2='Rohstoff' OR Tabelle2.Description2 IS NULL)

So Versuch ich es gerade. Leider Gibt der Server keinen Mux von sich. Abfragedauer z.z. bei über 17min 😕

11.08.2011 - 09:37 Uhr

Das ist schon Richtig, aber sobald ich die Abfrage mit WHERE einschränke kommen eben nur die Daten zurück zu denen es auch Ergebnisse gibt
Genaueres kann ich nicht schreiben... Firmenintern 😭

11.08.2011 - 07:52 Uhr

verwendetes Datenbanksystem: MSSQL 2008

Hallo,
folgendes Problem stellt sich mir derzeit.
Ich muss aus 2 Tabellen Daten zusammenfügen.

Tabellenaufbau:
Tabelle1
-Objektname
-Standort

Tabelle2
-Description1
-Description2
-Value

In der Tabelle 2 gibt es verschiedenen Werte (Value) die ich anhand der Descriptions abrufen muss.
Das wäre soweit kein Problem wenn alle Daten vorhanden wären.
Mein Problem dabei ist, dass bei der Abfrage einer Zeile mit einem bestimmten Description kein Eintrag zurück gegeben wird wenn es kein passendes Description gibt. Ist ja auch normal.
Ich möchte aber wenigstens als Rückgabe den Objektname und Standort haben, die restlichen Spalten sollen bei fehlenden Werten null enthalten.

Gibt es da eine Möglichkeit per SQL-Statement?

Gruß
Neidhard

04.08.2011 - 07:02 Uhr

Könnte man das nicht mit einem selbsterstellten Effekt erreichen?

04.08.2011 - 07:00 Uhr

Du könntest natürlich auch den Fehler abfangen.
Wenn dann der Fehler auftritt dein Programm z.B. eine Sekunde warten lassen und den Zugriff erneut versuchen.

29.07.2011 - 12:50 Uhr

Hi,
und statt

System.Type.GetType("System.String") 

könntest Du sicher auch

typeof(string)

benutzen.

23.07.2011 - 13:18 Uhr

Ob Du das 100%-ig in XML lösen kannst, weiß ich nicht. Ich würde ein DependencyProperty im Usercontrol erzeugen welches durch binding an die Fenstergröße gebunden wird.
Wenn dann die Fenstergröße geändert wird, paßt sich das Control mit an.

21.07.2011 - 01:16 Uhr

Such mal nach DrawingVisual&DrawingContext.
Mit dem DrawingContext kannst Du alles möglich zeichnen&positionieren.
z.B. mit DrawingImage