String ss1; int zt; zt=0; ss1="select * from 消费地点信息表 where 编号='"+ss.SubString(38,2).Trim()+"'"; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->IsEmpty() ) zt=2; if (zt==0) { if(Query3->FieldByName("地点")->AsString=="餐厅") { ss1="select * from deskinf where 编号='"+ss.SubString(1,7).Trim()+"'"; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->FieldByName("桌号")->AsString=="" ) zt=3; } } /* if (zt==0) { ss1="select * from menubase,menutype where 条码='"+ss.SubString(9,5).Trim()+"' and menubase.分类=menutype.编号 "; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->FieldByName("服务类打印")->AsInteger==1) { ss1="select * from servename where 编号='"+ss.SubString(41,4).Trim()+"'"; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->IsEmpty() ) zt=1; } } */ if (zt==0) { sf=ss.SubString(46,8).Trim(); sdate=sdate1+" "+sf; str="select * from menu where dcj='"+sdcj+"' and dctime='"+sdate+"'"; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(str); Query3->Open(); if (Query3->IsEmpty() ) { String ss1,zh; do { ss=ch; ss1="select * from menubase,menutype where 条码='"+ss.SubString(9,5).Trim()+"' and menubase.分类=menutype.编号 "; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->FieldByName("服务类打印")->AsInteger==1) { ss1="select * from servename where 编号='"+ss.SubString(41,4).Trim()+"'"; Query3->Close(); Query3->SQL->Clear(); Query3->SQL->Add(ss1); Query3->Open(); if (Query3->IsEmpty() ) { zt=1; break; } } j=20,v=""; v=ss.SubString(j,12).Trim(); //********获得桌号******************************************** ss1="select 桌号 as zh from deskinf where 名称='"+ss.SubString(1,7).Trim() +"' "; Query1->Close() ; Query1->SQL->Clear() ; Query1->SQL->Add(ss1); Query1->Open() ; zh=Query1->FieldByName("zh")->AsString; //******获得桌号结束**************************************** Query1->Close() ; Query1->SQL->Clear() ; if(ss.SubString(36,1).Trim()=="0") s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,0 "; else if(ss.SubString(36,1).Trim()=="1") s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,3 "; else s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,4"; if(v.IsEmpty() ) s+=",null"; else s+=",'"+v+"'"; if(t) s+=",'"+ss.SubString(1,7).Trim()+"'+条码,'"+FormatFloat("00000",th.ToInt())+"' ,'"+sdcj+"','"+sdate+"','"+ss.SubString(38,2).Trim()+"','"+zh+"' from menubase where 条码='"+ss.SubString(9,5).Trim()+"'" ; else s+=",'"+ss.SubString(1,7).Trim()+ss.SubString(9,5).Trim()+"',null ,'"+sdcj+"','"+sdate+"','"+ss.SubString(38,2).Trim()+"','"+zh+"' from menubase where 条码='"+ss.SubString(9,5).Trim()+"'",i++; // ; Query1->SQL->Add(s); Query1->ExecSQL() ; String strss,dc,bh,mc,sl; bh=ss.SubString(9,5); strss="select * from menubase where 条码 ='"+bh+"'"; Query2->Close() ; Query2->SQL->Clear() ; Query2->SQL->Add(strss); Query2->Open() ; mc=Query2->FieldByName("菜名")->AsString; fgets(ch,55,fp); } while(!feof(fp)) ; if(zt==0) { fclose(fp); Query2->Close() ; Query2->SQL->Clear() ; Query2->SQL->Add("select (select sum(je) from menu,zd,deskinf where zd.zkh=menu.zkh and zh+1=deskinf.编号 and zd.zt=0 and tc is null and 名称='"+AnsiString(ch).SubString(1,7).Trim()+"') as aa,((select sum(单价*tt) from (SELECT DISTINCT xdh, 单价, sl/ 数量 as tt FROM menu, zd, deskinf, menubase, taocai WHERE zd.zkh = menu.zkh AND zh + 1 = deskinf.编号 AND tc = 条码 AND 套菜号 = menubase.编号 AND 菜品号 = bh AND zt = 0 AND tc IS NOT NULL AND 名称='"+AnsiString(ch).SubString(1,7).Trim()+"') DERIVEDTBL)) as bb"); Query2->Open() ; Query1->Close() ; 最后的这个查询.
int zt;
zt=0;
ss1="select * from 消费地点信息表 where 编号='"+ss.SubString(38,2).Trim()+"'";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->IsEmpty() ) zt=2;
if (zt==0)
{
if(Query3->FieldByName("地点")->AsString=="餐厅")
{
ss1="select * from deskinf where 编号='"+ss.SubString(1,7).Trim()+"'";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->FieldByName("桌号")->AsString=="" ) zt=3;
}
}
/* if (zt==0)
{
ss1="select * from menubase,menutype where 条码='"+ss.SubString(9,5).Trim()+"' and menubase.分类=menutype.编号 ";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->FieldByName("服务类打印")->AsInteger==1)
{
ss1="select * from servename where 编号='"+ss.SubString(41,4).Trim()+"'";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->IsEmpty() ) zt=1;
}
}
*/
if (zt==0)
{
sf=ss.SubString(46,8).Trim();
sdate=sdate1+" "+sf;
str="select * from menu where dcj='"+sdcj+"' and dctime='"+sdate+"'";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(str);
Query3->Open();
if (Query3->IsEmpty() )
{
String ss1,zh; do {
ss=ch;
ss1="select * from menubase,menutype where 条码='"+ss.SubString(9,5).Trim()+"' and menubase.分类=menutype.编号 "; Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->FieldByName("服务类打印")->AsInteger==1)
{
ss1="select * from servename where 编号='"+ss.SubString(41,4).Trim()+"'";
Query3->Close();
Query3->SQL->Clear();
Query3->SQL->Add(ss1);
Query3->Open();
if (Query3->IsEmpty() )
{
zt=1;
break;
}
} j=20,v="";
v=ss.SubString(j,12).Trim();
//********获得桌号********************************************
ss1="select 桌号 as zh from deskinf where 名称='"+ss.SubString(1,7).Trim() +"' ";
Query1->Close() ;
Query1->SQL->Clear() ;
Query1->SQL->Add(ss1);
Query1->Open() ;
zh=Query1->FieldByName("zh")->AsString;
//******获得桌号结束****************************************
Query1->Close() ;
Query1->SQL->Clear() ;
if(ss.SubString(36,1).Trim()=="0")
s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,0 ";
else
if(ss.SubString(36,1).Trim()=="1")
s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,3 ";
else
s="insert into menu select (select zkh from zd,deskinf where zh+1=编号 and zt=0 and 名称='"+ss.SubString(1,7).Trim()+"'),"+IntToStr(i)+", 编号,单价,"+ss.SubString(15,4).Trim()+",单价*"+ss.SubString(15,4).Trim()+",'"+ss.SubString(41,4).Trim()+"','"+user+"',getdate(),0,null,0,0,0,4";
if(v.IsEmpty() )
s+=",null";
else
s+=",'"+v+"'";
if(t)
s+=",'"+ss.SubString(1,7).Trim()+"'+条码,'"+FormatFloat("00000",th.ToInt())+"' ,'"+sdcj+"','"+sdate+"','"+ss.SubString(38,2).Trim()+"','"+zh+"' from menubase where 条码='"+ss.SubString(9,5).Trim()+"'" ;
else
s+=",'"+ss.SubString(1,7).Trim()+ss.SubString(9,5).Trim()+"',null ,'"+sdcj+"','"+sdate+"','"+ss.SubString(38,2).Trim()+"','"+zh+"' from menubase where 条码='"+ss.SubString(9,5).Trim()+"'",i++; // ;
Query1->SQL->Add(s);
Query1->ExecSQL() ;
String strss,dc,bh,mc,sl;
bh=ss.SubString(9,5);
strss="select * from menubase where 条码 ='"+bh+"'";
Query2->Close() ;
Query2->SQL->Clear() ;
Query2->SQL->Add(strss);
Query2->Open() ;
mc=Query2->FieldByName("菜名")->AsString; fgets(ch,55,fp);
} while(!feof(fp)) ;
if(zt==0)
{
fclose(fp);
Query2->Close() ;
Query2->SQL->Clear() ;
Query2->SQL->Add("select (select sum(je) from menu,zd,deskinf where zd.zkh=menu.zkh and zh+1=deskinf.编号 and zd.zt=0 and tc is null and 名称='"+AnsiString(ch).SubString(1,7).Trim()+"') as aa,((select sum(单价*tt) from (SELECT DISTINCT xdh, 单价, sl/ 数量 as tt FROM menu, zd, deskinf, menubase, taocai WHERE zd.zkh = menu.zkh AND zh + 1 = deskinf.编号 AND tc = 条码 AND 套菜号 = menubase.编号 AND 菜品号 = bh AND zt = 0 AND tc IS NOT NULL AND 名称='"+AnsiString(ch).SubString(1,7).Trim()+"') DERIVEDTBL)) as bb");
Query2->Open() ;
Query1->Close() ;
最后的这个查询.