type SFPRDA=packed record
      czmm:Word;      //操作密码。
      sqcz:array[1..8] of packed record dm:Byte; mm:Word end; 
                 //8个授权操作员代码和密码。dm代码,mm密码。
      sdje:array[0..3] of packed record dz,jz:Word end;
                 //4个时段的默认定值和记帐金额。dz定值,jz记帐。
      open_xffs:Byte;    //开机缺省消费方式。0普通,1定值,2记帐。
      open_menu:Byte;    //开机缺省键盘方式。0金额,1品种。
      open_online:Byte;   //开机缺省运行方式。0脱机,1联机。
      ena_jz:Byte;     //1允许记帐,0不允许。
      ena_mu:Byte;     //1允许品种切换,0不允许。
      ena_zk:Byte;     //1允许外部折扣,0不允许。
      ena_qk:Byte;     //1允许取款,0不允许。
      ena_glf:Byte;     //1允许输入管理费,0不允许。
      ena_cont:Byte;    //1定值记帐连续刷卡方式,0不连续。
      ena_ord:Byte;     //1扣款消费显示序数,0不显示。
      btph,syrq:Word;    //btph补贴批号。syrq同步日期。
      xfjb:Byte;       //允许消费级别。8位从低到高依此表示是否允许级别0到8的卡消费。
                  //1允许,0禁止。
      max_xf:Word;     //每次最大消费金额。0不限制。
      max_cz:Integer;    //每次最大充值金额。0不限制。
      proc_xe1:Byte;     //1执行限额消费⑴,0不执行。
      proc_xe2:Byte;     //1执行限额消费⑵,0不执行。
      proc_dc:Byte;  //执行预订检查。低4位从低到高依此对应早中晚夜,1检查,0不检查。
      xffs_lx:Byte;     //消费方式类型。0按时段,1按每日。
      xffs_alarm:Byte;    //1第二次起报警,0不报警。
      para:array[0..7] of packed record //对应8个消费级别。
       xffs:array[0..3] of packed record //消费方式数据。对应4个时段。
        dzlx_1:Byte; dzje_1:Word;      //第1次扣款。
                           //dzlx_1=0,不填,表示按当时输入金额。
                           //dzlx_1=1,表示按在dzje_1中设置的金额。
                           //dzlx_1=2,填x,表示禁止。
        jzlx_1:Byte; jzje_1:Word;      //第1次记帐。同上。
        dzlx_2:Byte; dzje_2:Word;      //第2次扣款。同上。
        jzlx_2:Byte; jzje_2:Word;      //第2次记帐。同上。
       end;
       zk:array[0..3] of Shortint;    //内部折扣数据。对应4个时段。范围0-100。
      end;
     end;

解决方案 »

  1.   

    由于使用了压缩结构,所以VB基本上无法实现与之对齐的结构.
    Private Type sqcz_
      dm As Byte    '代码
      mm As Integer '密码
    End TypePrivate Type sdje_
        dz As Integer '定值
        jz As Integer '记帐
    End TypePrivate Type xffs_
        dzlx_1 As Byte
        dzje_1 As Integer       '//第1次扣款。
                                '//dzlx_1=0,不填,表示按当时输入金额。
                                '//dzlx_1=1,表示按在dzje_1中设置的金额。
                                '//dzlx_1=2,填x,表示禁止。
        jzlx_1 As Byte
        jzje_1 As Integer       '//第1次记帐。同上。
        dzlx_2 As Byte
        dzje_2 As Integer       '//第2次扣款。同上。
        jzlx_2 As Byte
        jzje_2 As Integer       '//第2次记帐。同上。
    End TypePrivate Type para_
        xffs(0 To 3) As xffs_ '//消费方式数据。对应4个时段。
        zk(0 To 3)  As Integer         '//内部折扣数据。对应4个时段。范围0-100。
    End Type
    Private Type SFPRDA
                czmm As Integer             '//操作密码。
                sqcz(1 To 8) As sqcz_ '8个授权操作员代码和密码。
                sdje(0 To 3) As sdje_ '4个时段的默认定值和记帐金额。dz定值,jz记帐。
                open_xffs As Byte        '//开机缺省消费方式。0普通,1定值,2记帐。
                open_menu As Byte        '//开机缺省键盘方式。0金额,1品种。
                open_online As Byte      '//开机缺省运行方式。0脱机,1联机。
                ena_jz As Byte           '//1允许记帐,0不允许。
                ena_mu As Byte           '//1允许品种切换,0不允许。
                ena_zk As Byte           '//1允许外部折扣,0不允许。
                ena_qk As Byte           '//1允许取款,0不允许。
                ena_glf As Byte          '//1允许输入管理费,0不允许。
                ena_cont As Byte         '//1定值记帐连续刷卡方式,0不连续。
                ena_ord As Byte          '//1扣款消费显示序数,0不显示。
                btph As Integer          '//补贴批号。
                syrq As Integer          '//同步日期。
                xfjb As Byte             '//允许消费级别。8位从低到高依此表示是否允许级别0到8的卡消费。
                                        '//1允许,0禁止。
                max_xf As Integer          '//每次最大消费金额。0不限制。
                max_cz As Long       '//每次最大充值金额。0不限制。
                proc_xe1 As Byte         '//1执行限额消费⑴,0不执行。
                proc_xe2 As Byte         '//1执行限额消费⑵,0不执行。
                proc_dc As Byte     '//执行预订检查。低4位从低到高依此对应早中晚夜,1检查,0不检查。
                xffs_lx As Byte          '//消费方式类型。0按时段,1按每日。
                xffs_alarm As Byte       '//1第二次起报警,0不报警。
                para(0 To 7) As para_   '//对应8个消费级别。End Type
      

  2.   

     zk:array[0..3] of Shortint;    //内部折扣数据。对应4个时段。范围0-100。这个在VB当中的对应关系写错了,应该是单字节的,只能用Byte代替.