【delphi开源代码栏目提醒】:以下是网学会员为您推荐的delphi开源代码-BillList.pas,希望本篇文章对您学习有所帮助。
unit BillList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, Grids, ComCtrls, XPMan, ImgList, StrUtils, Math,
RzGrids, RzPanel;
type
TBillListForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Panel3: TPanel;
Panel2: TPanel;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
ImageList1: TImageList;
Splitter1: TSplitter;
RzStringGrid1: TRzStringGrid;
RzStringGrid2: TRzStringGrid;
RzGroupBox1: TRzGroupBox;
Label7: TLabel;
ComboBoxEx1: TComboBoxEx;
Label8: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label9: TLabel;
Label10: TLabel;
Edit3: TEdit;
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure RzStringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure RzStringGrid1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton3Click(Sender: TObject);
procedure RzStringGrid2Click(Sender: TObject);
procedure RzStringGrid2SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit3KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure FlashProductList;
procedure strList;
procedure strList2;
public
{ Public declarations }
end;
var
BillListForm: TBillListForm;
implementation
uses inc,POSIIDM;
{$R *.dfm}
var
PSCID,MIDList:TStringList;
isActived:word;
procedure TBillListForm.FormShow(Sender: TObject);
begin
BillListForm.Caption :=BillListTitle;
Label2.Caption :=MyOrder.SeriesNO;
Label4.Caption :=MyOrder.EmpName;
Label6.Caption :=DatetoStr(MyOrder.OrderDate);
FlashProductList;
strList;
if (AccountType=InHandBack) or (AccountType=OutHandBack) then begin
RzStringGrid2.Visible :=true;
Splitter1.Visible :=true;
strList2;
end else begin
RzStringGrid2.Visible :=false;
Splitter1.Visible :=false;
end;
end;
procedure TBillListForm.FlashProductList;
var
ProList:TProduct;
sqlStr:string;
begin
PSCID:=TStringList.Create;
ComboBoxEx1.Items.Clear;
with DM.HumanResQuery do begin
Close;
SQL.Clear;
sqlStr:='select PST.PST_ID,PST.PST_NAME,ISNULL(PSE.PSE_ID,0) as PSE_ID,'+
'ISNULL(PSE.PSE_NAME,'''') as PSE_NAME,ISNULL(P.P_ID,0) AS P_ID,'+
'ISNULL(P.P_NAME,'''') AS P_NAME,ISNULL(PSC.PSC_SPEC,'''') AS PSC_SPEC,'+
'ISNULL(PSC_ID,0) AS PSC_ID from ProductSort PST Left Outer '+
'Join ProductSeries PSE ON PST.PST_ID=PSE.PST_ID Left Outer Join '+
'Products P ON PSE.PSE_ID=P.PSE_ID Left Outer Join ProductSpec PSC '+
'ON P.P_ID=PSC.P_ID';
SQL.Add(sqlStr);
Open;
while not Eof do begin
with ProList do begin
PSort :=FieldValues['PST_NAME'];
PSeries :=FieldValues['PSE_NAME'];
PProduct :=FieldValues['P_NAME'];
PSpec :=FieldValues['PSC_SPEC'];
if PSpec<>'' then begin
PSCID.Add(FieldValues['PSC_ID']);
ComboBoxEx1.ItemsEx.AddItem(PSort+'\'+PSeries+'\'+PProduct+'\'+PSpec,1,0,1,0,nil);
end;
Next;
end;
end;
end;
end;
procedure TBillListForm.SpeedButton1Click(Sender: TObject);
begin
if ComboBoxEx1.ItemIndex =-1 then begin//判断是否指定产品名称
MessageDlg('请选择对应的产品名称', mtInformation,[mbOk], 0);
Exit;
end;
if (Edit1.Text='') then begin
MessageDlg('请输入具体价格', mtInformation,[mbOk], 0);
Exit;
end;
if (Edit2.Text='') then begin
MessageDlg('请输入具体数量', mtInformation,[mbOk], 0);
Exit;
end;
if (Edit3.Text='') then begin
MessageDlg('请输入具体折扣,(1-10)', mtInformation,[mbOk], 0);
Exit;
end;
if MyOrder.OID='' then Exit;
with DM.HumanResQuery do begin
Close;
SQL.Clear;
if (AccountType=InHandBack) or (AccountType=OutHandBack) then begin
if isActived=2 then//判断当前的激活对象
SQL.Add('select * from AccoutList where AL_EXIST=0 AND AL_ID='+AccountPro.PID)
else
SQL.Add('select * from AccoutList WHERE AL_EXIST=0');
end else begin
if isActived=1 then
SQL.Add('select * from AccoutList where AL_EXIST=0 AND AL_ID='+AccountPro.PID)
else
SQL.Add('select * from AccoutList WHERE AL_EXIST=0');
end;
Open;
Edit;
if (AccountType=InHandBack) or (AccountType=OutHandBack) then begin//判断帐簿类型
if isActived<>2 then
Append;
end else begin
if isActived<>1 then
Append;
end;
FieldValues['AL_O_ID'] :=MyOrder.OID;
FieldValues['PSC_ID'] :=PSCID.Strings[ComboBoxEx1.ItemIndex];
FieldValues['AL_PRICE'] :=Edit1.Text;
FieldValues['AL_NUMBER'] :=Edit2.Text;
FieldValues['AL_AGIO'] :=Edit3.Text;
Post;
end;
SetLogs('更新帐单明细信息');
Edit1.Text :='';
Edit2.Text :='';
Edit3.Text :='';
strList;//调用显示过程-进货/销售
strList2;//销售退货/进货退货
isActived:=0;//变量赋值
end;
procedure TBillListForm.SpeedButton2Click(Sender: TObject);
begin
Close;
end;
procedure TBillListForm.strList;
var
i:integer;
sqlStr,vStr:string;
vTotal:Extended;
begin
StringGridClear(RzStringGrid1);
i:=1;
vTotal:=0;
with RzStringGrid1 do begin
ColCount :=8;
ColWidths[0]:=15;
ColWidths[1]:=30;
ColWidths[2]:=200;
ColWidths[3]:=100;
ColWidths[4]:=30;
ColWidths[5]:=30;
ColWidths[6]:=100;
ColWidths[7]:=150;
Cells[1,0]:='编号';
Cells[2,0]:='产品名称';
Cells[3,0]:='价格';
Cells[4,0]:='数量';
Cells[5,0]:='折扣';
Cells[6,0]:='金额';
if (AccountType=BuyIn) or (AccountType=InHandBack) then begin
vStr:=' and O.S_O_TYPE=1';
sqlStr:='select * from (select AL_ID,PSC_ID,AL_PRICE,AL_NUMBER,AL_AGIO,M_NAME '
+'from AccoutList A,Manufactory M,Orders O where A.AL_EXIST=0 AND O.S_O_EXIST=0 AND A.AL_O_ID=O.S_O_ID and O.S_O_C_ID=M.M_ID AND'
+' S_O_SERIAL='''+MyOrder.SeriesNO+''''+vStr+') K LEFT OUTER JOIN (select PSC.PSC_ID,'
+'PSC.PSC_SPEC,P.P_NAME,PSE.PSE_NAME,PST.PST_NAME from ProductSpec '
+'PSC,Products P,ProductSeries PSE,ProductSort PST where '
+'PSC.P_ID=P.P_ID AND P.PSE_ID=PSE.PSE_ID AND PSE.PST_ID=PST.PST_ID)'
+' P ON K.PSC_ID=P.PSC_ID ';
Cells[7,0]:='供货商';
end else begin
vStr:=' and O.S_O_TYPE=3';
sqlStr:='select * from (select AL_ID,PSC_ID,AL_PRICE,AL_NUMBER,AL_AGIO,C_NAME '
+'from AccoutList A,Customers C,Orders O where A.AL_EXIST=0 AND O.S_O_EXIST=0 AND A.AL_O_ID=O.S_O_ID and O.S_O_C_ID=C.C_ID AND '
+'S_O_SERIAL='''+MyOrder.SeriesNO+''''+vStr+') K LEFT OUTER JOIN (select PSC.PSC_ID,'
+'PSC.PSC_SPEC,P.P_NAME,PSE.PSE_NAME,PST.PST_NAME from P
上一篇:
frmAsm.frm
下一篇:
系统中主要发电机的电力系统稳定器