namespace nlisclient.sstform
{
/// <summary>
///
<para>程式名稱:sst模闆預覽窗體</para>
/// <list type="table">
/// <listheader>
<term>作者</term><term>日期</term><term>版本</term><term>更改說明</term>
/// <item>
<term></term><term>2014-03-3</term><term>v1.0</term><term>建立</term>
/// </item>
/// </listheader>
/// </list>
/// </summary>
public partial class rewardstandardpreform :
ejecteditbaseform
wcfrewardandpayservice.rewardandpayserviceclient client = new
wcfrewardandpayservice.rewardandpayserviceclient();
wcfrewardstandardservice.rewardstandardserviceclient clientr = new
wcfrewardstandardservice.rewardstandardserviceclient();
wcfpaystandardservice.paystandardserviceclient clientp = new
wcfpaystandardservice.paystandardserviceclient();
datatable dtitema = null;//定價表(父)
datatable dtitemr =
null;//索酬表(子)
datatable dtitemp = null;//索賠表(子)
int rowp = 0;
int rows = 0;//行數
string levelrow = "";//每一行的所占行數
string strwhere =
"";
public rewardstandardpreform(string id)
initializecomponent();
strwhere = "
rewardandpaypositionid=" + id;
}
private void rewardstandardpreform_load(object sender, eventargs
e)
getdata();
if (dtitema.rows.count
== 0)
panel.visible = false;
panel.refresh();
if (dtitema.rows.count > 0)
jsrows();
init();
panel.horizontalscroll.visible = false;
public void getdata()
dictionary<string, string> dica = new dictionary<string,
string>();
dica = client.search(1, int32.maxvalue,
"rewardandpaystatus=1 and" + strwhere);
datatable _dica =
nlisclient.uibase.helper.tablehelper.deserializationtable(dica["table"]);
dataview dv = _dica.defaultview;
dv.sort =
"positiondepartmentid desc,rewardandpaypositionid desc";
dtitema
= dv.totable();
dictionary<string, string> dicr = new dictionary<string,
dicr = clientr.search(1, int32.maxvalue,
"rewardstandardstatus=1");
dtitemr =
nlisclient.uibase.helper.tablehelper.deserializationtable(dicr["table"]);
dictionary<string, string> dicp = new dictionary<string,
dicp = clientp.search(1, int32.maxvalue,
"paystandardstatus=1");
dtitemp =
nlisclient.uibase.helper.tablehelper.deserializationtable(dicp["table"]);
private void init()
if
(dtitema.rows.count > 0)
datatable table
= dtitemr;
this.panel.controls.clear();
panel.borderstyle = borderstyle.none;
panel.cellborderstyle =
tablelayoutpanelcellborderstyle.single;
this.panel.rowcount = rows;
this.panel.rowstyles.clear();
for (int i = 0; i <
panel.rowcount; i++)
string[]
levelrow = levelrow.split(‘;‘);
this.panel.rowstyles.add(new rowstyle(sizetype.absolute, 23.1f *
convert.toint16(levelrow[i])));
int
currentrow = -1;
for (int i = 0; i < dtitema.rows.count;
i++)
datarow[] level1 =
dtitemr.select("rewardstandardrewardpriceid=" +
dtitema.rows[i]["rewardandpayid"]);
datarow[] level2 =
dtitemp.select("paystandardpaypriceid=" +
currentrow++;
label label_x = new label();
label_x.text = (currentrow + 1).tostring();//序号列
label_x.tag =
dtitema.rows[i]["rewardandpayid"].tostring();
label_x.textalign = contentalignment.middlecenter;
label_x.anchor = ((anchorstyles)((anchorstyles.left | anchorstyles.right)));
label_x.autosize = true;
panel.controls.add(label_x, 0, currentrow);
label label = new label();
label.text = dtitema.rows[i]["rewardandpayitem"].tostring();//服務項目;
label.tag
= dtitema.rows[i]["rewardandpayid"].tostring();
label.textalign = contentalignment.middlecenter;
label.anchor = ((anchorstyles)((anchorstyles.left | anchorstyles.right)));
label.autosize = true;
label.textalign =
contentalignment.middlecenter;
panel.controls.add(label,
1, currentrow);
label label_r = new label();
label_r.text = dtitema.rows[i]["rewardmoney"].tostring();//索酬定價;
label_r.tag
label_r.textalign = contentalignment.middlecenter;
label_r.anchor = ((anchorstyles)((anchorstyles.left | anchorstyles.right)));
label_r.autosize = true;
panel.controls.add(label_r, 2, currentrow);
#region 添加表格 索酬标準
if (level1.length > 0)
datagridview dgv_r = new
datagridview();
dgv_r.autogeneratecolumns =
false;
dgv_r.height = 20 * level1.length;
dgv_r.scrollbars = scrollbars.none;
dgv_r.anchor = anchorstyles.top | anchorstyles.left | anchorstyles.bottom |
anchorstyles.right;
dgv_r.allowusertoresizecolumns =
dgv_r.allowusertoresizerows = false;
dgv_r.allowusertoaddrows = false;
dgv_r.allowusertodeleterows = false;
dgv_r.backgroundcolor = color.white;
dgv_r.columnheadersvisible = false;
dgv_r.rowsdefaultcellstyle.selectionbackcolor = color.aliceblue;
dgv_r.rowsdefaultcellstyle.selectionforecolor = color.black;
dgv_r.rowheadersvisible = false;
dgv_r.borderstyle = borderstyle.none;
datagridviewtextboxcolumn dc1 = new
datagridviewtextboxcolumn();//标準
dc1.name = dgv_r.name +
"_rewardstandarditem";
dc1.readonly = true;
dc1.width = 200;
dgv_r.columns.add(dc1);
datagridviewtextboxcolumn dc2 = new
datagridviewtextboxcolumn();//百分比
dc2.name = dgv_r.name +
"_rewardstandardpercent";
//dc2.width = 126;
dc2.autosizemode = datagridviewautosizecolumnmode.fill;
dgv_r.columns.add(dc2);
dgv_r.columns[dgv_r.name +
"_rewardstandarditem"].datapropertyname = "rewardstandarditem";
dgv_r.columns[dgv_r.name + "_rewardstandardpercent"].datapropertyname
= "_rewardstandardpercent";
datatable dt_r =
dtitemr.clone();
for (int j = 0; j <
level1.length; j++)
dt_r.rows.add(level1[j].itemarray);
dgv_r.datasource = dt_r;
panel.controls.add(dgv_r, 3, currentrow);
dgv_r.margin = new padding(0, 0, 0, 0);
else
datagridview
dgv_r = new datagridview();
dgv_r.autogeneratecolumns
= false;
dt_r.rows.add(dt_r.newrow());
#endregion
label label_p = new label();
label_p.text = dtitema.rows[i]["paymoney"].tostring();//索賠定價;
label_p.tag =
label_p.textalign = contentalignment.middlecenter;
label_p.anchor = ((anchorstyles)((anchorstyles.left | anchorstyles.right)));
label_p.autosize = true;
panel.controls.add(label_p, 4, currentrow);
#region 添加表格 索賠标準
if (level2.length > 0)
datagridview dgv_p = new
dgv_p.autogeneratecolumns =
dgv_p.height = 20 * level1.length;
dgv_p.scrollbars = scrollbars.none;
dgv_p.anchor = anchorstyles.top | anchorstyles.left | anchorstyles.bottom |
dgv_p.allowusertoresizecolumns =
dgv_p.allowusertoresizerows = false;
dgv_p.allowusertoaddrows = false;
dgv_p.allowusertodeleterows = false;
dgv_p.backgroundcolor = color.white;
dgv_p.columnheadersvisible = false;
dgv_p.rowsdefaultcellstyle.selectionbackcolor = color.aliceblue;
dgv_p.rowsdefaultcellstyle.selectionforecolor = color.black;
dgv_p.rowheadersvisible = false;
dgv_p.borderstyle = borderstyle.none;
datagridviewtextboxcolumn dc1_p = new
datagridviewtextboxcolumn();//項目
dc1_p.name = dgv_p.name +
"_paystandarditem";
dc1_p.readonly = true;
dc1_p.width = 201;
dgv_p.columns.add(dc1_p);
datagridviewtextboxcolumn dc2_p = new
datagridviewtextboxcolumn();//預算
dc2_p.name = dgv_p.name +
"_paystandardpercent";
dc2_p.autosizemode = datagridviewautosizecolumnmode.fill;
dgv_p.columns.add(dc2_p);
dgv_p.columns[dgv_p.name +
"_paystandarditem"].datapropertyname = "paystandarditem";
dgv_p.columns[dgv_p.name + "_paystandardpercent"].datapropertyname =
datatable dt =
dtitemp.clone();
level2.length; j++)
dt.rows.add(level2[j].itemarray);
dgv_p.datasource = dt;
panel.controls.add(dgv_p, 5, currentrow);
dgv_p.margin = new padding(0, 0, 0, 0);
dgv_p = new datagridview();
dgv_p.autogeneratecolumns
dt.rows.add(dt.newrow());
private void jsrows()
(dtitemr.rows.count > 0)
for (int i = 0; i < dtitema.rows.count; i++)
int row = 0;
if (level1.length > 0 || level2.length > 0)
row = (level1.length > level2.length ?
level1.length : level2.length);
levelrow = levelrow + (row == 0 ? 1 : row) + ";";
rows++;
private void dgv_cellvaluechanged(object sender,
datagridviewcelleventargs e)
datagridview dgv =
sender as datagridview;
messagebox.show(dgv.name);