Function Button, Hyperlink im Grid und EXCECUTE im string query
Martin Keck
Hallo Zusammen,hab mit ein tolles grid gebastelt, welches über eine Procedure im string query gefüllt wird:
string query = "EXECUTE IPF_test_Kontenstammblatt @CardCode='" + CardCode + "'";
Will mit Hyperlinks auf die Ursprungsbelege verweisen und habe in der Procedur folgendes hinterlegt:
Select TransID as #, T0.[TransID] as TransID, ShortName AS ##, T0.[ShortName] as ShortName, [...] from #temptable;
Habe Hyperlinks auf die TransId und den ShortName gelegt:
//grid.ExecuteQuery(query);
grid.Columns["#"].Width = 15;
grid.Columns["##"].Width = 15;
// SET COLUMNS NON EDITABLE (DISPLAY ONLY)
grid.Columns["#"].Editable = false;
grid.Columns["TransId"].Editable = false;
grid.Columns["##"].Editable = false;
grid.Columns["ShortName"].Editable = false;
((SwissAddonFramework.UI.Components.TextEditGridColumn) grid.Columns["#"].SpecificGridColumn).LinkObjectType = "30";
((SwissAddonFramework.UI.Components.TextEditGridColumn) grid.Columns["##"].SpecificGridColumn).LinkObjectType = "2";
Seit ich auf die Procedur zugreife werden mir die Hyperlinks (unter #, ##)nicht mehr angezeigt. Geht das mit dem Hyperlink nur wenn das SQL direkt im string query steht? Funkt im string query auch ein komplexeres Transact-SQL? Wie kann ich die Hyperlinks wieder aktivieren?
Gruss aus Freiburg
Martin Keck
Sascha Balke
Hallo Martin,irgendwie kommt mir der Code bekannt vor. ;)
Denke es wäre hilfreicher, wenn du die Rule hier anfügst, damit wir dir besser weiterhelfen können.
Alternativ kannst du dich auch bei mir melden.
Martin Keck
Hi Sascha,klar kommt Dir das irgendwie bekannt vor - ist ja auch von Dir.
Rule anbei. Procedure anbei.
Gruss aus Freiburg
Martin Keck
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/martin-keckipas-de/WS_Kontenblatt_REV.cocu]WS_Kontenblatt_REV.cocu[/url]
Martin Keck
Jetzt die Procedur.Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/martin-keckipas-de/Procedure_Kontenblatt.txt]Procedure_Kontenblatt.txt[/url]
Sascha Balke
Hallo Martin,das Problem liegt darin, dass du mehr Spalten (Columns) in der Query hast aber diese nicht beim setzen Columns ausreichend berücksichtigst.
Darüber hatten wir gestern ja schon kurz gesprochen.
Mit dem nachfolgenden Code bekommst du das zum fliegen.
//grid.ExecuteQuery(query);
grid.Columns["#"].Width = 40;
grid.Columns["TransID"].Width = 15;
grid.Columns["##"].Width = 80;
grid.Columns["ShortName"].Width = 50;
grid.Columns["TransType"].Width = 15;
grid.Columns["LineMemo"].Width = 250;
grid.Columns["ObjType"].Width = 15;
grid.Columns["RefDate"].Width = 80;
grid.Columns["Debit"].Width = 80;
grid.Columns["Credit"].Width = 80;
grid.Columns["SumApplied"].Width = 80;
grid.Columns["DiscoutSum"].Width = 80;
grid.Columns["ProzentDsc"].Width = 80;
grid.Columns["Saldo"].Width = 80;
grid.Columns["Ksaldo"].Width = 80;
// SET COLUMNS NON VISIBLE
grid.Columns["TransID"].Visible = false;
grid.Columns["TransType"].Visible = false;
grid.Columns["ObjType"].Visible = false;
grid.Columns["ShortName"].Visible = false;
// SET COLUMNS NON EDITABLE (DISPLAY ONLY)
grid.Columns["#"].Editable = false;
grid.Columns["TransID"].Editable = false;
grid.Columns["##"].Editable = false;
grid.Columns["ShortName"].Editable = false;
grid.Columns["TransType"].Editable = false;
grid.Columns["LineMemo"].Editable = false;
grid.Columns["ObjType"].Editable = false;
grid.Columns["RefDate"].Editable = false;
grid.Columns["Debit"].Editable = false;
grid.Columns["Credit"].Editable = false;
grid.Columns["SumApplied"].Editable = false;
grid.Columns["DiscoutSum"].Editable = false;
grid.Columns["ProzentDsc"].Editable = false;
grid.Columns["Saldo"].Editable = false;
grid.Columns["Ksaldo"].Editable = false;
hth
Martin Keck
Hi Sascha,auch wenn ich Deinen Vorschlag umsetze bekomm ich die Hyperlinks nicht angezeigt. Regel nochmals anbei.
Ausserden bekomm ich beim ausführen über den Function-Button die Systemmeldung "Ein unerwarteter Fehler ist passiert: Matrix - invalid column number"!
Bekommst du die Meldung nicht auch?
Gruss
Martin
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/martin-keckipas-de/WS_Kontenblatt_REV_II.cocu]WS_Kontenblatt_REV_II.cocu[/url]
Sascha Balke
Hallo Martin,dieser Code funktioniert bei mir:
try
{
// GRID, WILL CONTAIN THE VALUES TO DISPLAY
SwissAddonFramework.UI.Components.Grid grid = SwissAddonFramework.UI.Components.Grid.CreateNew("EISG_GR4");
grid.Height = 280; grid.Width = 870; grid.Top = 10; grid.Left = 10;
// SAP FORM, WILL CONTAIN THE GRID
SwissAddonFramework.UI.Components.Form form = SwissAddonFramework.UI.Components.Form.CreateNewForm("EISG_Forms_SHOW4", "EISG_Forms_SHOW4" + SwissAddonFramework.Utils.UniqueStringGenerator.Next());
form.Height = 380; form.Width = 900; form.Top = 200; form.Left = 300;
form.Value = "Mein neues Fenster";
//OK Button
SwissAddonFramework.UI.Components.Button buttonOK = SwissAddonFramework.UI.Components.Button.CreateNew("1");
buttonOK.Value = "OK";
buttonOK.SetPosition(grid.Left, grid.Top + grid.Height + 20);
form.AddItem(buttonOK);
//string wert = TextEdit.GetFromUID(pVal.Form, "5").Value;
string CardCode = TextEdit.GetFromUID(pVal.Form, "7").Value.ToString();
bool CheckBoxDocDate = CheckBox.GetFromUID(pVal.Form, "15").Checked;
string DocDate = TextEdit.GetFromUID(pVal.Form, "17").Value.ToString();
bool CheckBoxOnlyOpen = CheckBox.GetFromUID(pVal.Form, "10").Checked;
// ADD GRID TO THE FORM
form.AddItem(grid);
// LOAD FORM
form.Load();
string query1 = "EXECUTE IPF_test_Kontenstammblatt @CardCode='" + CardCode + "'";
grid.ExecuteQuery(query1);
//grid.ExecuteQuery(query);
grid.Columns["#"].Width = 40;
grid.Columns["TransID"].Width = 15;
grid.Columns["##"].Width = 80;
grid.Columns["ShortName"].Width = 50;
grid.Columns["TransType"].Width = 15;
grid.Columns["LineMemo"].Width = 250;
grid.Columns["ObjType"].Width = 15;
grid.Columns["RefDate"].Width = 80;
grid.Columns["Debit"].Width = 80;
grid.Columns["Credit"].Width = 80;
grid.Columns["SumApplied"].Width = 80;
grid.Columns["DiscoutSum"].Width = 80;
grid.Columns["ProzentDsc"].Width = 80;
grid.Columns["Saldo"].Width = 80;
grid.Columns["Ksaldo"].Width = 80;
// SET COLUMNS NON VISIBLE
grid.Columns["TransID"].Visible = false;
grid.Columns["TransType"].Visible = false;
grid.Columns["ObjType"].Visible = false;
grid.Columns["ShortName"].Visible = false;
// SET COLUMNS NON EDITABLE (DISPLAY ONLY)
grid.Columns["#"].Editable = false;
grid.Columns["TransID"].Editable = false;
grid.Columns["##"].Editable = false;
grid.Columns["ShortName"].Editable = false;
grid.Columns["TransType"].Editable = false;
grid.Columns["LineMemo"].Editable = false;
grid.Columns["ObjType"].Editable = false;
grid.Columns["RefDate"].Editable = false;
grid.Columns["Debit"].Editable = false;
grid.Columns["Credit"].Editable = false;
grid.Columns["SumApplied"].Editable = false;
grid.Columns["DiscoutSum"].Editable = false;
grid.Columns["ProzentDsc"].Editable = false;
grid.Columns["Saldo"].Editable = false;
grid.Columns["Ksaldo"].Editable = false;
((SwissAddonFramework.UI.Components.TextEditGridColumn) grid.Columns["#"].SpecificGridColumn).LinkObjectType = "30";
((SwissAddonFramework.UI.Components.TextEditGridColumn) grid.Columns["##"].SpecificGridColumn).LinkObjectType = "2";
}
catch(System.Exception ex)
{
MessageBox.Show("Ein unerwarteter Fehler ist passiert:: " + ex.Message, "OK");
}
hth
Martin Keck
Hi Sascha,jetzt funkts doch. Sorry!
Gruss
Martin
0
Please sign in to leave a comment.
Comments
0 comments