数据库的统计,最好有例程,贡献我全部的家当,呜呜呜(55分)

  • 主题发起人 主题发起人 myxy
  • 开始时间 开始时间
M

myxy

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库的类型是本地Paradbox 7
数据库是一个人员表
字段如下

Acode aname idcard join sex Flg
编号 姓名 身份证号 工作时间 性别 是否为单位(字符串值)

ACODE的编号是这样的322222六级代码
销售部的编号比如是005
销售部一部的编号是00501
销售一部的人员名为0050101(此销售部的第一个人)
销售一部的人员名为0050103(此销售部的第二个人)

销售部二部的编号是00502
销售部三部的编号是00503


俺偷懒,把没有搞个单位表,
在输入人员的时候,如果是单位的话,就在姓名栏中
输入单位名称,在后画的 Flg中打个“是”表示是单位的意思
现在人家让我搞个统计,比如“销售部有多少人”?

该怎么做,才能统计出销售部有多少人?
越简单越好

 
select count(*) as Num from 人员表 where Acode like '005%' and Flg='否';
 
上面只是统计销售部的人,如果要动态统计任何部门的人员数,那么应该将上面的'005%'
动态产生,可以让用户手工选择需要统计的部门,例如 vBMBH:=用户选择的部门编号;
然后动态构造SQL的text属性,
如 Query.Text:='select count(*) as Num from 人员表 where Acode like '''+vBMBH+'%'' and Flg=''否''';
 
用参数吧,看你那字符串乱的。
with Query.sql do
begin
clear;
add('select count(*) as Num from 人员表')
add('where Acode like :sAcode' and flg="否"');
end;
query.params.parambyname('sAcode').AsString:='005%';
query.open;
 
还有点小问题,嘿嘿

例如vBMBH:=用户选择的部门编号
动态生成的话,
如果用户查询的时候只在DBEDIT输入“销售部”,能否自动分析得到销售部的代码是005
假设放几个DBEDIT框,和“确定”按钮,用户输入查询条件,确定后就结果出来?
 
当然可以

加入一个部门参数表
销售部 005
财务部 006
。。。
从表里选出对应编号,再用上面说得方法就可以搞定
 
奇怪呀,你怎么让你的程序知道005是销售部?你连个部门表都没有!
要有个部门表才能实现你说的功能。不用DBEDit,用QUERY+Edit就行了
 
不想再建立部门表了!!!还想搞定,嘻嘻(比较无赖)

如何将一个Treeview当前的节点的文件取下来?,
并将分割前三个英文字符到变量里去?
(因为搞了一个TREE,来体现单位之间的关系,每个节点的前13位数字即是编号!)

再问一个(不要说我赖了,保证最后一个喽,哈)
有两个FORM,一个准备当主FORM ,一个副FORM,在两个窗口切换的时候出了点问题
在FORM1的按钮事件为
Treepage.Visible:=False;
Tform1.Create(Application);
把主窗口隐藏起来了,建立第二窗口的实例

在第二个FORM里面,建立一个按钮,这样写
Treepage.Visible:=true;
Form1.Free;

这样正确吗?
刚才第一次建立正常,第二次就错误?不过这会又好了,奇怪,呵呵
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
674
import
I
I
回复
0
查看
621
import
I
后退
顶部