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.
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
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.
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));
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.
Wenn ich mich recht entsinne musst du den Anfangswert manuell einstellen. Such nach Tutorials für MSChart.
Dazu muss aber sichergestellt sein das die Rechner alle mit einem Browser ausgestattet sind der auch html5 unterstützt.
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.
Eine Komponente die wir in der Firma nutzen ist TeeChart. Kostet allerdings.
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);
}
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;
Hallo zusammen,
welche Möglichkeiten gibt es, in einer ASP.net4 MVC3 Webanwendung, einen Service/Dienst einzubinden auf dem Clientanwendungen zugreifen können.
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
Das funktioniert, Danke.
Wenn ich nun aber nicht nur den letzten sonder die letzten beiden Produkte haben möchte funktioniert das Satement nicht.
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
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();
}
}
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
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.
Danke für die Schnelle Antwort, sehe ich mir gleich mal an
Gruß
Neidhard
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
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.
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
...
Hatte nicht alles gelesen 😉
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?
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.
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³
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
Schau mal hier:
http://www.windows-smartphones.de/smartphone-vergleich
und nicht vergessen das zum Testen 100$ an MS gelatzt werden muß!
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.
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 😉
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.
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
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 ^^
SQL Server Profiler ?, kann ich da ohne Adminzugriff ran?
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?
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.
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.
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
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?
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.
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
Dann macht es zu.Genauer kann ich es nicht beschreiben.
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.
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 😕
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 😭
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
Könnte man das nicht mit einem selbsterstellten Effekt erreichen?
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.
Hi,
und statt
System.Type.GetType("System.String")
könntest Du sicher auch
typeof(string)
benutzen.
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.
Such mal nach DrawingVisual&DrawingContext.
Mit dem DrawingContext kannst Du alles möglich zeichnen&positionieren.
z.B. mit DrawingImage