以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]DataTable和Table的困惑? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190550) |
-- 作者:飞天狐 -- 发布时间:2024/2/21 20:46:00 -- [求助]DataTable和Table的困惑? 最近在努力学习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、最后想了解下,假如程序已经打包好,怎样布署到云服务器上上面? 以上问题还请蓝版和各位狐狸前辈为小狐狸解惑,不胜感激。
|
-- 作者:有点蓝 -- 发布时间: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 5、这种百度吧,网上说的更详细:https://www.baidu.com/s?wd=%E5%86%85%E8%BF%9E%E6%8E%A5%E3%80%81%E5%B7%A6%E8%BF%9E%E6%8E%A5%E5%92%8C%E5%8F%B3%E8%BF%9E%E6%8E%A5 6、把发布的程序上传到服务器,运行即可
|
-- 作者:飞天狐 -- 发布时间: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呢,因为针对该批次的采购,明细表和验收表是数据是一样的。 谢谢! |
-- 作者:有点蓝 -- 发布时间:2024/2/22 13:35:00 -- 如果从数据的角度差不多可以这么理解。如果只是处理数据,使用哪个都差不多 但是从编程的类型和功能上,不能这么理解,毕竟DataTable只是一个内存表,而Table是一个界面表,一些需要控制界面的功能只能通过Table处理。
|
-- 作者:飞天狐 -- 发布时间:2024/2/22 14:44:00 -- 谢谢,使用界面表的速度要比内存表快吗? |
-- 作者:有点蓝 -- 发布时间:2024/2/22 14:49:00 -- 看是做什么的速度,这东西不是绝对的。 |
-- 作者:飞天狐 -- 发布时间:2024/2/22 22:40:00 -- 感谢蓝版,今天学习EXCEL报表又遇到问题了,假如我要用报表只打印前页50条记录,数据输出条件按以下设置: 1.< Top 50> 2.< Index < 50> 3.<(Index<50)> 4.<(<Index> <50)> 均不能生效,但设置其它条件又可以按条件输出,比如<产品=‘PD04\'>以可以正常输出,所以要输出前面50条记录正确的表达式设置应该是怎样的呢? 另外,表达式中是要单引号吗,PD04应该是字符串,记得字符串是要用双引号的阿?
|
-- 作者:有点蓝 -- 发布时间: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
|
-- 作者:飞天狐 -- 发布时间:2024/2/22 23:24:00 -- 不能在报表时设定输出记录条数吗?只能筛选? |
-- 作者:有点蓝 -- 发布时间:2024/2/23 8:29:00 -- 不能的,只能按8楼用法 |