HKS WebServis ArrayOfString2 Hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
HKS WebServis ArrayOfString2 Hatası
Merhabalar Hal kayıt sistemi web servislerinin kullanımını çözmeye çalışıyorum il ilçe cins gibi bilgileri alabiliyorum şimdilik bir yerde takıldım (Bildirim servisindeki) tc veya vergi no gönderip kayıtlımı sıfatları nedir gibi bilgileri geri alacagım fakat "Istek.TcKimlikVergiNolar" alanına değer atayamıyorum heryolu denedim c# textbox direkt atamış ve olmuş bunun karşılığı delphide yokmudur. ilginize teşekkürler yardımlarınızı bekliyorum
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',HTTPRIO1);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='xxxx';
kisi.Password:='xxxxxx';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
kisi.Istek.TcKimlikVergiNolar[0]:= '6290164516'; ******* kendi tc nomu veya şirket vno yu yazıyorum hep hata veriyor invalid read adress gibi
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',HTTPRIO1);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='xxxx';
kisi.Password:='xxxxxx';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
kisi.Istek.TcKimlikVergiNolar[0]:= '6290164516'; ******* kendi tc nomu veya şirket vno yu yazıyorum hep hata veriyor invalid read adress gibi
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
Re: HKS WebServis ArrayOfString2 Hatası
Merhaba ,
Sorun dinamik diziye boyut belirtmediğiniz için yaşanıyor.
SetLength ile TcKimlikVergiNolar ın boyunu belirtmelisiniz, fakat "Property" olarak tanımlı olduğu için doğrudan boyut belirtemezsiniz, öncelikle aynı tipte bir yerel değişken tanımlayın örneğin TcKimlikVergiNolar tipi TArrayOfString olsun örnek şu hale gelmeli,
iyi çalışmalar.
Sorun dinamik diziye boyut belirtmediğiniz için yaşanıyor.
Kod: Tümünü seç
kisi.Istek.TcKimlikVergiNolar[0]:= '6290164516'; ******* kendi tc nomu veya şirket vno yu yazıyorum hep hata veriyor invalid read adress gibi
Kod: Tümünü seç
var
intTCVergiNolar : TArrayOfString ;
begin
..
.
SetLength(intTCVergiNolar , 1) ; // kaç adet kimlik atayacaksanız boyutu belirtin, ben 1 dedim
intTCVergiNolar[0] := '6290164516';
kisi.Istek.TcKimlikVergiNolar := intTCVergiNolar ;
..
.
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
volkan bey ilginize teşekkürler ederim uzun bi süredir kişisel sorunlarımla uğraştığımdan
cevabınızı yeni gördüm dediğiniz gibi yapmaya çalıştım birtürlü olmadı servisteki tip tanımı şu şekilde
// ************************************************************************ //
// XML : ArrayOfstring, global, <complexType>
// Namespace : http://schemas.microsoft.com/2003/10/Se ... ion/Arrays
// ************************************************************************ //
ArrayOfstring2 = class(TRemotable)
private
Fstring_: Array_Of_string;
Fstring__Specified: boolean;
procedure Setstring_(Index: Integer; const AArray_Of_string: Array_Of_string);
function string__Specified(Index: Integer): boolean;
public
function GetstringArray(Index: Integer): string;
procedure SetstringArray(Index: Integer; const Item: string);
function GetstringArrayLength: Integer;
procedure SetstringArrayLength(Len: Integer);
property stringArray[Index: Integer]: string read GetstringArray write SetstringArray; default;
property Len: Integer read GetstringArrayLength write SetstringArrayLength;
published
property string_: Array_Of_string Index (IS_OPTN or IS_UNBD or IS_NLBL) read Fstring_ write Setstring_ stored string__Specified;
end;
// ************************************************************************ //
// XML : ArrayOfstring, global, <element>
// Namespace : http://schemas.microsoft.com/2003/10/Se ... ion/Arrays
// ************************************************************************ //
ArrayOfstring = class(ArrayOfstring2)
private
published
end;
arrayofstring2 tanımı yaptığımda SetLength () hataveriyor [DCC Error] Unit1.pas(96): E2008 Incompatible types ilginize teşekkürler
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : ArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='444';
kisi.Password:='4444';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
SetLength(tcArray,1);
tcArray[0] := '444';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
cevabınızı yeni gördüm dediğiniz gibi yapmaya çalıştım birtürlü olmadı servisteki tip tanımı şu şekilde
// ************************************************************************ //
// XML : ArrayOfstring, global, <complexType>
// Namespace : http://schemas.microsoft.com/2003/10/Se ... ion/Arrays
// ************************************************************************ //
ArrayOfstring2 = class(TRemotable)
private
Fstring_: Array_Of_string;
Fstring__Specified: boolean;
procedure Setstring_(Index: Integer; const AArray_Of_string: Array_Of_string);
function string__Specified(Index: Integer): boolean;
public
function GetstringArray(Index: Integer): string;
procedure SetstringArray(Index: Integer; const Item: string);
function GetstringArrayLength: Integer;
procedure SetstringArrayLength(Len: Integer);
property stringArray[Index: Integer]: string read GetstringArray write SetstringArray; default;
property Len: Integer read GetstringArrayLength write SetstringArrayLength;
published
property string_: Array_Of_string Index (IS_OPTN or IS_UNBD or IS_NLBL) read Fstring_ write Setstring_ stored string__Specified;
end;
// ************************************************************************ //
// XML : ArrayOfstring, global, <element>
// Namespace : http://schemas.microsoft.com/2003/10/Se ... ion/Arrays
// ************************************************************************ //
ArrayOfstring = class(ArrayOfstring2)
private
published
end;
arrayofstring2 tanımı yaptığımda SetLength () hataveriyor [DCC Error] Unit1.pas(96): E2008 Incompatible types ilginize teşekkürler
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : ArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='444';
kisi.Password:='4444';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
SetLength(tcArray,1);
tcArray[0] := '444';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
Re: HKS WebServis ArrayOfString2 Hatası
merhaba ,
ArrayofString2, TRemotable single bir obje, yukarıda ki kodu yazarken ilk yazdığınız kodda yer alan URL den WSDL i import ederek kontrol etmiştim, (şuan kaldırmışısınız sanırım URL görünmüyor)
neyse BaseRequestMessageOf_KayitliKisiSorguIstek.istek.TcKimlikVergiNolar : TArrayOfString tipnde tanımlıydı.
ArrayofString2, TRemotable single bir obje, yukarıda ki kodu yazarken ilk yazdığınız kodda yer alan URL den WSDL i import ederek kontrol etmiştim, (şuan kaldırmışısınız sanırım URL görünmüyor)
neyse BaseRequestMessageOf_KayitliKisiSorguIstek.istek.TcKimlikVergiNolar : TArrayOfString tipnde tanımlıydı.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
merhabalar servisteki tanım şu şekilde yapılmış bu kadar hızlı cevapladığınız için teşekkür ederim
// ************************************************************************ //
// XML : KayitliKisiSorguIstek, global, <complexType>
// Namespace : http://schemas.datacontract.org/2004/07 ... ceContract
// ************************************************************************ //
KayitliKisiSorguIstek2 = class(TRemotable)
private
FTcKimlikVergiNolar: ArrayOfstring2;
FTcKimlikVergiNolar_Specified: boolean;
procedure SetTcKimlikVergiNolar(Index: Integer; const AArrayOfstring2: ArrayOfstring2);
function TcKimlikVergiNolar_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property TcKimlikVergiNolar: ArrayOfstring2 Index (IS_OPTN or IS_NLBL) read FTcKimlikVergiNolar write SetTcKimlikVergiNolar stored TcKimlikVergiNolar_Specified;
end;
// ************************************************************************ //
// XML : KayitliKisiSorguIstek, global, <complexType>
// Namespace : http://schemas.datacontract.org/2004/07 ... ceContract
// ************************************************************************ //
KayitliKisiSorguIstek2 = class(TRemotable)
private
FTcKimlikVergiNolar: ArrayOfstring2;
FTcKimlikVergiNolar_Specified: boolean;
procedure SetTcKimlikVergiNolar(Index: Integer; const AArrayOfstring2: ArrayOfstring2);
function TcKimlikVergiNolar_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property TcKimlikVergiNolar: ArrayOfstring2 Index (IS_OPTN or IS_NLBL) read FTcKimlikVergiNolar write SetTcKimlikVergiNolar stored TcKimlikVergiNolar_Specified;
end;
Re: HKS WebServis ArrayOfString2 Hatası
merhabalar ,
Yukarıdaki son örneğinizde ki istek nesnesinin tipi KayitliKisiSorguIstek şuan gönderdiğiniz sınıf ise KayitliKisiSorguIstek2 tipinde, öncelikle tiplerde anlaşmak lazım diye düşünüyorum. en sağlıklısı yazdığınız kod bloğunu ve WSDL den import ettiğiniz Interface in yer aldığı Uniti komple paylaşın, gerekirse URL leri gizleyin sonuçta sınıflara bakacağız sadece.
Yukarıdaki son örneğinizde ki istek nesnesinin tipi KayitliKisiSorguIstek şuan gönderdiğiniz sınıf ise KayitliKisiSorguIstek2 tipinde, öncelikle tiplerde anlaşmak lazım diye düşünüyorum. en sağlıklısı yazdığınız kod bloğunu ve WSDL den import ettiğiniz Interface in yer aldığı Uniti komple paylaşın, gerekirse URL leri gizleyin sonuçta sınıflara bakacağız sadece.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
özür dilerim hızlı cevap yazayım derken karıştırmış olabilirim
projenin sıkıştırılmış halini şu linke ekledim
http://www.upload.gen.tr/d.php/www/uDp0 ... p.rar.html
projenin sıkıştırılmış halini şu linke ekledim
http://www.upload.gen.tr/d.php/www/uDp0 ... p.rar.html
En son zagerx tarafından 14 Mar 2014 03:56 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: HKS WebServis ArrayOfString2 Hatası
gönderdiğiniz projede sadece aşağıdaki blok var ne yapak istediğiniz anlaşılmıyor, yani yukarıda konuşulanlara benzemiyor.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
proxy :IGenelService;
istek :BaseRequestMessageOf_IllerIstek;
iller: IllerIstek;
cevap :BaseResponseMessageOf_IllerCevap ;
begin
proxy.GenelServisIller(BaseRequestMessageOf_IllerIstek('6290065716','narPAK34','!1QAZWSX',Istek := IllerIstek()));
cevap = proxy.GenelServisIller(istek);
end;
end.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
bu deneme projem o bloklar genel servisin kullanımını anlamak için yaptığım çalışmaların blogu bu sorumla alakası yok o kısım çalışıyor
button 2 in altinda yazan kodu inceledinizmi
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : tArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='00';
kisi.Password:='00';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
tcArray.stringArray[0]:='00';
tcArray[1] := '00';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
button 2 in altinda yazan kodu inceledinizmi
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : tArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='00';
kisi.Password:='00';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
tcArray.stringArray[0]:='00';
tcArray[1] := '00';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
En son zagerx tarafından 14 Mar 2014 03:45 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: HKS WebServis ArrayOfString2 Hatası
Gönderdiğiniz projede çalıştırmak istediğiniz metodu aşağıdaki gibi çalıştırabilirsiniz.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
proxy :IGenelService;
istek :BaseRequestMessageOf_IllerIstek;
cevap :BaseResponseMessageOf_IllerCevap ;
begin
proxy := GetIGenelService ;
istek := BaseRequestMessageOf_IllerIstek.Create ;
istek.Istek := IllerIstek.Create;
istek.UserName := '6290065716';
istek.Password := 'narPAK34';
istek.ServicePassword := '!1QAZWSX';
cevap := proxy.GenelServisIller( istek ) ;
ShowMessage( 'Dönen İl Sayısı : ' + IntToStr( cevap.Sonuc.Iller.Len ));
ShowMessage( 'ilk kayıt : ' + cevap.Sonuc.Iller.GetIlDTO2Array(0).IlAdi );
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
unitin komplesini buraya yapıştırayım en iyisi gibi görünüyor
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Soap.InvokeRegistry, Soap.Rio, Soap.SOAPHTTPClient, Vcl.StdCtrls, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit,
dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans,
dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, cxMemo,
cxTextEdit,bildirimservice;
type
tArrayOfstring2=ArrayOfstring2;
TForm1 = class(TForm)
Button1: TButton;
HTTPRIO1: THTTPRIO;
ListBox1: TListBox;
iller: TComboBox;
ilceler: TComboBox;
Button2: TButton;
Edit1: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure illerChange(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses GenelService;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
proxy :IGenelService;
iliste :BaseRequestMessageOf_IllerIstek;
ilcevap :BaseResponseMessageOf_IllerCevap ;
I: Integer;
begin
try
iller.Items.Clear;
listbox1.Items.Clear;
proxy:= GetIGenelService(false,'',HTTPRIO1);
iliste:= BaseRequestMessageOf_IllerIstek.Create;
iliste.UserName:='00';
iliste.Password:='00';
iliste.ServicePassword:='!1QAZWSX';
iliste.Istek:=IllerIstek.Create;
ilcevap:=proxy.GenelServisIller(iliste);
for I:= 0 to ilcevap.Sonuc.Iller.Len-1 do
begin
Listbox1.Items.Append(ilcevap.Sonuc.Iller.IlAdi);
iller.Items.Add(inttostr(ilcevap.Sonuc.Iller.Id)+'-'+ ilcevap.Sonuc.Iller.IlAdi)
end;
finally
iliste.Free;
end;
end;
function sayibul(x:string): integer ;
var i:integer;y:string;
begin
for I := 1 to length(x) do
begin
if copy(x,i,1)='-' then break
else y:=copy(x,1,i);
end;
result:=strtoint(y);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : tArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='00';
kisi.Password:='00';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
tcArray[1] := '30799674892';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
procedure TForm1.illerChange(Sender: TObject);
var
proxy :IGenelService;
ilceiste :BaseRequestMessageOf_IlcelerIstek;
ilcecevap :BaseResponseMessageOf_IlcelerCevap ;
I: Integer;
begin
try
ilceler.Items.Clear;
proxy:= GetIGenelService(false,'',HTTPRIO1);
ilceiste:= BaseRequestMessageOf_IlcelerIstek.Create;
ilceiste.UserName:='00';
ilceiste.Password:='00';
ilceiste.ServicePassword:='!1QAZWSX';
ilceiste.Istek:=IlcelerIstek.Create;
ilceiste.Istek.IlId:=sayibul(iller.Text);
ilcecevap:=proxy.GenelServisIlceler(ilceiste);
for I:= 0 to ilcecevap.Sonuc.Ilceler.Len-1 do
begin
Listbox1.Items.Append(ilcecevap.Sonuc.Ilceler.IlceAdi);
ilceler.Items.Add(ilcecevap.Sonuc.Ilceler.IlceAdi)
end;
finally
ilceiste.Free;
end;
end;
end.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Soap.InvokeRegistry, Soap.Rio, Soap.SOAPHTTPClient, Vcl.StdCtrls, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit,
dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans,
dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, cxMemo,
cxTextEdit,bildirimservice;
type
tArrayOfstring2=ArrayOfstring2;
TForm1 = class(TForm)
Button1: TButton;
HTTPRIO1: THTTPRIO;
ListBox1: TListBox;
iller: TComboBox;
ilceler: TComboBox;
Button2: TButton;
Edit1: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure illerChange(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses GenelService;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
proxy :IGenelService;
iliste :BaseRequestMessageOf_IllerIstek;
ilcevap :BaseResponseMessageOf_IllerCevap ;
I: Integer;
begin
try
iller.Items.Clear;
listbox1.Items.Clear;
proxy:= GetIGenelService(false,'',HTTPRIO1);
iliste:= BaseRequestMessageOf_IllerIstek.Create;
iliste.UserName:='00';
iliste.Password:='00';
iliste.ServicePassword:='!1QAZWSX';
iliste.Istek:=IllerIstek.Create;
ilcevap:=proxy.GenelServisIller(iliste);
for I:= 0 to ilcevap.Sonuc.Iller.Len-1 do
begin
Listbox1.Items.Append(ilcevap.Sonuc.Iller.IlAdi);
iller.Items.Add(inttostr(ilcevap.Sonuc.Iller.Id)+'-'+ ilcevap.Sonuc.Iller.IlAdi)
end;
finally
iliste.Free;
end;
end;
function sayibul(x:string): integer ;
var i:integer;y:string;
begin
for I := 1 to length(x) do
begin
if copy(x,i,1)='-' then break
else y:=copy(x,1,i);
end;
result:=strtoint(y);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : tArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService(false,'',nil);
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='00';
kisi.Password:='00';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
tcArray[1] := '30799674892';
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar.TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
procedure TForm1.illerChange(Sender: TObject);
var
proxy :IGenelService;
ilceiste :BaseRequestMessageOf_IlcelerIstek;
ilcecevap :BaseResponseMessageOf_IlcelerCevap ;
I: Integer;
begin
try
ilceler.Items.Clear;
proxy:= GetIGenelService(false,'',HTTPRIO1);
ilceiste:= BaseRequestMessageOf_IlcelerIstek.Create;
ilceiste.UserName:='00';
ilceiste.Password:='00';
ilceiste.ServicePassword:='!1QAZWSX';
ilceiste.Istek:=IlcelerIstek.Create;
ilceiste.Istek.IlId:=sayibul(iller.Text);
ilcecevap:=proxy.GenelServisIlceler(ilceiste);
for I:= 0 to ilcecevap.Sonuc.Ilceler.Len-1 do
begin
Listbox1.Items.Append(ilcecevap.Sonuc.Ilceler.IlceAdi);
ilceler.Items.Add(ilcecevap.Sonuc.Ilceler.IlceAdi)
end;
finally
ilceiste.Free;
end;
end;
end.
En son zagerx tarafından 14 Mar 2014 03:56 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: HKS WebServis ArrayOfString2 Hatası
Sizin projede sadece Button1 vardı neyse ,
Button2 de yazanı aşağıdaki gibi düzenleyin;
Button2 de yazanı aşağıdaki gibi düzenleyin;
Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
var
servis :IBildirimService;
kisi :BaseRequestMessageOf_KayitliKisiSorguIstek;
kisicevap :BaseResponseMessageOf_KayitliKisiSorguCevap ;
I: Integer;
tcArray : ArrayOfstring2 ;
begin
try
memo1.Clear;
servis:= GetIBildirimService;
kisi:= BaseRequestMessageOf_KayitliKisiSorguIstek.Create;
kisi.UserName:='xxxxxxx';
kisi.Password:='xxxxxx';
kisi.ServicePassword:='!1QAZWSX';
kisi.Istek:=KayitliKisiSorguIstek.Create;
tcArray := ArrayOfstring2.Create ;
tcArray.SetstringArrayLength(1); // Kaç TC gireceğimizi belirtiyoruz
tcArray.stringArray[0] := '12345678901'; // Sonra 0 dan başlayarak TC leri atıyoruz..
kisi.Istek.TcKimlikVergiNolar:=tcArray;
kisicevap:=servis.BildirimServisKayitliKisiSorgu(kisi);
for I:= 0 to kisicevap.Sonuc.TcKimlikVergiNolar.Len-1 do
begin
memo1.Lines.Add(kisicevap.Sonuc.TcKimlikVergiNolar[i].TcKimlikVergiNo);
end;
finally
kisi.Free;
end;
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: HKS WebServis ArrayOfString2 Hatası
allah razı olsun sizden teşekkürler fark ettim evet iki butonun tanım ismide button1
deneme yapmaktan fark edememişim şimdiye kadar

Re: HKS WebServis ArrayOfString2 Hatası
tüm detaylar sorunsuz çalışıyor, fakat
SetstringArrayLength
stringArray
fonksiyonlar için bilgi verirmisiniz.
Şimdiden teşekkürler.
SetstringArrayLength
stringArray
fonksiyonlar için bilgi verirmisiniz.
Şimdiden teşekkürler.