在这里重新开贴送100分,
我在做一个收费的东西,比如一合同货款100万,客户已经给我三次,第一次10万、第二次10万、第三次10万,这三次我都有记录(记录了金额、时间、经手人等),等于说我要看明细是可以了,如:
合同编号 应收款 已收款
001 100万 10(万)
001 100万 10(万)
001 100万 10(万)
但我现在还要一张表,就是
合同编号 应收款 已收款
001 100万 30(万)
第二张表我用了ADODataSet1.CommandText := 'select ''合同编号''=s_ht.ht_id, ''收款合计''=sum(s_skdmx.skdmx_skje) from s_ht,s_skdmx where s_ht.ht_id =s_skdmx.ht_id group by s_ht.ht_id';把给统计出来了,
但要命的是,我第二张表还想显示其它的字段信息以方便给人看,如:
合同编号(t1)客户名称(t1) 应收款(t1) 已收款(t2里几个记录相加)
001 上海 100(万) 30(万)
好象这样的表出不来,
问题一:
有没有办法(SQL语句)解决这样的表?
问题二:(用另外一种方法)
我再建一张表,用来累计一个合同收款的总数(skje_lj),我在保存每次收款记录的时候,把收款金额累计到skje_lj表里,再取我要的表就有了,但我不知道这个代码怎么写?就是把:收款的合同金额字段 + (收款累计表)的累计金额,然后改写上次的累计数。我记录收款的代码如下:
procedure Tdengjichengbenfm.BitBtn1Click(Sender: TObject);//"BitBtn1"保存按钮
begin
if ComboBox3.Text = '' then
begin
ShowMessage('你没有选择客户名称!请选择客户名称。')
end
else if ComboBox2.Text = '' then
begin
ShowMessage('你没有选择合同编号!请选择合同编号。')
end
else if ComboBox1.Text = '' then
begin
ShowMessage('你没有选择支付类型!请选择支付类型。')
end
else if Edit1.Text = '' then
begin
ShowMessage('金额不能为空!')
end
else
begin
ADODst.Open;
ADODst.Append;
ADODst.FieldByName('kh_khmc').AsString :=ComboBox3.Text;
ADODst.FieldByName('ht_id').AsString :=ComboBox2.Text;
ADODst.FieldByName('htcbmx_zcrq').AsString :=DateTimeToStr(DateTimePicker1.DateTime);
ADODst.FieldByName('htcbmx_cbmc').AsString :=ComboBox1.Text;
ADODst.FieldByName('htcbmx_je').AsString := Edit1.Text; //记录收费金额
ADODst.FieldByName('htcbmx_jsr').AsString :=Edit3.Text;
ADODst.FieldByName('htcbmx_bz').AsString :=Edit2.Text;
ADODst.Post;
就是要在收费信息登记完成是时把'htcbmx_je'+ 我新建累计表的累计数字段,并且改写该累计数?? <--------------------------代码加这里
ShowMessage('记录添加成功!');
close;
end;
end;
问题三 :
Key := #0和 Key := #7;分别代表什么键啊