表格数据查看表头乱码问题修改

This commit is contained in:
zhaolei 2026-02-05 09:15:48 +08:00
parent a1e96d9c36
commit 5368472ccd

View File

@ -2475,15 +2475,17 @@ int CSlfIO::SetTableHead(int index,DWORD RecordCount,DWORD FieldCount,Slf_TABLE_
if(IsWis) return SetWisTableHead(index,RecordCount,FieldCount,FieldInfo);
else {
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
pf[i].ArrayNum=1;
pf[i].CodeLength=FieldInfo[i].Length;
pf[i].RepCode=FieldInfo[i].RepCode;
pf[i].DefVal=-9999.0;
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
int len=sizeof(pf[i].Name);
if(len>strlen(FieldInfo[i].Name)) len=strlen(FieldInfo[i].Name);
@ -2536,6 +2538,8 @@ bool CSlfIO::SetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
int FieldCount=m_SlfObjectEntry[index].FieldNum;
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
GetSlfTableFieldInfo(index,pf);
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
int len=strlen(FieldInfo[i].Name);
@ -2543,20 +2547,20 @@ bool CSlfIO::SetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
strncpy(pf[i].Name,FieldInfo[i].Name,len);
pf[i].Name[len]=0;
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
len=strlen(FieldInfo[i].HZName);
if(len>sizeof(pf[i].HZName)) len=sizeof(pf[i].HZName);
strncpy(pf[i].HZName,FieldInfo[i].HZName,sizeof(pf[i].HZName));
pf[i].HZName[len]=0;
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
len=strlen(FieldInfo[i].Unit);
if(len>sizeof(pf[i].Unit)) len=sizeof(pf[i].Unit);
strncpy(pf[i].Unit,FieldInfo[i].Unit,sizeof(pf[i].Unit));
pf[i].Unit[len]=0;
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
len=strlen(FieldInfo[i].HZUnit);
if(len>sizeof(pf[i].HZUnit)) len=sizeof(pf[i].HZUnit);
@ -2579,6 +2583,8 @@ bool CSlfIO::GetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
memset(pf,0,sizeof(Slf_OBJECT_FIELD)*FieldCount);
GetSlfTableFieldInfo(index,pf);
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
FieldInfo[i].Length=pf[i].CodeLength;
FieldInfo[i].RepCode=pf[i].RepCode;
@ -2586,14 +2592,14 @@ bool CSlfIO::GetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
strncpy(FieldInfo[i].Name,pf[i].Name,sizeof(FieldInfo[i].Name));
strncpy(FieldInfo[i].HZName,pf[i].HZName,sizeof(FieldInfo[i].HZName));
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
strncpy(FieldInfo[i].Unit,pf[i].Unit,sizeof(FieldInfo[i].Unit));
strncpy(FieldInfo[i].HZUnit,pf[i].HZUnit,sizeof(FieldInfo[i].HZUnit));
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
FieldInfo[i].Reserved=*(DWORD *)&pf[i].Reserved;
}
delete []pf;