achso hab ich übersehen da kann ich dir leider nich helfen
du musst auf dem server im iis eine virtuelles verzeichnis für den report viewer anlegen
such mal auf der crystal homepage
DirectoryEntry de = new DirectoryEntry("LDAP://domain/ou=Users...
hi ich bin langsam kurz davor auszuflippen, was ich will ist eingendlich ganz einfach :
crystalreportviewer auf webform bericht anbinden und die funktionen der Toolbox nutzen.
auf localhost funktioniert natürlich alles
aber wenn ich die website auf der server (win2003serverStandard) kopiere
kann ich auch den bericht offnen aber die bilder der toolbox werden nicht angezeigt
und ich kann die funktionalitäten nicht nutzen (wie z.b. drucken)
was ich schon gemacht habe:
die anwendung mit setup (incl. crystal mergemodul) auf dem server installiert
und die die Pfade für die bilder per hand in die report viewer eigenschaft eingegeben und auf den server kopiert dann hab ich zwar die bilder aber nicht die funktionalitäten
ausserdem kann ich mir nicht vorstellen dass das der richtige weg ist
Ich hab auch schon bei crystal angerufen aber nach einem völlig überfordertem servicemitarbeiter und 10 minuten warteschleife habe ich damit auch abgeschlossen
jemand ein idee?
vielen dank genau das hab ich gesucht
erstmal danke für deine antwort
aber so viel hab ich auch schon rausgefunden ich weiss nur nicht wie ich das in den code implementiere.
hallo,
kann mir jemand sagen wie ich nach dem einfügen eines labels einen
zeilenumbruch einfugen kann
foreach (SearchResult res in src.FindAll())
{
Label lbl = new Label();
lbl.Text = res.Properties["printername"][0].ToString()+ " " ;
PanelPrinter.Controls.Add(lbl);
HyperLink linkBtn = new HyperLink();
linkBtn.Text = res.Properties["portname"][0].ToString();
linkBtn.NavigateUrl = "http://" + res.Properties["portname"][0].ToString().Replace("IP_", "");
PanelPrinter.Controls.Add(linkBtn);
//hier sollte dann der zeilenumbruch im form passieren
//bevor das nachste label eingefügt wird
}
super! das ist genau was ich gesucht habe , dankeschön
hallo
ich bin webform technisch noch ein ziemlicher neuling und möchte
von einem webform auf ein anderes navigieren und dem zweiten form
dabei einen string aus einem control des ersten als parameter übergeben
kann mir jemand erklären wie das funzt?
hallo,
ich habe ein asp 2.0 projekt erstellt in welchen auf verschieden seiten navigiert werden
kann.
jetzt möchte ich die anonyme anmeldung ausschalten und pro seite berechtigungen
auf gruppen des active directory unserer domäne festlegen.
hat jemand eine idee wie man das am besten macht?
ok, und welcher nutzer ist das? ich habe anomyme authentifizierung aktiviert
und die rechte vergebe ich ganz normal über rechte maustaste , eigenschaften, sicherheit oder läuft das auch wieder anders?
danke für die schnelle antwort!
du meinst eine freigabe auf dem rechner erstellen und darauf zugreifen oder?
das hab ich auch schon probiert funzt aber nicht
hallo,
hat jemand eine idee warum folgendes nicht funktioniert?
ich mappe ein laufwerk von meinen server zu einem anderen rechner auf dem sich foxpro tabellen befinden, die Verbindung wird über odbc hergestellt
wenn ich die daten im werform anzeigen will kriege ich die fehlermeldung
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'stkund.dbf' does not exist.
wenn ich die daten aber lokal auf den rechner kopiere funktioniert alles
und es funktioniert auf über den 'iis' der über die entwicklungsumgebujng gestartet wird
aber halt nicht im live betrieb
ich schätze das es irgendein berechtigungs problem ist,das der iis 'user' nicht auf netzressources zugreifen darf
jemand eine idee
(iis 6.0, asp.net 2.0, windows server 2003 standard )
hi
ich weiss zwar nicht was du da genau machst aber du kannst keine operatoren auf bezeichner anwenden, in deinem sql string ist diff nur ein string deshalb auch diese fehlermeldung.
also: where 'dann deine berechnung von diff' > 5
also vermutlich so:
where datediff (day, ISNULL((SUBSTRING(DATDate,7,4) + SUBSTRING(DATDate,1,2) + SUBSTRING(DATDate,4,2)), '20060602') , getdate()) > 5
übergib doch einfach einen string als tabellennamen
ungefähr so:
@"SELECT * FROM " + meinTabellenname + " WHERE .... ";
dazu musst du wirklich kein experte sein
nach
connection.open();
musst du nur einen dataadapter erstellen diesen füllen (per command)
und zwar ein ein datatable und dieses dann dem grid als datasource zuweisen
ich arbeite viel mit odbc, das würde dann ungefähr so aussehen
string myCommandText = "dein selectcmd";
OdbcConnection myOdbcConnection = new OdbcConnection(gn.ConnectionString);
OdbcCommand myOdbcCommand = new OdbcCommand(myCommandText, myOdbcConnection);
OdbcDataAdapter myOdbcAdapter = new OdbcDataAdapter(myOdbcCommand);
DataTable dt = new DataTable;
myOdbcConnection.Open();
myOdbcAdapter.Fill(dt);
this.datagridview1.Datasource = dt
ich bin sicher mit deinem connector sieht das ganz ähnlich aus
wa benutzt du denn als connector? odbc ...?
ich glaub ich werde verrückt
hab gerade im prinzip das gleich gemacht wie du (ok deins ist eleganter, aber war ja auch nur test)
!!!!!!!und es funzt
int buttonCount = this.flowLayoutPanelLabels.Controls.Count;
for (int i = 0; i < buttonCount; i++)
{
this.flowLayoutPanelLabels.Controls[i].Dispose();
buttonCount = this.flowLayoutPanelLabels.Controls.Count;
i = 0;
}
this.flowLayoutPanelLabels.Controls[0].Dispose();
//for debugging to check control count ==0
int buttonCount2 = this.flowLayoutPanelLabels.Controls.Count;
du hattest recht und ich hab nicht alle controls erwischt
daran hats gelegen!
du bist mein kumpel, vielen dank , have a nice weekend
das steht bei mir im code unter der schleife.
//Clear the panel
this.flowLayoutPanelLabels.Controls.Clear();
und die anzahl buttons muss ich ja dekrementieren
weil ich ja mit control_ dispose das control entferne und somit auch die anzahl der controls im panel verringer
jo! ...ich glaub ich hab mittlerweile schon alles disposed!
auch glaub ich mach mal feierabend, mir n bier auf und probier morgen weiter
euch ein schönes wochenende! falls ich die lösung finde poste ich die
falls ihr noch ne idee habt, bin für alles dankbar
das ist sichergestellt
aber die schleife muss so heissen (im post hatte ich das buttonCount-- vergessen)
int buttonCount = this.flowLayoutPanelLabels.Controls.Count;
for (int i = 0; i <= buttonCount; i++)
{
this.flowLayoutPanelLabels.Controls[i].Dispose();
buttonCount--;
}
ich hab wirklich keine ahnung warum das nicht funzt!!!
aber schon mal vielen dank, das ihr euch damit auseinandersetzt!!
bei dir läuft das ? oh man ich weiss echt nicht mehr was ich machen soll
ich hab die buttons zur laufzeit erstellt
//Create a button object for each labFile
for (int i = 0; i < labFileArray.Length; i++)
{
Button btn = new Button();
//Set the properties
btn.Location = new System.Drawing.Point(200, 40 + i * 200);
btn.Name = "button" + i.ToString(); ;
btn.Size = new System.Drawing.Size(150, 150);
btn.Text = labFileArray[i].ToString();
btn.UseVisualStyleBackColor = true;
btn.BackColor = Color.White;
//Add an Eventhandler
btn.Click += new System.EventHandler(btn_Click);
//If an img file for the label exists put it on the button
for (int j = 0; j < imgFileArray.Length; j++)
{
//a little string formating for filename comparison
string labelFileName = labFileArray[i].ToString().ToUpper().Replace(".LAB", "");
string imageFileName = imgFileArray[j].ToString().ToUpper().Replace(".BMP", "");
//Set the image if found
if (labelFileName == imageFileName)
{
btn.Image = System.Drawing.Image.FromFile(imageFileName + ".BMP");
}
}
//Finally add each button to the flowLayoutPanel
this.flowLayoutPanelLabels.Controls.Add(btn);
deswegen kann ich nur die controls im panel disposen
siehe:
int buttonCount = this.flowLayoutPanelLabels.Controls.Count;
for (int i = 0; i < buttonCount; i++)
{
this.flowLayoutPanelLabels.Controls[i].Dispose();
}
aber das müsste doch ausreichen?
nichts, deshalb sag ich ja das du im bezug auf die berechnung recht hast aber das mein problem nicht löst
@ borg da hast du zwar recht aber das ganze funktioniert ja bei ich einen anderen pfad zum speichern angebe als den von dem ich geladen habe
meinst du button.image.dispose()?
leider nicht die bmp's liegen wirklich nur auf den buttons hab trotzem panel.dispose mal eingebaut gleiches problem !?
übrigens: wenn ich das file.delete(file) weglasse
bekomme ich A generic error occurred in GDI+. was eigendlich wohl auch ein IO error
sein dürfte oder?
ich hab thread.sleep(0) gemacht, das sollte reichen oder?
dabei fliegt er auch wieder auf die fresse, gleicher fehler ...used by another process
das bild liegt zwar auf einem button der in einem panel liegt aber selbst da mach ich vorher ein panel.controls.clear bevor der code von ober ausgeführt wird und sonst mach e ich nichts mit der datei
OdbcCommand mySqlCommand = new OdbcCommand(mySqlCommandText, mySQLConnection);
OdbcDataAdapter mySqlAdapter = new OdbcDataAdapter(mySqlCommand);
OdbcCommandBuilder mySqlCommandbuilder = new OdbcCommandBuilder(mySqlAdapter);
// Open connection
try
{
mySQLConnection.Open();
}
catch (OdbcException openEx)
{
MessageBox.Show(openEx.Message.ToString());
}
catch (Exception genOpenEx)
{
MessageBox.Show(genOpenEx.Message.ToString());
}
//Update it
try
{
mySqlAdapter.Update(dbfDataTable);
}
catch (OdbcException updateEx)
{
MessageBox.Show(updateEx.Message.ToString());
}
catch (Exception genUpdateEx)
{
genUpdateEx.Message.ToString();
}
finally
{
mySQLConnection.Close();
}
das ist jetz direkt aus nem code von mir musst du natürluch umschreiben aber das prinzip bleibt das gleiche
public static string[] CollectImgFilesInFolder(string folder)
{
//Fill array with files
string[] imgFileArray = Directory.GetFiles(folder, "*.bmp");
//Check out how to resize
foreach (string file in imgFileArray)
{
//Load the bmp
Bitmap bmp = new Bitmap(file);
//get the original size
int originalHeight = bmp.Height;
int originalWidth = bmp.Width;
//
//if the height is bigger then the width
//
if (originalHeight > originalWidth)
{
//calculate new width
int newWidth = originalWidth / (originalHeight / 150);
//Create new size
Size newSize = new Size(newWidth, 150);
//Set new size on new bitmap
Bitmap newBmp = new Bitmap(bmp, newSize);
bmp.Dispose();
//Del the old one
File.Delete(file);
//save bmp
newBmp.Save(file);
}
//....
davon bin ich eigendlich aus ausgegangen
ich habe deshalb um zu prüfen ob die datei freigegeben ist nach dispose
file.delete(file) probiert dann krieg ich einen IO error da die datei von einem anderen prozess verwendet wird??-
ich habe clone zwar noch nicht probiert aber dispose killt das object nich wirklich
das auf das file auch nach dispose, = null und gc.collect noch ein process zugreift??
kuck dir mal den command builder an der macht genau was du willst
hallo ich habe gesehen das dieses thema schon einige male diskutiert wurde
aber habe in keinem der theads eine wirkliche lösung gefunden.
und die msdn sagt ja auch
"Es ist nicht zulässig, das Bild in derselben Datei zu speichern, aus der es erstellt wurde. Dadurch wird eine Ausnahme ausgelöst."
gibt es wirlich keine möglichkeit eine bmp zu überschreiben?
oder ein workaround?
habe schon alles probiert was in den vorherigen theads vorgeschlagen wurde: von bmp.dispose() oder bmp=null oder gc.Collect()
oder streams oder file.delete();
mit der klasse sollte es gehen.
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace OOP
{
/// <summary>
/// In dieser Kalsse werden kontextabhähnige Formatierungen von Spalten oder Zeilen vorgenommen
/// </summary>
public class ColumnStyle
{
public static void cellColor(DataGridView dataGridViewLocal,int column,double threshold )
{
// Create a new green style.
DataGridViewCellStyle greenStyle = new DataGridViewCellStyle();
{
greenStyle.BackColor = Color.Green;
greenStyle.ForeColor = Color.Green;
}
// Create a new red style.
DataGridViewCellStyle redStyle = new DataGridViewCellStyle();
{
redStyle.BackColor = Color.Red;
redStyle.ForeColor = Color.Red;
}
// Create a new yellow style.
DataGridViewCellStyle yellowStyle = new DataGridViewCellStyle();
{
yellowStyle.BackColor = Color.Yellow;
yellowStyle.ForeColor = Color.Yellow;
}
for (int rowCounter = 0; rowCounter < dataGridViewLocal.RowCount; rowCounter++)
{
double cellValue = (double)dataGridViewLocal.Rows[rowCounter].Cells[column].Value;
if (cellValue < threshold)
dataGridViewLocal.Rows[rowCounter].Cells[column].Style = redStyle;
else if (cellValue > threshold)
dataGridViewLocal.Rows[rowCounter].Cells[column].Style = greenStyle;
else
dataGridViewLocal.Rows[rowCounter].Cells[column].Style = yellowStyle;
}
}
}
}
[EDIT=herbivore]Threads zusammengefügt[/EDIT]
kennt jemand gute links zu vernünftiges icons, gifs etc.
hab schon ne ganze weile gegoogled finde aber meistens nur mist
kuck dir mal ado.net an da findest du alles was du brauchst
danke an alle. funktioniert!
yes! thats it, du bist mein kumpel!!
das ist genau was ich gesucht hab!
Control c = (Control)sender;
so in die richtung hab ich auch gedacht...
ich wollte event bei maus enter auslösen welches per getter setter das zu dem zeitpunkt aktive steuerelement speichert
und dann bei click jenes anspricht aber ich finde einfach keine möglichkeit das active control abzufragen )-:
das ist genau das was ich machen möchte aber in welcher property kann ich denn das active steuerlement abfrage?
das schon aber woher weiß ich denn welches control vorher aktiv war?
guten morgen!
ich müsste beim klick auf einen button ein bestimmten string z.b. "x" an das zuvor aktive steuerelemet schicken, da bei button klick ja der button zum activen steuerelement wird.
nun kann ich aber das element an das der string gesendent werden soll nicht einfach benennen z.b.
textbox1.Focus();
SendKeys.Send("x");
funktioniert nicht da die textbox erst zur laufzeit erstellt wird.
jemand eine idee?
aha und wie sollen diesen dann angezeigt werden? in einer combobox oder wie stellst du dir das vor?
dann brauchst du zwei queries eine die dein grid füllt und eine die deine combobox füllt.
wie jetzt?du willst nur einen kontakt pro person angezeigt haben? wieso trägst du dann mehrere ein?
zeig doch mal ein bischen von deiner tabellen stuktur und was du genau als ergebniss haben willst ich glaub ich hab deine ergebniss tabelle falsch interpretiert
wie wärs mir
SELECT person.name, person.vorname, contact.nummer
FROM person INNER JOIN contact ON person.ID = contact.ID
?
das motto vom forum ist doch: GEMEINSAM MEHR ERREICHEN
oder nicht ich glaube hier rumzicken hilft keinem
@Ishildur
vielleicht hilft dir dieser link
oder dieser
http://support.businessobjects.com/downloads/merge_modules.asp