1、销售单及销售退货单是放一起还是分开?
答:两者放在一起,在数据库设计时加一标识字段(THBS,0代正常销售,1表示退回),在显示时,正常销售用蓝色显示,退回用红色显示,相关代码如下:
用于DBGRID:
procedure Tfrmjsdml.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if datamodule3.jsdmldt.FieldValues['thbs']='0' then
dbgrid1.Canvas.Font.Color:=clred
else
begin
if dbgrid1.SelectedRows.CurrentRowSelected=true then
begin
dbgrid1.Canvas.font.color:=clwhite ;
end
else
dbgrid1.Canvas.font.color:=dbgrid1.Canvas.font.color;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
用于STRINGGRID
procedure Tfrmjsdlr.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
stringgrid1.Canvas.Brush.color:=clwindow;
stringgrid1.Canvas.Font.Color:=clWindowText;
if (arow<>0) and (acol<>0) then
begin
if datamodule3.jsdmldt.FieldValues['thbs']='0' then
stringgrid1.Canvas.Font.Color:=clred
else
stringgrid1.Canvas.Font.Color:=clWindowText;
stringgrid1.Canvas.FillRect(rect);
stringgrid1.Canvas.TextOut(Rect.left+1,Rect.top+5,trim(stringgrid1.Cells[acol,arow]));
end;
那么为什么放在一起呢?因销与退其式从数据库的角度看是完全同类数据;同时,销、退数据放在一张表中对于后续编程的方便性大大高于
分别存放,例如脚本编写时、报表计算时、月底结帐时、往来帐处理时,我们只用考虑一 张表与外办的关系......
此类产品好象金蝶的是放在一起处理的。