You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
9.7 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.Remoting.Messaging;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Database;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OnDoc.Klassen;
using OnDocScript;
//using OnDocScript;
using Syncfusion.Windows.Forms.Edit;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid.Enums;
using Windows.Devices.AllJoyn;
using Windows.UI.Xaml.Controls;
namespace OnDoc.Diverses
{
public partial class valueselector : SfForm
{
public string partnernr { get; set; } = "";
public string datenherkunft { get; set; } = "";
public string selected_value { get; set; }
public DateTime selected_datetime { get; set; } = DateTime.Now;
public valueselector()
{
InitializeComponent();
this.panel1.Visible = false;
this.GridData.Visible = true;
}
public valueselector(Boolean Showcalendar)
{
InitializeComponent();
this.panel1.Visible = true;
this.GridData.Visible = false;
label2.Text = DateTime.Now.ToString("dd.MM.yyyy");
}
private void valueselector_Load(object sender, EventArgs e)
{
this.SetDesktopLocation(Cursor.Position.X, Cursor.Position.Y);
this.sfCalendar1.SelectedDate = DateTime.Now;
}
public async void rungraphql()
{
OnDocScriptGraphQL.OnDocScriptGraphQL ql = new OnDocScriptGraphQL.OnDocScriptGraphQL();
try
{
await ql.rungraphql(datenherkunft, this.partnernr);
if (ql.resultstring != "")
{
string r = ql.resultstring;
selected_value = r;
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
this.GridData.DataSource = ql.resultdatatable;
}
ql = null;
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}
public async void runscript()
{
NewScript newScript = new NewScript(AppParams.connectionstring, AppParams.apikey, datenherkunft.Replace("&OnDocScript", ""));
newScript.AddVariable("Partnernr", this.partnernr.ToString());
newScript.AddVariable("temppath", AppParams.tempdir + @"\");
await newScript.Execute();
string result = newScript.get_scriptresult();
//DataSet ds = new DataSet();
DataTable dt = new DataTable();
//ds = (DataSet)JsonConvert.DeserializeObject(result, (typeof(DataSet)));
dt = (DataTable)JsonConvert.DeserializeObject(result, (typeof(DataTable)));
this.GridData.DataSource = dt;
GridData.AutoSizeColumnsMode = Syncfusion.WinForms.DataGrid.Enums.AutoSizeColumnsMode.AllCells;
newScript = null;
}
public void OnDocList(string inputstring)
{
try
{
int colcount = 0;
string[] element = inputstring.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
DataTable dt = new DataTable();
int i = 0;
foreach (string elementitem in element)
{
if (elementitem != "")
{
if (i == 1)
{
string[] cols = elementitem.Split(';');
foreach (string colitem in cols)
{
dt.Columns.Add(colitem);
colcount++;
}
}
if (i > 1)
{
DataRow dr = dt.NewRow();
if (colcount == 1)
{
dr[0] = elementitem;
}
else
{
string[] values = elementitem.Split(';');
int col = 0;
foreach (string valueitem in values)
{
dr[col] = valueitem;
col = col + 1;
}
}
dt.Rows.Add(dr);
}
i++;
}
}
dt.AcceptChanges();
this.GridData.DataSource = dt;
}
catch { };
}
public void load_data()
{
if (datenherkunft == "" || datenherkunft == "&Freitext&") { return; }
if (datenherkunft.Contains("OnDocScript"))
{
runscript();
this.Visible = true;
return;
}
if (datenherkunft.Contains("OnDocGraphQL"))
{
rungraphql();
return;
}
if (datenherkunft.Contains("OnDocList"))
{
OnDocList(datenherkunft);
return;
}
this.Visible = true;
Database.DB dB = new Database.DB(AppParams.connectionstring);
dB.clear_parameter();
dB.add_parameter("@nrpar00",partnernr);
dB.add_parameter("@regel", datenherkunft);
dB.Get_Tabledata("dbo.SP_Dokumentbearbeitung_DokWertList", true, false);
this.GridData.DataSource = dB.dsdaten.Tables[0];
GridData.AutoSizeColumnsMode = Syncfusion.WinForms.DataGrid.Enums.AutoSizeColumnsMode.AllCells;
}
private void GridData_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
string value = "";
try
{
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
value = dataRow[0].ToString();
selected_value = value;
}
catch { selected_value = ""; }
}
private void GridData_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
string value = "";
try
{
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
value = dataRow[0].ToString();
selected_value = value;
}
catch { selected_value = ""; }
DialogResult = DialogResult.OK;
this.Close();
}
private void sfCalendar1_Click(object sender, EventArgs e)
{
this.selected_datetime = (DateTime)sfCalendar1.SelectedDate;
}
private void sfCalendar1_DoubleClick(object sender, EventArgs e)
{
sfCalendar1_Click(sender, e);
DialogResult = DialogResult.OK;
this.Close();
}
private void panel2_Click(object sender, EventArgs e)
{
sfCalendar1.SelectedDate = DateTime.Now;
sfCalendar1_DoubleClick(sender, e);
}
private void button1_Click(object sender, EventArgs e)
{
sfCalendar1_DoubleClick(sender, e);
}
private void GridData_DrawCell(object sender, Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs e)
{
//try
//{
// if (e.Column.MappingName == "SAREC00")
// {
// e.Handled = true;
// var selectedItem = e.DataRow;
// var dataRow = (e.DataRow.RowData as DataRowView).Row;
// e.Style.Font.Strikeout = true;
// Pen borderPen = new Pen(Color.LightGray);
// e.Graphics.DrawLine(borderPen, e.Bounds.Right, e.Bounds.Top, e.Bounds.Right, e.Bounds.Bottom);
// e.Graphics.DrawLine(borderPen, e.Bounds.Left, e.Bounds.Bottom, e.Bounds.Right, e.Bounds.Bottom);
// return;
// }
//}
//catch { }
}
private void GridData_QueryCellStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryCellStyleEventArgs e)
{
//try
//{
// if (e.Column.MappingName == "SAREC00")
// {
// var selectedItem = e.DataRow;
// var dataRow = (e.DataRow.RowData as DataRowView).Row;
// e.Style.Font.Strikeout = true;
// return;
// }
//}
//catch { }
}
private void GridData_QueryRowStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryRowStyleEventArgs e)
{
try
{
if (e.RowType == RowType.DefaultRow)
{
var dataRowView = e.RowData as DataRowView;
if (dataRowView != null)
{
var dataRow = dataRowView.Row;
var cellValue = dataRow["SAREC00"].ToString();
if (cellValue == "7")
e.Style.Font.Strikeout = true;
}
}
}
catch { }
}
}
}