Em nossos aplicativos de banco de dados comumente usados, é problemático escrever programas de relatório e é inconveniente para os usuários modificar os programas de relatório no Delphi. Por exemplo, os dados gerais precisam adicionar um cabeçalho e alguns dos dados precisam ser modificados ou. vários dados precisam ser alterados. Combine os dados de cada tabela em um conjunto de dados e depois imprima-os. Essas operações são impotentes para o programa de relatório em Delphi, e a maioria dos computadores está equipada com pacotes de escritório. recursos inerentes do Excel? E quanto às múltiplas funções de impressão? A resposta é sim. Utilizamos a função EXCEL para processar arquivos DBASE, desde que nossos arquivos de banco de dados sejam compatíveis com DBASE.
No sistema desktop de banco de dados em Delphi, crie um novo dbase IV da tabela Table (apenas arquivos dabse podem ser usados, porque o EXCEL não reconhece arquivos de outras maneiras) arquivo sample.dbf, que pode criar um arquivo de índice. observei aqui que no banco de dados Somente campos em inglês podem ser inseridos no desktop. Na verdade, usamos apenas banco de dados. O Desktop cria a estrutura do arquivo e então você pode modificá-la para chinês no vfp. A inicialização dos dados e a adição e subtração de campos podem ser concluídas no vfp. Você pode perguntar por que não criar diretamente o arquivo da tabela de dados no vfp, porque o EXCEL. não reconhece nada. Os dados lidos da tabela de dados no vfp são confusos.
Após criar a tabela de dados sample.dbf, crie um projeto em Delphi e selecione o módulo do módulo de dados em arquivo-> novo. A vantagem do módulo de dados estabelecido é que ele pode ser comum a todos os formulários. dados nos componentes da tabela datamodule1, defina itens relacionados, o nome do banco de dados da tabela de dados deve ser definido como c: emp (o diretório do seu arquivo dbf), defina tablename para a tabela de dados que você projetou (sample.dbf), crie um novo botão no form1, a legenda é editada e impressa e adicione o seguinte código ao seu onclick:
data.table1.close;//Fecha a tabela de dados atual. Se não for fechado, os dados podem estar incompletos.
se fileexist(extractfiledir(application.exename)+'samplep.dbf') então DeleteFile(extractfiledir(application.exename)+'samplep.dbf');
//Determine se a tabela de dados de impressão samplep.dbf existe e exclua-a se existir.
copyfile(pchar(extractfiledir(application.exename)+'sample.dbf'),pchar(extractfiledir(application.exename)+'samplep.dbf'),true);
//Copie sample.dbf para a tabela de dados de impressão samplep.dbf. samplep.dbf é especial para edição e impressão. Se você usar sample.dbf, o EXCEL informará que sample.dbf é um arquivo somente leitura. , ele irá travar.
data.table1.open;//Abre a tabela de dados atual para torná-la ativa
shellexecute(0,'open','EXCEL.EXE',pchar(extractfiledir(application.exename)+'samplep.dbf'),pchar(extractfiledir(application.exename)),SW-SHOWMAXIMIZED);//chama o excel e merge Leia o arquivo samplep.dbf no Excel e faça referência ao ShellAPI no arquivo de cabeçalho.
Desta forma, você pode usar a função de tabela e a função de impressão múltipla do EXCEL e não precisa mais criar programas de relatórios complicados. Usei esse método no sistema de estatísticas de faturas que escrevi para minha unidade e os usuários descobriram; é muito conveniente.