PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum set focus em chave que relaciona as tabelas,erro dataset #163604

30/05/2003

0

como posso resolver isso tenho um form de cadastro utilizando a tabela de clientes com o cgc sendo a chave principal (utiliz paradox)
depois possuo pags controls acessando outras tabelas tipo :
endereço de entrega
endereço de cobranca
que o mesmo cgc pode ter n endereços entrega e n endereços de cobranca
então criei uma tabala para cada um
como posso dar setfocus no cgc que esta relacionando a tabela de entrega com a tabela de clientes, pois o cgc aparece na entrega apenas qdo comeco a digitar o número

outra coisa qdo tento salvar os dados da tabela esta dando erro de dataset is not in mode edit or insert não consigo resolver me ajudem please....(Botao salvar)

segue o código

unit ficha_cadastral;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, DBCtrls, Db, DBTables, StdCtrls, ComCtrls, Mask, Buttons,
Grids, DBGrids;

type
:oops: Tform_ficha = class(TForm)
ScrollBox1: TScrollBox;
tbfichacli: TTable;
CNPJ: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edvendedor: TDBEdit;
edrazao: TDBEdit;
ediestadual: TDBEdit;
Label4: TLabel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
GroupBox1: TGroupBox;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
dsfichacli: TDataSource;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBCombouf: TDBComboBox;
edmunicipio: TDBEdit;
edendereco: TDBEdit;
edbairro: TDBEdit;
edcep: TDBEdit;
tbentrega: TTable;
dsentrega: TDataSource;
Label13: TLabel;
DBEdit4: TDBEdit;
Label14: TLabel;
DBEdit5: TDBEdit;
Label15: TLabel;
DBEdit6: TDBEdit;
edfone: TDBEdit;
edfax: TDBEdit;
Label10: TLabel;
Label12: TLabel;
Label16: TLabel;
DBEdit2: TDBEdit;
Label17: TLabel;
DBEdit3: TDBEdit;
Label18: TLabel;
DBComboBox1: TDBComboBox;
Label19: TLabel;
DBEdit7: TDBEdit;
Label20: TLabel;
DBEdit8: TDBEdit;
Label21: TLabel;
DBEdit9: TDBEdit;
Label22: TLabel;
DBEdit10: TDBEdit;
Label23: TLabel;
DBEdit11: TDBEdit;
Label24: TLabel;
DBEdit12: TDBEdit;
Label25: TLabel;
DBComboBox2: TDBComboBox;
Label26: TLabel;
DBEdit13: TDBEdit;
Label27: TLabel;
DBEdit14: TDBEdit;
Label28: TLabel;
DBEdit15: TDBEdit;
Label11: TLabel;
DBcnpjclie: TDBEdit;
Label29: TLabel;
DBEdit16: TDBEdit;
Label30: TLabel;
DBEdit17: TDBEdit;
Label31: TLabel;
DBEdit18: TDBEdit;
Label32: TLabel;
DBEdit19: TDBEdit;
TabSheet4: TTabSheet;
Socios: TGroupBox;
Label33: TLabel;
DBEdit20: TDBEdit;
Label35: TLabel;
DBEdit22: TDBEdit;
Label34: TLabel;
DBEdit21: TDBEdit;
DBEdit24: TDBEdit;
Label37: TLabel;
TabSheet5: TTabSheet;
GroupBox4: TGroupBox;
Label36: TLabel;
DBdescbanco: TDBEdit;
Label38: TLabel;
Label40: TLabel;
DBEdit23: TDBEdit;
Label41: TLabel;
DBEdit26: TDBEdit;
TabSheet6: TTabSheet;
GroupBox5: TGroupBox;
Label39: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
DBComboBox3: TDBComboBox;
DBEdit27: TDBEdit;
DBEdit28: TDBEdit;
DBEdit29: TDBEdit;
DBEdit30: TDBEdit;
DBEdit31: TDBEdit;
DBEdit32: TDBEdit;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
GroupBox6: TGroupBox;
Label48: TLabel;
DBeditlimite: TDBEdit;
Label49: TLabel;
DBMemoobs: TDBMemo;
GroupBox7: TGroupBox;
DBRadioGroup1: TDBRadioGroup;
DBRadioGroup2: TDBRadioGroup;
DBRadioGroup3: TDBRadioGroup;
DBRadioGroup4: TDBRadioGroup;
DBRadioGroup5: TDBRadioGroup;
tbsocios: TTable;
dssocios: TDataSource;
DBRadioGroup6: TDBRadioGroup;
DBEdit34: TDBEdit;
DBEdit35: TDBEdit;
DBComboBox4: TDBComboBox;
DBatividade: TDBComboBox;
tbatividade: TTable;
dsatividade: TDataSource;
StaticText1: TStaticText;
DBNavigator6: TDBNavigator;
DBNavigator7: TDBNavigator;
DBNavigator5: TDBNavigator;
DBNavigator2: TDBNavigator;
DBNavigator3: TDBNavigator;
tbrfcomercial: TTable;
dsrfcomercial: TDataSource;
btIncluir: TButton;
btsalvar: TButton;
DBcnpj: TDBEdit;
Label50: TLabel;
DBcnpjclic: TDBEdit;
Label51: TLabel;
DBEdit33: TDBEdit;
Label52: TLabel;
DBcnpjb: TDBEdit;
Label53: TLabel;
DBcnpjclici: TDBEdit;
Tbcobranca: TTable;
dscobranca: TDataSource;
Tbrfbanco: TTable;
dsrfbanco: TDataSource;
btenviar: TButton;
DB1: TDatabase;
tbvendedor: TTable;
dsvendedor: TDataSource;
tbvendedorCdven: TStringField;
tbvendedorNome: TStringField;
lbldescricao: TLabel;
tbfichacliCnpj: TStringField;
tbfichacliStatus: TStringField;
tbfichacliVendedor: TStringField;
tbfichacliAtividadecli: TFloatField;
tbfichacliRazao: TStringField;
tbfichacliEndereco: TStringField;
tbfichacliBairro: TStringField;
tbfichacliCep: TFloatField;
tbfichacliMunicipio: TStringField;
tbfichacliUf: TStringField;
tbfichacliDdd: TFloatField;
tbfichacliFone: TFloatField;
tbfichacliDdf: TFloatField;
tbfichacliFax: TFloatField;
tbfichacliEmail: TStringField;
tbfichacliIestadual: TStringField;
tbfichacliSuframa: TStringField;
tbfichacliNomefantasia: TStringField;
tbfichacliLimitecredito: TFloatField;
tbfichacliObservacoes: TStringField;
tbfichacliLocalizacao: TStringField;
tbfichacliAreaComercial: TStringField;
tbfichacliInstalacoes: TStringField;
tbfichacliMovtLoja: TStringField;
tbfichacliEstoqueVisivel: TStringField;
tbfichacliOldcgc: TStringField;
tbfichacliOldazao: TStringField;
tbatividadeCodigo: TStringField;
tbatividadeDescricao: TStringField;
tbentregaCnpjcli: TStringField;
tbentregaEndereco: TStringField;
tbentregaBairro: TStringField;
tbentregaCep: TFloatField;
tbentregaMunicipio: TStringField;
tbentregaUf: TStringField;
tbentregaIestadual: TStringField;
tbentregaCnpj: TStringField;
tbentregaFone: TFloatField;
tbentregaFax: TFloatField;
tbentregaSeq: TFloatField;
TbcobrancaCnpjcli: TStringField;
TbcobrancaEndereco: TStringField;
TbcobrancaBairro: TStringField;
TbcobrancaCep: TFloatField;
TbcobrancaMunicipio: TStringField;
TbcobrancaUf: TStringField;
TbcobrancaFone: TFloatField;
TbcobrancaFax: TFloatField;
TbcobrancaSeq: TFloatField;
tbsociosCnpjcli: TStringField;
tbsociosSocio: TStringField;
tbsociosPercentual: TStringField;
tbsociosNacionalidade: TStringField;
tbsociosEstadoCivil: TStringField;
tbsociosCnpjcpf: TStringField;
tbsociosSeq: TFloatField;
tbrfcomercialCnpjcli: TStringField;
tbrfcomercialNome: TStringField;
tbrfcomercialEndereco: TStringField;
tbrfcomercialBairro: TStringField;
tbrfcomercialCep: TFloatField;
tbrfcomercialMunicipio: TStringField;
tbrfcomercialUf: TStringField;
tbrfcomercialDdd: TFloatField;
tbrfcomercialFone: TFloatField;
tbrfcomercialFax: TFloatField;
tbrfcomercialSeq: TFloatField;
Label54: TLabel;
DBcnpje: TDBEdit;
TbrfbancoCnpj: TStringField;
TbrfbancoCodbanco: TFloatField;
TbrfbancoNomebanco: TStringField;
TbrfbancoCodagencia: TFloatField;
TbrfbancoNomeagencia: TStringField;
TbrfbancoEndereco: TStringField;
TbrfbancoCep: TFloatField;
TbrfbancoSeq: TFloatField;
// Database1: TDatabase;
procedure btIncluirClick(Sender: TObject);
procedure btsalvarClick(Sender: TObject);
procedure btenviarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBcnpjExit(Sender: TObject);
procedure DBatividadeExit(Sender: TObject);
procedure btIncluirMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
// procedure lbldescricaoClick(Sender: TObject);
private
{ Private declarations }
function cgc(num: string): boolean;
// function AjustaStr ( str: String; tam: Integer): String;
public
{ Public declarations }
// function AjustaStr ( str: String; tam: Integer): String;
end;
var
form_ficha: Tform_ficha;
Arq: TextFile;
NomeDoArquivo: String;
tabela: Ttable;
implementation
{$R *.DFM}
procedure Tform_ficha.btIncluirClick(Sender: TObject);
begin
btIncluir.Enabled := false;
tbfichacli.append;
PageControl1.ActivePage := TabSheet1;
DBcnpj.setfocus;
tbentrega.Append;
DBcnpjclie:=dbcnpj;
tbcobranca.append;
Dbcnpjclic:=dbcnpj;
tbrfbanco.append;
Dbcnpjb:=dbcnpj;
tbrfcomercial.append;
DBcnpjclici:=dbcnpj;
end;
procedure Tform_ficha.btsalvarClick(Sender: TObject);
//var
// ProxNum: Integer;
begin
btIncluir.Enabled := True;
tbfichacli.Post;
// tbentregaseq := AsInteger + 1;

// tbentregaseq:=proxnum
tbentrega.Post;
tbcobranca.Post;
tbsocios.Post;
tbrfbanco.Post;
tbrfcomercial.Post;
end;

procedure Tform_ficha.btenviarClick(Sender: TObject);
function AjustaStr ( str: String; tam: Integer): String;
begin
while length (str) < tam do
str:=str + ´´;
if length (str) > tam then
str:=Copy (str,1,tam);
result:=str;
end;
begin
NomeDoArquivo:= ´teste.txt´;
tabela:= tbfichacli;
AssignFile ( Arq, NomeDoArquivo );
Rewrite (Arq); //inicializa o arquivo em branco
tabela.first;
While not tabela.Eof do
begin
Write (arq, AjustaStr( tabela.FieldByName(´cnpj´).AsString,15));
Write (arq, AjustaStr( tabela.FieldByName(´status´).AsString,1));
Write (arq, AjustaStr( tabela.FieldByName(´vendedor´).AsString,4));
Write (arq, AjustaStr( tabela.FieldByName(´atividadecli´).AsString,3));
Write (arq, AjustaStr( tabela.FieldByName(´razao´).AsString,35));
Write (arq, AjustaStr( tabela.FieldByName(´endereco´).AsString,40));
Write (arq, AjustaStr( tabela.FieldByName(´bairro´).AsString,30));
Write (arq, Formatfloat(´00000000´,tabela.FieldByName(´cep´).AsFloat));
Write (arq, AjustaStr( tabela.FieldByName(´municipio´).AsString,30));
Write (arq, FormatFloat(´000´,tabela.FieldByName(´ddd´).AsFloat));
Write (arq, FormatFloat(´00000000´,tabela.FieldByName(´fone´).AsFloat));
Write (arq, FormatFloat(´000´,tabela.FieldByName(´ddf´).AsFloat));
Write (arq, FormatFloat(´00000000´,tabela.FieldByName(´fax´).AsFloat));
Write (arq, AjustaStr( tabela.FieldByName(´email´).AsString,30));
Write (arq, AjustaStr( tabela.FieldByName(´iestadual´).AsString,20));
Write (arq, AjustaStr( tabela.FieldByName(´nome´).AsString,35));
Write (arq, AjustaStr( tabela.FieldByName(´observacao´).AsString,50));
Write (arq, AjustaStr( tabela.FieldByName(´localizacao´).AsString,1));
Write (arq, AjustaStr( tabela.FieldByName(´areacomercial´).AsString,1));
Write (arq, AjustaStr( tabela.FieldByName(´instalacoes´).AsString,1));
Write (arq, AjustaStr( tabela.FieldByName(´movtloja´).AsString,1));
Write (arq, AJustaStr( tabela.FieldByName(´estoquevisivel´).AsString,1));
Write (arq, AjustaStr( tabela.FieldByName(´oldcgc´).AsString,15));
Write (arq, AjustaStr( tabela.FieldByName(´oldrazao´).AsString,35));
Write (arq, FormatFloat(´0000000.00´,tabela.FieldByName(´limite´).AsFloat));
WriteLn (arq);
tabela.Next;
end;

CloseFile ( arq );
end;
procedure Tform_ficha.FormCreate(Sender: TObject);
begin

try
db1.Open;
tbvendedor.Open;
tbfichacli.Open;
tbatividade.Open;
Tbrfbanco.Open;
tbentrega.Open;
Tbcobranca.Open;
tbrfcomercial.Open;
tbsocios.Open;
tbatividade.First;
while not tbatividade.eof do
begin
DBatividade.Items.Add(tbatividadeCodigo.AsString);
tbatividade.next;
end;
except
ShowMessage(´Erro ao carregar tabelas´);
end;
end;
function Tform_ficha.cgc(num: string): boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12: integer;
d1,d2,nResto: integer;
digitado, calculado: string;
begin
n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[3]);
n4:=StrToInt(num[4]);
n5:=StrToInt(num[5]);
n6:=StrToInt(num[6]);
n7:=StrToInt(num[7]);
n8:=StrToInt(num[8]);
n9:=StrToInt(num[9]);
n10:=StrToInt(num[10]);
n11:=StrToInt(num[11]);
n12:=StrToInt(num[12]);
d1:=n12*2+n11*3+n10*4+n9*5+n8*6+n7*7+n6*8+n5*9+n4*2+n3*3+n2*4+n1*5;
nResto := (d1 mod 11);
if (nResto = 0) or (nResto = 1) then
d1 := 0
else
d1 := 11 - nResto;
d2:=d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6;
nResto := (d2 mod 11);
if (nResto = 0) or (nResto = 1) then
d2 := 0
else
d2 := 11 - nResto;
calculado:=inttostr(d1)+inttostr(d2);
digitado:=num[13]+num[14];
if calculado=digitado then
cgc:=true
else
cgc:=false;
end;
procedure Tform_ficha.DBcnpjExit(Sender: TObject);
begin
if trim(tbfichacliCnpj.AsString) <> ´´ then exit;
if not (cgc(tbfichacliCnpj.AsString)) then
begin
Showmessage(´CNPJ Inválido´);
end;
end;
function AjustaStr ( str: String; tam: Integer): String;
begin
while length (str) < tam do
str:=str + ´´;
if length (str) > tam then
str:=Copy (str,1,tam);
result:=str;
end;
procedure Tform_ficha.DBatividadeExit(Sender: TObject);
begin
lbldescricao.caption:=(tbatividadedescricao.AsString);
end;
procedure Tform_ficha.btIncluirMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
DBcnpjclie:=dbcnpj;
DBcnpjclie.setfocus;
end;
end.


outra coisa como faço para dar setcosu no cgc das tabelas que estão no page control tipo:

digito o cgc na tela principal qdo vou para cadastrar o endereco de entrega e os outros serão vínculados ao cgc que já digitei acima, porém ele so aparece qdo eu digito algo no campo por estar relacionado ele carrga o que quero mais deve ter um jeito dele ja carregar assim que clico no campo nao tem ????


Silvia

Silvia

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar