📄 hireoutfrm.cs
字号:
this.Controls.Add(this.info);
this.Controls.Add(this.morderbtn);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.label4);
this.Controls.Add(this.onum);
this.Controls.Add(this.goodsselect);
this.Controls.Add(this.label3);
this.Controls.Add(this.findbtn);
this.Controls.Add(this.label2);
this.Controls.Add(this.goodsname);
this.Controls.Add(this.label1);
this.Controls.Add(this.barcode);
this.Controls.Add(this.H);
this.Controls.Add(this.S);
this.Name = "hireoutFrm";
this.Text = "出售与出租";
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private Font printFont;
private StringReader streamToPrint;
private static DataTable dt=new DataTable("OrderInfo");
private static string BarCodeStr="",GoodsNameStr="",DbType="",OrderNumStr="1";
private static void BuildTable(){
dt.Rows.Clear();
dt.Columns.Clear();
dt.Columns.Add("ID", typeof(Int32));
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("BarCode", typeof(String));
dt.Columns.Add("GoodsType", typeof(String));
dt.Columns.Add("MemberPrice", typeof(Double));
dt.Columns.Add("GoodsPrice", typeof(Double));
dt.Columns.Add("HirePrice", typeof(String));
dt.Columns.Add("KCNum", typeof(Int32));
dt.Columns.Add("OrderNum", typeof(Int32));
}
private void findbtn_Click(object sender, System.EventArgs e)
{
if(S.Checked)DbType="S";
if(H.Checked)DbType="H";
if(DbType=="")
{
MessageBox.Show("请选择租售类型");
}
else
{
BarCodeStr=barcode.Text;
GoodsNameStr=goodsname.Text;
OrderNumStr=onum.Text;
if((BarCodeStr!="")||(GoodsNameStr!=""))
{
goodsselect.DataBindings.Clear();
string AddSql="";
if(BarCodeStr!="")AddSql+=" and BarCode like '%"+BarCodeStr+"%'";
if(GoodsNameStr!="")AddSql+=" and GoodsName like '%"+GoodsNameStr+"%'";
SqlDataAdapter sdr=new SqlDataAdapter("select top 10 ID,BarCode,GoodsType+GoodsName as GoodsName from Goods_"+DbType+" where DepartMent='"+FPara.ShopCode+"' "+AddSql+" order by ID desc",FPara.connStr);
DataSet ds=new DataSet();
sdr.Fill(ds,"find");
goodsselect.DataSource=ds;
goodsselect.DataBindings.Add("Text",ds,"find.GoodsName");
goodsselect.DisplayMember = "find.GoodsName";
goodsselect.ValueMember = "find.ID";
if(ds.Tables["find"].Rows.Count==1){
goodsselect_SelectedIndexChanged(sender,e);
goodsselect.SelectedIndex=0;
}
barcode.Text="";
goodsname.Text="";
onum.Text="1";
}
else{
MessageBox.Show("请输入商品条码或名称");
}
}
}
private void goodsselect_SelectedIndexChanged(object sender, System.EventArgs e)
{
string AddID=goodsselect.SelectedValue.ToString();
try
{
int TestID=int.Parse(AddID);
string DelCmdStr="0";
for(int rnum=0;rnum<dt.Rows.Count;rnum++){
if(dt.Rows[rnum]["ID"].ToString().Trim()==AddID.Trim()){
dt.Rows[rnum].Delete();
DelCmdStr="1";
break;
}
}
if(DelCmdStr=="0")
{
SqlDataReader sdr=FPara.SqlReader("select top 1 ID,GoodsName,BarCode,GoodsType,GoodsPrice,MemberPrice,HirePrice,KCNum from Goods_"+DbType+" where ID="+AddID,FPara.connStr);
if(sdr!=null)
{
if(sdr.Read())
{
DataRow dr=dt.NewRow();
dr["ID"]=AddID;
dr["Name"]=sdr["GoodsName"].ToString();
dr["BarCode"]=sdr["BarCode"].ToString();
dr["GoodsType"]=sdr["GoodsType"].ToString();
dr["GoodsPrice"]=sdr["GoodsPrice"].ToString();
dr["MemberPrice"]=sdr["MemberPrice"].ToString();
dr["HirePrice"]=sdr["HirePrice"].ToString();
dr["KCNum"]=sdr["KCNum"].ToString();
if(int.Parse(sdr["KCNum"].ToString())<int.Parse(OrderNumStr))
{
MessageBox.Show("库存不够,目前只有"+sdr["KCNum"].ToString());
if(int.Parse(sdr["KCNum"].ToString())>0)
{
dr["OrderNum"]=sdr["KCNum"].ToString();
dt.Rows.Add(dr);
}
}
else{
dr["OrderNum"]=OrderNumStr;
dt.Rows.Add(dr);
}
}
sdr.Close();
}
}
double TotalGoodsPrice=0,TotalMemberPrice=0,TotalNum=0,TotalHirePrice=0;
for(int cnum=0;cnum<dt.Rows.Count;cnum++)
{
TotalGoodsPrice+=double.Parse(dt.Rows[cnum]["GoodsPrice"].ToString())*double.Parse(dt.Rows[cnum]["OrderNum"].ToString());
TotalMemberPrice+=double.Parse(dt.Rows[cnum]["MemberPrice"].ToString())*double.Parse(dt.Rows[cnum]["OrderNum"].ToString());
if(DbType=="H")TotalHirePrice+=double.Parse(dt.Rows[cnum]["HirePrice"].ToString())*double.Parse(dt.Rows[cnum]["OrderNum"].ToString());
TotalNum+=double.Parse(dt.Rows[cnum]["OrderNum"].ToString());
}
totalgoodsstr.Text=TotalGoodsPrice.ToString();
totalmemberstr.Text=TotalMemberPrice.ToString();
totalnumstr.Text=TotalNum.ToString();
if(DbType=="H")info.Text="总押金:"+TotalHirePrice.ToString()+"元";
}
catch(Exception ex){}
dataGrid1.DataSource=dt;//注意啊
}
private void morderbtn_Click(object sender, System.EventArgs e)
{
string MemeberCodeStr=membercode.Text.ToString();
if(MemeberCodeStr!="")
{
Order_Click("M",sender,e);
}
else{
MessageBox.Show("请输入会员卡号");
}
}
private void orderbtn_Click(object sender, System.EventArgs e)
{
Order_Click("",sender,e);
}
private void Order_Click(string UserType,object sender, System.EventArgs e){
string GoodsCodeStr="",GoodsNameStr="",GoodsPriceStr="",MemberPriceStr="",GoodsNumStr="",PrintCont="",TotalMoneyInfo="0",AddSpace=" ";
SqlDataAdapter msda=new SqlDataAdapter("select top 1 * from D_"+FPara.ShopCode+" order by id desc",FPara.connStr);
SqlCommandBuilder UserCB = new SqlCommandBuilder(msda);
DataSet mds=new DataSet();
msda.Fill(mds,"newinfo");
DataTable mdt=mds.Tables["newinfo"];
int NewTempid=1;
if(mdt.Rows.Count==1)NewTempid=int.Parse(mdt.Rows[0]["ID"].ToString())+1;
DataRow mdr=mdt.NewRow();
mdr["ID"]=NewTempid;
mdr["MyAction"]=DbType;
for(int anum=0;anum<dt.Rows.Count;anum++)
{
string KCerror=FPara.SqlCmd("update Goods_"+DbType+" set KCNum=KCNum-"+int.Parse(dt.Rows[anum]["OrderNum"].ToString())+" where DepartMent='"+FPara.ShopCode+"' and BarCode ='"+dt.Rows[anum]["BarCode"].ToString()+"' and ID="+dt.Rows[anum]["ID"].ToString()+" and KCNum>0",FPara.connStr);//调整库存
if(KCerror!=null){
MessageBox.Show(dt.Rows[anum]["BarCode"].ToString()+"库存出错,请检查并修正\n交易继续进行..."+KCerror);
}
GoodsCodeStr+=dt.Rows[anum]["BarCode"].ToString()+";";
GoodsNameStr+=dt.Rows[anum]["Name"].ToString()+";";
GoodsPriceStr+=dt.Rows[anum]["GoodsPrice"].ToString()+";";
MemberPriceStr+=dt.Rows[anum]["MemberPrice"].ToString()+";";
GoodsNumStr+=dt.Rows[anum]["OrderNum"].ToString()+";";
if(UserType=="M")
{
PrintCont+=dt.Rows[anum]["BarCode"].ToString()+AddSpace+(dt.Rows[anum]["OrderNum"].ToString()+" ").Substring(0,8)+AddSpace+(dt.Rows[anum]["MemberPrice"].ToString()+" ").Substring(0,10)+AddSpace+((double.Parse(dt.Rows[anum]["MemberPrice"].ToString())*double.Parse(dt.Rows[anum]["OrderNum"].ToString())).ToString()+" ").Substring(0,6)+"\r";
}
else{
PrintCont+=dt.Rows[anum]["BarCode"].ToString()+AddSpace+(dt.Rows[anum]["OrderNum"].ToString()+" ").Substring(0,8)+AddSpace+(dt.Rows[anum]["GoodsPrice"].ToString()+" ").Substring(0,10)+AddSpace+((double.Parse(dt.Rows[anum]["GoodsPrice"].ToString())*double.Parse(dt.Rows[anum]["OrderNum"].ToString())).ToString()+" ").Substring(0,6)+"\r";
}
}
mdr["GoodsCode"]=GoodsCodeStr;
mdr["GoodsName"]=GoodsNameStr;
if(UserType=="M")
{
mdr["GoodsPrice"]=MemberPriceStr;
mdr["TotalMoney"]=totalmemberstr.Text;
}
else{
mdr["GoodsPrice"]=GoodsPriceStr;
mdr["TotalMoney"]=totalgoodsstr.Text;
}
TotalMoneyInfo=mdr["TotalMoney"].ToString();
mdr["GoodsNum"]=GoodsNumStr;
mdr["ActionNum"]=totalnumstr.Text;
mdr["MemberID"]=membercode.Text.ToString();
mdr["ActionTime"]=String.Format("{0:yyyy-MM-dd}",System.DateTime.Today);
mdr["Info"]=info.Text;
mdt.Rows.Add(mdr);
try
{
int errorNum=msda.Update(mds,"newinfo");
if(errorNum==1)
{
//打印
string PrintContStr="\t欢迎光临浪淘沙音像店\r";
if(UserType=="M")
{
PrintContStr+="会员";
}
else
{
PrintContStr+="普通";
}
if(DbType=="S")
{
PrintContStr+="商品出售("+FPara.ShopCode+") ";
}
else{
PrintContStr+="商品出租("+FPara.ShopCode+") ";
}
PrintContStr+="流水号:"+NewTempid+"号\r";
PrintContStr+="商品编号 "+AddSpace+"数量 "+AddSpace+"单价 "+AddSpace+"金额\r";
PrintContStr+=PrintCont;
PrintContStr+="------------------\r";
PrintContStr+="商品件数:"+totalnumstr.Text+"\t总额:"+TotalMoneyInfo+"元 时间:"+System.DateTime.Now+"\r";
if(info.Text.ToString().Trim()!="")PrintContStr+="注意:"+info.Text.ToString()+"\r";
if(DbType=="S")
{
PrintContStr+="**如有质量问题,凭此收据一周内调换**\r";
}
else
{
PrintContStr+="**归还时最好能出示该收据,方便查询**\r";
}
//
FileStream fs=new FileStream("txt/HD"+String.Format("{0:yyyy-MM-dd}",System.DateTime.Today)+".txt",FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter wfile=new StreamWriter(fs);
wfile.BaseStream.Seek(0,SeekOrigin.End);
wfile.WriteLine(PrintContStr);
wfile.Flush();
wfile.Close();
streamToPrint = new StringReader(PrintContStr);
printFont = new Font("Arial", 11);
printDocument1.Dispose();
printDocument1 = new PrintDocument();
printDocument1.PrintPage += new PrintPageEventHandler(this.printDocument1_PrintPage);
if(printview.Checked)
{
//预览
printPreviewDialog1=new PrintPreviewDialog();
printPreviewDialog1.Document=printDocument1;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog();
}
else
{
//打印
printDocument1.Print();
}
printDocument1.Dispose();
streamToPrint.Close();
//
MessageBox.Show("交易成功");
mds.Clear();
this.Dispose();
this.Close();
}
else
{
MessageBox.Show("交易失败");
}
}
catch(Exception ex){
MessageBox.Show(ex.ToString());
}
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
int leftmargin=15;//左边距
int topmargin=5;//上边距
//int totalline=5;//总行数
float leftMargin = leftmargin;
float topMargin = topmargin;
string line = null;
//Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height/printFont.GetHeight(ev.Graphics);
//if (linesPerPage>totalline) linesPerPage=totalline;
// Print each line of the file.
while((count<linesPerPage)&&((line=streamToPrint.ReadLine()) != null))
{
yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, new StringFormat());
count++;
}
//If more lines exist, print another page.
if(line != null)
{
ev.HasMorePages = true;
}
else
{
ev.HasMorePages = false;
}
}
private void S_Click(object sender, System.EventArgs e)
{
H.Enabled = false;
S.Enabled=true;
}
private void H_Click(object sender, System.EventArgs e)
{
S.Enabled=false;
H.Enabled = true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -