重新整理一下,怎样将自动换行的内容做为一条记录来保存?
我最终想要实现的目的:
隐患内容 整改措施
1、风筒有破口 1、粘补风筒
2、隔爆沙袋缺水 2、补充水量
3、迎头20m处水幕有2个 3、更换喷头
喷头堵塞
4、迎头50m处水幕未接入 4、立即接入水源
水源
N、…… N、……
现在有几个问题:
问题1:要实现以上目的,涉及到区分自动换行和按回车键换行,(我想要的是按回车换行后,做为一条记录保存进数据表中;自动换行的,不管有多少行,都做为一条记录保存。如:“目的”中的3、4)。应该怎样编写代码?
问题2:我编写的代码不能区分自动换行和按回车键换行,这一点我知道。但在点击“保存”按钮时,总是出现“DMADOtbHiddenDetails:DataSet not in Edit or Insert mode”的错误信息,即使将DMMain.dsHiddenDetails.DataSet改为DMADOtbHiddenDetails也会出现这个错误。我怀疑是由于For循环造成的,但不知道怎么修改。
问题3:对应“隐患内容”和“整改措施”字段的两个TRichEdit组件在保存数据时,都需要使用For循环语句,这两个语句是什么样的关系?(一个包含另一个,还是谁都不包含谁,以下两种哪一种?)
在“隐患排查”窗体中添加两个TRichEdit组件,名字分别为:fmHRreDetails7(对应表中“隐患内容”字段)、fmHRreMeasure8(对应表中“整改措施”字段)。实际工作中有一条“隐患内容”就必须有一条“整改措施”。
以下代码中:
我将TADOTable、TDataSource统一放在了TDataMoudal中(TDataMoudal的名字是:DMMain。TDataSource的名字是:主表是dsHiddenMaster,从表是:dsHiddenDetails);
将“新建、保存”等按钮放在“隐患排查”窗体中(窗体名字是:fmHiddenRecord)。, “隐患排查”窗体中,“新建”按钮的名字是:fmHRBtnNew26。
数据库表中,主表的“编号”字段与从表的“父编号”字段进行关联。其中,主表“编号”字段的类型是“数值”型,从表“父编号”字段是“数值”型、从表“编号”字段是“文本”型。
代码如下:
procedure TfmHiddenRecord.fmHRBtnNew26Click(Sender: TObject);
begin
DMMain.dsHiddenMaster.DataSet.Append;
fmHRedCode0.Text := '0000'+ IntToStr(DMMain.dsHiddenMaster.DataSet.RecordCount + 1);
end;
procedure TDMMain.DMADOtbHiddenDetailsBeforePost(DataSet: TDataSet);
Var
HiddenLines, MeasureLines: Integer;
IF DMMain.dsHiddenMaster.DataSet.State = dsInsert then
begin
For HiddenLines := 0 To fmHiddenRecord.fmHRreDetails7.Lines.Count - 1 Do
begin
DMMain.dsHiddenDetails.DataSet.Append;
…… //字段赋值代码
DMMain.dsHiddenDetails.DataSet.FieldByName('隐患内容').AsString :=fmHiddenRecord.fmHRreDetails7.Lines.Strings[HiddenLines];
For MeasureLines := 0 To fmHiddenRecord.fmHRreMeasure8.Lines.Count - 1 Do
begin
DMMain.dsHiddenDetails.DataSet.FieldByName('整改措施').AsString :=fmHiddenRecord.fmHRreMeasure8.Lines.Strings[MeasureLines];
end;
end;
end;
[解决办法]
#13#10,处理这个就好