【delphi开源代码栏目提醒】:以下是网学会员为您推荐的delphi开源代码-FormOutput.pas,希望本篇文章对您学习有所帮助。
unit FormOutput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, DB, StdCtrls, Grids, ExtCtrls;
type
Toutput = class(TForm)
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Edit3: TEdit;
StringGrid1: TStringGrid;
ComboBox3: TComboBox;
Button1: TButton;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button2: TButton;
ADOQuery1: TADOQuery;
ADOCommand1: TADOCommand;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ComboBox3Select(Sender: TObject);
procedure StringGrid1DblClick(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
//-------------设置选取的stringgrid单元成员的行,列值为public,以供其他窗体中调用-----------------
public
currentRow: integer;
currentCol:integer;
{ Public declarations }
end;
var
output: Toutput;
currentRow: integer;
currentCol:integer;
implementation
uses FormInfo, FormManage;
{$R *.dfm}
//-------------------窗体创建时,设置stringgrid的行列属性,宽度等信息--------------
//---------------同时为业务员添加数据词典---------------------------------------
procedure Toutput.FormCreate(Sender: TObject);
var
i,j,num:integer;
begin
//-------------设置stringgrid行,列名称---------------------
stringgrid1.Cols[0].Add('序号');
stringgrid1.ColWidths[0]:=32;
stringgrid1.Cols[1].Add('货号(双击)');
stringgrid1.ColWidths[1]:=80;
stringgrid1.Cols[2].Add('品名');
stringgrid1.ColWidths[2]:=128;
stringgrid1.Cols[3].Add('单位');
stringgrid1.ColWidths[3]:=32;
stringgrid1.Cols[4].Add('数量');
stringgrid1.ColWidths[4]:=64;
stringgrid1.Cols[5].Add('仓库');
stringgrid1.ColWidths[5]:=48;
stringgrid1.Cols[6].Add('单价');
stringgrid1.ColWidths[6]:=64;
stringgrid1.Cols[7].Add('金额');
stringgrid1.ColWidths[7]:=64;
stringgrid1.Cols[8].Add('税率');
stringgrid1.ColWidths[8]:=64;
stringgrid1.Cols[9].Add('税额');
stringgrid1.ColWidths[9]:=64;
stringgrid1.Cols[10].Add('不含税额');
stringgrid1.ColWidths[10]:=64;
for i:=1 to 20 do
begin
stringgrid1.Rows[i].Add(inttostr(i));
stringgrid1.RowHeights[i]:=20;
end;
//-------------------------设置业务员数据词典------------------------
adoquery1.Close;
adoquery1.SQL.Add('select from 用户清单 where !=''sys''');
adoquery1.Open;
combobox1.Clear;
while not adoquery1.Eof do
begin
combobox1.Items.Add(adoquery1.fieldbyname('').AsString);
adoquery1.Next;
end;
end;
//------------------设置选取的单元行,列值--------------------------
//-----------------添加销售价,数量等信息并根据这些信息进行计算---------
//-------------------将统计结果显示在窗体下方的文本框中-----------------
procedure Toutput.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
price,number,tax,sum:double;
j:integer;
begin
//读取选取的当前单元的行,列值
currentCol:=ACol;
currentRow:=ARow;
//只有当选取仓库时,动态下拉列表才显示
if (currentCol<>5) then
combobox3.Visible:=false;
//只有商品信息不为空时才可以输入单位和默认税率
if (currentCol=3)and(stringgrid1.Cells[2,currentRow]<>'') then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select distinct 单位 from 商品清单 where 货号='''+stringgrid1.Cells[1,currentRow]+'''');
adoquery1.Open;
stringgrid1.Cells[3,currentRow]:=adoquery1.FieldByName('单位').AsString;
stringgrid1.Cells[8,currentRow]:='17';
end;
//--------------------当商品信息,数量,单价不为空时,才能进行计算------------------------
if (currentRow<>0)and(stringgrid1.Cells[1,currentRow]<>'')and(stringgrid1.Cells[4,currentRow]<>'')and(stringgrid1.Cells[6,currentRow]<>'')and(string