...
|
...
|
@@ -451,48 +451,49 @@ func (d *DataLayoutDataTable) BlockData(cells *domain.LayoutCell) ([]string, int |
|
|
}
|
|
|
|
|
|
func (d *DataLayoutDataTable) Shrink() error {
|
|
|
x := d.PointEnd.X - d.PointBegin.X
|
|
|
y := d.PointEnd.Y - d.PointBegin.Y
|
|
|
x := d.PointEnd.X - 0 //d.PointBegin.X
|
|
|
y := d.PointEnd.Y - 0 //d.PointBegin.Y
|
|
|
data := make([][]string, x+1)
|
|
|
for i := range data {
|
|
|
data[i] = make([]string, y+1)
|
|
|
}
|
|
|
iData := 0
|
|
|
for i := d.PointBegin.X; i <= d.PointEnd.X; i++ {
|
|
|
for i := 0; i <= d.PointEnd.X; i++ { //d.PointBegin.X
|
|
|
jData := 0
|
|
|
for j := d.PointBegin.Y; j <= d.PointEnd.Y; j++ {
|
|
|
for j := 0; j <= d.PointEnd.Y; j++ { //d.PointBegin.Y
|
|
|
data[iData][jData] = d.DataTable.Data[i][j]
|
|
|
jData++
|
|
|
}
|
|
|
iData++
|
|
|
}
|
|
|
d.DataTable.Data = data
|
|
|
for i := 0; i <= y; i++ {
|
|
|
d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
|
|
|
Name: fmt.Sprintf("列%d", i),
|
|
|
SQLName: fmt.Sprintf("col%d", i),
|
|
|
SQLType: domain.String.ToString(),
|
|
|
})
|
|
|
}
|
|
|
// 默认计算集第一行作为标题
|
|
|
//if len(data) >= 1 {
|
|
|
// d.DataTable.Data = data[1:]
|
|
|
// columnMap := collection.NewSet()
|
|
|
// for i := 0; i < len(data[0]); i++ {
|
|
|
// if len(data[0][i]) == 0 {
|
|
|
// return fmt.Errorf("计算集标题第%d列不能为空", i+1)
|
|
|
// }
|
|
|
// if columnMap.Contains(data[0][i]) {
|
|
|
// return fmt.Errorf("计算集第%d列重复:%v", i+1, data[0][i])
|
|
|
// }
|
|
|
// columnMap.Add(data[0][i])
|
|
|
//d.DataTable.Data = data
|
|
|
//for i := 0; i <= y; i++ {
|
|
|
// d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
|
|
|
// Name: data[0][i],
|
|
|
// Name: fmt.Sprintf("列%d", i),
|
|
|
// SQLName: fmt.Sprintf("col%d", i),
|
|
|
// SQLType: domain.String.ToString(),
|
|
|
// })
|
|
|
// }
|
|
|
//}
|
|
|
// 默认计算集第一行作为标题
|
|
|
if len(data) >= 1 {
|
|
|
d.DataTable.Data = data[1:]
|
|
|
columnMap := collection.NewSet()
|
|
|
for i := 0; i < len(data[0]); i++ {
|
|
|
columnValue := strings.TrimSpace(data[0][i])
|
|
|
if len(columnValue) == 0 {
|
|
|
return fmt.Errorf("计算集标题第%d列不能为空", i+1)
|
|
|
}
|
|
|
if columnMap.Contains(columnValue) {
|
|
|
return fmt.Errorf("计算集第%d列重复:%v", i+1, data[0][i])
|
|
|
}
|
|
|
columnMap.Add(columnValue)
|
|
|
d.DataTable.Fields = append(d.DataTable.Fields, &domain.Field{
|
|
|
Name: columnValue,
|
|
|
SQLName: fmt.Sprintf("col%d", i),
|
|
|
SQLType: domain.String.ToString(),
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
|
...
|
...
|
|