C#函数返回空列表,而函数中的列表不是空的
函数的调用:C#函数返回空列表,而函数中的列表不是空的,c#,C#,函数的调用: List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g); using (var t = impuls.connection.BeginTransaction()) { try { List<Pro
List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
using (var t = impuls.connection.BeginTransaction())
{
try
{
List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
{
col.Visible = false;
}
RepositoryItemComboBox obj = new RepositoryItemComboBox();
col.ColumnEdit = obj;
}
catch (Exception error)
{
t.Rollback();
}
}
现在是“TworzFormularz”身体:
public void TworzFormularz()
{
referenceFormularzy=新字典();
Formularz f=脉冲波比公式(krpEtapDlaOsoby.form_id_formularza);
如果(f==null)//sprawdz czy znaleziono公式
{
MessageBox.Show(“Nie znaleziono formularza.”,“”,MessageBoxButtons.OK,MessageBoxIcon.Error);
这个。关闭();
回来
}
FormularzDefinicjaPola[]pola=pulsu.pobierzPolaDlaFormularza(f.fdIdDefinicji);//pobierz pola dla tego formularza
foreach(pola中的FormularzDefinicjaPola pole)//dla wszystkich pól na formularzu
{
List prawaPolFormularza=pulsr.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu,pole.idPola,null);//prawa dostepu
if(pole.typPola.ToUpper()=“编辑”| | pole.typPola.ToUpper()=“备忘录”)
{
TextEdit t=新的TextEdit();
t、 AutoSize=false;
t、 位置=新点(pole.pozycjaX、pole.pozycjaY);
t、 尺寸=新尺寸(pole.szerokosc、pole.wysokosc);
t、 Name=pole.idPola.ToString();
t、 Tag=极点。典型值;
panelControl1.控件。添加(t);
t、 AutoSize=false;
LabelControl标签=新的LabelControl();
label.Text=pole.opisWyswietlany;
label.Name=pole.idPola.ToString();
标签位置=新点(pole.pozycjaX-label.Width-1,pole.pozycjaY);
panelControl1.控件.添加(标签);
label.Location=新点(pole.pozycjaX-label.Width-1,pole.pozycjaY);
panelControl1.AutoSize=false;
label.AutoSize=false;
//奥布卢加海滩酒店
程序a pupola formularza prawoPola=prawaPolFormularza.FirstOrDefault();
如果(prawaPolFormularza.Count>1)
{
Program.logger.Warn(“KorespondencjaWindowForm.TworzFormularz():Znaleziono wiecej jak jedno prawo do pola o definicji:”+pole.idPola+“dla etapu:”+krpEtapDlaOsoby.id_etapu);
}
if(prawoPola!=null&&prawoPola.widocznosc!=null)
{
如果(prawoPola.widocznosc.ToUpper()=“EDYCJA”| prawoPola.widocznosc.ToUpper()=“编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”)
{
t、 启用=真;
}
else if(prawoPola.widocznosc.ToUpper()=“TYLKO ODCZYT”| prawoPola.widocznosc.ToUpper()=“TYLKO|u ODCZYT”| prawoPola.widocznosc.ToUpper()=“READ”| prawoPola.widocznosc.touper()=“只读”|
{
t、 启用=错误;
}
else if(prawoPola.widocznosc.ToUpper()=“NIEWIDOCZNE”| | prawoPola.widocznosc.ToUpper()=“不可见”)
{
t、 可见=假;
标签可见=假;
}
}
参考公式ZY。添加(t,杆);
}
if(pole.typPola.ToUpper()=“CXGRID”)
{
DataTableDatasetGrida;
PoleFormularza[]WidokDefiniticJigrida=pulsu.pobierzDefinicjeGrida(pole.idPola,krpEtapDlaOsoby.form_id_formularza);//przekazujemy idDefinicjiPola,oraz idFormularza
if(WidokDefiniticJigrida.Count()0)
{
}
grid.DataSource=dataSetGrida;
_formMain.LoadNavigatorImages24x24(参考网格);
gridViewFormularz.Name=pole.idPola.ToString();
//乌斯塔维尼亚格里达。
网格位置=新点(极点pozycjaX、极点pozycjaY);
网格尺寸=新尺寸(pole.szerokosc、pole.wysokosc);
grid.MainView=gridViewFormularz;
gridViewFormularz.InitNewRow
+=GridView1_InitNewRow;
grid.Select();
grid.Anchor=(AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
grid.KeyPress+=grid_KeyPress;
gridViewFormularz.OptionsBehavior.AllowAddRows=
DevExpress.Utils.DefaultBoolean.True;
grid.Width=panelControl1.Width;
gridViewFormularz.options selection.MultiSelect=true;
grid.UseEmbeddedNavigator=true;
panelControl1.Controls.Add(网格);
grid.ForceInitialize();
#utworzenie ColumnEditow地区
foreach(gridViewFormularz.Columns中的GridColumn列)
{
PoleFormularza poleGrida=widokDefinicjiGrida.Where(x=>x.tytul==col.FieldName).FirstOrDefault();
if(poleGrida==null)
{
Program.logger.Error(“TworzFormularz():nie znaleziono definicji pola grid,dla pola o tytule:”+col.FieldName);
持续
}
else if(poleGrida.rodzaj_pola==RodzajPolaEnum.B&&poleGrida.lista_wartosci!=null&&poleGrida.lista_wartosci.Length>0)
{
//TODO:操作程序按钮
持续
}
else if(poleGrida.rodzaj_pola==RodzajPolaEnum.B&&(poleGrida.lista_wartosci==null | | | poleGrida.lista_wartosci.Length==0))
{
列表prawoPolGrida=puls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu,pole.idPola,poleGrida.id_pola_g);
程序etapupolaformularza prawoPola2=prawoPolGrida.FirstOrDefault();
如果(prawoPola2!=null&(prawoPola2.widocznosc.ToUpper()=“NIEWIDOCZNE”| prawoPola2.widocznosc.ToUpper()=“不可见”| prawoPola2.widocznosc.ToUpper()=“NIEWIDOCZNY”)
{
可见=假;
}
RepositoryItemTextEdit obj=新R
public KorespondencjaWindowForm(KorespondencjaEtapDlaOsoby _krpEtapDlaOsoby, ImpulsRepository _impuls, FormMain formMain = null, KorespondencjaMDIForm mdiParentForm = null)
{
_formMain = formMain;
impuls = _impuls;
InitializeComponent();
gridViewFormularz.CellValueChanged += GridView1_CellValueChanged1;
krpEtapDlaOsoby = _krpEtapDlaOsoby;
UzupelnijNaglowekISzczegoly(_krpEtapDlaOsoby.id_korespondencji);
TworzFormularz();
TworzFormularzKlientow();
PobierzZalaczniki();
DopasujLayoutGrida();
_mdiFormParent = mdiParentForm;
DevExpress.Skins.SkinManager.EnableFormSkins();
DevExpress.LookAndFeel.LookAndFeelHelper.ForceDefaultLookAndFeelChanged();
SkinManager.EnableMdiFormSkins();
gridViewFormularz.PopupMenuShowing += GridView1_PopupMenuShowing;
try
{
impuls.WczytajUstawieniaKolumnGrida(int.Parse(_formMain.podstawowyNrEwidencyjnyOsobyZalogowanej.ToString()), int.Parse(gridViewFormularz.Name), null, ref gridViewFormularz);
}
catch (Exception error)
{
Program.logger.Error("KorespondencjaWindowForm.WczytajUstawieniaKolumnGrida():" + error.Message);
}
gridViewKlienci.CustomColumnDisplayText += GridViewKlienci_CustomColumnDisplayText;
// repositoryItemLookUpEditTypAdresu.CustomDisplayText += RepositoryItemLookUpEditTypAdresu_CustomDisplayText;
listaHistorii= impuls.pobierzHistorieKorespondencji(krpEtapDlaOsoby.id_korespondencji);
bindingSourceHistoria.DataSource = listaHistorii;
gridViewKlienci.RowCellStyle += gridViewKlienci_RowCellStyle;
}
public void TworzFormularz()
{
referencjeFormularzy = new Dictionary<dynamic, FormularzDefinicjaPola>();
Formularz f = impuls.pobierzFormularz(krpEtapDlaOsoby.form_id_formularza);
if (f == null) //sprawdz czy znaleziono formularz
{
MessageBox.Show("Nie znaleziono formularza.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
return;
}
FormularzDefinicjaPola[] pola = impuls.pobierzPolaDlaFormularza(f.fdIdDefinicji); // pobierz pola dla tego formularza
foreach (FormularzDefinicjaPola pole in pola) // dla wszystkich pól na formularzu
{
List<ProceduraEtapuPolaFormularza> prawaPolFormularza = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, null); //prawa dostepu
if (pole.typPola.ToUpper() == "EDIT" || pole.typPola.ToUpper() == "MEMO")
{
TextEdit t = new TextEdit();
t.AutoSize = false;
t.Location = new Point(pole.pozycjaX, pole.pozycjaY);
t.Size = new Size(pole.szerokosc, pole.wysokosc);
t.Name = pole.idPola.ToString();
t.Tag = pole.typDanych;
panelControl1.Controls.Add(t);
t.AutoSize = false;
LabelControl label = new LabelControl();
label.Text = pole.opisWyswietlany;
label.Name = pole.idPola.ToString();
label.Location = new Point(pole.pozycjaX-label.Width-1 , pole.pozycjaY);
panelControl1.Controls.Add(label);
label.Location = new Point(pole.pozycjaX - label.Width-1 , pole.pozycjaY);
panelControl1.AutoSize = false;
label.AutoSize = false;
//obsluga praw do pola
ProceduraEtapuPolaFormularza prawoPola = prawaPolFormularza.FirstOrDefault();
if (prawaPolFormularza.Count > 1)
{
Program.logger.Warn("KorespondencjaWindowForm.TworzFormularz(): Znaleziono wiecej jak jedno prawo do pola o definicji: " + pole.idPola + " dla etapu: " + krpEtapDlaOsoby.id_etapu);
}
if (prawoPola != null && prawoPola.widocznosc!=null)
{
if (prawoPola.widocznosc.ToUpper() == "EDYCJA" || prawoPola.widocznosc.ToUpper() == "EDIT" || prawoPola.widocznosc.ToUpper() == "EDITABLE" || prawoPola.widocznosc.ToUpper() == "EDIT ABLE" || prawoPola.widocznosc.ToUpper() == "EDIT_ABLE")
{
t.Enabled = true;
}
else if (prawoPola.widocznosc.ToUpper() == "TYLKO ODCZYT" || prawoPola.widocznosc.ToUpper() == "TYLKO_ODCZYT" || prawoPola.widocznosc.ToUpper() == "READ" || prawoPola.widocznosc.ToUpper() == "READ_ONLY" || prawoPola.widocznosc.ToUpper() == "READ ONLY")
{
t.Enabled = false;
}
else if (prawoPola.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola.widocznosc.ToUpper() == "INVISIBLE")
{
t.Visible = false;
label.Visible = false;
}
}
referencjeFormularzy.Add(t, pole);
}
if (pole.typPola.ToUpper() == "CXGRID")
{
DataTable dataSetGrida;
PoleFormularza[] widokDefinicjiGrida = impuls.pobierzDefinicjeGrida(pole.idPola,krpEtapDlaOsoby.form_id_formularza); // przekazujemy idDefinicjiPola, oraz idFormularza
if (widokDefinicjiGrida.Count() <= 0)
{
Program.logger.Error("TworzFormularz(): Nie wczytano kolumn dla grida o id_definicji: " + pole.idPola.ToString());
continue;
}
//tworzenie data source dla grida
dataSetGrida = UtworzDataTableDlaGrida(widokDefinicjiGrida,pole.idPola, true);
gridViewFormularz.CustomUnboundColumnData += GridView1_CustomUnboundColumnData;
PoleFormularza[] widokWartosciGrida = impuls.pobierzWidokGrida(pole.idPola, krpEtapDlaOsoby.form_id_formularza);
//jezeli sa wiersze...
if (widokWartosciGrida.Count() > 0)
{
}
grid.DataSource = dataSetGrida;
_formMain.LoadNavigatorImages24x24(ref grid);
gridViewFormularz.Name = pole.idPola.ToString();
//ustawienia grida.
grid.Location = new Point(pole.pozycjaX, pole.pozycjaY);
grid.Size = new Size(pole.szerokosc, pole.wysokosc);
grid.MainView = gridViewFormularz;
gridViewFormularz.InitNewRow
+= GridView1_InitNewRow;
grid.Select();
grid.Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
grid.KeyPress += Grid_KeyPress;
gridViewFormularz.OptionsBehavior.AllowAddRows =
DevExpress.Utils.DefaultBoolean.True;
grid.Width = panelControl1.Width;
gridViewFormularz.OptionsSelection.MultiSelect = true;
grid.UseEmbeddedNavigator = true;
panelControl1.Controls.Add(grid);
grid.ForceInitialize();
#region utworzenie ColumnEditow
foreach (GridColumn col in gridViewFormularz.Columns)
{
PoleFormularza poleGrida = widokDefinicjiGrida.Where(x => x.tytul == col.FieldName).FirstOrDefault();
if (poleGrida == null)
{
Program.logger.Error("TworzFormularz() : nie znaleziono definicji pola grid, dla pola o tytule: " + col.FieldName);
continue;
}
else if (poleGrida.rodzaj_pola == RodzajPolaEnum.B && poleGrida.lista_wartosci != null && poleGrida.lista_wartosci.Length > 0)
{
//TODO: oprogramuj button
continue;
}
else if (poleGrida.rodzaj_pola == RodzajPolaEnum.B && (poleGrida.lista_wartosci == null || poleGrida.lista_wartosci.Length == 0))
{
List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
if (prawoPola2!=null && (prawoPola2.widocznosc.ToUpper()=="NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
{
col.Visible = false;
}
RepositoryItemTextEdit obj = new RepositoryItemTextEdit();
col.ColumnEdit = obj;
}
else
{
using (var t = impuls.connection.BeginTransaction())
{
try
{
List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
{
col.Visible = false;
}
RepositoryItemComboBox obj = new RepositoryItemComboBox();
col.ColumnEdit = obj;
}
catch (Exception error)
{
t.Rollback();
}
}
}
}
#endregion
UzupelijWierszeGrida(ref widokWartosciGrida, ref dataSetGrida);
UzupelnijEdytoryGrida(ref gridViewFormularz, widokDefinicjiGrida);
gridViewFormularz.Columns["PolaFormularza"].Visible = false;
// poczatek inicjalizacji wartosci grida (jeżeli użytkownik coś zmieni, to obsługa dalsza jest w evencie cell changed.
//jezeli uzytkownik chce dodac nowy wiersz, jego obsluga nastąpi w initNewRowEvent.
// impuls.pasteClipboardToGrid(gridView1);
}
if (pole.typPola.ToUpper() == "COMBOBOX")
{
ComboBoxEdit cbEdit = new ComboBoxEdit();
cbEdit.Name = pole.idPola.ToString();
cbEdit.Location = new Point(pole.pozycjaX , pole.pozycjaY);
cbEdit.Size = new Size(pole.szerokosc, pole.wysokosc);
if (pole.listaWartosci != null && !pole.listaWartosci.ToUpper().Contains("SELF") && pole.typListy == "D")
{
dynamic src = impuls.pobierzSelectDlaGrida(pole.listaWartosci);
cbEdit.Properties.Items.AddRange(src);
}
if (pole.typListy == "S" || pole.typListy == "B" && pole.listaWartosci != null && pole.listaWartosci.Length > 0)
{
string[] splity = @pole.listaWartosci.Split('\n');
cbEdit.Properties.Items.AddRange(splity);
}
cbEdit.AutoSize = false;
panelControl1.Controls.Add(cbEdit);
cbEdit.Visible = true;
LabelControl label = new LabelControl();
label.Text = pole.opisWyswietlany;
label.Name = pole.idPola.ToString();
label.Location = new Point(pole.pozycjaX-label.Width-1, pole.pozycjaY);
panelControl1.Controls.Add(label);
label.Location = new Point(pole.pozycjaX - label.Width-1 , pole.pozycjaY);
label.AutoSize = false;
cbEdit.AutoSize = false;
//obsluga praw do pola
ProceduraEtapuPolaFormularza prawoPola = prawaPolFormularza.FirstOrDefault();
if (prawaPolFormularza.Count > 1)
{
Program.logger.Warn("KorespondencjaWindowForm.TworzFormularz(): Znaleziono wiecej jak jedno prawo do pola o definicji: " + pole.idPola + " dla etapu: " + krpEtapDlaOsoby.id_etapu);
}
if (prawoPola != null && prawoPola.widocznosc != null)
{
if (prawoPola.widocznosc.ToUpper() == "EDYCJA" || prawoPola.widocznosc.ToUpper() == "EDIT" || prawoPola.widocznosc.ToUpper() == "EDITABLE" || prawoPola.widocznosc.ToUpper() == "EDIT ABLE" || prawoPola.widocznosc.ToUpper() == "EDIT_ABLE")
{
cbEdit.Enabled = true;
}
else if (prawoPola.widocznosc.ToUpper() == "TYLKO ODCZYT" || prawoPola.widocznosc.ToUpper() == "TYLKO_ODCZYT" || prawoPola.widocznosc.ToUpper() == "READ" || prawoPola.widocznosc.ToUpper() == "READ_ONLY" || prawoPola.widocznosc.ToUpper() == "READ ONLY")
{
cbEdit.Enabled = false;
}
else if (prawoPola.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola.widocznosc.ToUpper() == "INVISIBLE")
{
cbEdit.Visible = false;
label.Visible = false;
}
}
referencjeFormularzy.Add(cbEdit, pole);
}
}
SimpleButton button = new SimpleButton();
button.Text = "Zapisz";
button.Click += Button_Click;
button.Location = new Point(grid.Location.X , grid.Location.Y - 25);
panelControl1.Controls.Add(button);
SimpleButton buttonWyslij = new SimpleButton();
buttonWyslij.Text = "Wyślij";
panelControl1.ResumeLayout();
buttonWyslij.Location = new Point(button.Location.X + button.Width + 10, button.Location.Y);
panelControl1.PerformLayout();
panelControl1.Controls.Add(buttonWyslij);
buttonWyslij.Click += ButtonWyslij_Click;
pobierzWartosciPol(pola);
}
using (var t = impuls.connection.BeginTransaction())
{
try
{
List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
{
col.Visible = false;
}
RepositoryItemComboBox obj = new RepositoryItemComboBox();
col.ColumnEdit = obj;
}
catch (Exception error)
{
t.Rollback();
}
}