页面主要用DockPanel布局和Grid布局来做界面 ,界面有点单一。如下图:
数据库主要有两张表:一张采购信息订单表,一张采购明细表。
数据库存储过程如下:
--新增采购信息
IF (@type='XZ_Purchase_PurchasingManagement')
BEGIN
INSERT INTO Purchase
( StaffID ,WarehouseID ,SupplierInforID ,
PurchaseNo ,PurchaseDate ,ShouldMny ,RealityMny ,Audit )
VALUES (@StaffID, @WarehouseID,@SupplierInforID,@PurchaseNo,
@PurchaseDate,@ShouldMny, @RealityMny, @Audit)
SELECT SCOPE_IDENTITY()
END
--新增采购商品信息详细
IF (@type='XZ_PurchaseDtl_PurchasingManagement')
BEGIN
INSERT INTO PurchaseDtl
( PurchaseID ,CommodityInforID )
VALUES ( @PurchaseID, @CommodityInforID)
END
服务层因为是多表新增,所以在新增采购信息要返回采购信息表的ID,给我们采购明细表,进行新增。
采购信息表的写法和查询的写法差不了多少。
代码如下:
#region 新增
//新增采购信息
[OperationContract]
public DataSet XZ_Purchase_PurchasingManagement(int StaffID, int WarehouseID, int SupplierInforID,
string PurchaseNo, DateTime PurchaseDate, decimal ShouldMny, decimal RealityMny, bool Audit)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@type",SqlDbType.NChar),
new SqlParameter("@StaffID",SqlDbType.Int),
new SqlParameter("@WarehouseID",SqlDbType.Int),
new SqlParameter("@SupplierInforID",SqlDbType.Int),
new SqlParameter("@PurchaseNo",SqlDbType.NChar),
new SqlParameter("@PurchaseDate",SqlDbType.DateTime),
new SqlParameter("@ShouldMny",SqlDbType.Decimal),
new SqlParameter("@RealityMny",SqlDbType.Decimal),
new SqlParameter("@Audit",SqlDbType.Bit)
};
mySqlParameters[0].Value = "XZ_Purchase_PurchasingManagement";
mySqlParameters[1].Value = StaffID;
mySqlParameters[2].Value = WarehouseID;
mySqlParameters[3].Value = SupplierInforID;
mySqlParameters[4].Value = PurchaseNo;
mySqlParameters[5].Value = PurchaseDate;
mySqlParameters[6].Value = ShouldMny;
mySqlParameters[7].Value = RealityMny;
mySqlParameters[8].Value = Audit;
DataTable myDataTable = myDALMethod.QueryDataTable("Frm_PurchasingManagement", mySqlParameters);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
//新增采购详细信息
[OperationContract]
public int XZ_PurchaseDtl_PurchasingManagement(int PurchaseID, int CommodityInforID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@type",SqlDbType.Char),
new SqlParameter("@PurchaseID",SqlDbType.Int),
new SqlParameter("@CommodityInforID",SqlDbType.Int)
//new SqlParameter("@PurchaseCount",SqlDbType.Int),
//new SqlParameter("@TotalMny",SqlDbType.Decimal)
};
mySqlParameters[0].Value = "XZ_PurchaseDtl_PurchasingManagement";
mySqlParameters[1].Value = PurchaseID;
mySqlParameters[2].Value = CommodityInforID;
//mySqlParameters[3].Value = PurchaseCount;
//mySqlParameters[4].Value = TotalMny;
int myDataTable = myDALMethod.UpdateData("Frm_PurchasingManagement", mySqlParameters);
return myDataTable;
}
#endregion
页面功能代码
private void B_BaoC_Click(object sender, RoutedEventArgs e)
{
#region 判断页面数据再获取值新增
try
{
if (tbMemberCradNo.Text.ToString() != "")
{
//获取页面数据
//string StaffID = CBO_SupplierInfor.Text.ToString().Trim();
int StaffID = Convert.ToInt32(CBO_WYY.SelectedValue);
int WarehouseID = Convert.ToInt32(CBO_CangKu.SelectedValue);
int SupplierInforID = Convert.ToInt32(CBO_SupplierInfor.SelectedValue);
string PurchaseNo = tbMemberCradNo.Text.ToString().Trim();
DateTime PurchaseDate = Convert.ToDateTime(DP_PurchaseDate.Text.ToString());
//float ShouldMny = TB_DNM.Text.ToString().Trim();
Decimal ShouldMny = Convert.ToDecimal( TB_DNM.Text.ToString());
Decimal RealityMny = Convert.ToDecimal(NB.Text.ToString());
Boolean Audit = true;
DataTable resules = myFrm_SupplierInformationClient.XZ_Purchase_PurchasingManagement(StaffID, WarehouseID, SupplierInforID, PurchaseNo, PurchaseDate, ShouldMny, RealityMny, Audit).Tables[0];
int PurchaseID = Convert.ToInt32(resules.Rows[0][0].ToString());
//判断返回数据行resules.Rows.Count
if (resules.Rows.Count > 0)
{
int intNeighborCount = 0;
for (int i = 0; i < dgTraveller.Items.Count; i++)
{
if (((DataRowView)dgTraveller.Items[i]).Row["CommodityInforID"].ToString() != "")
{
int CommodityInforID = Convert.ToInt32(((DataRowView)dgTraveller.Items[i]).Row["CommodityInforID"]);
//int PurchaseCount = Convert.ToInt32(((DataRowView)dgTraveller.Items[i]).Row["PurchaseCount"]);
//Decimal TotalMny = Convert.ToDecimal(((DataRowView)dgTraveller.Items[i]).Row["TotalMny"]);
intNeighborCount = Convert.ToInt32(myFrm_SupplierInformationClient.XZ_PurchaseDtl_PurchasingManagement(PurchaseID,CommodityInforID));
}
}
//判断是否执行成功
if (intNeighborCount > 0)
{
MessageBoxResult dr = MessageBox.Show("新增采购数据成功!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Warning);
if (dr == MessageBoxResult.OK)
{ this.Close();}
}
}
}
else
{MessageBox.Show("请填写数据。");}
}
catch (Exception)
{ throw;}
#endregion
}