Foxtable(狐表)用户栏目专家坐堂 → [求助]DataTable和Table的困惑?


  共有2101人关注过本帖树形打印复制链接

主题:[求助]DataTable和Table的困惑?

帅哥哟,离线,有人找我吗?
飞天狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:628 威望:0 精华:0 注册:2023/1/25 21:23:00
[求助]DataTable和Table的困惑?  发帖心情 Post By:2024/2/21 20:46:00 [只看该作者]

最近在努力学习FoxTable中。。。对于DataTable和Table在相关学习教材中有如下讲法:
1、DataTable,代表的是全部数据,类似仓库,可以称为数据表格。
2、Table,代表的是筛选出来的数据,类似展厅,可以称为数据控件。
但是当我在Foxtable中在同一个表格(内部表格)中定义一个DataTable和一个Table,两者得到的数据记录(筛选条件一样)数量是一样的?因此我非常困惑,这与教材中说的DataTable代表的是全部数据和Table代表的是筛选出来的数据不太一致,因此有以下几个问题想请专家解答下:

1、什么时候定义DataTable和什么时候定义Table有没有什么好的建议或指导?感觉我们对所有表格的操作都是筛选数据,是不是都定义Table合适?而统计时针对的是所有数据,是不是定义DataTable合适?

2、Foxtable加载外部表格时默认只加载10行数据,我想了解下假如编写的程序已经打包好脱离Foxtable运行,还是默认这个加载设置吗?

3、在学习过程中发现对数据的操作(增、删、改)基本上都是通过对表格记录的操作方法来完成,用到SQL语句(后台统计除外)很少,是不是基本使用数据表格的操作方法就可以完成相关的程序要求?SQL语句和数据表的记录操作方法怎样做到相辅相成?

4、最近也有接触了些网络编程的教材,发现他们使用MySQL数据库比较多,想了解下Foxtable是否支持MySQL数据库?驱动怎样安装和连接?

5、昨天学习了查询表的知识,发现建立多表查询时连接方式有:内连接、左连接和右连接三种方式。想问下这三种连接方式的区别与联系?

6、最后想了解下,假如程序已经打包好,怎样布署到云服务器上上面?

以上问题还请蓝版和各位狐狸前辈为小狐狸解惑,不胜感激。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110737 积分:563605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 10:05:00 [只看该作者]

1、首先还得有个数据库的概念

DataTable代表的是从数据库里加载出来的数据,如果DataTable没有设置任何加载条件,那么DataTable的数据和数据库的数据是一致的;

Table代表的是从DataTable里筛选出来的数据。如果Table没有设置任何筛选条件,那么Table和DataTable的数据也是一致的;

也就是,三者是这么一个关系:数据库>=DataTable>=Table

要注意加载和筛选是不同的2个概念,至于要使用DataTable还是table,要看自己基于什么数据进行操作,如果要按加载的数据操作,就使用DataTable,如果要按筛选后的数据做操作就使用Table。

2、一样的,开发的时候是怎么样,发布后也一样的

3、正常大部分的功能都可以不需要sql。基础的功能解决不了。不够用了就可以考虑使用sql

4、不支持mysql


6、把发布的程序上传到服务器,运行即可

 回到顶部
帅哥哟,离线,有人找我吗?
飞天狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:628 威望:0 精华:0 注册:2023/1/25 21:23:00
  发帖心情 Post By:2024/2/22 12:22:00 [只看该作者]

感谢蓝板。听你一说对DataTable和Table的理解有点阔然开朗的感觉,但又有点乱花迷眼的感觉。

首先,加载与筛选的概念加深了我对DataTable和Table理解,但实际情况中又有些困扰:
1.DataTable的数据永远是大于等于Table,我是否可以理解Table能干的Datable也能干,那只要定义DataTable就行,Table存在的意义主要是什么?
2.实际过程中程序启动好后,相关的数据已经按相关设置加载完成,好像又没有DataTable什么事了,只要定义Table来操作数据就行?
3.是否可以理解成DataTable主要用于来和数据表打交道,决定加载的数据和统计全部数据,而Table主要用于来和加载的数据打交道和统计已经加载的数据,默认情况下如果不设置加载条件,数据表加载的是全部数据,只要定义Table来操作数据即可,如果要控制数据的加载数量,这时才定义DataTable?

以一个实例为例,我有一个采购管理系统,我有试剂耗材库表、采购计划表、采购明细表和验收表。我要实现创建一个采购计划,从试剂耗材库表填写到采购明细表中,并与采购计划关联,完成采购后在验收表中完成验收的功能,针对试剂耗材库表(假定有个逻辑列,打勾代表采购,并输入相关的采购数量),我是不是要定义DataTable获得全部数据,针对采购明细表,我是不是定义Table,从试剂耗材库表加载的数据中判定是否打勾并写入采购明细表中。而针对验收表的操作,数据应该来源于采购明细,那这时我是要定义DataTable还是Table呢,因为针对该批次的采购,明细表和验收表是数据是一样的。

谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110737 积分:563605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 13:35:00 [只看该作者]

如果从数据的角度差不多可以这么理解。如果只是处理数据,使用哪个都差不多

但是从编程的类型和功能上,不能这么理解,毕竟DataTable只是一个内存表,而Table是一个界面表,一些需要控制界面的功能只能通过Table处理。


 回到顶部
帅哥哟,离线,有人找我吗?
飞天狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:628 威望:0 精华:0 注册:2023/1/25 21:23:00
  发帖心情 Post By:2024/2/22 14:44:00 [只看该作者]

谢谢,使用界面表的速度要比内存表快吗?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110737 积分:563605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 14:49:00 [只看该作者]

看是做什么的速度,这东西不是绝对的。

 回到顶部
帅哥哟,离线,有人找我吗?
飞天狐
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:628 威望:0 精华:0 注册:2023/1/25 21:23:00
  发帖心情 Post By:2024/2/22 22:40:00 [只看该作者]

感谢蓝版,今天学习EXCEL报表又遇到问题了,假如我要用报表只打印前页50条记录,数据输出条件按以下设置:
 
1.< Top 50>
2.< Index < 50>
3.<(Index<50)>
4.<(<Index> <50)>

均不能生效,但设置其它条件又可以按条件输出,比如<产品=‘PD04'>以可以正常输出,所以要输出前面50条记录正确的表达式设置应该是怎样的呢?

另外,表达式中是要单引号吗,PD04应该是字符串,记得字符串是要用双引号的阿?

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110737 积分:563605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 23:03:00 [只看该作者]

没有你这种用法。

方法1、去掉模板里条件,手动选中前50行数据,然后输出报表

2、模板里使用<ALL>

表格里设置条件只加载前50条记录:http://www.foxtable.com/webhelp/topics/1813.htm,或者使用代码设置只加载前50条:http://www.foxtable.com/webhelp/topics/1928.htm

 回到顶部
帅哥哟,离线,有人找我吗?
飞天狐
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:628 威望:0 精华:0 注册:2023/1/25 21:23:00
  发帖心情 Post By:2024/2/22 23:24:00 [只看该作者]

不能在报表时设定输出记录条数吗?只能筛选?

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110737 积分:563605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/23 8:29:00 [只看该作者]

不能的,只能按8楼用法

 回到顶部