起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 新来小职员

【搞定】如何添加DataNavigator控件[问题]**

[复制链接]
 楼主| 发表于 2007-6-18 15:47:20 | 显示全部楼层
我新建个空白窗体,放了个datagrid ,datagrid的数据源为datasource1,而datasource1的数据集为query1,query1的查询语句是在代码里写的,查询的结果是复杂多变的,我想对查询出的结果进行打印,同时还想用DataNavigator的望远镜对查询到的结果再进行过滤

望.jpg

4.73 KB, 下载次数: 147

回复 支持 反对

使用道具 举报

发表于 2007-6-18 17:14:40 | 显示全部楼层
我想对查询出的结果进行打印?
你拖一个BizToolBar,然后设置工具栏 到“业务模型\系统空间\简洁风格\界面库\工具栏\打印”这样就可以打印了

至于你说的望远镜,应该是SQL平台解析不了,如果要做查找,只能自己做查找界面了。
能把Query的SQL语句全部贴出来看看吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-19 10:14:34 | 显示全部楼层
var sel,sign,sign1,strq,strcd,XSD,XSD1,THD,THD1,HUDC,HUDC1,HUDR,HUDR1,WTJS,WTJS1:string;
begin
     sel:='';
     sign:='';
     sign1:='';
     strq:='';
     strcd:='';
     XSD:='';
     XSD1:='';
     THD:='';
     THD1:='';
     HUDC:='';
     HUDC1:='';
     HUDR:='';
     HUDR1:='';
     WTJS:='';
     WTJS1:='';
     //查询语句初始化
     //查询列
     sel:='SELECT Distinct SPXX_SPBH as 商品编号,SPXX_SPQM as 商品全名,SPXX_XH as 型号,SPXX_GG as 规格'+
       ',SPXX_CD as 产地,SPXX_DW as 单位,SPXX_FZDW as 辅助单位,SPXX_DWGX as 单位关系,';

    //对销售定单的查询组合
    XSD:=XSD+'LEFT JOIN (SELECT XSDDMXSPBH,SUM(XSDDMXSL) 商品数量,SUM(XSDDMXJE) 总金额 FROM XSDDMXB';
    XSD1:=XSD1+' GROUP BY XSDDMXSPBH) a ON(a.XSDDMXSPBH=SPXX_SPBH)';
    //对销售退货的查询组合
    THD:=THD+'LEFT JOIN (SELECT XSTHMXSPBH,SUM(XSTHMXSL) 商品数量,SUM(XSTHMXJE) 总金额 FROM XSTHDMXB';
    THD1:=THD1+' GROUP BY XSTHMXSPBH) b ON(SPXX_SPBH = b.XSTHMXSPBH)';
    //对销售换货换出的组合
    HUDC:=HUDC+'LEFT JOIN (SELECT SPBH,SUM(SL) 商品数量,SUM(JE) 总金额 FROM XSHHHCB';
    HUDC1:=HUDC1+' GROUP BY SPBH) c ON(SPXX_SPBH = c.SPBH)';
    //对销售换货换出的组合
    HUDR:=HUDR+'LEFT JOIN (SELECT SPBH,SUM(SL) 商品数量,SUM(JE) 总金额 FROM XSHHHRB';
    HUDR1:=HUDR1+' GROUP BY SPBH) d ON(SPXX_SPBH = d.SPBH)';
    //对委托结算的组合
    WTJS:=WTJS+'LEFT JOIN (SELECT WTJSMXSPBH,SUM(WTJSMXSL) 商品数量,SUM(WTJSMXJE) 总金额 FROM WTJSDMXB';
    WTJS1:=WTJS1+' GROUP BY WTJSMXSPBH) e ON(e.WTJSMXSPBH = SPXX_SPBH)';

    //销售单查询
    if CheckBox1.Checked = true then
    begin
       strq:=strq + XSD;
       strq:=strq + ',XSDDB where XSDDDJBH=XSDDMXDJBH';
       if Edit1.Text<>'' then
       begin
            strq:=strq + ' and XSDDGMDW='''+Edit1.Text+'''';
       end;
       if Edit2.Text<>'' then
       begin
            strq:=strq + ' and XSDDJSR='''+Edit2.Text+'''';
       end;
       if Edit3.Text<>'' then
       begin
            strq:=strq + ' and XSDDFHCK='''+Edit3.Text+'''';
       end;
       strq:=strq+' and XSDDLDRQ>='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker1.DateTime)+''''+' and XSDDLDRQ<='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker2.DateTime+1)+''''+XSD1;
    end;
    //销售退货单
    if CheckBox2.Checked = true then
    begin
       strq:=strq + THD;
       strq:=strq + ',XSTHD where XSTHDJBH=XSTHMXDJBH';
       if Edit1.Text<>'' then
       begin
            strq:=strq+' and XSTHTHDW='''+Edit1.Text+'''';
       end;
       if Edit2.Text<>'' then
       begin
            strq:=strq+' and XSTHJSR='''+Edit2.Text+'''';
       end;
       if Edit3.Text<>'' then
       begin
            strq:=strq+' and XSTHSHCK='''+Edit3.Text+'''';
       end;
       strq:=strq + ' and XSTHLDSJ>='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker1.DateTime)+''''+' and XSTHLDSJ<='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker2.DateTime+1)+''''+THD1;
    end;
    //销售换货单
    if CheckBox3.Checked = true then
    begin
       //换货单出条件组合
       strq:=strq + HUDC;
       strq:=strq + ',XSHHDB where XSHHDB.DJBH=XSHHHCB.DJBH';
       if Edit1.Text<>'' then
       begin
            strq:=strq+' and WLDW='''+Edit1.Text+'''';
       end;
       if Edit2.Text<>'' then
       begin
            strq:=strq+' and JSR='''+Edit2.Text+'''';
       end;
       if Edit3.Text<>'' then
       begin
            strq:=strq+' and HCCK='''+Edit3.Text+'''';
       end;
       strq:=strq + ' and LDRQ>='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker1.DateTime)+''''+' and LDRQ<='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker2.DateTime+1)+''''+HUDC1;
       //换货单入条件组合
       strq:=strq + HUDR;
       strq:=strq + ',XSHHDB where XSHHDB.DJBH=XSHHHRB.DJBH';
       if Edit1.Text<>'' then
       begin
            strq:=strq+' and WLDW='''+Edit1.Text+'''';
       end;
       if Edit2.Text<>'' then
       begin
            strq:=strq+' and JSR='''+Edit2.Text+'''';
       end;
       if Edit3.Text<>'' then
       begin
            strq:=strq+' and HRCK='''+Edit3.Text+'''';
       end;
       strq:=strq + ' and LDRQ>='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker1.DateTime)+''''+' and LDRQ<='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker2.DateTime+1)+''''+HUDR1;
    end;
    //委托结算查询
    if CheckBox5.Checked = true then
    begin
       strq:=strq + WTJS;
       strq:=strq + ',WTJSDB where WTJSDB.WTJSDJBH=WTJSDMXB.WTJSMXDJBH';
       if Edit1.Text<>'' then
       begin
            strq:=strq+' and WTJSJSDW='''+Edit1.Text+'''';
       end;
       if Edit2.Text<>'' then
       begin
            strq:=strq+' and WTJSJSR='''+Edit2.Text+'''';
       end;
       strq:=strq + ' and WTJSLDRQ>='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker1.DateTime)+''''+' and WTJSLDRQ<='''+SysUtils.formatdatetime('yyyy-mm-dd',DateTimePicker2.DateTime+1)+''''+WTJS1;
    end;
    //计算公式组合
    if CheckBox1.Checked = true then
    begin
       sign:=sign + 'isnull(a.商品数量,0)';
       sign1:=sign1 + 'isnull(a.总金额,0)';
    end;
    if CheckBox2.Checked = true then
    begin
       sign:=sign + '-isnull(b.商品数量,0)';
       sign1:=sign1 + '-isnull(b.总金额,0)';
    end;
    if CheckBox3.Checked = true then
    begin
       sign:=sign + '+isnull(c.商品数量,0)-isnull(d.商品数量,0)';
       sign1:=sign1 + '+isnull(c.总金额,0)-isnull(d.总金额,0)';
    end;
    if CheckBox5.Checked = true then
    begin
        sign:=sign + '+isnull(e.商品数量,0)';
       sign1:=sign1 + '+isnull(e.总金额,0)';
    end;
    strcd:=strcd + '('+sign+') as 销售数量,case when ('+sign+')<>0 then ('+sign1+')/isnull('+sign+',0) else 0 end 销售均价 '+
                  'FROM SPXX ';
    Query1.ConnectionString := 'DATABASEURL=Biz:\JXC_GJP_\SJK.Database';
    if (CheckBox1.Checked = false) and (CheckBox2.Checked = false) and (CheckBox3.Checked = false) and (CheckBox5.Checked = false) then
    begin
            //在全不选的情况下进行的计算
            strcd:= '0 as 销售数量,0 as 销售均价 FROM SPXX';
            Query1.CommandText := sel + strcd + strq;
    end
       else
           begin
                Query1.CommandText := sel + strcd + strq;
           end;
           Query1.Active:=true;
           Button1.Enabled := false;
这是我写的SQL及代码
回复 支持 反对

使用道具 举报

发表于 2007-6-19 11:08:36 | 显示全部楼层
哦,知道了,因为你的SQL语句中,有 LEFT JOIN   这个,平台就解析不了,那么直接传给数据库解释了,此时望远镜就不能用了,看来只能自己写过滤了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-20 16:16:16 | 显示全部楼层
你还没有回答我打印的问题,如果打印用不了就得大返功能了,别告诉我这样真的用不了 :2guns:
回复 支持 反对

使用道具 举报

发表于 2007-6-20 16:30:26 | 显示全部楼层
最初由 atiger 发布
[B]我想对查询出的结果进行打印?
你拖一个BizToolBar,然后设置工具栏 到“业务模型\系统空间\简洁风格\界面库\工具栏\打印”这样就可以打印了

至于你说的望远镜,应该是S..

以下省略...... [/B]


你把你界面贴出来看看,现在,运行后,选中DataGrid,打印工具栏都是灰色的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-20 17:14:39 | 显示全部楼层
拖出来后怎么用?l用连接我想打印的功能吗?
我点了还是出九楼的错
回复 支持 反对

使用道具 举报

发表于 2007-6-20 17:59:48 | 显示全部楼层
把你的资源上传上来,我看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-21 08:43:34 | 显示全部楼层
资源
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-21 08:48:22 | 显示全部楼层
奇怪为何传不上,不是名字为小写且为rar格式也可以吗?
是不是上传大小有限制,我的压缩包有2.15m
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 01:06 , Processed in 0.036655 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表