Q&A

  • 스트링그리드에 변수로 입력하기 ? ^.^ 코드참초 하세요...
거칠은 코드지만 별모양 부분에 참고하시고
왜 스트링 그리드셀 [2,i] 에만 입력이 안되는 지
알려주세요 .
제가 뭔가를 모르는것 같은데 못
5  COMMENTS
  • Profile
    최용일 2005.03.17 22:06
    안녕하세요. 최용일입니다.

    'sgridtxt;는 입력 되고 sgridtxt는 입력이 안된다면... 의심스러운 부분은 딱 한군데네요...

    with문 때문에 다른곳의 sgridtxt를 참조하는것 같습니다.


    Jutable_Addr_qua란곳에 sgridtxt가 있나 확인해보시구요. string형인가도 확인해보세요...

    ^^ 항상 즐코하세요...

  • Profile
    이창재 2005.03.24 14:42
    질문의 내용은 해결되었습니다.
    (하지만 아직 표현해야할 많은 조건들이 있슴다...조건에 맞는 목록을  Loop  시켜 원하는 순서에 맞게 모두  끌어와야 합니다.....흥국의 으~아~)
    스트링그리드의 목록 필드에 STXT 란
    변수를 중간에 개입시켜
    x.cells[y,y]:=STXT;
    형식으로 대입해보면 절대 나오질 않습니다..(100% 불가능하다고 말할 순 없어요.)
    하지만 STXT에 문자는 분명 살아있는걸
    ShowMessage(STXT); 로 확인 여러차례 했슴다.
    표현하는 코딩의 위치도 그위치에서 말입니다...
    그래서 직접쓴는 방법을 사용했습니다.

    만약 같은 문제로 고민중이시라면 일단 이와같은 방법으로 해결하시고
    더 좋은 방법을 차차 찾으시길 바랍니다.

    물론 좋은 방법이 있으면 리플 달아 주세요...


    <!--CodeS-->

    with Jutable_Jumun_qua do begin
    Close;
      try
        SQL.Clear;
        SQL.Add('select * from Jumun ');
        SQL.Add(' where Jumun_date=:DATE ');
        ParamByName('DATE').AsString:=
         Form1.Se_edit_a6.Text + Form1.Se_com_b6.Text + Form1.Se_com_c6.Text;
        Open;
        //===>>기존내용을 clear
        With Jutable_sgrid do begin
          for i:=1 to Jutable_sgrid.RowCount-1 do //줄방향삭제
          Jutable_sgrid.Rows[i].Clear;
        Jutable_sgrid.RowCount:=2;//행수를 조절
        end;
        //===<<
        //==>>title
        Jutable_sgrid.Cells[0,0]:='번호';
        Jutable_sgrid.Cells[1,0]:='상호';
        Jutable_sgrid.Cells[2,0]:='목록';
        Jutable_sgrid.Cells[3,0]:='비고';
        //==<<title
      Except
      end;
    end;
    with Jutable_Addr_qua do begin
    Close;
      try
        SQL.Clear;
        SQL.Add('select C_Num, C_Name from C_Addr_01');
        open;
      Except
      end;
      if RecordCount>0 then begin
        Jutable_sgrid.RowCount:=RecordCount+1;//필드명 표시하기위한 한줄의 여유//0 부터 나타나므로
        first;
          i:=1;//필드명 표시하기위해 0이 아인 1로  초기화
          while NOT EOF do begin
          if i=1 then begin
           ShowMessage('1____'+STXT);
           end;
           //for i:=1 to j do begin //for 문에서 while 문으로 수정
            Jutable_sgrid.Cells[0,i]:=inttostr(i);
            Jutable_sgrid.Cells[1,i]:=FieldByName('C_Name').AsString;
            //====>>
            with Jutable_byname_qua do begin
            close;
              try
                SQL.Clear;
                SQL.Add('select * from Jumun ');
                {SQL.Add('where Jumun_date=:DATE ');
                SQL.Add('and Jumun_custcode=:CODE');
                ParamByName('DATE').AsString:=
                  Form1.Se_edit_a6.Text + Form1.Se_com_b6.Text + Form1.Se_com_c6.Text;
                 ParamByName('CODE').AsString:=
                   Form1.Se_la_f6.Caption; }//두번실행하면 오류가 나서
                open;
                Except
              end;
              Jutable_sgrid.Cells[2,i]:=
                    FieldByName('Jumun_goodsname').AsString +'  '+
                    FieldByName('Jumun_numbox').AsString +'_B'+' '+
                    FieldByName('Jumun_numeach').AsString +'_개';
            end;
            //=====<<

            Jutable_sgrid.Cells[3,i]:='비고';
            Jutable_sgrid.Row:=i;
            INC(i);
            Next;
          end;
      end
    //====>>>>스트링그리드 내용지우기 쿼리의 결과물이 없을때만
      else if RecordCount<=0 then begin
              for i:=1 to Jutable_sgrid.RowCount-1 do //줄방향삭제
                  Jutable_sgrid.Rows[i].Clear;
              Jutable_sgrid.RowCount:=2;//행수를 조절
      end;
    end;


    <!--CodeE-->
  • Profile
    이창재 2005.03.17 22:44
  • Profile
    최용일 2005.03.17 22:50
    왜 지우실려고 하시는지?

    제가 님을 위해서만 답변을 드린것은 아닙니다.

    많은 분들이 여기와서 질문도 하지만 검색을 해서 해결방법을 얻어가기도 합니다.

    문제 해결후 그 질문/답변이 사라진다면 그건 혼자만을 위한 사이트일뿐입니다.

    차라리 메일이나 MSN등을 통해서 개인적으로 아는분에게 도움을 받는게 더 좋겠네요...

  • Profile
    이창재 2005.03.18 20:39

    먼저 답변감사합니다.

    의미전달이 잘못 되었네요..
    확인중이라는 글자만 지우겠다는 의미였습니다.
    중복된 내용이 들어가서
    차라리 검색수만 늘릴것 같아
    확인중이라는 리플만 지우겠다는 의미였습니다.

    다시 감사드립니다.....