zoukankan      html  css  js  c++  java
  • 文件导出dbf功能实现

    功能要求

    网站后台需增加一个导出功能,导出文件格式及说明见附件。(需要导出的字段在现有数据库中全部包含,不需要新增内容)

    要求:

    1、包含第二天要送货的订单内容,可以选择送货日期再导出
    2、一天可以多次导出,已经导出过的订单,不需要重复导出
    3、导出文件需要上传到指定的FTP目录

     

    附件Need.dbf(导出格式) 

    PROTCODE

    DEPTCODE

    DEPTNAME

    GOODSCODE

    GOODSNAME

    CLASSIFY

    CLANAME

    CLASSI

    CLASSINAME

    RES

    WAREFNO

    MARK

    AAAAAAAAAAAA

    901         

    罗湖中转站A9

    5508001     

    6寸抹茶蜜豆 

    55

    网络蛋糕类  

    5508        

    网络蛋糕类  

    1           

     

    0           

     

    REALFRAME

    BUYQUAN

    BUYDAY

    NEEDQUAN

    NEEDTOTAL

    NEEDBOX

    REALQUAN

    REALTOTAL

    REALBOX

    0.0000

    0.0000

    0.0000

    4.0000

    0.0000

    0.0000

    0.0000

    0.0000

    901         

    TYPE

    DDATE1

    DDATE2

    OPERATE

    BILLNO

    JUDGE

    RELA_SHIP

    WORKDATE

    0.0000

    2011-6-2

    2011-6-3

    就爱族      

    001A01106020

    0

    20110602    

    20110602    

     

     

    导出文件字段及格式.xls(数据字段说明)

     

    AAAAAAAAAAAA

    901         

    罗湖中转站A9

    5508001     

    6寸抹茶蜜豆 

    55

    网络蛋糕类  

    5508        

    网络蛋糕类  

    1           

    字段名

    字段内容示例

    字段格式

    字段说明

    PROTCODE

    AAAAAAAAAAAA

    文本

    固定(12个大写A)

    DEPTCODE

    901

    文本

    中转站编号(901、902、903)

    DEPTNAME

    罗湖中转站A901

    文本

    中转站名称+编号

    GOODSCODE

    5508001

    文本

    产品编号

    GOODSNAME

    6寸抹茶蜜豆蛋糕

    文本

    产品名称

    CLASSIFY

    55

    文本

    大类(产品编号前两位)

    CLANAME

    网络蛋糕类

    文本

    固定

    CLASSI

    5508

    文本

    小类(产品编号前4位)

    CLASSINAME

    网络蛋糕类

    文本

    固定

    RES

    1

    文本

    固定

    WAREFNO

     

    文本

    MARK

    0

    文本

    固定

    REALFRAME

    0.0000

    数字

    固定

    BUYQUAN

    0.0000

    数字

    固定

    BUYDAY

    0.0000

    数字

    固定

    NEEDQUAN

    4.0000

    数字

    产品数量

    NEEDTOTAL

    0.0000

    数字

    固定

    NEEDBOX

    0.0000

    数字

    固定

    REALQUAN

    0.0000

    数字

    固定

    REALTOTAL

    0.0000

    数字

    固定

    REALBOX

    901

    文本

    中转店编号

    TYPE

    0.0000

    数字

    固定

    DDATE1

    2011-6-2

    日期

    订单日期

    DDATE2

    2011-6-3

    日期

    送货日期

    OPERATE

    就爱族

    文本

    固定

    BILLNO

    001A01106020001

    文本

    订单编号

    JUDGE

    0

    数字

    固定

    RELA_SHIP

    20110602

    文本

    订单日期

    WORKDATE

    20110602

    文本

    导出日期

     

     

    实现过程

    后台添加一文件导出菜单

    dbf文件可以使用dbfview软件打开 

    php.ini中需要启用 
    extension=php_dbase.dll 

    注意:dbf文件编码要设置成GB2312 否则乱码

     

     

    程序实现

    后台文件修改:

     

    添加文件\almc\export.php文件   编码需要设置为GB2312

    <?php

    //导出.dbf文件

     

    header("Content-Type: text/html; charset=GB2312");

     

    //   database   "definition "

    $def = array(

        array("PROTCODE", "C", 12), //固定(12个大写A)

        array("DEPTCODE", "C", 3), //中转站编号(901、902、903)

        array("DEPTNAME", "C", 255), //中转站名称+编号

        array("GOODSCODE", "C", 7), //产品编号

        array("GOODSNAME", "C", 255), //产品名称

     

        array("CLASSIFY", "C", 2), //大类(产品编号前两位)

        array("CLANAME", "C", 255), //固定

        array("CLASSI", "C", 4), //小类(产品编号前4位)

        array("CLASSINAME", "C", 255), //固定

        array("RES", "C", 1), //固定

     

        array("WAREFNO", "C", 255), //空

        array("MARK", "C", 255), //固定

        array("REALFRAME", "N", 20, 4), //固定

        array("BUYQUAN", "N", 20, 4), //固定

        array("BUYDAY", "N", 20, 4), //固定

     

        array("NEEDQUAN", "N", 20, 4), //产品数量

        array("NEEDTOTAL", "N", 20, 4), //固定

        array("NEEDBOX", "N", 20, 4), //固定

        array("REALQUAN", "N", 20, 4), //固定

        array("REALTOTAL", "N", 20, 4), //固定

     

        array("REALBOX", "C", 255), //中转店编号

        array("TYPE", "N", 20, 4), //固定

        array("DDATE1", "D"), //订单日期

        array("DDATE2", "D"), //送货日期

        array("OPERATE", "C", 255), //固定

     

        array("BILLNO", "C", 255), //订单编号

        array("JUDGE", "N", 20, 4), //固定

        array("RELA_SHIP", "C", 255), //订单日期

        array("WORKDATE", "C", 255), //导出日期

    );

     

    //   creation

    if (!dbase_create('dbf/test.dbf ', $def)) {

        echo "Error,   can 't   create   the   database\n ";

    }

     

    //   open   in   read-write   mode

    $db = dbase_open('dbf/test.dbf', 2);

     

    if ($db) {

        dbase_add_record($db, array(

            'AAAAAAAAAAAA', '901', '罗湖中转站A9', '5508001', '6寸抹茶蜜豆',

            '55', '网络蛋糕类', '5508', '网络蛋糕类', '1',

            '', '0', '0.0000', '0.0000', '0.0000',

            '4.0000', '0.0000', '0.0000', '0.0000', '0.0000',

            '901', '0.0000', '2011-6-2', '2011-6-3', '就爱族',

            '001A01106020', '0', '20110602', '20110602'

        ));

        dbase_add_record($db, array(

            'AAAAAAAAAAAA', '901', '罗湖中转站A9', '5508001', '6寸抹茶蜜豆',

            '55', '网络蛋糕类', '5508', '网络蛋糕类', '1',

            '', '0', '0.0000', '0.0000', '0.0000',

            '4.0000', '0.0000', '0.0000', '0.0000', '0.0000',

            '901', '0.0000', '2011-6-2', '2011-6-3', '就爱族',

            '001A01106020', '0', '20110602', '20110602'

    ));

        

    }

    //var_dump(dbase_get_record($db, 1));

     

    dbase_close($db);

    ?>

  • 相关阅读:
    SVN导入maven项目
    jQuery (二)DOM 操作
    jQuery (一)选择器
    jQuery 初识
    mysql的OFFSET实现分页
    MongoDB学习之(三)增删查改
    java安全性的一种简单思路
    java Spring 事务的初次使用与验证
    C#语法之匿名函数和Lambda表达式
    C#语法之委托和事件
  • 原文地址:https://www.cnblogs.com/ybbqg/p/2399661.html
Copyright © 2011-2022 走看看