q. 不能同时使用group by 和order by
当使用group by时,会自动生成order by字句,其中的排序按group by中的字段顺序排列,只需调整group by 中的字段顺序即可, 另外group by 也支持asc/desc
q. 如何获取活动控件,获取活动的datasource

element.selectedControl (formrun.selectedControl) 显然可以做这事情,但如果你在一个按钮的clicked事件中使用这个的话,它返回的是这个按钮。这通常不是我们想要的。比方说,我窗体上有三个tabPage,每个tabpage上有一个grid,在button的clicked事件中,我想知道当前操作的是那个grid

临时解决方法:设置一个实例变量,如selectedGrid来保存当前的选择的控件,在某一特定的场景下


如上,一个窗体三个tabpage,每个tabpage上有一个grid,分别绑订到一个FormDataSource,如果在这些grid内的控件中,访问element.datasource,则会返回正确的结果,而在buttonGroup 的一个按钮中访问element.datasource,则返回的不是当前选择控件的datasource. (好像始终是第一个)
解决方法参见这里 http://www.qiuhao.com/dispbbs.asp?boardID=2&ID=8998&page=1


q. 选择多条记录时 按钮的enabled变为false

设置按钮的multiSelect为yes

q. 如何创建全局方法
将一个静态方法增加到Global类,该方法即可无需引用调用

q. formdatasource
当在form中添加一个formdatasource 时,系统会自动创建一个同名的table 变量,而要访问formdatasource,则需要添加_ds后缀,这些变量都是系统自动创建的
如果对这些变量进行一些查询操作时会导致界面的变化
比方说有个currency datasource(table 选择 currency),然后在代码中
select currency where currency.currencycode=='RMB';
这可能会使网格中的货币记录只显示剩下rmb的行

q. formstringedit 调用systablelookup时的限制输入方式

q. 控件在窗体上排列方法
遵循从上到下,从左到右的模式 arrangemethod 方法是垂直时,在这种情况下,如果要一排放多个控件,就设置columns参数,如果arrangmethod 是Horizontal, flush right,则控件从左向右排列
width 和height只有自动,列宽,具体像素值三种方式,缺少一种百分比方式,比方说一行4个控件,想均匀的分隔

q. display/edit 方法
主要用于计算字段用途,如果用户不需要输入值,则使用dipslay否则使用edit
edit 方法一般无参数,如果用于form datasource ,则有一个table buffer 参数
如果一个form datasource方法返回值并需要显示在grid 中,必须加上display 前缀?
edit 方法有两个参数,第一个为boolean set,表示是否是输入值,第二个为输入的值
如果是form datasource的方法,则有三个,第二个是table buffer 参数
edit/display 都必须返回值

我碰到一个计算字段联动的问题,就是当一计算字段值变化时,另一计算字段的值也相应的更改,如用户输入还盘价格时,显示该价格的折扣率,看起来是很简单的问题

这个问题的解决方法在这里

http://www.qiuhao.com/dispbbs.asp?boardid=2&id=9047&star=1#38174


q. 主从表当主表没有输入值时,不允许增加从表记录(通常在刚开始空白数据库时)

q. 长操作鼠标指针
 infoLog.startLengthyOperation();
infoLog.endLengthyOperation();
q. real显示0值
是存储的,不过需要将showZero 设为yes


q. 计算列怎么表达?
目前想到的是display方法,如为quoteLine增加一个spec的dipplay方法
display str spec()
{
    return this.wireDiameter+'X'+this.length;

}

在ui上添加一个StringEdit,指定datasource(该datasource所对应的table是增加display方法的table),然后指定dataMethod为spec
不过显示的高度不正常,手动将stringedit的display height设置为1


q. x++ 多行文本怎么表达?
用@ ,类似c#
数据类型要使用备注,将Extended datatype 设置为freeText



q. 导入日期类型数据时错误
x++的日期类型使用 日\月\年的顺序,sql server中的日期是 yyyy-mm-dd 00:00:00的格式,在这种情况下,最好先用convert(varchar,dd,103)转换为dd/mm/yyyy的格式,然后在使用str2date(rs.getDate(2),123)的函数转换,1表示日2表示月,3表示日,这里直接使用str2date(rs.getdate(2),321)的方式也得不到正确的结果
另外x++中的日期的最小值 文档中是1901-1-1,而sql server的最小值是1900-1-1 ,这是否有问题?

q.视图分组
将要分组的字段Aggregate设置为某一特定值如sum即可,感谢Farseer

q. form打开时不自动执行查询
将datasource的AuthSearch设置为no

q . 临时列
设置saveContents为no
q.edit/display 不能拖放到ui
创建一个字段组,将其加入到字段组中

 

q. 内连接时需要更新其中一个表

覆盖不需要更新的datasource 的write方法,注释掉super

q. 通过代码对字段赋值,table的modifiedField没有被触发

得确,目前观察,modifiedField是ui所触发的,在某种特定的情况下,你可能要将代码分别写到modifiedField或是write/insert/update之类的过程中

q. 在更新窗体时禁止重画

在更新前后调用lock/unlock

q. counterField 不起作用

确保 1. 该字段必须是real,2 该字段必须是索引的一部分

 

q.  打开网页

infolog.urllookup('http://jjx.cnblogs.com');

 

posted on 2008-07-05 14:37  jjxstudio  阅读(423)  评论(0编辑  收藏  举报